找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3363|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

MicroPython教程之TPYBoard開(kāi)發(fā)板DIY紅外尋跡小車(chē)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
  智能小車(chē)現(xiàn)在差不多是電子競(jìng)賽或者DIY中的主流了,尋跡,壁障,遙控什么的,相信大家也都見(jiàn)得很多了,這次就大家探討一下尋跡小車(chē)的制作方法,不同于以往的是這次的程序不用C語(yǔ)言寫(xiě),而是要使用python語(yǔ)言寫(xiě)。

  視頻演示:

  

  1.實(shí)驗(yàn)?zāi)康?br />
  研究智能小車(chē)結(jié)合紅外探頭尋跡前進(jìn)。

  2.實(shí)驗(yàn)材料

  TPYBoard開(kāi)發(fā)板1塊(能跑python語(yǔ)言的開(kāi)發(fā)板,小車(chē)的大腦。)



  四路紅外感應(yīng)探頭(小車(chē)的眼睛)。

  數(shù)據(jù)線一根。

  充電寶一個(gè)(給整個(gè)系統(tǒng)供電)。

  智能小車(chē)底盤(pán)(包括驅(qū)動(dòng)模塊)。

  杜邦線若干。

  實(shí)驗(yàn)?zāi)康暮蛯?shí)驗(yàn)材料準(zhǔn)備齊了,先來(lái)介紹一下各個(gè)主要部件。

  2.1PYBoard開(kāi)發(fā)板

  MicroPython是在單片機(jī)上可以跑的Python,也就是說(shuō),你可以通過(guò)Python腳本語(yǔ)言開(kāi)發(fā)單片機(jī)程序。由劍橋大學(xué)的理論物理學(xué)家喬治·達(dá)明設(shè)計(jì)。和Arduino類(lèi)似,但MicroPython更強(qiáng)大。MicroPython開(kāi)發(fā)板讓你可以通過(guò)Python代碼輕松控制微控制器的各種外設(shè),比如LED等,讀取管腳電壓,播放歌曲,和其他設(shè)備聯(lián)網(wǎng)等等。TPYBoard是TurnipSmart公司制作的一款MicroPython開(kāi)發(fā)板,這款開(kāi)發(fā)板運(yùn)行很流暢,關(guān)鍵是價(jià)格很便宜。

  2.2四路紅外感應(yīng)探頭

  1、當(dāng)模塊檢測(cè)到前方障礙物信號(hào)時(shí),電路板上紅色指示燈點(diǎn)亮,同時(shí)OUT端口持續(xù)輸出低電平信號(hào),該模塊檢測(cè)距離2~60cm,檢測(cè)角度35°,檢測(cè)距離可以通過(guò)電位器進(jìn)行調(diào)節(jié),順時(shí)針調(diào)電位器,檢測(cè)距離增加;逆時(shí)針調(diào)電位器,檢測(cè)距離減少。

  2、傳感器屬于紅外線反射探測(cè),因此目標(biāo)的反射率和形狀是探測(cè)距離的關(guān)鍵。其中黑色探測(cè)距離最小,白色最大;小面積物體距離小,大面積距離大。

  3、傳感器模塊輸出端口OUT可直接與單片機(jī)IO口連接即可,也可以直接驅(qū)動(dòng)一個(gè)5V繼電器模塊或者蜂鳴器模塊;連接方式:VCC-VCC;GND-GND;OUT-IO

  4、比較器采用LM339,工作穩(wěn)定;

  5、可采用3.3V-5V直流電源對(duì)模塊進(jìn)行供電。當(dāng)電源接通時(shí),綠色電源指示燈點(diǎn)亮。

  2.3智能小車(chē)底盤(pán)

  雙電機(jī)驅(qū)動(dòng),萬(wàn)向輪改變方向。這是實(shí)驗(yàn)中最常用到的小車(chē)底盤(pán),使用差速的方法進(jìn)行轉(zhuǎn)彎。配合使用L298N電機(jī)驅(qū)動(dòng)模塊,使用方法很簡(jiǎn)單,不多做介紹。

  3.尋跡原理

  說(shuō)完了原料的問(wèn)題,下面說(shuō)一下小車(chē)尋跡的原理。

  3.1紅外探頭的安裝

  小車(chē)尋跡的原理其實(shí)就光的吸收,反射和散射。大家都知道,白色反射所有顏色的光,而黑色吸收所有顏色的光,這就為小車(chē)尋跡提供了有力的科學(xué)依據(jù)。在小車(chē)的車(chē)頭上安裝上紅外探頭(我是安裝了四個(gè)),一字順序排開(kāi)。哪個(gè)探頭接收不到反射或者散射回來(lái)的光時(shí),說(shuō)明這個(gè)探頭此時(shí)正在黑色的尋跡帶上。

  3.2返回信號(hào)的判斷

  如果要是正前方的探頭接收不到光,那么說(shuō)明小車(chē)此時(shí)走在黑色的尋跡帶上。可以使小車(chē)直線行走。如果左面的探頭接收不到光,那么說(shuō)明小車(chē)左面出現(xiàn)了黑色尋跡帶,此時(shí)小車(chē)應(yīng)該執(zhí)行左轉(zhuǎn)彎。右轉(zhuǎn)彎同左轉(zhuǎn)彎原理。

  如果要是小車(chē)前面,左面,右面三個(gè)方向全都接收不到光,或者是兩個(gè)方向上的探頭都接收不到光,到底是左轉(zhuǎn)彎,右轉(zhuǎn)彎還是繼續(xù)直行,這個(gè)就要看你自己在程序里怎么做判斷了。

  4.硬件接線:

  接線其實(shí)很簡(jiǎn)單四路紅外探頭接線很簡(jiǎn)單,雖然有十八根線,但是有十二根是三根三根的分成四組的,對(duì)應(yīng)著很好接線,剩下的六根,VCC和GND不多說(shuō)了,還有四根是直接接到單片結(jié)IO口上就可以的。        L298N的接線更簡(jiǎn)單了,這里不多介紹。

  上個(gè)簡(jiǎn)單的幫助理解的原理圖(其實(shí)我們做實(shí)驗(yàn)都是插線,不做PCB圖和原理圖的)。




  再上個(gè)實(shí)物圖給大家看看。




  5.運(yùn)行與調(diào)試

  制作完成后,剩下的就是該調(diào)試了,調(diào)試中應(yīng)該注意細(xì)節(jié)和小車(chē)穩(wěn)定性的優(yōu)化。

  6.代碼編寫(xiě)

  再把我寫(xiě)的程序給大家看一下,有需要的可以看一下。

  源代碼:
  1. import pyb
  2. from pyb import UART
  3. from pyb import Pin

  4. M0 = Pin('X1', Pin.IN)
  5. M1 = Pin('X2', Pin.IN)
  6. M2 = Pin('X3', Pin.IN)
  7. M3 = Pin('X4', Pin.IN)
  8. N1 = Pin('Y1', Pin.OUT_PP)
  9. N2 = Pin('Y2', Pin.OUT_PP)
  10. N3 = Pin('Y3', Pin.OUT_PP)
  11. N4 = Pin('Y4', Pin.OUT_PP)

  12. print('while')
  13. while True:
  14.     print('while')
  15.     pyb.LED(4).off()
  16.     pyb.LED(3).off()
  17.     pyb.LED(2).off()
  18.     if(M0.value()==1):#檢測(cè)到物體返回0。
  19.         pyb.LED(4).on()
  20.         pyb.delay(50)
  21.         N1.low()
  22.         N2.high()
  23.         N3.low()
  24.         N4.high()
  25.         pyb.delay(30)
  26.         #pyb.delay(5000)
  27.     if(M3.value()==1):#檢測(cè)到物體返回0。
  28.         pyb.LED(3).on()
  29.         pyb.delay(50)
  30.         N1.high()
  31.         N2.low()
  32.         N3.high()
  33.         N4.low()
  34.         pyb.delay(30)
  35.     if(M2.value()&M1.value()==1):
  36.         pyb.LED(2).on()
  37.         N1.low()
  38.         N2.high()
  39.         N3.high()
  40.         N4.low()
  41.         pyb.delay(70)
復(fù)制代碼





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表