《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 采用超聲波的移動(dòng)機(jī)器人導(dǎo)航設(shè)計(jì)方法
采用超聲波的移動(dòng)機(jī)器人導(dǎo)航設(shè)計(jì)方法
摘要: 采用新型的超聲波傳感器,,設(shè)計(jì)并開發(fā)基于ARM9與嵌入式linux為平臺(tái)的輪式移動(dòng)機(jī)器人平臺(tái)的下的未知環(huán)境的避障導(dǎo)航系統(tǒng),。本文重點(diǎn)介紹該超聲波傳感器的實(shí)現(xiàn)原理以及在機(jī)器人平臺(tái)中的整個(gè)軟件實(shí)現(xiàn)流程以及控制機(jī)器人行走的實(shí)現(xiàn)方法,。
Abstract:
Key words :

1 引言

 

在項(xiàng)目開發(fā)中采用從英國(guó)進(jìn)口的SRF05 超聲波傳感器,,它的回波反饋與測(cè)距方式與通常使用的超聲波傳感器相比較特別,,在ARM中實(shí)現(xiàn)也稍有難度,,但該傳感器精度很高可達(dá)到1cm, 因此用該傳感器去掉了用于近距離測(cè)距的紅外測(cè)距模塊節(jié)約了硬件資源,。

 

該機(jī)器人的最小系統(tǒng)為,,觸摸屏模塊,,超聲波模塊,,攝像頭圖像采集模塊,直流電機(jī)閉環(huán)控制系統(tǒng),,在整個(gè)系統(tǒng)中測(cè)距是最總要的一環(huán),,它直接影響電機(jī)運(yùn)行距離的精度,在有效范圍內(nèi)的圖像采集控制,。整個(gè)系統(tǒng)都是在ARM9 與linux 平臺(tái)中完成,,每個(gè)模塊都是用設(shè)備驅(qū)動(dòng)的方式實(shí)現(xiàn)使得模塊的控制更加方便。

 

2 SRF05 超聲波測(cè)距方法

 

提供一個(gè)10us 的脈沖觸發(fā)超聲波傳感器,,SRF05 會(huì)發(fā)出8 個(gè)周期的頻率為40khz 的超頻脈沖,,此時(shí)在echo 也是就回波口上的電平變?yōu)楦撸藭r(shí)定時(shí)器開始計(jì)時(shí),,等到echo 變?yōu)榈碗娖阶C明有障礙物此時(shí)停止計(jì)時(shí),,高脈沖的寬度有測(cè)距的距離成正比,該超聲波的有效測(cè)距范圍為1cm~4m, 因此如果沒有障礙物或障礙物大于4m,echo 依然會(huì)變?yōu)榈碗娖酱藭r(shí)定時(shí)器的時(shí)間為30ms, 因此在測(cè)距時(shí)定時(shí)器的周期應(yīng)大于30ms 這樣才能有效測(cè)距,。

 

原理如圖1 所示,。

 

 

采用超聲波的移動(dòng)機(jī)器人導(dǎo)航設(shè)計(jì)方法

 

3 超聲波測(cè)距軟件實(shí)現(xiàn)

 

如圖2 為超聲波測(cè)距的流程圖。

 

 

采用超聲波的移動(dòng)機(jī)器人導(dǎo)航設(shè)計(jì)方法

 

3.1 回波檢測(cè)的采集方法

 

超聲波的回波的檢測(cè)是個(gè)難點(diǎn),,因?yàn)樵贏RM中一個(gè)端口設(shè)置中斷只能設(shè)置一種觸發(fā)方式,,如果設(shè)為上升沿觸發(fā)可以打開定時(shí)器定時(shí)但無法捕獲下降沿,也就無法關(guān)閉定時(shí)器,,從而不能測(cè)距,,因此用軟件的方式實(shí)現(xiàn)。首先設(shè)置兩個(gè)時(shí)間延遲函數(shù)usdelay()和msdelay(),,這樣可以在給出高脈沖10us 后等超聲波觸發(fā)再打開定時(shí)期計(jì)時(shí),,在設(shè)置一個(gè)外部中斷eint1 接到超聲波傳感器的echo 口并設(shè)置為下降沿觸發(fā),等下降沿來臨關(guān)閉定時(shí)器讀出值既為脈寬的時(shí)間長(zhǎng)度,,然后根據(jù)障礙物的距離=(ECHO高電平的時(shí)間)* 聲納速度/2 得出距離,??諝庵衯 與溫度關(guān)系:v=331.5√1+T/273 m/s,T 為攝氏溫度。一般情況下超聲波速近似聲速,,在室內(nèi)溫度影響下取約343.2m/s.

 

3.2 超聲波觸發(fā)的實(shí)現(xiàn)

 

利用數(shù)字示波器精確設(shè)計(jì)一個(gè)軟件計(jì)時(shí)函數(shù)usdelay ,,具體實(shí)現(xiàn)如下。

 

 

采用超聲波的移動(dòng)機(jī)器人導(dǎo)航設(shè)計(jì)方法

 

則usdelay(1)既為10us,該函數(shù)用于在給出激發(fā)高脈沖后延續(xù)10us 然后關(guān)脈沖,。

 

還要設(shè)計(jì)一個(gè)msdelay()用于控制整個(gè)測(cè)距周期的時(shí)間值,。

 

