Micropython 紅外防墜落小車實驗教程

2021-08-19 13:10:49 字數 2295 閱讀 6589

15.2. 實驗目的

研究智慧型小車結合紅外探頭尋跡前進。

15.3. 實驗材料(網上都能買到便宜)

tpyboard開發板1塊(能跑python語言的開發板,小車的大腦)

四路紅外感應探頭(小車的眼睛)

資料線一根

充電寶乙個(給整個系統供電)

智慧型小車底盤(包括驅動模組)

杜邦線若干

15.3.2. 四路紅外感應探頭

1、當模組檢測到前方障礙物訊號時,電路板上紅色指示燈點亮,同時out埠持續輸出低電平訊號,該模組檢測距離2~60cm,檢測角度35°,檢測距離可以通過電位器進行調節,順時針調電位器,檢測距離增加;逆時針調電位器,檢測距離減少。 2、感測器屬於紅外線反射探測,因此目標的反射率和形狀是探測距離的關鍵。其中黑色探測距離最小,白色最大;小面積物體距離小,大面積距離大。 3、 感測器模組輸出埠out可直接與微控制器io口連線即可, 也可以直接驅動乙個5v繼電器模組或者蜂鳴器模組;連線方式: vcc-vcc;gnd-gnd;out-io。 4、比較器採用lm339,工作穩定; 5、可採用3.3v-5v直流電源對模組進行供電。當電源接通時, 綠色電源指示燈點亮。

15.3.3. 智慧型小車底盤

雙電機驅動,萬向輪改變方向。這是實驗中最常用到的小車底盤,使用差速的方法進行轉彎。配合使用l298n電機驅動模組,使用方法很簡單,不多做介紹。

15.4. 尋跡原理15.4.1. 紅外探頭的安裝

小車尋跡的原理其實就光的吸收,反射和散射。在小車的前端有安裝孔,使用螺絲把紅外感測器固定在安裝孔上。保持發射端和接收端都保持豎直向下。

15.4.2. 返回訊號的判斷

在上面已經說了,紅外探頭在檢測到物體存在的時候,在out端會持續的輸出低電平。那麼調節調距電阻,調節到乙個適合的檢測距離。在小車行駛路面檢測到物體的時候,說明是前面是有路的,不是懸空的。那麼小車 保持直行。如果前方檢測到沒有返回,沒返回說明沒有檢測到物體,媽就說明前面是沒有路的,是懸空的,那麼小車就先進行後退,在進行右轉(也可以左轉,也可以一次右轉一次左轉,這個比較隨意。)。

15.5. 硬體接線

接線其實很簡單四路紅外探頭接線很簡單,雖然有十八根線,但是有十二根是三根三根的分成四組的,對應著很好接線,剩下的六根,vcc和gnd不多說了,還有四根是直接接到單片結io口上就可以的。l298n的接線更簡單了,這裡不多介紹。 上個簡單的幫助理解的原理圖 (其實我們做實驗都是插線,不做pcb圖和原理圖的)。

再上個實物圖給大家看看

15.6. 執行與除錯

製作完成後,剩下的就是該除錯了,除錯中應該注意細節和小車穩定性的優化。

import pyb

from pyb import uart

from pyb import pin

m0 = pin('x1', pin.in)

m1 = pin('x2', pin.in)

m2 = pin('x3', pin.in)

m3 = pin('x4', pin.in)

n1 = pin('y1', pin.out_pp)

n2 = pin('y2', pin.out_pp)

n3 = pin('y3', pin.out_pp)

n4 = pin('y4', pin.out_pp)

print('while')

while true:

print('while')

if(m2.value()|m1.value()|m3.value()|m0.value()==0):

n1.low()

n2.high()

n4.high()

n3.low()

pyb.led(2).on()

pyb.led(3).off()

elif(m2.value()|m1.value()|m3.value()|m0.value()==1):

n1.high()

n2.low()

n4.low()

n3.high()

pyb.delay(300)

n1.low()

n2.high()

n3.high()

n4.low()

pyb.delay(200)

pyb.led(3).on()

pyb.led(2).off()

micropython編譯流程

最近終於都考完了,雖然最近沒有發帖子,可是還是看了挺多東西的,都不深,就自己寫一點自己做的工作。root charles virtualbox media sf linux micropython master ports stm32 make use make v 1 or set build v...

了解MicroPython多執行緒

該模組提供了用於處理多個執行緒 也稱為輕量級程序或任務 的低階原語 多個控制線程共享其全域性資料空間。為 了同步,提供了簡單的鎖 也稱為互斥鎖或二進位制訊號量 發生執行緒特定錯誤時,會runtimeerror引發異常。快速使用示例 import thread import time def th f...

鹹魚micropython入門 函式

函式,即是將一段 封裝起來,用來實現特定的功能。除了micropython內建的函式,使用者也可以使用def語句自定義的函式。定義格式如下 def 函式 引數1 引數2 函式.函式定義完成後,使用函式名來呼叫函式,從而使用其功能。示例 函式可以接收輸入的值,並利用這些值做一些事。多個引數傳遞需要用逗...