劉澤偉
(廈門理工學院 現代工程訓練中心,福建廈門,361000)
在智能化時代,自動駕駛、自動避障的汽車成為未來汽車行業研發的主流趨勢[1]。本項目基于樹莓派設計的超聲波避障小車不僅具有用途廣泛、設計簡單、設計成本低等優點,而且根據現實需求與其他模塊進行很好地配合,市場前景廣泛。
從構想中來看,本研究的自動避障小車首先應具備傳感功能,這主要是由超聲波避障模塊和攝像頭模塊組成,而小車的運動則通過電機驅動。人機交互模塊主要有藍牙模塊和手機APP模塊,通過手機APP發送指令可以實現小車自動避障運動到指定地點,這種功能可以用于自動泊車、自動避障等,可擴展性極強。該小車總體結構如圖1所示。

圖1 自動避障小車的總體框架
在本項目中,芯片也是自動避障小車最核心的部件,主控芯片是連接避障模塊、運動模塊和交互模塊的橋梁,是自動避障小車能順利運行的大腦。通過對樹莓派各個版本的參數進行對比,樹莓派3B+采用64位1.4GHz的四核CPU,相對于原來3B版本,3B+用上了更快的千兆以太網。本項目設計需要的視頻、影像等的輸出和輸入接口樹莓派3B+上都有,而且還自帶4個USB接口方便外接相關儀器或者零部件。整體而言,樹莓派3B+是本項目設計中較為理想的主控芯片。
超聲波避障模塊其原理就是通過設備發射超聲波在遇到障礙物時被反射,通過發射與反射接收的時間差可以準確地計算出小車與障礙物之間的距離。在本項目上使用超聲波避障模塊主要是相比于紅外測距模塊,超聲波避障模塊其成本更低。通過對市面上各類超聲波避障模塊地對比和選擇,最終選擇使用常州市脈諾石電子有限公司生產的型號為HCSR04的40kHz超聲波測距模塊,該模塊不僅采用封閉式分體防水設計,可以適應一些潮濕、惡劣的測量場合,而且價格十分低廉[2]。其超聲波避障模塊如圖2所示。

圖2 超聲波測距模塊電路圖
HC-SR04超聲波測距模塊的控制口會發一個10μs的高電平,就可以在接收口等待高電平輸出。一有輸出就可以開定時器時,當此口變為低電平時就可以讀定時器的值,此時就為此次測距的時間,方可算出距離。如此不斷的周期測量,就可以獲得移動測量的值了,HC-SR04超聲波測距模塊可探測距離最遠可達450cm,足夠支撐本項目的設計需求[3]。
在實際設計過程中,為了更好地節約成本,在避障小車的底盤安裝舵機,舵機按照一定頻率周期性地檢測左右兩邊和前方的障礙物,并根據是三個方向的障礙物距離綜合判定進而選擇小車運行的路徑。其避障車算法流程為:當前方和左右的距離均大于25cm時則小車繼續保持前進;當前方的距離小于10cm時,避障車開始檢測左右兩邊的距離,當左邊或者右邊距離均大于25cm時則隨機選擇一邊轉向,只有一側距離大于25cm時則朝著大于25cm距離的方向轉向,再向前進;當左右和前方的距離均小于10cm時,小車會向后退,然后在左右兩側大于25cm 的一側轉向。其自動避障算法流程如圖3所示。

圖3 自動避障算法流程圖
在避障小車上安裝攝像頭模塊主要是為了在自動避障小車出現一些系統錯誤或是程序難以判斷自身行為時,可以通過攝像頭拍攝照片回傳的方式來進行通過手機APP等交互模塊來對小車進行介入管理或是通過攝像頭模塊方便進行視頻直播。
在本項目的設計中,避障小車僅需回傳圖像即可。樹莓派3B+配套的DSI排線攝像頭,使用15PIN的排線將顯示屏和攝像頭分別連接到樹莓派的DSI接口和CSI接口,為了方便組裝和使用,可以將樹莓派與DSI排線攝像頭直接固定在顯示屏的背面,方便最終的組裝,其組合如圖4所示。

