位差超聲波傳感器在智能玩具機(jī)器人中的應(yīng)用
摘要:超聲波傳感器是利用超聲波的特性研制而成的傳感器,它在非接觸性測量方面應(yīng)用非常廣泛,筆者根據(jù)智能玩具機(jī)器人的距離感知系統(tǒng)的軟硬件設(shè)計(jì)過程,介紹了位差超聲波傳感器在智能玩具機(jī)器人中的應(yīng)用,給出了位差超聲波傳感器與單片機(jī)系統(tǒng)的硬件電路接口和距離檢測軟件的編程思路,并通過實(shí)驗(yàn),得出了其測量精度與測量距離以及與被測物體反射角之間的關(guān)系。
關(guān)鍵詞:超聲波;機(jī)器人;傳感器;距離檢測
目前國內(nèi)生產(chǎn)的電子玩具技術(shù)含量較低,由于不具備智能化,利潤空間小,受歡迎程度低。近年來,伴隨計(jì)算機(jī)技術(shù)的高速發(fā)展,智能控制器的發(fā)展迅速,一些典型的智能玩具如輪式移動機(jī)器人在部分院校教學(xué)中得到推廣,因?yàn)橹悄芡婢邫C(jī)器人是一個典型的機(jī)電一體化系統(tǒng),它融合制造技術(shù)、機(jī)械、電子、傳感器、計(jì)算機(jī)和人工智能等眾多先進(jìn)技術(shù),是進(jìn)行工程訓(xùn)練、教學(xué)實(shí)驗(yàn)和研究的理想平臺,在電子學(xué)教學(xué)領(lǐng)域中有著諸多的研究價值。
傳感器是智能機(jī)器人獲取外界數(shù)據(jù)的“感知系統(tǒng)”,離開智能傳感器的機(jī)器人大多是些功能單一,不具備思維能力,有些甚至是底盤基座固定式的,使得這些機(jī)器人只能固定在某一位置按照事先設(shè)定動作進(jìn)行機(jī)械式的重復(fù)操作,其應(yīng)用范圍僅限于工業(yè)生產(chǎn)中的重復(fù)性工作,不便于普及和推廣,可見基于傳感器的智能控制器在實(shí)現(xiàn)玩具機(jī)器人的智能化的作用中不可或缺,筆者介紹了一種基于超聲波原理的位差超聲波傳感器在智能玩具教育機(jī)器人中的應(yīng)用,通過較為具體的設(shè)計(jì)過程介紹了智能玩具機(jī)器人距離測試系統(tǒng)的軟硬件設(shè)計(jì)方法,并對位差超聲波傳感器的性能指標(biāo)和一些關(guān)鍵技術(shù)作較深入地探討,提出了一些編程控制技巧及算法。
1 硬件設(shè)計(jì)
采用“MCU+傳感器+顯示設(shè)備+執(zhí)行機(jī)構(gòu)”的總體設(shè)計(jì)方案,要求MCU對非接觸式傳感器獲取的外部距離信息進(jìn)行計(jì)算轉(zhuǎn)換,將得出的智能玩具機(jī)器人與前方障礙物的距離值送到顯示設(shè)備顯示,并根據(jù)程序設(shè)定的距離閾值控制智能玩具機(jī)器人實(shí)現(xiàn)自動導(dǎo)航功能,系統(tǒng)整體框圖如圖1所示。
其中系統(tǒng)MCU采用目前性價比較高的AT89C51單片機(jī),利用“位差超聲波傳感器”作為距離傳感器,以非接觸的形式測量前方物體的距離;顯示設(shè)備采用LCD1602液晶顯示模塊;執(zhí)行機(jī)構(gòu)采用PARALLAX公司生產(chǎn)的連續(xù)旋轉(zhuǎn)伺服電機(jī),其優(yōu)點(diǎn)是編程控制方便且不需額外增加驅(qū)動電路,圖1中超聲波傳感器測距的工作原理如圖2所示。
超聲波傳感器與單片機(jī)系統(tǒng)進(jìn)行接口構(gòu)成距離檢測的硬件系統(tǒng),在系統(tǒng)軟件的控制下,單片機(jī)向位差超聲波傳感器發(fā)送的一個觸發(fā)脈沖,位差超聲波傳感器被此脈沖觸發(fā)后會產(chǎn)生一道短40 kHz的脈沖電信號,此40 kHz的脈沖電信號通過激勵換能器處理以后,將轉(zhuǎn)換成機(jī)械振動的能量,其振動頻率約在20 kHz以上,由此形成了超聲波,該信號經(jīng)錐形“輻射口”處將超聲波信號在空氣中以每秒約1 130英尺的速度向外發(fā)射出去。當(dāng)發(fā)射出去的超聲波信號遇到障礙物以后,立即被反射回來。接收器接收到反射回來的超聲波信號后,通過其內(nèi)部轉(zhuǎn)換,將超聲波變成微弱的電振蕩,并將信號進(jìn)行放大,就可得到所需的脈沖信號,此脈沖信號再返回給單片機(jī),表示回波被探測,這個脈沖寬度就是對應(yīng)于爆裂回聲返回到傳感器所需時間,其時序如圖3所示。
2 軟件設(shè)計(jì)
2.1 測距子程序設(shè)計(jì)
根據(jù)位差超聲波傳感器的時序原理圖,對C51單片機(jī)內(nèi)部定時/計(jì)數(shù)器編程,實(shí)現(xiàn)對前方物體距離的測量并將測量結(jié)果在LCD模塊上顯示。測距子程序的基本設(shè)計(jì)算法,用流程圖表示如圖4所示。
程序設(shè)計(jì)思路主要分為2步:
1)根據(jù)位差超聲波傳感器的控制時序圖(圖3),啟動位差超聲波距離傳感器,即通過單片機(jī)編程,給超聲波傳感器的信號引腳提供一個持續(xù)時間為5μs的高電平,然后拉低信號引腳750μs,這樣位差超聲波傳感器就被啟動,發(fā)出超聲爆裂,與此同時,啟動單片機(jī)的定時器開始計(jì)數(shù),當(dāng)超聲波遇到物體時會立即反射回來,位差超聲波傳感器的接收器接到回波時,會自動拉低其信號引腳的電平,單片機(jī)查詢到此引腳的電平下降沿到來時停止定時器計(jì)數(shù),此時定時器計(jì)數(shù)值就間接反應(yīng)了超聲波從反射到返回所經(jīng)歷的時間。
2)讀出定時器的計(jì)數(shù)值除以2,便得到超聲波在遇到被測物體返回的時間,根據(jù):距離=速度×時間,就可以計(jì)算出前方物體的距離,因超聲波在常溫下的空氣介質(zhì)中傳播的速度大約為344 m/s,即29.034μs超聲波能傳播1 cm,具體編程時在程序中用語句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時,它會向左拐改變行進(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)行時關(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)前方有物體時,在LCD顯示屏上實(shí)時準(zhǔn)確地顯示出小車和前方物體之間的距離值;當(dāng)小車距前方物體小于程序設(shè)定的距離閾值時,小車掉轉(zhuǎn)方向繼續(xù)前進(jìn),經(jīng)反復(fù)實(shí)驗(yàn)表明:位差超聲波距離傳感器在下列情況下不能精確地測量距離,如圖6所示。
1)與物體距離大于3 m當(dāng)被測物體距離智能玩具機(jī)器人3 m之外時,如圖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),但其測量精度受到位差超聲波傳感器的最大測量距離以及與被測物體反射角等的限制。