楊瑞東, 楊連軍, 王云峰, 張海英
(1.中國科學(xué)院 微電子研究所 新一代通信射頻芯片技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京 100029;2.中國科學(xué)院大學(xué) 微電子學(xué)院,北京 100049)
近年來,隨著關(guān)于無人駕駛技術(shù)的報(bào)道增多,越來越多的企業(yè)、科研機(jī)構(gòu)將目光投向了該新興行業(yè)。無人駕駛是通過車載的傳感器系統(tǒng)來感知車輛周邊的環(huán)境信息,并將收集到的車輛位置、道路位置和障礙物等信息輸入到車輛的智能控制決策系統(tǒng),進(jìn)而控制車輛的速度和轉(zhuǎn)向,模擬人類駕駛車輛的行為,安全的行駛[1]。無人駕駛在城市公共交通、旅游和軍事等方面均有重要的應(yīng)用。
無人駕駛的研究重點(diǎn)主要包括道路識(shí)別、障礙物監(jiān)測和自動(dòng)導(dǎo)航等方面,對智能小車的研究是突破無人駕駛技術(shù)的關(guān)鍵。本文提出了一種基于Android系統(tǒng)的自動(dòng)尋找路線,躲避障礙物的智能小車。以主流的Android系統(tǒng)終端作為遠(yuǎn)程控制端,通過藍(lán)牙功能對小車進(jìn)行無線控制,并且實(shí)時(shí)收集小車的狀態(tài)信息在Android終端進(jìn)行顯示。主體以單片機(jī)AT89C52為核心,通過5路紅外模塊循跡,超聲波模塊避障,霍爾元件測速,藍(lán)牙模塊和Android終端通信。通過Android終端的控制,智能小車可以在遙控模式和自動(dòng)行駛模式下工作。
整個(gè)系統(tǒng)分為兩個(gè)部分:控制終端和小車主體。控制終端采用Android系統(tǒng)的客戶端對小車進(jìn)行無線控制和信息顯示。小車主體包括各種用來獲取外部環(huán)境信息的傳感器模塊以及電機(jī)驅(qū)動(dòng)模塊。具體分為以下幾個(gè)部分:電源模塊、電機(jī)驅(qū)動(dòng)模塊、循跡模塊、避障模塊、測速模塊和無線通信模塊。總體硬件框圖如圖1所示。

圖1 系統(tǒng)總體設(shè)計(jì)框架
AT89C52單片機(jī)的工作電壓為5 V,因此需要一個(gè)電路提供穩(wěn)定的5 V電壓。采用單電源7.2 V可充電Ni-MH電池供電,電機(jī)直接提供7.2 V的電壓,單片機(jī)系統(tǒng)經(jīng)LM7805穩(wěn)壓后,提供5 V的穩(wěn)定電壓。輸入電壓一般要求大于7 V,小于35 V,輸出5 V穩(wěn)定電壓,最大輸出電流1.5 A。圖2為穩(wěn)壓電路,其中的兩個(gè)電容器用于濾波。

圖2 LM7805穩(wěn)壓電路
采用集成電機(jī)驅(qū)動(dòng)芯片L298N[2]作為系統(tǒng)的電機(jī)驅(qū)動(dòng)電路。調(diào)試時(shí)程序輸入對應(yīng)的碼值,能夠?qū)崿F(xiàn)對應(yīng)的動(dòng)作。表1為其使能(ENA,ENB)、輸入引腳(IN1~I(xiàn)N4)和輸出引腳的邏輯關(guān)系,通過單片機(jī)的I/O控制IN1~I(xiàn)N4的高、低電平,可以控制電機(jī)的正、反轉(zhuǎn)及停止[3]。該調(diào)速方式調(diào)速特性優(yōu)良、調(diào)整平滑、調(diào)速范圍廣、過載能力大,而且能承受頻繁的負(fù)載沖擊。

表1 L298N的邏輯功能
L298N分別由5 V和7.2 V供電,通過控制4個(gè)輸入端控制輸出電平驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng),電機(jī)采用脈寬調(diào)制(pulse width modulation,PWM)的方式進(jìn)行調(diào)速。圖3為L298N驅(qū)動(dòng)原理。

