隋美麗,劉敏杰,成林,王谷娜
(北京電子科技職業學院 汽車工程學院,北京 100071)
超聲測距傳感器因其價格較低,抗干擾能力強,使用方便,在介質中傳播距離短等優點作為倒車傳感器廣泛使用[1][2]。超聲測距技術是采用超聲傳感器發送超聲波,并測量汽車泊車或轉彎時汽車尾部與障礙物之間反射回波的時間,計算出距離,同時,通過蜂鳴器報警提醒駕駛員,以此了解汽車行駛的危險程度,減少倒車引起的事故發生率[3]。
目前在中高端轎車上廣泛應用倒車系統呈現智能化、可視化和集成化的發展,而在中低端車上鮮有應用。倒車雷達系統因其集成度高、測量范圍廣、成本低等特點,可應用于經濟型家庭轎車中[4]。本文采用AVR單片機系列中Atmega16作為主控芯片,超聲波測距為距離測量模塊,數碼管為顯示模塊,搭建超聲波雷達測距系統。該系統可實現距離顯示和距離不同蜂鳴器發出不同頻率的報警聲,精度達到厘米級。該設計還可以應用在機器人躲避障礙物、盲人導航、車間設備定位等系統中[5][6]。
超聲波的產生是在電壓激勵作用下換能晶片發生振動而產生頻率高于20kHz的聲波,振動頻率高于聲波的機械波,該波具有頻率高、波長短、方向性好的特點,超聲波傳感器是利用超聲波這一特性制成的傳感器。目前,渡越時間法檢測原理比相位檢測法和聲波檢測法具有檢測簡單,反射回波干擾少的特點,多被應用到超聲波測距的基本原理中[5]。測試原理是通過定時器從超聲波發射器發出超聲波開始計時到超聲波接收器接到反射回波結束,通過計時器記錄的時間和超聲波在空氣中傳播的速度,就可以計算出發射點距障礙物之間的距離。
為實現到整個系統的簡單、方便性,控制模塊采用ATmega16作為主控制芯片,該芯片有存儲空間大,擴展性強,使用性靈活,操作方便,價格低廉的特點[7]。ATmega16單片機向超聲波測距模塊發送測距指令,超波測距模塊的發射裝置和接收裝置開始工作,并將發射和接收的信號時間差返回到主控芯片,主控芯片根據返回的檢測信號計算車尾到障礙的距離,并通過數碼管將距離顯示出來,當車尾到障礙的距離少于30CM時,給蜂鳴器發動報警指令,蜂鳴器開始報警,隨著距離越來越近,蜂鳴聲的頻率越來越高。超聲波測距總體框圖如圖1所示。

