超聲波測距傳感器以其測量精度高、響應快和價格低廉而廣泛應用在工業(yè)現場測距、移動機器人導航和定位等場合。超聲波測距傳感器常用的方式是1個發(fā)射頭對應1個接收頭,也有多個發(fā)射頭對應1個接收頭。它們共同之處是:每個接收頭只測量一個位置,這個位置就是除盲區(qū)內因發(fā)射的超聲波旁瓣引起的接收信號超聲波包絡峰值外,第1個接收信號超聲波包絡峰值對應的距離。在機器人自主導航避障時,機器人只關心最近障礙物的距離,是能夠完成自主避障的。但是在機器人定位時,尤其在動態(tài)環(huán)境下,1個接收頭同時測量多個距離,能夠更多地描述環(huán)境信息,這對機器人用超聲波定位具有重要意義。
1超聲波
1. 1超聲波測距原理
超聲波測距原理比較簡單,一般是采用時差法。即:通過檢測發(fā)射的超聲波與其遇到障礙物后產生回波之間的時間差Δt ,求出障礙物的距離d ,計算公式為:d = cΔt/ 2,其中:
c 為超聲波波速,T1為環(huán)境攝氏溫度。
1. 2發(fā)射信號超聲波包絡
在發(fā)射頭兩端加40kHZ 的矩形脈沖電壓,壓電晶體把電能轉變成機械能,帶動其上振動板運動,見圖1. 振動板的固有頻率是40kHZ,由于共振,振動板很快起振,然后穩(wěn)定,脈沖電壓撤銷,振動板作阻尼振蕩衰減。若振動板長時間工作在最大振幅狀態(tài),即振動板新增能量與其損耗能量相等,這樣產生的超聲波能量大,有利于提高信噪比,但是接收信號超聲波包絡從起振到峰值的時間將變長(放大器增益小,不出現削頂的情況下),不利于閾值選擇,誤差變大,也不利于第二個位置的測量,另外盲區(qū)也會增大。振動板振動時,空氣、壓電晶體(起振時是激勵)等消耗振動板能量,其中受空氣阻力消耗的能量轉變成發(fā)射超聲波。壓電晶體激勵撤銷,則振動板振動作阻尼呈指數關系衰減。把振動板簡化成是一個彈簧振子,設振動板在一個正弦周期(T = 25μs)內是標準正弦波,則在發(fā)射頭振動板運動周期數N≤發(fā)射頭激勵脈沖數N時,發(fā)射頭振動板運動滿足:
x= a(n)sinωt(1)
式中t ∈[ (N- 1)T , nT ] , a(n)是第N個周期內的振幅。
k 是常數,E(n)是第N個周期內振動板的機械能。
a是一個與衰減有關的常系數,Ef (n)第N個周期內振動板損耗的機械能。
ΔE 是壓電晶片每次施加的能量。
在N> N時,發(fā)射頭振動板運動能量滿足:
1. 3接收信號超聲波包絡
發(fā)射頭產生的超聲波遇到不同介質就會產生回波,接收頭把回波轉變成電能,產生接收信號。現分析超聲波垂直入射到墻壁面時的接收信號,接收信號超聲波包絡由起振階段和衰減階段兩部分組成,如圖1。
接收信號與回波超聲包絡的各正弦波幅值關系是:
式中W R 是接收信號包絡峰值,W Echo 是回波包絡峰值,H 是回波的單位沖擊響應。
圖1實際接收信號(N= 5)
從圖1中可看出,接受信號包絡從起振到峰值的時間要小于從峰值衰減至噪聲幅值的時間。實際總長度接近1. 5 ~ 2ms ,而從起振到包絡峰值只需250μs 左右,即9 ~ 12個T , T = 25μs.
根據發(fā)射的超聲波能量特點,得出接收信號每個周期能量的表達式,設每個周期內的正弦波是標準正弦波且發(fā)射頭振動板尚未達穩(wěn)定振動狀態(tài)。
N是發(fā)射頭激勵脈沖數。
由(6)、(7)式知:在N, a一定的情況下,每個反射面產生的回波作用接收頭得到的接收信號經歸一化后是相同的。為了便于取閾值,分析接收信號包絡的特性與n、N的關系是必要的。首先找出定值a,方法是取N= 5 , a值在一定范圍內變化得到多幅仿真圖,經比較a= 5 000/ s 時得到的圖2與圖1接近。根據得到的a值可仿真N= 12時的接收信號,見圖3.
圖2 接收信號仿真(N= 5 , a= 5 000/ s)
圖3 接收信號仿真(N= 12, a= 5 000/ s)
2 閾值和分辨率
閾值的選取,決定本測距系統的測量精度。由于回波的能量大小受入射角、反射面大小、形狀和材質、空氣的濕度和溫度等因素決定,為了較精確地測量文獻中機器人與墻壁之間的距離,下面只針對超聲波垂直入射墻壁,接受信號的大小進行分析。
在測量時,一旦有干擾物擋住超聲波到墻壁的行進路徑,則墻壁返回的信號將減弱,過高的閾值可能測不到墻壁回波信號,動態(tài)閾值因無規(guī)律可循而無法使用,故此閾值采用小固定值,因接收信號中的噪聲峰值較穩(wěn)定,固定閾值取3~5 倍噪聲峰值。由于墻壁回波信號不確定地高低變化,在標定測量參數時,用示波器采集信號,以接收信號包絡峰值的0. 5 倍處(即圖2中N= 4 或5 處的時間)作為距離信息。這樣處理的目的是:即使接收信號過強或過弱,測距誤差始終在3~5 cm 以內。當N過大時,盲區(qū)會增大同時測量精度也會下降,見圖3.
多目標測量要能區(qū)分出兩個不同目標。由于閾值取得小,則系統的分辨能力很差,從圖2上可看出接收信號經1. 5 ms 后正弦幅值是包絡峰值的0. 015倍。圖2的波形只有在超聲波垂直入射墻壁時才能得到,在大多數情況下接收信號從起振到包絡峰值基本固定,但是接收信號從包絡峰值以后各不一樣,一般從起振經1. 5 ms~2ms 后都會降到閾值以下。
在測量墻壁距離時,只要干擾物與墻壁保持30cm以上距離則墻壁距離能較精確獲得。
3 系統硬件
C8051系列單片機具有豐富的模擬、數字外設和多種總線接口,支持在線編程,是很多測控系統的首選。系統硬件框圖如圖4 ,C8051F021有5 個定時器,5 個PCa通道,測4 個方向的超聲波傳感器發(fā)射頭可共用1個40kHz 方波信號,實行同步發(fā)射;4 個接收頭可接入PCa的4 個通道。信號放大電路的放大倍數在800左右,即使接收信號經過帶通濾波器,噪聲峰值也達30mv.
圖4 單接收頭多目標測量電路框圖
圖5 用示波器標定系統(只有一個發(fā)射頭和一個接收頭)
4 系統軟件
系統軟件基本構架如下:
void maiN
{ cONfig ; Ea= 1; While (1){} ; }
void time0_inter interrupt 1{}
void time1_inter interrupt 3{}
void time2_inter interrupt 5 {}
void time3_inter interrupt 14 {}
void time4_inter interrupt 16 {}
void PCA_inter interrupt 9 {}
初始化程序config : I/ O 交叉開關配置;使用外部時鐘,指定系統時鐘;time 0~4 中斷使能,其中time 0溢出中斷發(fā)生,產生40kHz 方波信號輸出;PLa中斷開啟。
中斷函數time0_inter :產生5 個40kHz 方波信號輸出后關閉time0中斷,TF0= 0; PLa溢出、邊緣捕捉中斷開啟。
中斷函數PCA_inter :若是溢出中斷發(fā)生(30ms),則關閉PCA_inter 中斷,CF = 0,開啟time0中斷;若是CCFN= 1,則記下定時器時間(與初值相減后代入標定式得距離),給定time N計時初值并啟動time N溢出中斷(2ms), 關閉CCFN中斷,CCFN= 0.
中斷函數time1_inter ~ time4 _inter : 當time N中斷發(fā)生則開啟CCFN中斷,關閉time N中斷,TFN= 0.
5 結語
本文對單個接收頭在一次采樣時間(30ms)內測量多個目標進行了嘗試,仿真并分析了接收信號波形,用0. 5倍包絡峰值標定而用小閾值測量,在2個目標與接收頭距離之差大于30cm 以上時能較精確測量出2個目標,誤差不超過2cm.
由于一次能在同一時刻測多個距離,增大了超聲波傳感器捕獲的信息量,移動機器人裝配了該傳感器能在人員不是密集的動態(tài)環(huán)境下根據4面墻壁定位。