李昊林,徐 磊,潘少杰,王祿祥,蔡大維
(南京林業(yè)大學(xué) 信息科學(xué)技術(shù)學(xué)院, 江蘇 南京 210037)
目前,市場上測距的方法多種多樣,先后出現(xiàn)了激光、微波雷達、紅外線及超聲波測距方式[1]。其中,激光測距精度較高但存在易受環(huán)境因素影響、成本較高、維護不便等缺點;微波雷達的造價則非常高昂,一般用于某些特定場合;紅外測距雖然簡單、安全、易制,但精度較低、方向性差。而超聲波測距幾乎不受被測物體顏色、光線、粉塵、煙霧、電磁干擾和有毒氣體的影響,而且價格低廉、使用方便,因此超聲波測距作為一種典型的非接觸式測距方式,擁有其他測距方式無可比擬的優(yōu)點,受到了人們廣泛的關(guān)注和研究。在物位測量、機器人避障、倒車雷達、航海測深等許多領(lǐng)域,超聲波測距技術(shù)都得到了非常普遍的應(yīng)用[2]。
本文采用測量超聲波在介質(zhì)中傳播時間的方式來計算距離,即超聲波傳播速度為v,傳播時間為t,距離d=v*t。若采用收發(fā)一體的超聲波換能器,則實際距離還需除以2,即距離d=v*t/2[3]。由此可知超聲波測距必須確定聲波在介質(zhì)中的傳播速度以及準確測量聲波的傳播時間。而聲波在空氣中的傳播速度與溫度、濕度、氣壓等因素有關(guān),通常情況下主要是受到溫度影響,聲波在空氣中的傳播速度可近似表示為:
(1)
式中:v0=331.4 m/s;te為環(huán)境溫度,℃。
聲波的傳播時間一般采用“閥值法”來測算,其基本原理是捕獲回波信號的幅值第一次超過所設(shè)定閾值的瞬間,但回波信號幅值超過閾值的時間會因波形幅值的不同而不同,從而造成測量上的誤差[5]。故而采用動態(tài)閾值法,又稱作包絡(luò)線峰值檢測法,其檢測依據(jù)為接收信號峰值所在的相對位置不隨待測距離的改變而改變,可以較好地彌補此誤差[6]。
本系統(tǒng)分為上位機平臺與下位機,下位機主要由微控制器、發(fā)射電路、接收電路、測溫模塊、通訊模塊、電源模塊等組成。微控制器負責產(chǎn)生200 kHz驅(qū)動信號、采集回波、數(shù)據(jù)處理等任務(wù),最后將相關(guān)數(shù)據(jù)發(fā)送到上位機,其總體結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
單片機輸出兩路相位相反,頻率同為200 kHz,幅值3.3 V的方波,經(jīng)三極管導(dǎo)通后,電壓幅值為5 V,考慮到后期拓展多通道超聲波換能器,故采用CD4052開關(guān)選擇輸出,之后經(jīng)74LS08與門輸出,其原理圖如圖2所示。
74LS08與門經(jīng)N溝道MOS場效應(yīng)晶體管2SK2937連接至中心抽頭變壓器,實現(xiàn)輸出±15 V電壓方波驅(qū)動超聲波換能器,其原理圖如圖3所示。
圖2 超聲波通道選擇電路圖
圖3 超聲波發(fā)射電路圖
在接收回路中,采用ML1350集成運放芯片對回波信號進行放大和整形,而且通過調(diào)節(jié)AGC電壓可以改變增益以適應(yīng)不同量程的回波接收需求。
程序通過TIM3輸出兩路互補200 kHz方波,發(fā)射完畢后均輸出高電平;采用ADC來采集收到的回波信號,ADC由TIM4觸發(fā),同時使用DMA進行ADC的數(shù)據(jù)采集。待回波數(shù)據(jù)采集完畢,遍歷存儲采集信號的數(shù)組,尋找到回波信號峰值,減去設(shè)定的參數(shù)由此確定閾值,再尋找到幅值第一次超出閾值時的數(shù)組位置,根據(jù)ADC采樣頻率可換算出開啟ADC采集后至回波信號幅值第一次超出閾值的時間,結(jié)合溫度補償,由此計算出距離,最后將處理后的值發(fā)送至上位機進行顯示。系統(tǒng)程序流程如圖4所示。
利用C#對上位機軟件進行編寫,在可視化界面上顯示距離及詳細圖表數(shù)據(jù),對回波信號強弱采用不同顏色進行區(qū)分。
下位機發(fā)射超聲波并接收回波,并將回波數(shù)據(jù)發(fā)送至上位機,每次的回波強弱采用不同顏色進行區(qū)分,回波色標從強至弱依次為紅、橙、黃、黃綠、綠、湖藍、淺藍、灰,小于一定幅值的回波信號進行隱藏,顯示白色,以便清晰觀察。每次回波信號顯示為最右側(cè)的從上至下的一條線,當下一次回波信號需要顯示時,該線自右向左移動,之后將最新的回波添加至最右側(cè),由此不斷向左移動回波構(gòu)成一幅動態(tài)圖像。
圖4 系統(tǒng)流程圖
運行結(jié)果如圖5所示,回波信號顯示在軟件界面左側(cè),中間以曲線圖的形式顯示每次回波信號,軟件接收到的全部信息顯示在界面文本框中,軟件右側(cè)為控制面板,用于程序的運行控制、參數(shù)調(diào)整、數(shù)據(jù)保存等。
圖5 上位機界面
在室溫下,采用平整混凝土墻壁作為反射面進行測量,使用鋼卷尺測量實際距離作為標稱值,其中卷尺精度1 mm,測量距離為該位置上3次測量數(shù)據(jù)的平均值。測試結(jié)果如表1所示。
表1 距離測量誤差數(shù)據(jù)對比
對數(shù)據(jù)進行分析,得到本次測試結(jié)果的最大偏差為0.2 cm,最大相對誤差為0.43%,平均相對誤差為0.31%,總體上達到了對精度的要求。
圖6 數(shù)據(jù)誤差分析圖
使用Matlab進行數(shù)據(jù)擬合并繪圖,如圖6所示,可知測量值與標稱值也有較好的線性關(guān)系,曲線擬合度高,誤差小。同時在上位機觀察到,當距離較近時,可清楚地觀察到二次回波甚至三次回波。
本文設(shè)計的超聲波測距裝置,經(jīng)過實驗測試,在一定范圍內(nèi)滿足了測距要求,工作可靠,測量精度較高,安裝方便,設(shè)計的上位機界面人機交互良好,實現(xiàn)了回波強度可視化,可應(yīng)用于工業(yè)非接觸測距等場合,具有很好的使用價值。