李曉云,何秋生,楊 柳,王利民,王 磊
(太原科技大學(xué)電子信息工程學(xué)院,山西 太原 030024)
智能車,有時也稱為輪式機器人[1]。本文設(shè)計的智能車主要實現(xiàn)自動循跡和避障功能[2],自動循跡采用光電開關(guān)檢測道路,相比于攝像頭和CCD 采集更加簡單,處理更加快捷方便;采用紅外對管避障,相比于超聲波更加快速,電路結(jié)構(gòu)更加簡單,成本低;電源方面采用電池和太陽能板多電源供電[3],功耗小,節(jié)能減排。
系統(tǒng)的結(jié)構(gòu)組成如圖1 所示,主要包括循跡模塊、避障模塊、顯示模塊、驅(qū)動模塊和電源模塊。本文主要介紹智能車系統(tǒng)軟件實現(xiàn)的三大部分:自動循跡、避障、速度控制。
圖1 系統(tǒng)的總體框圖
系統(tǒng)主程序流程圖如圖2 所示,主要用來循跡,循跡過程中直行速度可以保持在1.3~1.5 m/s 左右,當(dāng)紅外對管檢測到有障礙物出現(xiàn)時,減小速度并觸發(fā)外部中斷,進(jìn)入避障子程序,待順利躲開障礙物后,繼續(xù)循跡。
圖2 主程序流程圖
智能車循跡采用四個光電開關(guān),分別置于車身前軌道兩側(cè),左右各一對。為了方便,從左到右依次標(biāo)記為左1、左2、右2、右1。當(dāng)光電開關(guān)對準(zhǔn)的賽道為白色時,輸出電壓為0.2 V;當(dāng)賽道為黑色時,輸出電壓為5 V[4]。將輸出電壓與閾值電壓作比較,單片機通過檢測比較器的輸出即可得到賽道的信息,通過控制電機的轉(zhuǎn)動實現(xiàn)循跡功能。
循跡的軟件實現(xiàn)如圖3 所示,循跡主要是檢測黑線的位置,分為6 種情況:若沒有檢測到黑線就直走,此處包含了智能車通過十字路口時沒有黑線的情況;若四個光電開關(guān)均檢測到黑線,就停車;若左1 檢測到黑線,說明車身已經(jīng)大幅度的偏向右邊,控制智能車大幅度左轉(zhuǎn);若左2 檢測到黑線,控制車小幅度左轉(zhuǎn);若右2 檢測到黑線,控制車小幅度右轉(zhuǎn);若右1 檢測到黑線,控制車大幅度右轉(zhuǎn)。
圖3 循跡的軟件流程圖
避障采用兩個紅外對管實現(xiàn),分別置于智能車的前方和右側(cè)。前方的紅外對管用來探測前方是否有障礙物,右側(cè)的用來探測障礙物的長短。以前方為例,紅外對管發(fā)射紅外光,若前方有障礙物,紅外線將從物體反射回來,單片機將檢測到低電平,控制電機改變智能車的行進(jìn)方向,從而順利避開障礙物。本文以寬度為6 cm,長度不定的障礙物進(jìn)行實測。
避障的軟件流程圖如圖4 所示。單片機通過精確延時使二極管發(fā)射38.5 kHz 的紅外線,同時檢測紅外檢測器的狀態(tài)[5]。當(dāng)檢測到前方有障礙物時,觸發(fā)外部中斷,單片機通過控制電機使智能車轉(zhuǎn)彎,避開障礙物,然后直走。同時檢測車身右側(cè)是否有障礙物,主要是確定障礙物的長短和智能車直走的距離。當(dāng)檢測到無障礙物時,驅(qū)動電機使智能車轉(zhuǎn)彎再次回到黑線上,繼續(xù)循跡。
圖4 避障的軟件流程圖
PWM 是通過調(diào)節(jié)直流電源電壓的占空比,來改變負(fù)載兩端電壓的平均值,而達(dá)到控制要求的一種電壓調(diào)整方法[6]。由于PWM 控制,不僅可以調(diào)節(jié)速度,而且還可以彌補硬件結(jié)構(gòu)的缺陷,消除左右兩輪之間摩擦阻力不同的影響,因此這里采用PWM 控制智能車的速度。單片機系統(tǒng)主頻是12 MHz,若PWM 輸出頻率為1 kHz,定時中斷次數(shù)設(shè)定為100,即0.01 ms 中斷一次,這樣可以設(shè)定占空比范圍是1~100。
PWM 的軟件流程圖如圖5 所示,其中C 為中斷次數(shù),0.01 ms 觸發(fā)一次中斷,left 為左輪PWM 的給定值,right 為右輪PWM 的給定值,將它們依次與中斷次數(shù)C 進(jìn)行比較,控制電機的使能端,改變電源電壓的占空比,從而達(dá)到調(diào)速的目的。
圖5 PWM 控制的軟件流程圖
速度顯示流程如圖6 所示。測速模塊采用LM393 和20格的光電碼盤。光電碼盤每轉(zhuǎn)一格觸發(fā)一次外部中斷,測速中斷主要是記錄碼盤轉(zhuǎn)的格數(shù)。速度顯示采用LCD1602,每400 ms 更新一次,速度計算公式為:v=2nπR/(20 ×0.4),n為光電碼盤轉(zhuǎn)的格數(shù),R 為光電碼盤的半徑。
圖6 LCD 顯示的軟件流程圖
如圖7 是設(shè)計的智能車,圖8 為調(diào)試智能車的賽道,圖中標(biāo)記著一長一短兩個障礙物,障礙物寬度為6 cm,長度不限,黑線寬度為2 cm。因障礙物寬度一定,智能車轉(zhuǎn)彎的延時時間和速度需經(jīng)過多次試驗調(diào)整,使其順利通過障礙物,并繼續(xù)自動循跡。本系統(tǒng)中智能車直行時速度能穩(wěn)定在1.52 m/s,左轉(zhuǎn)彎時左輪速度大約0.55 m/s,右輪速度大約1.15 m/s,右轉(zhuǎn)彎時右輪速度大約0.58 m/s,左輪速度大約1.18 m/s。
圖7 智能車模型
圖8 調(diào)試賽道
本文設(shè)計的智能車可以在強光的照射下自動為智能車供電或者給電池充電。經(jīng)多次測試表明智能車能夠穩(wěn)定地按照設(shè)定黑色軌跡運動,并能夠躲避任意長度的障礙物,能在誤差允許范圍內(nèi)測得速度并實時顯示。
[1]趙建領(lǐng),弓雷.51 系列單片機開發(fā)寶典[M].北京:電子工業(yè)出版社,2012.
[2]王允上.學(xué)用單片機制作機器人[M].北京:科學(xué)出版社,2011.
[3]劉帥,王潔瑜,尹志強,等.太陽能LED 路燈驅(qū)動器設(shè)計[J].電子技術(shù)與軟件工程,2014(8):152 -153.
[4]王艷.基于51 單片機的紅外遙控小車設(shè)計和制作[J].機電信息,2010(12):4 -5.
[5]韓毅,楊天.基于HCS12 單片機的智能尋跡模型車的設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2008,29(18):4736 -4739.
[6]林廣峰.用單片機實現(xiàn)頻率可調(diào)的PWM 控制信號[J].科技傳播,2010(6):220 -221.