戴文翔 孫智勇
摘要:基于樹莓派的小車實驗很多,如通過網頁控制小車;利用超聲波進行避障....文章主要介紹利用紅外進行避障的小車。為實現(xiàn)小車避障功能,需要設計基于樹莓派的智能避障小車。把樹莓派作為核心程序驅動器,通過L298n電機驅動實現(xiàn)對直流電機的控制以達到控制小車的目的;利用紅外避障傳感器模塊實時監(jiān)測小車距離障礙物的距離,設計基于紅外線反射測距的避障算法以達到避障目的。
關鍵詞:避障小車;紅外避障;樹莓派;L298n;程序實例
中圖分類號:TP391 文獻標識碼:A 文章編號:1007-9416(2018)01-0089-02
1 硬件設計
(1)避障小車硬件組成包括:小車底盤、3個車輪(兩個前輪一個后輪)、兩個直流電機、紅外模塊、紅外避障傳感器(2個)、電源盒、移動電源(小型)、無線網卡、樹莓派。PS:3個車輪中,兩個前輪由直流電機直接驅動,后輪選擇萬向輪。
(2)電源部分:包括四節(jié)1.5V (5號)電池,5000毫安移動電源。四節(jié)1.5V (5號)電池為L298n提供6V電壓,5000毫安移動電源為樹莓派提供穩(wěn)定的5V電壓。
(3)驅動部分:包括小車底盤、L298n電機驅動、直流電機(2個)、三個車輪(兩個前輪和一個萬向輪)。L298n驅動前輪,配合萬向輪實現(xiàn)前進、后退以及左右轉向。
(4)主控制部分:樹莓派。樹莓派通過L298n控制直流電機轉動,全方向達到移動的目的。樹莓連接紅外傳感器模塊,通過紅外線接發(fā)器,以達到實時測量與障礙物的距離。從而可以做到小車再碰到障礙物之前能按預設避讓方式進行避讓。最終實現(xiàn)智能避讓。
(5)傳感器部分:紅外避障模塊。紅外傳感器模塊連與樹莓派,正常工作時,紅外避障模塊的工作電壓為5V左右,但紅外避障模塊上的紅外接發(fā)器接受到遇障礙物而折回的紅外時,電壓會下降0.1V左右。進而產生信號,是樹莓派執(zhí)行避讓語句。
2 軟件設計
(1)通道搭建,以及通道位置:L298n電機驅動可以驅動兩路直流電電機??刂浦绷麟姍C需要用到L298n的四個端口:方向端IN1、IN2、IN3、IN4(PS:如果不需要使用使能,切勿將ENA、ENB以及板載5V使能端帽拔掉,讓其一直保持在高點平狀態(tài))。通過改變IN1、IN2等四個端口的高低電頻狀態(tài),使直流電機正轉或反轉。樹莓派通過引腳連接IN1、IN2等端口,來控制電機轉向。避障小車代碼如圖1:
(2)初始化GPIO端口:不要忘記的在設置完信息交流通道(channel)后,還要定義GPIO端口為輸入端還是輸出端,代碼如下:
(3)定義基礎方向:避障行為是由基礎方向+樹莓派選擇調用構成,所以需要在此處先定義最基本的基礎移動方式。代碼如下:
(4)紅外避障:
總的來說紅外避障就是,樹莓派利用紅外避障模塊收集來的信息(離障礙物的遠近),在靠近過障礙物時,調用基礎方向進行躲避。代碼如圖2:
3 結語
樹莓的實驗遠不止智能小車這一類,但要熟練進行實驗操作需要對樹莓派所使用Linux的指令,以及需要對基于Linux的nano和vim編譯器進行性學習。同樣語言基礎必不可少,大多數(shù)情況下Python是Linux默認的編譯語言(部分樹莓派安裝的是Windows系統(tǒng),這時就需要C語言),所以也要加深對Python的學習。適當了解些像WinSCP這一類輔助程序,會減少我們在實驗中的麻煩。