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