圖4 樹莓派3B+與DSI排線攝像頭組合
在各種小車的電機驅動模塊中,L298N因其相對于以前的L293D而言工作電壓更高、電流更大、功率更強,應用域更廣,L298N內含兩個H橋的高電壓大電流全橋式驅動器,可以驅動各類感性負載。最關鍵的是,L298N還內置了過熱保護功能,大大降低了電機損毀的風險,還能直接與主控的樹莓派3B+直接相連,融合性好,是當前小車設計中驅動集成電路中最常用的模塊[4]。
在驅動模塊中除了L298N驅動芯片外,還包括兩個直流電機,一個控制小車的前進和后退,還有一個則連接一個萬向輪來控制小車實現轉向。通過L298N驅動芯片兩個H橋的高電壓大電流全橋式驅動器來驅動前面的被動萬向輪和后面的驅動輪,通過代碼的編寫即可實現小車的前進后退和轉向等行動。其電機驅動原理如圖5所示。

圖5 L298N電機驅動原理
在電源方面,主要是在小車的右下方設計一個電池盒,包括兩節3.7V鋰電池。為了確保電源能提供線性直流穩壓電源,避免因電壓不穩定而燒壞電路或者芯片等情況發生還需要在電源輸出端安裝LM7805CT穩壓芯片。
樹莓派3B+本身攜帶雙頻 802.11ac 無線網卡和藍牙 4.2模塊,因此可以直接使用手機上的藍牙來實現避障小車與手機或者電腦之間的交互聯系。
在本項目的設計中,軟件部分為上位機和下位機部分,上位機為安卓客戶端,下位機則為草莓派3B+。在軟件和避障小車打開后,草莓派3B+與安卓app都進行初始化,當APP上沒有發出指令時,避障小車會開啟自動駕駛,小車會按照初始方向沿直線行走,并按照“優先避障,其次循跡”的原則不斷前進。當APP上發出指令時,這種自動行駛會關閉,然后根據APP的指令進行前后左右的移動。
自動避障小車通過安卓系統上的APP實現對避障小車的交互,樹莓派3B+自帶藍牙4.2模塊,因此可以通過安卓手機上自帶的藍牙功能實現與樹莓派3B+的無線通信。APP則在Android Studio 上進行開發,主要設計控制界面,本項目設計的自動避障小車主要應包含的功能有:前進、后退、左轉、右轉、停止等基本功能;通過藍牙連接小車;圖像回傳;還有自動行駛模式。其APP頁面如圖6所示。

圖6 手機APP頁面
下位機樹莓派3B+則可以在樹莓派版Raspbian操作系統輸入各類代碼來開發相關程序,開發控制軟件主要使用Python。利用樹莓派打造的機器人主要通過GPIO接口來連接各種驅動板塊和傳感器,在樹莓派3B+程序運行時首先進行初始化,然后檢查相關程序和模塊是否運行即可。
首先是在樹莓派中增加相應的python代碼用于驅動電機和超聲波傳感器,在壁障小車中設計和兩個電機,一個是控制小車前后移動,一個是控制小車進行左右轉彎,因此需要加入相關代碼以驅動電機的控制,相關代碼如圖7所示。其次是在Python程序中修改代碼來促進小車能夠按照指定的障礙物距離進行一定的角度的轉移和避障。在相關程序調試好后,需要再設計一段代碼來讀取傳感器的數值,以便進行計算并做出合理的判斷并驅使小車正確地運行。
為了對自動避障小車的藍牙通訊距離進行測試,通過對不同距離的小車進行遙控,測試通信是否能正常回傳。在測試過程中,APP中的顯示屏可以實時顯示小車的運行速度和行使距離,還能看到小車前方的圖像。其通信距離與測試結果如表1所示。

表1 藍牙通訊測試
通過藍牙通訊測試可以看出,自動避障小車在10米以內交互情況良好。
從表2可以看出,在多個障礙物設置下,避障小車試驗50次的成功概率都較高,盡管設置障礙物多其成功次數有減少的趨勢,但整體成功率較高,基本達成設計目標。

表2 避障功能測試
本文基于樹莓派芯片設計了自動避障小車,實現了小車自動避障行駛。自動避障小車在程序的運行下,依托超聲波避障模塊和電機驅動模塊可以實現自主地避障,也可以通過安卓設備對小車進行遠程操控,并可以在APP中對小車的車速、運行距離、周邊環境等信息進行采集。本文所研究的方法既可以適用于一些無人駕駛技術研究,也可以適用于一些遠程汽車操控、自動泊車技術等方面的研究,具有較高的學術價值。