位差超聲波傳感器在智能玩具機(jī)器人中的應(yīng)用
2 軟件設(shè)計(jì)
2.1 測距子程序設(shè)計(jì)
根據(jù)位差超聲波傳感器的時(shí)序原理圖,對C51單片機(jī)內(nèi)部定時(shí)/計(jì)數(shù)器編程,實(shí)現(xiàn)對前方物體距離的測量并將測量結(jié)果在LCD模塊上顯示。測距子程序的基本設(shè)計(jì)算法,用流程圖表示如圖4所示。本文引用地址:http://www.antipu.com.cn/article/161086.htm
程序設(shè)計(jì)思路主要分為2步:
1)根據(jù)位差超聲波傳感器的控制時(shí)序圖(圖3),啟動位差超聲波距離傳感器,即通過單片機(jī)編程,給超聲波傳感器的信號引腳提供一個(gè)持續(xù)時(shí)間為5μs的高電平,然后拉低信號引腳750μs,這樣位差超聲波傳感器就被啟動,發(fā)出超聲爆裂,與此同時(shí),啟動單片機(jī)的定時(shí)器開始計(jì)數(shù),當(dāng)超聲波遇到物體時(shí)會立即反射回來,位差超聲波傳感器的接收器接到回波時(shí),會自動拉低其信號引腳的電平,單片機(jī)查詢到此引腳的電平下降沿到來時(shí)停止定時(shí)器計(jì)數(shù),此時(shí)定時(shí)器計(jì)數(shù)值就間接反應(yīng)了超聲波從反射到返回所經(jīng)歷的時(shí)間。
2)讀出定時(shí)器的計(jì)數(shù)值除以2,便得到超聲波在遇到被測物體返回的時(shí)間,根據(jù):距離=速度×時(shí)間,就可以計(jì)算出前方物體的距離,因超聲波在常溫下的空氣介質(zhì)中傳播的速度大約為344 m/s,即29.034μs超聲波能傳播1 cm,具體編程時(shí)在程序中用語句x=count/29.034來計(jì)算距離值,獲得被測距離值后,調(diào)用LCD顯示函數(shù)將距離值在LCD模塊上顯示出來。
2.2 超聲波導(dǎo)航程序設(shè)計(jì)
利用位差超聲波距離傳感器測得的“距離”信息,可以引導(dǎo)智能玩具機(jī)器人實(shí)現(xiàn)避障行走。當(dāng)智能玩具機(jī)器人距離前面障礙物小于20 cm時(shí),它會向左拐改變行進(jìn)方向,避免與物體碰撞,下面簡要分析以超聲波導(dǎo)航程序的基本設(shè)計(jì)思路,程序設(shè)計(jì)算法用流程圖表示如圖5所示。
程序通過反復(fù)調(diào)用超聲波測距子程序,獲取智能玩具機(jī)器人前方被測物體的距離值;判斷距離是否在設(shè)定閾值以內(nèi),若大于程序設(shè)定的距離閾值,調(diào)用函數(shù)Forward(),驅(qū)動智能玩具機(jī)器人前進(jìn);若小于程序設(shè)定的距離閾值,調(diào)用Backward(),驅(qū)動智能玩具機(jī)器人后退一段距離;接著又調(diào)用Left_Turn(),驅(qū)動智能玩具機(jī)器人左拐后程序再返回重復(fù)以上過程。
3 系統(tǒng)調(diào)試
3.1 硬件系統(tǒng)的調(diào)試
硬件系統(tǒng)的制作與調(diào)試相對簡單,其具體過程簡述如下:首先根據(jù)硬件設(shè)計(jì)原理圖,采用Protel DXP2004軟件合理布局和布線,設(shè)計(jì)出智能玩具機(jī)器人的控制器PCB,然后用制板設(shè)備制作出PCB樣板;根據(jù)元器件清單,在PCB上安裝焊接好元器件,連接好直流伺服電機(jī),將測試軟件下載到智能玩具控制器的單片機(jī)存儲器,接通電源開機(jī)運(yùn)行,用示波器測試觀察控制器的單片機(jī)最小系統(tǒng)運(yùn)行時(shí)關(guān)鍵點(diǎn)信號波形是否正常。
3.2 系統(tǒng)整體調(diào)試
根據(jù)上述程序設(shè)計(jì)思路,在Keil C編譯環(huán)境中用C語言編寫程序代碼,編譯程序,將生成的HEX文件燒寫到控制板上的單片機(jī)程序存儲器,開機(jī)運(yùn)行,智能玩具機(jī)器人按程序設(shè)定運(yùn)行模式前進(jìn),當(dāng)前方有物體時(shí),在LCD顯示屏上實(shí)時(shí)準(zhǔn)確地顯示出小車和前方物體之間的距離值;當(dāng)小車距前方物體小于程序設(shè)定的距離閾值時(shí),小車掉轉(zhuǎn)方向繼續(xù)前進(jìn),經(jīng)反復(fù)實(shí)驗(yàn)表明:位差超聲波距離傳感器在下列情況下不能精確地測量距離,如圖6所示。
1)與物體距離大于3 m當(dāng)被測物體距離智能玩具機(jī)器人3 m之外時(shí),如圖6(a)所示,因位差超聲波傳感器的發(fā)射功率不夠,反射回來的信號太弱,導(dǎo)致LCD上顯示出的距離值不能反映實(shí)際距離值。
2)被測物體不在正前方 當(dāng)被測物體不在智能玩具機(jī)器人正前方,如圖6(b)所示,而是有一定的偏角,因與物體的表面形成的反射角度太小,使傳感器接收器接收不到反射回來的信號,導(dǎo)致LCD上顯示出的距離值不能反映實(shí)際距離值。
3)前方被測物體橫截面太小 當(dāng)前方被測物體體積太小或是橫截面太小,如圖6(c)所示,因?yàn)闆]有足夠強(qiáng)度的信號返回到傳感器,導(dǎo)致LCD上顯示出的距離值不能反映實(shí)際距離值。
4 結(jié)束語
超聲波傳感器在非接觸性測量方面的應(yīng)用非常廣泛,可用于檢測液體水位(特別是具有腐蝕性的液體,如硫酸、硝酸液體),汽車倒車防撞系統(tǒng),金屬(或非金屬)探傷,機(jī)器人感知系統(tǒng)設(shè)計(jì)等,利用位差超聲波傳感器與51單片機(jī)構(gòu)成智能玩具機(jī)器人的“距離感知系統(tǒng)”,具有電路接口簡單,成本低廉,穩(wěn)定性好等特點(diǎn),但其測量精度受到位差超聲波傳感器的最大測量距離以及與被測物體反射角等的限制。
伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理
評論