基于A(yíng)RM和Linux的路徑記憶循跡小車(chē)
摘要:針對智能小車(chē)在實(shí)際應用中的需要,設計了一種基于ARM和Linux的具有路徑記憶循跡功能的智能小車(chē)。利用ARM和Linux操作系統,實(shí)現了對智能小車(chē)的超聲波避障模塊、電機等的控制。利用電子羅盤(pán),實(shí)現了小車(chē)在無(wú)黑線(xiàn)情況下精確轉向;利用超聲波測距避障以及Linux文件系統建立和保存了智能小車(chē)運行的路徑記憶庫;通過(guò)讀取記憶庫的數據實(shí)現智能小車(chē)的循跡功能。結果表明,該設計方案可以很好地實(shí)現循跡功能并且對環(huán)境的適應性較強。
本文引用地址:http://dyxdggzs.com/article/201609/303641.htm引言
智能車(chē)是近年來(lái)發(fā)展起來(lái)的一門(mén)新興的綜合技術(shù),在軍事領(lǐng)域得到了廣泛應用,而且在生產(chǎn)和生活中的應用也日趨普遍。
目前智能小車(chē)的自主移動(dòng)方式有兩種:循跡和避障。一般的循跡功能可以通過(guò)算法使其能精確地在黑線(xiàn)上行駛,但是由于一些室內環(huán)境的因素,要實(shí)施黑線(xiàn)的布置并不符合實(shí)際要求。一般的避障功能僅僅是通過(guò)探測前方障礙物而進(jìn)行躲避,通過(guò)算法可以完成從出發(fā)點(diǎn)到定點(diǎn)的行駛,但是算法運算量大且放在不同的環(huán)境,就需要更改程序,這對實(shí)際應用帶來(lái)很大的不便。
基于這種背景,設計了一種利用超聲波測距避障功能以及Linux文件系統的路徑記憶循跡智能小車(chē),通過(guò)人為地設置障礙物來(lái)規劃小車(chē)的行走路線(xiàn),并將路線(xiàn)記錄入庫。小車(chē)只需讀取庫中的數據即可按照規劃的路線(xiàn)行駛以實(shí)現循跡功能,可擺脫尋查黑線(xiàn)的循跡方式。當環(huán)境發(fā)生變化時(shí),利用按鍵設置小車(chē)的工作模式,可以直接重新建立記憶庫,無(wú)需更改程序,具有一定的實(shí)際意義。
1 總體設計
圖1為本系統總體結構框圖,主要由超聲波測距模塊與云臺、S3C6410控制器、電機驅動(dòng)模塊、光電測速模塊以及電源等部分組成。其中,電源用于完成對整個(gè)系統的供電,超聲波測距模塊與云臺完成對小車(chē)運行狀態(tài)的預判,電機驅動(dòng)模塊根據預判的結果執行相應的操作,光電測速模塊用于PID控制的反饋以及在轉向時(shí)控制車(chē)輪運行的周數,S3C6 410控制器在移植Linux操作系統的基礎上完成對各模塊的控制并建立小車(chē)運行狀態(tài)的記憶庫。
2 系統硬件設計
2.1 控制器
S3C6410控制器是由三星公司推出的一款低功耗、高性?xún)r(jià)比的RISC處理器,它基于ARM11內核(ARM1176JZF—S),可廣泛應用于移動(dòng)電話(huà)和通用處理等領(lǐng)域??刂破饔珊诵碾娐钒搴椭靼鍍刹糠纸M成,核心板上設計有S3C6410、SDRAM存儲電路、NAND Flash、1.25 V電源電路和處理器復位電路等,主板上設計有串口、網(wǎng)口、按鍵等。
2.2 電源與電機驅動(dòng)模塊
電源采用現有的鋰充電電池供電,鋰電池的電壓約為7.2 V。電機驅動(dòng)采用的是L298N驅動(dòng)模塊,該模塊采用ST公司的L298N芯片,采用高質(zhì)量鋁電解電容,可使電路穩定工作;可以直接驅動(dòng)兩路3~16 V直流電機,并提供了5 V輸出接口,可以給5 V單片機電路系統供電,支持3.3 V ARM控制,可以方便地控制直流電機速度和方向。
2.3 超聲波測距模塊與云臺
采用US-100超聲波測距模塊,該模塊可實(shí)現0~4.5 m的非接觸測距功能,擁有2.4~5.5 V的寬電壓輸入范圍,靜態(tài)功耗低于2 mA,自帶溫度傳感器對測距結果進(jìn)行校正,同時(shí)具有GPIO、串口等多種通信方式,內置看門(mén)狗,工作穩定可靠。
云臺采用SG90舵機,工作電壓為4.8~6 V,無(wú)負載的情況下轉速為0.12 s/60℃??刂菩盘栍山邮諜C的通道進(jìn)入信號調制芯片,獲得直流偏置電壓。它內部有一個(gè)基準電路,產(chǎn)生周期為20 ms、寬度為1.5 ms的基準信號。將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負輸出到電機驅動(dòng)芯片,決定電機的正反轉。
2.4 光電測速模塊
本設計中的測速模塊采用槽型對射光電,只要在非透明物體中通過(guò)槽型即可觸發(fā)(配合小車(chē)測速碼盤(pán)20格使用)輸出5 V TTL電平,采用了施密特觸發(fā)器去抖動(dòng)脈沖,非常穩定,用于小車(chē)測轉速、測距離等。
2.5 電子羅盤(pán)
電子羅盤(pán)采用霍尼韋爾HMC5883L芯片,該芯片帶有數字接口的弱磁傳感器,應用于低成本羅盤(pán)和磁場(chǎng)檢測領(lǐng)域,并附帶霍尼韋爾專(zhuān)利的集成電路,包括放大器、自動(dòng)消磁驅動(dòng)器、偏差校準、能使羅盤(pán)精度控制在1°的I2C系列總線(xiàn)接口。
3 記憶庫的設計
3.1 智能小車(chē)避障方案選擇
根據設計要求,小車(chē)在行駛過(guò)程中需要準確地檢測前方的人為障礙物,并通過(guò)障礙物的位置來(lái)確定小車(chē)下一步的運行狀態(tài),因此對測量距離有一定要求。障礙物檢測可以有多種方法:紅外光檢測、超聲波檢測和機械接觸。這些方法各有優(yōu)缺點(diǎn),常用的有紅外檢測和超聲波檢測,兩種方案的區別見(jiàn)表1。對比兩種方案的指標后,本文避障方案選擇超聲波檢測,并且為了滿(mǎn)足系統要求添加了SG90舵機作為輔助,使用超聲波可以檢測多個(gè)方向。
3.2 智能小車(chē)的路徑狀態(tài)設計
為了簡(jiǎn)化記憶庫的設計以及結合實(shí)際應用中的情況,智能小車(chē)的運行狀態(tài)設定成4種情況:直行、90°左轉彎、90°右轉彎和180°掉頭。其中,直行狀態(tài)在記憶庫中的表示是時(shí)間,通過(guò)Linux中的時(shí)間函數測量直行狀態(tài)的持續時(shí)間,單位為s。
為了使智能小車(chē)能按照上面的4種情況運行,智能小車(chē)在行進(jìn)中遇到的路徑情況是人為設定的,如圖2所示。
3.3 記憶庫的建立
智能小車(chē)的運行狀態(tài)是人為設定的4種情況,記憶庫中的數據就是由這4個(gè)狀態(tài)標志組成。人為設置好從起點(diǎn)到終點(diǎn)的障礙物后,即可讓小車(chē)在起點(diǎn)開(kāi)始運行,并在每次改變運行狀態(tài)前將運行狀態(tài)記錄入庫。在到達終點(diǎn)后以180°掉頭作為結束標志,然后利用Linux文件系統將記憶庫里的數據保存到Linux下的一個(gè)文件當中,到此完成記憶庫的建立。
評論