摘要:超聲波傳感器是利用超聲波的特性研制而成的傳感器,它在非接觸性測量方面應(yīng)用非常廣泛,筆者根據(jù)智能玩具機器人的距離感知系統(tǒng)的軟硬件設(shè)計過程,介紹了位差超聲波傳感器在智能玩具機器人中的應(yīng)用,給出了位差超聲波傳感器與單片機系統(tǒng)的硬件電路接口和距離檢測軟件的編程思路,并通過實驗,得出了其測量精度與測量距離以及與被測物體反射角之間的關(guān)系。目前國內(nèi)生產(chǎn)的電子玩具技術(shù)含量較低,由于不具備智能化,利潤空間小,受歡迎程度低。近年來,伴隨計算機技術(shù)的高速發(fā)展,智能控制器的發(fā)展迅速,一些典型的智能玩具如輪式移動機器人在部分院校教學(xué)中得到推廣,因為智能玩具機器人是一個典型的機電一體化系統(tǒng),它融合制造技術(shù)、機械、電子、傳感器、計算機和人工智能等眾多先進(jìn)技術(shù),是進(jìn)行工程訓(xùn)練、教學(xué)實驗和研究的理想平臺,在電子學(xué)教學(xué)領(lǐng)域中有著諸多的研究價值。
傳感器是智能機器人獲取外界數(shù)據(jù)的"感知系統(tǒng)",離開智能傳感器的機器人大多是些功能單一,不具備思維能力,有些甚至是底盤基座固定式的,使得這些機器人只能固定在某一位置按照事先設(shè)定動作進(jìn)行機械式的重復(fù)操作,其應(yīng)用范圍僅限于工業(yè)生產(chǎn)中的重復(fù)性工作,不便于普及和推廣,可見基于傳感器的智能控制器在實現(xiàn)玩具機器人的智能化的作用中不可或缺,筆者介紹了一種基于超聲波原理的位差超聲波傳感器在智能玩具教育機器人中的應(yīng)用,通過較為具體的設(shè)計過程介紹了智能玩具機器人距離測試系統(tǒng)的軟硬件設(shè)計方法,并對位差超聲波傳感器的性能指標(biāo)和一些關(guān)鍵技術(shù)作較深入地探討,提出了一些編程控制技巧及算法。
1 硬件設(shè)計
采用"MCU+傳感器+顯示設(shè)備+執(zhí)行機構(gòu)"的總體設(shè)計方案,要求MCU對非接觸式傳感器獲取的外部距離信息進(jìn)行計算轉(zhuǎn)換,將得出的智能玩具機器人與前方障礙物的距離值送到顯示設(shè)備顯示,并根據(jù)程序設(shè)定的距離閾值控制智能玩具機器人實現(xiàn)自動導(dǎo)航功能,系統(tǒng)整體框圖如圖1所示。
圖1 系統(tǒng)硬件框圖
其中系統(tǒng)MCU采用目前性價比較高的AT89C51單片機,利用"位差超聲波傳感器"作為距離傳感器,以非接觸的形式測量前方物體的距離;顯示設(shè)備采用LCD1602液晶顯示模塊;執(zhí)行機構(gòu)采用PARALLAX公司生產(chǎn)的連續(xù)旋轉(zhuǎn)伺服電機,其優(yōu)點是編程控制方便且不需額外增加驅(qū)動電路,圖1中超聲波傳感器測距的工作原理如圖2所示。
圖2 超聲波傳感器測距的工作原理
超聲波傳感器與單片機系統(tǒng)進(jìn)行接口構(gòu)成距離檢測的硬件系統(tǒng),在系統(tǒng)軟件的控制下,單片機向位差超聲波傳感器發(fā)送的一個觸發(fā)脈沖,位差超聲波傳感器被此脈沖觸發(fā)后會產(chǎn)生一道短40 kHz的脈沖電信號,此40 kHz的脈沖電信號通過激勵換能器處理以后,將轉(zhuǎn)換成機械振動的能量,其振動頻率約在20 kHz以上,由此形成了超聲波,該信號經(jīng)錐形"輻射口"處將超聲波信號在空氣中以每秒約1 130英尺的速度向外發(fā)射出去。當(dāng)發(fā)射出去的超聲波信號遇到障礙物以后,立即被反射回來。接收器接收到反射回來的超聲波信號后,通過其內(nèi)部轉(zhuǎn)換,將超聲波變成微弱的電振蕩,并將信號進(jìn)行放大,就可得到所需的脈沖信號,此脈沖信號再返回給單片機,表示回波被探測,這個脈沖寬度就是對應(yīng)于爆裂回聲返回到傳感器所需時間,其時序如圖3所示。
圖3 位差超聲波傳感器工作時序圖
2 軟件設(shè)計
2.1 測距子程序設(shè)計
根據(jù)位差超聲波傳感器的時序原理圖,對C51單片機內(nèi)部定時/計數(shù)器編程,實現(xiàn)對前方物體距離的測量并將測量結(jié)果在LCD模塊上顯示。測距子程序的基本設(shè)計算法,用流程圖表示如圖4所示。
圖4 測距子程序流程圖
程序設(shè)計思路主要分為2步:
1)根據(jù)位差超聲波傳感器的控制時序圖(圖3),啟動位差超聲波距離傳感器,即通過單片機編程,給超聲波傳感器的信號引腳提供一個持續(xù)時間為5μs的高電平,然后拉低信號引腳750μs,這樣位差超聲波傳感器就被啟動,發(fā)出超聲爆裂,與此同時,啟動單片機的定時器開始計數(shù),當(dāng)超聲波遇到物體時會立即反射回來,位差超聲波傳感器的接收器接到回波時,會自動拉低其信號引腳的電平,單片機查詢到此引腳的電平下降沿到來時停止定時器計數(shù),此時定時器計數(shù)值就間接反應(yīng)了超聲波從反射到返回所經(jīng)歷的時間。
2)讀出定時器的計數(shù)值除以2,便得到超聲波在遇到被測物體返回的時間,根據(jù):距離=速度×時間,就可以計算出前方物體的距離,因超聲波在常溫下的空氣介質(zhì)中傳播的速度大約為344 m/s,即29.034μs超聲波能傳播1 cm,具體編程時在程序中用語句x=count/29.034來計算距離值,獲得被測距離值后,調(diào)用LCD顯示函數(shù)將距離值在LCD模塊上顯示出來。
2.2 超聲波導(dǎo)航程序設(shè)計
利用位差超聲波距離傳感器測得的"距離"信息,可以引導(dǎo)智能玩具機器人實現(xiàn)避障行走。當(dāng)智能玩具機器人距離前面障礙物小于20 cm時,它會向左拐改變行進(jìn)方向,避免與物體碰撞,下面簡要分析以超聲波導(dǎo)航程序的基本設(shè)計思路,程序設(shè)計算法用流程圖表示如圖5所示。
圖5 超聲波導(dǎo)航程序流程圖
程序通過反復(fù)調(diào)用超聲波測距子程序,獲取智能玩具機器人前方被測物體的距離值;判斷距離是否在設(shè)定閾值以內(nèi),若大于程序設(shè)定的距離閾值,調(diào)用函數(shù)Forward(),驅(qū)動智能玩具機器人前進(jìn);若小于程序設(shè)定的距離閾值,調(diào)用Backward(),驅(qū)動智能玩具機器人后退一段距離;接著又調(diào)用Left_Turn(),驅(qū)動智能玩具機器人左拐后程序再返回重復(fù)以上過程。
3 系統(tǒng)調(diào)試
3.1 硬件系統(tǒng)的調(diào)試
硬件系統(tǒng)的制作與調(diào)試相對簡單,其具體過程簡述如下:首先根據(jù)硬件設(shè)計原理圖,采用Protel DXP2004軟件合理布局和布線,設(shè)計出智能玩具機器人的控制器PCB,然后用制板設(shè)備制作出PCB樣板;根據(jù)元器件清單,在PCB上安裝焊接好元器件,連接好直流伺服電機,將測試軟件下載到智能玩具控制器的單片機存儲器,接通電源開機運行,用示波器測試觀察控制器的單片機最小系統(tǒng)運行時關(guān)鍵點信號波形是否正常。
3.2 系統(tǒng)整體調(diào)試
根據(jù)上述程序設(shè)計思路,在Keil C編譯環(huán)境中用C語言編寫程序代碼,編譯程序,將生成的HEX文件燒寫到控制板上的單片機程序存儲器,開機運行,智能玩具機器人按程序設(shè)定運行模式前進(jìn),當(dāng)前方有物體時,在LCD顯示屏上實時準(zhǔn)確地顯示出小車和前方物體之間的距離值;當(dāng)小車距前方物體小于程序設(shè)定的距離閾值時,小車掉轉(zhuǎn)方向繼續(xù)前進(jìn),經(jīng)反復(fù)實驗表明:位差超聲波距離傳感器在下列情況下不能精確地測量距離,如圖6所示。
圖6 位差超聲波距離傳感器不能精確測量的三種情況
1)與物體距離大于3 m當(dāng)被測物體距離智能玩具機器人3 m之外時,如圖6(a)所示,因位差超聲波傳感器的發(fā)射功率不夠,反射回來的信號太弱,導(dǎo)致LCD上顯示出的距離值不能反映實際距離值。
2)被測物體不在正前方 當(dāng)被測物體不在智能玩具機器人正前方,如圖6(b)所示,而是有一定的偏角,因與物體的表面形成的反射角度太小,使傳感器接收器接收不到反射回來的信號,導(dǎo)致LCD上顯示出的距離值不能反映實際距離值。
3)前方被測物體橫截面太小 當(dāng)前方被測物體體積太小或是橫截面太小,如圖6(c)所示,因為沒有足夠強度的信號返回到傳感器,導(dǎo)致LCD上顯示出的距離值不能反映實際距離值。
4 結(jié)束語
超聲波傳感器在非接觸性測量方面的應(yīng)用非常廣泛,可用于檢測液體水位(特別是具有腐蝕性的液體,如硫酸、硝酸液體),汽車倒車防撞系統(tǒng),金屬(或非金屬)探傷,機器人感知系統(tǒng)設(shè)計等,利用位差超聲波傳感器與51單片機構(gòu)成智能玩具機器人的"距離感知系統(tǒng)",具有電路接口簡單,成本低廉,穩(wěn)定性好等特點,但其測量精度受到位差超聲波傳感器的最大測量距離以及與被測物體反射角等的限制。