圖3 L298N電機(jī)驅(qū)動(dòng)原理
采用5只TCRT5000紅外對管組成循跡單元。傳感器采用高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成,輸出信號(hào)經(jīng)施密特電路整形,穩(wěn)定可靠。紅外光電二極管不斷地反射出紅外線,當(dāng)遇到黑線時(shí),發(fā)射的紅外線未反射回來或反射回來但強(qiáng)度較小,光敏三級管一直處于截止?fàn)顟B(tài);當(dāng)遇到白線時(shí),發(fā)射的紅外線反射回來,光敏三級管處于導(dǎo)通狀態(tài)。因此,可以在接收頭加電壓比較器,通過高、低電平判斷白線或者黑線。
5個(gè)紅外對管TCRT5000采集的信號(hào)經(jīng)LM339放大后送到單片機(jī)P10~P14口,進(jìn)而判斷5只紅外傳感器對應(yīng)的白線或黑線,判斷小車當(dāng)前所處位置[4]。圖4為循跡原理。調(diào)節(jié)R12的大小可以得到合適的電壓,供輸出信號(hào)與之比較。

圖4 循跡原理
避障部分采用HC—SR04超聲波測距模塊實(shí)現(xiàn)。為了提高避障精度,采用3路超聲波在3個(gè)方向探測障礙物,在小車的前方中部探測正前方障礙物,在小車的左右兩側(cè)分別交叉探測右前方和左前方的障礙物。HC—SR04超聲波測距模塊可提供 2~400 cm的非接觸式距離感測功能,測距精度高達(dá)3 mm。模塊包括超聲波發(fā)射器、接收器與控制電路。其基本工作原理為:1)采用I/O 口TRIG 觸發(fā)測距,提供最少10 μs 的高電平信呈;2)模塊自動(dòng)發(fā)送8個(gè)40 kHz 的方波,自動(dòng)檢測是否有信號(hào)返回,如果有信號(hào)返回,通過I/O 口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間即為超聲波從發(fā)射到返回的時(shí)間[5]。測試距離=(高電平時(shí)間×聲速(340 m/s))/2。
測速模塊采用霍爾元件A44E。測速時(shí)只需在轉(zhuǎn)軸的圓周粘上一粒磁鋼,使霍爾元件靠近磁鋼,信號(hào)為輸出,轉(zhuǎn)軸旋轉(zhuǎn)時(shí),不斷地產(chǎn)生脈沖信號(hào)輸出。如果在圓周上粘上多粒磁鋼,可得多個(gè)脈沖輸出,將輸出信號(hào)送到外部中斷,單片機(jī)即可檢測到脈沖信號(hào)。利用霍爾測速,僅需在車輪上安裝幾塊小的磁鐵,容易實(shí)現(xiàn),且霍爾元件檢測脈沖原理簡單,易于編程。圖5為霍爾測速原理。

圖5 霍爾測速原理
藍(lán)牙通信采用HC—06藍(lán)牙模塊與Android客戶端進(jìn)行信息傳輸。藍(lán)牙模塊與單片機(jī)通過串口連接,藍(lán)牙模塊將Android終端的無線信號(hào)轉(zhuǎn)換為單片機(jī)的串口信號(hào),使單片機(jī)可以與Android終端直接進(jìn)行串口通信[6]。由于藍(lán)牙模塊采用3.3 V的供電電源,故采用LM1117—3.3搭建了降壓電路。HC—06藍(lán)牙模塊為支持藍(lán)牙協(xié)議2.0的CSR系列主控藍(lán)牙芯片,工作電流40 mA,波特率默認(rèn)9 600,可以與Android設(shè)備進(jìn)行藍(lán)牙配對連接。
系統(tǒng)中小車的循跡功能設(shè)計(jì)為在地面上鋪設(shè)2 cm的黑色膠帶,小車沿黑色膠帶的軌跡行走。與傳統(tǒng)的3路循跡不同,本系統(tǒng)循跡模塊采用5個(gè)紅外對管構(gòu)成5路循跡,成排排列在小車底盤前部[7]。每個(gè)紅外模塊檢測到黑色時(shí)返回高電平,檢測到白線時(shí)返回低電平。單片機(jī)根據(jù)檢測的5個(gè)紅外對管返回的高低電平結(jié)果判斷小車相對黑線所處的位置。當(dāng)非中間的紅外對管檢測到黑線時(shí)說明小車偏離正常的軌跡,需要進(jìn)行轉(zhuǎn)向操作。采用5路紅外對管的原因是為了防止速度過快時(shí)偏離軌跡無法及時(shí)矯正方向,最左邊和最右邊的紅外對管是最后一層保障。表2為循跡算法,“1”表示檢測到黑線,“0”表示未檢測到黑線。

