一、引言 由于超聲波指向性強,能量消耗緩慢,在介質中傳播的距離較遠,因而超聲波經常用于距離的測量,如測距儀和物位測量儀等都可以通過超聲波來實現。利用超聲波檢測往往比較迅速、方便、計算簡單、易于做到實時控制,并且在測量精度方面能達到工業實用的要求,因此在移動機器人的研制上也得到了廣泛的應用。 為了使移動機器人能自動避障行走,就必須裝備測距系統,以使其及時獲取距障礙物的距離信息(距離和方向)。本文所介紹的三方向(前、左、右)超聲波測距系統,就是為機器人了解其前方、左側和右側的環境而提供一個運動距離信息。 二、 超聲波測距原理 1、 超聲波發生器 為了研究和利用超聲波,人們已經設計和制成了許多超聲波發生器。總體上講,超聲波發生器可以分為兩大類:一類是用電氣方式產生超聲波,一類是用機械方式產生超聲波。電氣方式包括壓電型、磁致伸縮型和電動型等;機械方式有加爾統笛、液哨和氣流旋笛等。它們所產生的超聲波的頻率、功率和聲波特性各不相同,因而用途也各不相同。目前較為常用的是壓電式超聲波發生器。 2、壓電式超聲波發生器原理 壓電式超聲波發生器實際上是利用壓電晶體的諧振來工作的。超聲波發生器內部結構如圖1所示,它有兩個壓電晶片和一個共振板。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片將會發生共振,并帶動共振板振動,便產生超聲波。反之,如果兩電極間未外加電壓,當共振板接收到超聲波時,將壓迫壓電晶片作振動,將機械能轉換為電信號,這時它就成為超聲波接收器了。 3、超聲波測距原理 超聲波發射器向某一方向發射超聲波,在發射時刻的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。超聲波在空氣中的傳播速度為340m/s,根據計時器記錄的時間t,就可以計算出發射點距障礙物的距離(s),即:s=340t/2 圖1 超聲波傳感器結構 這就是所謂的時間差測距法。 三、 超聲波測距系統的電路設計 圖2 超聲波測距電路原理圖 本系統的特點是利用單片機控制超聲波的發射和對超聲波自發射至接收往返時間的計時,單片機選用8751,經濟易用,且片內有4K的ROM,便于編程。電路原理圖如圖2所示。其中只畫出前方測距電路的接線圖,左側和右側測距電路與前方測距電路相同,故省略之。 1、40kHz 脈沖的產生與超聲波發射 測距系統中的超聲波傳感器采用UCM40的壓電陶瓷傳感器,它的工作電壓是40kHz的脈沖信號,這由單片機執行下面程序來產生。 puzel: mov 14h, #12h;超聲波發射持續200ms here: cpl p1.0 ;輸出40kHz方波 nop ; nop ; nop ; djnz 14h,here; ret 前方測距電路的輸入端接單片機P1.0端口,單片機執行上面的程序后,在P1.0 端口輸出一?0kHz的脈沖信號,經過三極管T放大,驅動超聲波發射頭UCM40T,發出40kHz的脈沖超聲波,且持續發射200ms。右側和左側測距電路的輸入端分別接P1.1和P1.2端口,工作原理與前方測距電路相同。 2、超聲波的接收與處理 接收頭采用與發射頭配對的UCM40R,將超聲波調制脈沖變為交變電壓信號,經運算放大器IC1A和IC1B兩極放大后加至IC2。IC2是帶有鎖定環的音頻譯碼集成塊LM567,內部的壓控振蕩器的中心頻率f0=1/1.1R8C3,電容C4決定其鎖定帶寬。調節R8在發射的載頻上,則LM567輸入信號大于25mV,輸出端8腳由高電平躍變為低電平,作為中斷請求信號,送至單片機處理。 前方測距電路的輸出端接單片機INT0端口,中斷優先級最高,左、右測距電路的輸出通過與門IC3A的輸出接單片機INT1端口,同時單片機P1.3和P1.4接到IC3A的輸入端,中斷源的識別由程序查詢來處理,中斷優先級為先右后左。部分源程序如下: receive1:push psw push acc clr ex1 ;關外部中斷1 jnb p1.1, right ;P1.1引腳為0,轉至右測距電路中斷服務程序 jnb p1.2, left ;P1.2引腳為0,轉至左測距電路中斷服務程序 return:SETB EX1;開外部中斷1 pop? acc pop? psw reti right: ...? ;右測距電路中斷服務程序入口 ? ajmp? return left:... ;左測距電路中斷服務程序入口 ? ajmp? return 3、計算超聲波傳播時間 在啟動發射電路的同時啟動單片機內部的定時器T0,利用定時器的計數功能記錄超聲波發射的時間和收到反射波的時間。當收到超聲波反射波時,接收電路輸出端產生一個負跳變,在INT0或INT1端產生一個中斷請求信號,單片機響應外部中斷請求,執行外部中斷服務子程序,讀取時間差,計算距離。其部分源程序如下: RECEIVE0:PUSH PSW PUSH ACC CLR EX0 ;關外部中斷0 ? MOV R7, TH0 ;讀取時間值 MOV R6, TL0? CLR C MOV A, R6 SUBB A, #0BBH;計算時間差 MOV 31H, A ;存儲結果 MOV A, R7 SUBB A, #3CH MOV 30H, A? SETB EX0 ;開外部中斷0 POP ACC POP PSW RETI 四、超聲波測距系統的軟件設計 軟件分為兩部分,主程序和中斷服務程序,如圖3(a)(b)(c) 所示。主程序完成初始化工作、各路超聲波發射和接收順序的控制。 定時中斷服務子程序完成三方向超聲波的輪流發射,外部中斷服務子程序主要完成時間值的讀取、距離計算、結果的輸出等工作。 五、結論 對所要求測量范圍30cm"200cm內的平面物體做了多次測量發現,其最大誤差為0.5cm,且重復性好。可見基于單片機設計的超聲波測距系統具有硬件結構簡單、工作可靠、測量誤差小等特點。因此,它不僅可用于移動機器人,還可用在其它檢測系統中。 |