msdelay(1000)在主函數(shù)數(shù)中用于延遲1s,這樣定時(shí)器可以完全有足夠的回波檢測(cè)時(shí)間同時(shí)也不會(huì)對(duì)其它三路超聲波信號(hào)造成干擾。

 

如下所示,。

 

 

采用超聲波的移動(dòng)機(jī)器人導(dǎo)航設(shè)計(jì)方法

 

3.3 超聲波回波檢測(cè)的實(shí)現(xiàn)

 

回波檢測(cè)計(jì)算脈寬的時(shí)間需要用到定時(shí)器和外部中斷,外部中斷接超聲波的echo 并設(shè)置為下降沿觸發(fā),。定時(shí)器的初始化如下,。

 

rTCFG0=0x9595; //預(yù)分頻值為95

 

rTCFG1=0x00000; //分割值1/2

 

rTCNTB0=10000; /

 

根據(jù)T=[TCNTB0*(TCFG0+1)*(1/TCFG1)]/50MHZ 得出定時(shí)器的周期為60ms 在這個(gè)時(shí)間段里足以計(jì)算回波時(shí)間。

 

外部中斷1 初始化如下

 

rGPFCON=0xaa; //GPF1 設(shè)置為EINT1

 

rINTMOD=0x0; //設(shè)置為普通中斷

 

rGPFUP=0xf; //禁止GPF0 上拉電阻

 

pISR_EINT1=(unsigned)Eint1Handler; //建立中斷向量

 

EnableIrq(BIT_EINT1),; //使能中斷

 

rEXTINT0 =0x492; // EINT1 下降沿觸發(fā)

 

根據(jù)T=[TCNTB0*(TCFG0+1)*(1/TCFG1)]/50MHZ 得出定時(shí)器的周期為60ms 在這個(gè)時(shí)間段里足以計(jì)算回波時(shí)間,。

 

3.4 在外部中斷中計(jì)算機(jī)距離

 

 

采用超聲波的移動(dòng)機(jī)器人導(dǎo)航設(shè)計(jì)方法

 

3.5 循環(huán)控制與輪詢測(cè)距

 

由于超聲波之間有干擾,采用輪詢的方式依次打開超聲波,,每次只測(cè)一個(gè),,這樣可以有效地避免干擾,為了提高實(shí)時(shí)性可以控制定時(shí)器周期,,比如設(shè)置為35ms,這樣四路超聲波輪詢一次大約為140ms,足以滿足實(shí)時(shí)要求,。

4 機(jī)器人控制的實(shí)現(xiàn)

 

圖3 為利用超聲波的反饋信息控制機(jī)器人直流電機(jī)閉環(huán)系統(tǒng)的總體結(jié)構(gòu)圖。

 

 

采用超聲波的移動(dòng)機(jī)器人導(dǎo)航設(shè)計(jì)方法

 

linux 系統(tǒng)中超聲波傳感器為只讀的字符設(shè)備,,具體應(yīng)用為在應(yīng)用程序下打開超聲波設(shè)備,,然后在驅(qū)動(dòng)中測(cè)距,測(cè)得的數(shù)據(jù)傳到應(yīng)用程序,,應(yīng)用程序中有超聲波的避障算法,,根據(jù)算法判斷障礙物的位置給直流電機(jī)控制信號(hào)進(jìn)行避障導(dǎo)航。

 

觸摸屏中的圖形界面中含有機(jī)器人的指令設(shè)置,,可以設(shè)置運(yùn)行速度,,圖像采集與超聲波模塊的打開與關(guān)閉,是否開啟機(jī)器人模糊算法運(yùn)行軌跡還是使用普通的PID 調(diào)節(jié),,這使得機(jī)器人有很多種方案可以選擇,。

 

機(jī)器人的每一次行為都是根據(jù)超聲波傳感器測(cè)得的值和當(dāng)前機(jī)器人運(yùn)行的即時(shí)速度來來給出將要運(yùn)行的時(shí)間,在遇到障礙物時(shí)(0 ---- 30 us,, 等于30微秒時(shí)達(dá)到超聲波的最大探測(cè)距離),,開啟攝像頭圖像采集模塊,這時(shí)攝像頭會(huì)拍下障礙物的圖像,,并利用無線MODEM把圖像傳回控制電腦,,這樣用戶就可以知道前方是什么障礙物,,該系統(tǒng)實(shí)現(xiàn)了移動(dòng)機(jī)器人的自主避障和采集障礙物信息的作用,可以用來探測(cè)未知環(huán)境,。

 

5 結(jié)論

 

本文采用新型的超聲波傳感器,,在ARM9 與嵌入式linux 為平臺(tái)的移動(dòng)機(jī)器人上實(shí)現(xiàn)了超聲波的測(cè)距,并利用超聲波傳感器控制運(yùn)動(dòng)系統(tǒng)和圖像采集系統(tǒng),。該機(jī)器人目前已經(jīng)成功應(yīng)用與本項(xiàng)目的開發(fā)并取得良好的效果,。

 

本文創(chuàng)新點(diǎn):采用一種精度高的新型超聲波傳感器,用軟件方法克服了它在ARM9 中不利于檢測(cè)回波的問題,,成功應(yīng)用于移動(dòng)機(jī)器人的運(yùn)行軌跡控制,,使得機(jī)器人無論在行走和圖像采集的即時(shí)性上都得到了很大的高。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。