表2 循跡算法
在PWM驅(qū)動(dòng)控制的系統(tǒng)中,按固定的頻率接通和斷開電源,并根據(jù)需要改變一個(gè)周期內(nèi)“接通”和“斷開”時(shí)間的長短,通過改變直流電機(jī)電樞上電壓的“占空比”來改變平均電壓的大小,實(shí)現(xiàn)電機(jī)轉(zhuǎn)速控制[8]。占空比計(jì)算公式為D=t1/T,t1為高電平時(shí)間,T為脈沖周期,D為占空比。如圖6為電樞電壓占空比和平均電壓的關(guān)系。

圖6 電樞電壓占空比和平均電壓的關(guān)系
系統(tǒng)軟件分為上位機(jī)Android客戶端和下位機(jī)AT89C52[9]的軟件設(shè)計(jì)。系統(tǒng)整體程序流程如圖7。

圖7 系統(tǒng)程序流程
使用Keil軟件開發(fā)單片機(jī)程序,程序運(yùn)行時(shí)首先進(jìn)行初始化,如打開定時(shí)器和外部中斷等。定時(shí)器可用于超聲波模塊測距。主程序置于死循環(huán)中不斷檢測上位機(jī)軟件Android設(shè)備發(fā)來的控制信息,進(jìn)行相應(yīng)的行為響應(yīng)。
系統(tǒng)在Android設(shè)備上開發(fā)了一個(gè)對小車進(jìn)行控制的應(yīng)用程序(APP),利用Android設(shè)備的藍(lán)牙功能和小車上的HC—06藍(lán)牙模塊進(jìn)行無線通信[10]。APP使用Eclipse軟件進(jìn)行開發(fā),主要設(shè)計(jì)控制界面,包括開啟自動(dòng)行駛,關(guān)閉自動(dòng)行駛以及前進(jìn)、后退、左轉(zhuǎn)彎和右轉(zhuǎn)彎等按鈕。APP控制界面中的不同按鈕對應(yīng)著不同的串口指令,點(diǎn)擊后可以對小車進(jìn)行相應(yīng)的控制。APP中關(guān)于藍(lán)牙主要使用的類有:BluetoothDevice,BluetoothSocket,BluetoothSeverSocket等。BluetoothDevice為遠(yuǎn)端的藍(lán)牙設(shè)備,用于請求遠(yuǎn)端藍(lán)牙設(shè)備連接,BluetoothSocket 為藍(lán)牙套接字的接口,是應(yīng)用程序通過輸入、輸出流與其他藍(lán)牙設(shè)備通信的連接點(diǎn)。
智能小車具有遙控模式和自動(dòng)行駛2種模式。小車啟動(dòng)后,默認(rèn)以遙控模式運(yùn)行,通過APP上4個(gè)方向按鈕操作可以控制小車進(jìn)行相應(yīng)的運(yùn)動(dòng)。當(dāng)點(diǎn)擊“開啟自動(dòng)行駛”,小車進(jìn)入自動(dòng)行駛模式,通過車載的傳感器進(jìn)行循跡和避障,如果前方?jīng)]有障礙物且小車未探測到黑線,小車直行。如果探測到黑線和探測到障礙物同時(shí)出現(xiàn)時(shí),優(yōu)先躲避障礙物。小車探測到黑線且沒有障礙物時(shí)小車按照黑線路徑行駛。
為了驗(yàn)證系統(tǒng)運(yùn)行情況,設(shè)計(jì)了智能小車的測試環(huán)境。主要測試以下幾個(gè)內(nèi)容:藍(lán)牙通信距離;循跡和避障功能以及是否按照優(yōu)先級運(yùn)行;是否能夠采集速度和行駛距離等信息。系統(tǒng)啟動(dòng)后,使用Android終端在距離小車不同的距離進(jìn)行遙控,測試無線通信是否正常,結(jié)果如表3所示。

