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