圖1 超聲波測距總體框圖
本超聲波測距系統硬件組單片機及其控制電路、超聲波測距模塊、數碼管顯示模塊以及蜂鳴器報警模塊組成,并通過外圍電路的設計,完成超聲測距的功能。
2.2.1 ATmega16 單片機及其控制電路
ATmega16單片機具有功耗低、數據吞吐率高、低成本和應用靈活等特點,廣泛地應用到許多嵌入式控制系統中[8]。系統采用ATmega16芯片的PC0口是數據傳輸端,輸出方波信號使超聲波模塊可以正常工作,PC1口是數據接收端,用于接收超聲波模塊返回的信號,芯片的PC0口接在超聲波模塊的Trig端,ATmega16的PC1口接在超聲波模塊的Echo端;蜂鳴器模塊則在單片機中接在 PD5端口;PB4、PB5、PB6、PB7控制數碼管顯示,PB0、PB1、PB2、PB3控制數碼管刷新接口。
2.2.2 超射波測距模塊
超射波測距模塊的型號為US-100,可實現非接觸測距,范圍為2cm-4m,電壓輸入范圍2.4-5.5v,靜態功耗低于2mA。該模塊包含超聲波發射、接受和測量發射到返回所度過時間的功能,自帶溫度傳感器修正測距結果的功能,通過Atmega16單片機端C口的I/O控制Trig觸發一個10μs以上的高電平后,模塊自動發動8個40KHz的方波,然后檢測是否有返回的聲波,當有回響信號返回時,回響信號輸出高電平,并用高電平的持續時間計量聲波度過的時間,就可以計量測試的距離。
2.2.3 數碼管顯示模塊及其電路
發光二極管(LED)是一種極低功耗顯示器,本系統采用的LED顯示模塊,LED數碼管里有八個發光二極管和一個小數點顯示,分別為a、b、c、d、e、f、g和dp,每個發光二極管將一根電極引到外部的引腳上,另一只引腳引到外部連接在一起記作公共端(COM)。在數碼管的顯示方式上采用了靜態顯示的方式,該數碼管通斷是通過三極管實現的。
2.2.4 蜂鳴器報警模塊及其電路
在報警模塊的電路中,利用三極管開關作用控制揚聲器的報警,并根據障礙物的距離不同,改變揚聲器發出的聲音頻率,揚聲器控制電路如圖6所示,其中電阻R6是防止電流過大燒壞三極管的保護作用,該模塊工作電壓5V。
2.2.5 下載接口電路
設計中采用ISP協議下載接口來燒錄程序。采用標準SPI(serial peripheral interface串行外圍設備接口SPI總線技術)接口,該接口采用主從方式工作,一般使用4條線:由主機產生的串行時鐘線(SCK)、主機輸入從機輸出數據線MISO、主機輸出從機輸入數據線MOSI和由主機控制的低電平有效從機選擇線SS。根據這4個端口和AVRmega16端口,所連接的端口為MISO,VCC,SCK,MOSI,RESET,GND,下載程序的時候使用的是com2口。
本設計使用Atmel Studio 6.0的開發環境,整個系統設計的關鍵是測量距離,影響測量精度的主要因素是余波干擾,設計程序的時候添加算法,減少和消除干擾。當芯片收到聲波時自動判斷是否為發射聲波的衍射聲波,如果是芯片中的程序就會自動忽略掉這段信號,然后繼續等待檢測在這個工作周期內是否有效聲波反射回來。有的話處理信號,如果沒有就進行一次新的測量,減少余波信號干擾。軟件設計流程圖如圖2所示。

圖2 超聲波測距流程圖
ATmega16芯片中存在T0、T1、T2三個時鐘同時工作,時鐘 T0控制超聲波的發生時效,控制晶體管刷新頻率,及時地觀測倒車距離并接收到倒車報警信息;時鐘 T1控制蜂鳴器報警響聲頻率,在不同的距離發出不同頻率的聲響,時鐘 T2用來計量超聲波發射和反射回波的時間,然后用芯片通過公式計算出實際的距離,聲速值為340 m/s。
將程序寫入到AVR芯片和US-100型的超聲波測距傳感器模塊為主體組裝構成超聲波測距模塊中心頻率是基本穩定在40 kHz。進行實際測量得到的結果如表1所示。

表1 測試結果
由表1可以看出系統計算測量的距離和實際距離具有一定誤差,產生的原因可能是:環境的溫度所引起的誤差,溫差比較大的時候兩次測量的結果誤差比較大;不同障礙物表面材料的不同介質引起的誤差,表面粗糙的障礙物介質要比光滑介質的測量結果要誤差要大,由于障礙物的發射面比較粗糙時,會使發射信號散射開,導致回波信號減弱;超聲波模塊的感應角的影響,兩個超聲波探頭即發射探頭和接收探頭和障礙物之間存在一個幾何角度,聲波反射到探頭中會存在一定的角度,當這個角度超過一定值時,就會是測量的誤差較大或根本檢測不到回波信號,當障礙物的距離較小時,這個誤差會更加明顯;余波信號的影響,在測量時有一部分的聲波是從發射探頭直接轉收到接收探頭的,以上聲波即余波信號,余波對測量的干擾是比較大的。
利用ATmega16芯片為主控芯片的倒車測距系統,使用對距離的精確要求并不是很高,主要起到警報的作用家庭轎車根據測試結果表明系統符合設計要求,測量記錄范圍為2-100cm,測量精度為厘米級,報警開始距離為30cm,低于10cm時,報警聲音持續蜂鳴,且聲音大,該測試系統可有效地提高駕駛員的注意力,并可用于機器人躲避障礙物、盲人導航、車間設備定位等系統中,符合設計要求。
該系統在設計過程中存在測量誤差,這種誤差的消除可選用采用溫度傳感器以外,可選用發射能力強、散射小的探頭。