表3 通信距離測試結(jié)果
在地板上鋪設(shè)2 cm的黑色膠帶,并在膠帶轉(zhuǎn)彎處設(shè)置障礙,測試小車是否能夠循跡、避障以及能否從循跡狀態(tài)轉(zhuǎn)換為避障狀態(tài)。首先在無障礙區(qū)域啟動(dòng)小車,使用遙控使小車移動(dòng)到黑線位置,并開啟自動(dòng)行駛模式。經(jīng)測試,小車可以沿著黑色膠帶的軌跡行駛,也可以躲避設(shè)置的障礙物,而且正在循跡的小車遇到障礙物后進(jìn)行了躲避,優(yōu)先避障,符合設(shè)計(jì)要求。圖8為在30次試驗(yàn)中放置不同數(shù)量的障礙物小車成功到達(dá)終點(diǎn)的次數(shù)統(tǒng)計(jì)。

圖8 不同障礙物數(shù)量下的循跡避障測試結(jié)果
可以看出:隨著障礙物數(shù)量的增多,成功循跡避障的次數(shù)會(huì)相對減少,但整體仍保持較高的水平,能夠滿足基本要求。經(jīng)測試,小車在行進(jìn)過程中可以實(shí)時(shí)地顯示當(dāng)前速度以及行駛的距離。
提出了一種基于Android系統(tǒng)的智能循跡避障小車的軟硬件設(shè)計(jì)方案,實(shí)現(xiàn)了小車在遙控模式和自動(dòng)行駛模式下的運(yùn)行。采用5路紅外循跡模塊以及3路超聲波避障模塊,提高了小車循跡和避障的準(zhǔn)確性。采用Android終端對小車進(jìn)行控制,同時(shí)可以對小車的狀態(tài)信息進(jìn)行采集和顯示。本文方法是當(dāng)前無人駕駛技術(shù)研究的原型,因此,具有較高的學(xué)術(shù)價(jià)值和現(xiàn)實(shí)意義。
[1] 姜 巖,趙熙俊,龔建偉,等.簡單城市環(huán)境下地面無人駕駛系統(tǒng)的設(shè)計(jì)研究[J].機(jī)械工程學(xué)報(bào),2012,48(20):103-112.
[2] 謝 檬,郭 霞.智能小車控制系統(tǒng)設(shè)計(jì)[J].傳感器與微系統(tǒng),2016,35(12):110-112.
[3] 林明標(biāo),莫金海.基于安卓手機(jī)的無線重力感應(yīng)控制智能小車[J].計(jì)算機(jī)測量與控制,2015,23(4):1175-1178.
[4] 尹 杰,楊宗帥,聶 海,等.基于紅外反射式智能循跡遙控小車系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013,21(23):178-180,184.
[5] 陳小寧,黃玉清,楊 佳.多傳感器信息融合在移動(dòng)機(jī)器人定位中的應(yīng)用[J].傳感器與微系統(tǒng),2008,27(6):110-113.
[6] 鐘 君,蔡黎明,于 涌.基于MLX90614的無線溫度采集系統(tǒng)設(shè)計(jì)[J].傳感器與微系統(tǒng),2015,34(3):87-89,93.
[7] 董 杰,王國豹.基于STM32的智能循跡往返小車設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013,21(12):158-160.
[8] 王 蘇.直流電機(jī)PWM調(diào)速研究及單片機(jī)控制實(shí)現(xiàn)[J].機(jī)電工程技術(shù),2008,37(11):82-84,95.
[9] 王光利,代小紅.基于AT89C52的恒溫室監(jiān)控系統(tǒng)設(shè)計(jì)[J].微電子學(xué),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.