劉澤偉
(廈門理工學(xué)院 現(xiàn)代工程訓(xùn)練中心,福建廈門,361000)
在智能化時代,自動駕駛、自動避障的汽車成為未來汽車行業(yè)研發(fā)的主流趨勢[1]。本項目基于樹莓派設(shè)計的超聲波避障小車不僅具有用途廣泛、設(shè)計簡單、設(shè)計成本低等優(yōu)點,而且根據(jù)現(xiàn)實需求與其他模塊進行很好地配合,市場前景廣泛。
從構(gòu)想中來看,本研究的自動避障小車首先應(yīng)具備傳感功能,這主要是由超聲波避障模塊和攝像頭模塊組成,而小車的運動則通過電機驅(qū)動。人機交互模塊主要有藍牙模塊和手機APP模塊,通過手機APP發(fā)送指令可以實現(xiàn)小車自動避障運動到指定地點,這種功能可以用于自動泊車、自動避障等,可擴展性極強。該小車總體結(jié)構(gòu)如圖1所示。
圖1 自動避障小車的總體框架
在本項目中,芯片也是自動避障小車最核心的部件,主控芯片是連接避障模塊、運動模塊和交互模塊的橋梁,是自動避障小車能順利運行的大腦。通過對樹莓派各個版本的參數(shù)進行對比,樹莓派3B+采用64位1.4GHz的四核CPU,相對于原來3B版本,3B+用上了更快的千兆以太網(wǎng)。本項目設(shè)計需要的視頻、影像等的輸出和輸入接口樹莓派3B+上都有,而且還自帶4個USB接口方便外接相關(guān)儀器或者零部件。整體而言,樹莓派3B+是本項目設(shè)計中較為理想的主控芯片。
超聲波避障模塊其原理就是通過設(shè)備發(fā)射超聲波在遇到障礙物時被反射,通過發(fā)射與反射接收的時間差可以準確地計算出小車與障礙物之間的距離。在本項目上使用超聲波避障模塊主要是相比于紅外測距模塊,超聲波避障模塊其成本更低。通過對市面上各類超聲波避障模塊地對比和選擇,最終選擇使用常州市脈諾石電子有限公司生產(chǎn)的型號為HCSR04的40kHz超聲波測距模塊,該模塊不僅采用封閉式分體防水設(shè)計,可以適應(yīng)一些潮濕、惡劣的測量場合,而且價格十分低廉[2]。其超聲波避障模塊如圖2所示。
圖2 超聲波測距模塊電路圖
HC-SR04超聲波測距模塊的控制口會發(fā)一個10μs的高電平,就可以在接收口等待高電平輸出。一有輸出就可以開定時器時,當(dāng)此口變?yōu)榈碗娖綍r就可以讀定時器的值,此時就為此次測距的時間,方可算出距離。如此不斷的周期測量,就可以獲得移動測量的值了,HC-SR04超聲波測距模塊可探測距離最遠可達450cm,足夠支撐本項目的設(shè)計需求[3]。
在實際設(shè)計過程中,為了更好地節(jié)約成本,在避障小車的底盤安裝舵機,舵機按照一定頻率周期性地檢測左右兩邊和前方的障礙物,并根據(jù)是三個方向的障礙物距離綜合判定進而選擇小車運行的路徑。其避障車算法流程為:當(dāng)前方和左右的距離均大于25cm時則小車繼續(xù)保持前進;當(dāng)前方的距離小于10cm時,避障車開始檢測左右兩邊的距離,當(dāng)左邊或者右邊距離均大于25cm時則隨機選擇一邊轉(zhuǎn)向,只有一側(cè)距離大于25cm時則朝著大于25cm距離的方向轉(zhuǎn)向,再向前進;當(dāng)左右和前方的距離均小于10cm時,小車會向后退,然后在左右兩側(cè)大于25cm 的一側(cè)轉(zhuǎn)向。其自動避障算法流程如圖3所示。
圖3 自動避障算法流程圖
在避障小車上安裝攝像頭模塊主要是為了在自動避障小車出現(xiàn)一些系統(tǒng)錯誤或是程序難以判斷自身行為時,可以通過攝像頭拍攝照片回傳的方式來進行通過手機APP等交互模塊來對小車進行介入管理或是通過攝像頭模塊方便進行視頻直播。
在本項目的設(shè)計中,避障小車僅需回傳圖像即可。樹莓派3B+配套的DSI排線攝像頭,使用15PIN的排線將顯示屏和攝像頭分別連接到樹莓派的DSI接口和CSI接口,為了方便組裝和使用,可以將樹莓派與DSI排線攝像頭直接固定在顯示屏的背面,方便最終的組裝,其組合如圖4所示。
圖4 樹莓派3B+與DSI排線攝像頭組合
在各種小車的電機驅(qū)動模塊中,L298N因其相對于以前的L293D而言工作電壓更高、電流更大、功率更強,應(yīng)用域更廣,L298N內(nèi)含兩個H橋的高電壓大電流全橋式驅(qū)動器,可以驅(qū)動各類感性負載。最關(guān)鍵的是,L298N還內(nèi)置了過熱保護功能,大大降低了電機損毀的風(fēng)險,還能直接與主控的樹莓派3B+直接相連,融合性好,是當(dāng)前小車設(shè)計中驅(qū)動集成電路中最常用的模塊[4]。
在驅(qū)動模塊中除了L298N驅(qū)動芯片外,還包括兩個直流電機,一個控制小車的前進和后退,還有一個則連接一個萬向輪來控制小車實現(xiàn)轉(zhuǎn)向。通過L298N驅(qū)動芯片兩個H橋的高電壓大電流全橋式驅(qū)動器來驅(qū)動前面的被動萬向輪和后面的驅(qū)動輪,通過代碼的編寫即可實現(xiàn)小車的前進后退和轉(zhuǎn)向等行動。其電機驅(qū)動原理如圖5所示。
圖5 L298N電機驅(qū)動原理
在電源方面,主要是在小車的右下方設(shè)計一個電池盒,包括兩節(jié)3.7V鋰電池。為了確保電源能提供線性直流穩(wěn)壓電源,避免因電壓不穩(wěn)定而燒壞電路或者芯片等情況發(fā)生還需要在電源輸出端安裝LM7805CT穩(wěn)壓芯片。
樹莓派3B+本身攜帶雙頻 802.11ac 無線網(wǎng)卡和藍牙 4.2模塊,因此可以直接使用手機上的藍牙來實現(xiàn)避障小車與手機或者電腦之間的交互聯(lián)系。
在本項目的設(shè)計中,軟件部分為上位機和下位機部分,上位機為安卓客戶端,下位機則為草莓派3B+。在軟件和避障小車打開后,草莓派3B+與安卓app都進行初始化,當(dāng)APP上沒有發(fā)出指令時,避障小車會開啟自動駕駛,小車會按照初始方向沿直線行走,并按照“優(yōu)先避障,其次循跡”的原則不斷前進。當(dāng)APP上發(fā)出指令時,這種自動行駛會關(guān)閉,然后根據(jù)APP的指令進行前后左右的移動。
自動避障小車通過安卓系統(tǒng)上的APP實現(xiàn)對避障小車的交互,樹莓派3B+自帶藍牙4.2模塊,因此可以通過安卓手機上自帶的藍牙功能實現(xiàn)與樹莓派3B+的無線通信。APP則在Android Studio 上進行開發(fā),主要設(shè)計控制界面,本項目設(shè)計的自動避障小車主要應(yīng)包含的功能有:前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止等基本功能;通過藍牙連接小車;圖像回傳;還有自動行駛模式。其APP頁面如圖6所示。
圖6 手機APP頁面
下位機樹莓派3B+則可以在樹莓派版Raspbian操作系統(tǒng)輸入各類代碼來開發(fā)相關(guān)程序,開發(fā)控制軟件主要使用Python。利用樹莓派打造的機器人主要通過GPIO接口來連接各種驅(qū)動板塊和傳感器,在樹莓派3B+程序運行時首先進行初始化,然后檢查相關(guān)程序和模塊是否運行即可。
首先是在樹莓派中增加相應(yīng)的python代碼用于驅(qū)動電機和超聲波傳感器,在壁障小車中設(shè)計和兩個電機,一個是控制小車前后移動,一個是控制小車進行左右轉(zhuǎn)彎,因此需要加入相關(guān)代碼以驅(qū)動電機的控制,相關(guān)代碼如圖7所示。其次是在Python程序中修改代碼來促進小車能夠按照指定的障礙物距離進行一定的角度的轉(zhuǎn)移和避障。在相關(guān)程序調(diào)試好后,需要再設(shè)計一段代碼來讀取傳感器的數(shù)值,以便進行計算并做出合理的判斷并驅(qū)使小車正確地運行。
為了對自動避障小車的藍牙通訊距離進行測試,通過對不同距離的小車進行遙控,測試通信是否能正?;貍鳌T跍y試過程中,APP中的顯示屏可以實時顯示小車的運行速度和行使距離,還能看到小車前方的圖像。其通信距離與測試結(jié)果如表1所示。
表1 藍牙通訊測試
通過藍牙通訊測試可以看出,自動避障小車在10米以內(nèi)交互情況良好。
從表2可以看出,在多個障礙物設(shè)置下,避障小車試驗50次的成功概率都較高,盡管設(shè)置障礙物多其成功次數(shù)有減少的趨勢,但整體成功率較高,基本達成設(shè)計目標。
表2 避障功能測試
本文基于樹莓派芯片設(shè)計了自動避障小車,實現(xiàn)了小車自動避障行駛。自動避障小車在程序的運行下,依托超聲波避障模塊和電機驅(qū)動模塊可以實現(xiàn)自主地避障,也可以通過安卓設(shè)備對小車進行遠程操控,并可以在APP中對小車的車速、運行距離、周邊環(huán)境等信息進行采集。本文所研究的方法既可以適用于一些無人駕駛技術(shù)研究,也可以適用于一些遠程汽車操控、自動泊車技術(shù)等方面的研究,具有較高的學(xué)術(shù)價值。