楊瑞東, 楊連軍, 王云峰, 張海英
(1.中國科學院 微電子研究所 新一代通信射頻芯片技術北京市重點實驗室,北京 100029;2.中國科學院大學 微電子學院,北京 100049)
近年來,隨著關于無人駕駛技術的報道增多,越來越多的企業(yè)、科研機構將目光投向了該新興行業(yè)。無人駕駛是通過車載的傳感器系統(tǒng)來感知車輛周邊的環(huán)境信息,并將收集到的車輛位置、道路位置和障礙物等信息輸入到車輛的智能控制決策系統(tǒng),進而控制車輛的速度和轉向,模擬人類駕駛車輛的行為,安全的行駛[1]。無人駕駛在城市公共交通、旅游和軍事等方面均有重要的應用。
無人駕駛的研究重點主要包括道路識別、障礙物監(jiān)測和自動導航等方面,對智能小車的研究是突破無人駕駛技術的關鍵。本文提出了一種基于Android系統(tǒng)的自動尋找路線,躲避障礙物的智能小車。以主流的Android系統(tǒng)終端作為遠程控制端,通過藍牙功能對小車進行無線控制,并且實時收集小車的狀態(tài)信息在Android終端進行顯示。主體以單片機AT89C52為核心,通過5路紅外模塊循跡,超聲波模塊避障,霍爾元件測速,藍牙模塊和Android終端通信。通過Android終端的控制,智能小車可以在遙控模式和自動行駛模式下工作。
整個系統(tǒng)分為兩個部分:控制終端和小車主體??刂平K端采用Android系統(tǒng)的客戶端對小車進行無線控制和信息顯示。小車主體包括各種用來獲取外部環(huán)境信息的傳感器模塊以及電機驅動模塊。具體分為以下幾個部分:電源模塊、電機驅動模塊、循跡模塊、避障模塊、測速模塊和無線通信模塊??傮w硬件框圖如圖1所示。
圖1 系統(tǒng)總體設計框架
AT89C52單片機的工作電壓為5 V,因此需要一個電路提供穩(wěn)定的5 V電壓。采用單電源7.2 V可充電Ni-MH電池供電,電機直接提供7.2 V的電壓,單片機系統(tǒng)經LM7805穩(wěn)壓后,提供5 V的穩(wěn)定電壓。輸入電壓一般要求大于7 V,小于35 V,輸出5 V穩(wěn)定電壓,最大輸出電流1.5 A。圖2為穩(wěn)壓電路,其中的兩個電容器用于濾波。
圖2 LM7805穩(wěn)壓電路
采用集成電機驅動芯片L298N[2]作為系統(tǒng)的電機驅動電路。調試時程序輸入對應的碼值,能夠實現對應的動作。表1為其使能(ENA,ENB)、輸入引腳(IN1~IN4)和輸出引腳的邏輯關系,通過單片機的I/O控制IN1~IN4的高、低電平,可以控制電機的正、反轉及停止[3]。該調速方式調速特性優(yōu)良、調整平滑、調速范圍廣、過載能力大,而且能承受頻繁的負載沖擊。
表1 L298N的邏輯功能
L298N分別由5 V和7.2 V供電,通過控制4個輸入端控制輸出電平驅動電機轉動,電機采用脈寬調制(pulse width modulation,PWM)的方式進行調速。圖3為L298N驅動原理。
圖3 L298N電機驅動原理
采用5只TCRT5000紅外對管組成循跡單元。傳感器采用高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成,輸出信號經施密特電路整形,穩(wěn)定可靠。紅外光電二極管不斷地反射出紅外線,當遇到黑線時,發(fā)射的紅外線未反射回來或反射回來但強度較小,光敏三級管一直處于截止狀態(tài);當遇到白線時,發(fā)射的紅外線反射回來,光敏三級管處于導通狀態(tài)。因此,可以在接收頭加電壓比較器,通過高、低電平判斷白線或者黑線。
5個紅外對管TCRT5000采集的信號經LM339放大后送到單片機P10~P14口,進而判斷5只紅外傳感器對應的白線或黑線,判斷小車當前所處位置[4]。圖4為循跡原理。調節(jié)R12的大小可以得到合適的電壓,供輸出信號與之比較。
圖4 循跡原理
避障部分采用HC—SR04超聲波測距模塊實現。為了提高避障精度,采用3路超聲波在3個方向探測障礙物,在小車的前方中部探測正前方障礙物,在小車的左右兩側分別交叉探測右前方和左前方的障礙物。HC—SR04超聲波測距模塊可提供 2~400 cm的非接觸式距離感測功能,測距精度高達3 mm。模塊包括超聲波發(fā)射器、接收器與控制電路。其基本工作原理為:1)采用I/O 口TRIG 觸發(fā)測距,提供最少10 μs 的高電平信呈;2)模塊自動發(fā)送8個40 kHz 的方波,自動檢測是否有信號返回,如果有信號返回,通過I/O 口ECHO輸出一個高電平,高電平持續(xù)的時間即為超聲波從發(fā)射到返回的時間[5]。測試距離=(高電平時間×聲速(340 m/s))/2。
測速模塊采用霍爾元件A44E。測速時只需在轉軸的圓周粘上一粒磁鋼,使霍爾元件靠近磁鋼,信號為輸出,轉軸旋轉時,不斷地產生脈沖信號輸出。如果在圓周上粘上多粒磁鋼,可得多個脈沖輸出,將輸出信號送到外部中斷,單片機即可檢測到脈沖信號。利用霍爾測速,僅需在車輪上安裝幾塊小的磁鐵,容易實現,且霍爾元件檢測脈沖原理簡單,易于編程。圖5為霍爾測速原理。
圖5 霍爾測速原理
藍牙通信采用HC—06藍牙模塊與Android客戶端進行信息傳輸。藍牙模塊與單片機通過串口連接,藍牙模塊將Android終端的無線信號轉換為單片機的串口信號,使單片機可以與Android終端直接進行串口通信[6]。由于藍牙模塊采用3.3 V的供電電源,故采用LM1117—3.3搭建了降壓電路。HC—06藍牙模塊為支持藍牙協(xié)議2.0的CSR系列主控藍牙芯片,工作電流40 mA,波特率默認9 600,可以與Android設備進行藍牙配對連接。
系統(tǒng)中小車的循跡功能設計為在地面上鋪設2 cm的黑色膠帶,小車沿黑色膠帶的軌跡行走。與傳統(tǒng)的3路循跡不同,本系統(tǒng)循跡模塊采用5個紅外對管構成5路循跡,成排排列在小車底盤前部[7]。每個紅外模塊檢測到黑色時返回高電平,檢測到白線時返回低電平。單片機根據檢測的5個紅外對管返回的高低電平結果判斷小車相對黑線所處的位置。當非中間的紅外對管檢測到黑線時說明小車偏離正常的軌跡,需要進行轉向操作。采用5路紅外對管的原因是為了防止速度過快時偏離軌跡無法及時矯正方向,最左邊和最右邊的紅外對管是最后一層保障。表2為循跡算法,“1”表示檢測到黑線,“0”表示未檢測到黑線。
表2 循跡算法
在PWM驅動控制的系統(tǒng)中,按固定的頻率接通和斷開電源,并根據需要改變一個周期內“接通”和“斷開”時間的長短,通過改變直流電機電樞上電壓的“占空比”來改變平均電壓的大小,實現電機轉速控制[8]。占空比計算公式為D=t1/T,t1為高電平時間,T為脈沖周期,D為占空比。如圖6為電樞電壓占空比和平均電壓的關系。
圖6 電樞電壓占空比和平均電壓的關系
系統(tǒng)軟件分為上位機Android客戶端和下位機AT89C52[9]的軟件設計。系統(tǒng)整體程序流程如圖7。
圖7 系統(tǒng)程序流程
使用Keil軟件開發(fā)單片機程序,程序運行時首先進行初始化,如打開定時器和外部中斷等。定時器可用于超聲波模塊測距。主程序置于死循環(huán)中不斷檢測上位機軟件Android設備發(fā)來的控制信息,進行相應的行為響應。
系統(tǒng)在Android設備上開發(fā)了一個對小車進行控制的應用程序(APP),利用Android設備的藍牙功能和小車上的HC—06藍牙模塊進行無線通信[10]。APP使用Eclipse軟件進行開發(fā),主要設計控制界面,包括開啟自動行駛,關閉自動行駛以及前進、后退、左轉彎和右轉彎等按鈕。APP控制界面中的不同按鈕對應著不同的串口指令,點擊后可以對小車進行相應的控制。APP中關于藍牙主要使用的類有:BluetoothDevice,BluetoothSocket,BluetoothSeverSocket等。BluetoothDevice為遠端的藍牙設備,用于請求遠端藍牙設備連接,BluetoothSocket 為藍牙套接字的接口,是應用程序通過輸入、輸出流與其他藍牙設備通信的連接點。
智能小車具有遙控模式和自動行駛2種模式。小車啟動后,默認以遙控模式運行,通過APP上4個方向按鈕操作可以控制小車進行相應的運動。當點擊“開啟自動行駛”,小車進入自動行駛模式,通過車載的傳感器進行循跡和避障,如果前方沒有障礙物且小車未探測到黑線,小車直行。如果探測到黑線和探測到障礙物同時出現時,優(yōu)先躲避障礙物。小車探測到黑線且沒有障礙物時小車按照黑線路徑行駛。
為了驗證系統(tǒng)運行情況,設計了智能小車的測試環(huán)境。主要測試以下幾個內容:藍牙通信距離;循跡和避障功能以及是否按照優(yōu)先級運行;是否能夠采集速度和行駛距離等信息。系統(tǒng)啟動后,使用Android終端在距離小車不同的距離進行遙控,測試無線通信是否正常,結果如表3所示。
表3 通信距離測試結果
在地板上鋪設2 cm的黑色膠帶,并在膠帶轉彎處設置障礙,測試小車是否能夠循跡、避障以及能否從循跡狀態(tài)轉換為避障狀態(tài)。首先在無障礙區(qū)域啟動小車,使用遙控使小車移動到黑線位置,并開啟自動行駛模式。經測試,小車可以沿著黑色膠帶的軌跡行駛,也可以躲避設置的障礙物,而且正在循跡的小車遇到障礙物后進行了躲避,優(yōu)先避障,符合設計要求。圖8為在30次試驗中放置不同數量的障礙物小車成功到達終點的次數統(tǒng)計。
圖8 不同障礙物數量下的循跡避障測試結果
可以看出:隨著障礙物數量的增多,成功循跡避障的次數會相對減少,但整體仍保持較高的水平,能夠滿足基本要求。經測試,小車在行進過程中可以實時地顯示當前速度以及行駛的距離。
提出了一種基于Android系統(tǒng)的智能循跡避障小車的軟硬件設計方案,實現了小車在遙控模式和自動行駛模式下的運行。采用5路紅外循跡模塊以及3路超聲波避障模塊,提高了小車循跡和避障的準確性。采用Android終端對小車進行控制,同時可以對小車的狀態(tài)信息進行采集和顯示。本文方法是當前無人駕駛技術研究的原型,因此,具有較高的學術價值和現實意義。
[1] 姜 巖,趙熙俊,龔建偉,等.簡單城市環(huán)境下地面無人駕駛系統(tǒng)的設計研究[J].機械工程學報,2012,48(20):103-112.
[2] 謝 檬,郭 霞.智能小車控制系統(tǒng)設計[J].傳感器與微系統(tǒng),2016,35(12):110-112.
[3] 林明標,莫金海.基于安卓手機的無線重力感應控制智能小車[J].計算機測量與控制,2015,23(4):1175-1178.
[4] 尹 杰,楊宗帥,聶 海,等.基于紅外反射式智能循跡遙控小車系統(tǒng)設計[J].電子設計工程,2013,21(23):178-180,184.
[5] 陳小寧,黃玉清,楊 佳.多傳感器信息融合在移動機器人定位中的應用[J].傳感器與微系統(tǒng),2008,27(6):110-113.
[6] 鐘 君,蔡黎明,于 涌.基于MLX90614的無線溫度采集系統(tǒng)設計[J].傳感器與微系統(tǒng),2015,34(3):87-89,93.
[7] 董 杰,王國豹.基于STM32的智能循跡往返小車設計[J].電子設計工程,2013,21(12):158-160.
[8] 王 蘇.直流電機PWM調速研究及單片機控制實現[J].機電工程技術,2008,37(11):82-84,95.
[9] 王光利,代小紅.基于AT89C52的恒溫室監(jiān)控系統(tǒng)設計[J].微電子學,2010,40(4):588-590,595.
[10] Cheng Z T,Yang M,Wang W P.The design of mobile phone multimeter based on the Android platform[J].Applied Mecha-nics and Materials,2015:527-530.