趙毅能,師文慶
(廣東海洋大學電子與信息工程學院,廣東湛江 524088)
從20 世紀開始,人們對于超聲波測距傳感器進行了大量的研究并推出了商用產品[1]。隨著社會的發展以及人們對測距要求的提高,超聲波測距技術自身也在不斷地完善和發展,使用超聲波測距儀的場合也越來越多,比如用常規測量的方法很難得到大部分曲面外形尺寸,但可以利用多個超聲波探頭進行多方位測距來實現對曲面尺寸的檢測[2-3],水下機器人在此基礎上可以繪制出水下地形圖像。超聲波測距作為一種基礎的檢測手段一直活躍于科學研究中。基于此,設計出一款工作穩定、成本低的多功能超聲波測距儀具有非常現實的意義。
近些年來,國內外研究學者對于超聲測距的研究關注點主要集中在如何擴大量程和提高測距精度上,原理以及線性度的創新研究還比較少[4],比如在回波信號處理方法和發射脈沖信號的選取上沒有突破性的進展。
由于超聲波測距儀功能比較單一,且因易受溫度影響,測距精度大大降低,限制了超聲波測距儀在高精度要求的測距場合的應用[5]。本文所介紹的超聲波測距方案采用渡越時間探測法同時引入溫度補償,即在計算出不同溫度情況下的聲速后,聯立測量的超聲波往返時間獲得距離,溫濕度檢測和聲光報警作為輔助功能可以拓寬應用場景。
本設計在檢測過程中,由于距離以及溫濕度的變化參數均在STC89C52 芯片可以接受的范圍內,微秒級的定時器精度帶來的微小誤差可忽略不計,因此STC89C52作為主控芯片能夠很好地滿足超聲測距系統的要求。
渡越時間探測法指的是超聲波發生器往某個方向發射超聲波,計時開始于發射的時間點,此后超聲波沿直線傳播,當超聲波撞擊到物體時就被反射回來,當超聲波接收器接收到返回來的回波時計時停止。本文利用STC89C52 單片機驅動HC-SR04 超聲探頭發射一定頻率的超聲波,超聲波碰到基準面時反射回來被超聲探頭接收,定時器T0 記錄超聲波的往返時間,因為考慮到溫度對聲速的直接影響,系統還利用DHT11 溫濕度傳感器采集環境的溫濕度,采集的數據結果返回單片機,再由單片機結合不同溫度下的聲速對測量距離進行修正補償,LCD1602 液晶屏顯示測距結果和溫濕度值,如果測距儀進入危險范圍則判斷危險程度并驅動相應頻率的聲光報警。
硬件方面主要由單片機模塊、超聲波模塊、溫濕度采集模塊、液晶顯示模塊和聲光報警模塊等部分構成。圖1 為采用5V DC電壓驅動的硬件電路示意圖。
圖1 電路原理圖
單片機最小系統電路的資源可以自由配置,所有輸入信號都會傳送至最小系統電路,單片機分析處理后,發送控制信號到對應的模塊中去。
C1 電容值的大小直接影響到單片機的復位時間,此外,晶振就好比人的心臟,如果不起振,系統將不能正常工作,晶振頻率越高,單片機運行速度越快,但不是越高越好,太高反而容易受到干擾,本系統的晶振X1采用12 MHz固有頻率,一方面運行速度快,另一方面可以得到1μs的機器周期,方便定時計算。C2 和C3 起到穩定脈沖的作用,如果兩個電容值相差過大,則極易引起共振失衡或者無振蕩。為了使單片機重置后從片內ROM的0000H開始執行內部程序指令,EA 管腳需要接高電平。
如圖2 所示,驅動HC-SR04 超聲探頭需要單片機I/O口提供一個至少10 μs的脈沖信號,此時超聲波探頭會主動發射8 個40 kHz 的方波信號,ECHO 引腳發送回響信號,定時器啟動,當超聲探頭檢測到回波信號時,ECHO引腳把高電平拉低,定時器停止定時,此時T0 所記錄的持續高電平時間即為超聲波的往返時間[6]。
圖2 HC-SR04 時序圖
DHT11通過DATA單總線與單片機進行數據的雙向傳輸。首先單片機將通過I/O口給DHT11 第2 引腳發送一個啟動信號,溫濕度傳感器響應后將溫度和濕度按照不同的分辨率轉化為數字信號并輸出給單片機共5 個字節[7]。
本設計選用的LCD1602 液晶顯示器具有性價比高,操作簡單等特點,數據引腳連接到P0 端口。
2.5.1 蜂鳴器報警模塊
本設計采用電磁式蜂鳴器,因為單片機上的輸出端口電流較小,導致蜂鳴器不能正常響應,故在此模塊中利用了PNP型BJT放大電流,P2.0 端口一旦輸出低電平將會使得蜂鳴器報警。
2.5.2 LED燈報警模塊
當P1.2 端口輸出低電平時,發光二極管正向導通,載流子定向運動并復合,輻射熒光。
C語言在嵌入式系統中應用得最為廣泛,其相對于匯編語言具有明顯的優勢,能夠精確定時[8]。本文采用C語言開展軟件設計,以產生精確的高頻率超聲波。軟件由液晶顯示子程序、超聲波模塊子程序、溫濕度檢測子程序和聲光報警子程序等部分組成。總體流程如圖3所示。首先對液晶和定時器進行初始化,選用T0 定時器且工作方式為1,隨之進入循環:(1)采集當前環境的溫濕度并在液晶的第一行實時顯示。考慮到溫度的影響,測量1 m距離時,誤差大約為1.75 mm,根據聲速與溫度變化公式V =0.607T+331.4 可計算出對應不同溫度下的聲速[9];(2)從HC-SR04 超聲探頭獲得時間,聯立當前環境溫度下的聲速,計算出距離并在液晶的第二行實時顯示;(3)判斷測距結果是否在報警范圍內,是則執行聲光報警子程序判斷危險程度,同時進行相應頻率的聲光報警;(4)判斷是否按下“設置”按鍵,若按下,系統將自動進入報警值設置界面。由于本設計采用的按鍵數不多,為方便起見,采用獨立鍵盤的方式。此外針對按下和松開按鍵后出現的電平不穩定現象,采用程序消除“抖動”的方式,即延遲數毫秒,等待電平恢復穩定,以避開“抖動”。此時為一個完整的循環。
圖3 總體流程圖
液晶顯示流程如圖4 所示,程序主要通過LcdWriteCmd函數和LcdWriteData函數分別確定地址和操作數。
圖4 液晶顯示流程圖
超聲波模塊流程如圖5 所示。首先給超聲探頭的TRIG引腳輸出一個持續1ms的開始脈沖,直到超聲組件ECHO引腳返回高電平脈沖,系統啟動定時器T0,T0在HC-SR04 收到回波信號的瞬間停止定時,T0 記錄的高電平持續時間的一半乘以聲波的速度就可以計算出距離。
圖5 超聲波模塊流程框圖
如圖6 所示,溫濕度檢測必須遵從時序要求,按照主從機通信的方式進行程序設計。在數據接收狀態時,讀一個字節可得U8checkdata_temp 信號,數據校驗時,溫濕度相加可得U8temp信號,如果U8checkdata_temp等于U8temp,則暫存溫濕度值。
圖6 溫濕度檢測流程框圖
聲光報警功能體現的是報警頻率隨著距離的變化而漸變,如圖7 所示,在不同報警條件的循環里通過延遲不同的時間去啟動聲光報警,如此不斷循環即可實現蜂鳴器和LED燈報警頻率的漸變。
圖7 報警流程圖
如圖8 所示,經過測試對比電子溫濕度計,本設計溫度檢測能夠精確到±2 ℃,而濕度檢測誤差比較大,大約在± 5% RH,這可以嘗試用軟件做補償以提高精度。
圖8 溫濕度檢測功能測試
相比光學測距,超聲波測距對電磁輻射、光照度等因素不敏感,在短距離的信息采集上有著較大的優勢。在一些特殊的場合,如光線偏暗或存在電磁場干擾的地方,它能夠進行有效的測量[10]。
在學校機房里電腦、音響設備和無線路由器比較集中的地方,電磁輻射較強,使用測距儀在上述環境下進行測距,測距誤差維持在±2 cm以內;在漆黑環境和照明環境中分別進行測距,結果幾乎不受光照度影響;如果把一些微小顆粒或粉塵附著在超聲波傳感器HCSR04 上,測距功能受到的影響也比較小;由于超聲波對水滴沒有穿透性,水滴可以反射部分超聲波導致出現余波干擾或者波形信號衰減等現象,雨天測距的效果不太理想。
超聲波測距儀可以實現不同頻率的聲光報警模式,適用于汽車雷達。圖9 為報警值設置為80 cm 時進行的聲光報警測試,實測距離為60 cm,報警模式為蜂鳴器常鳴,LED燈常亮。
圖9 報警功能測試
由表1 可知基準面的粗糙程度會影響測距結果,基準表面越光滑平整,測距誤差越小。對于粗糙的基準面,超聲波在短距離內傳播范圍較小,接觸到基準面的點沒有明顯的變化,當距離越來越遠時,粗糙的基準面容易造成超聲波信號散射,從而導致回波信號失真,因此誤差增大[11-12]。
表1 相關性測試結果 cm
從表2 可以看出本設計最遠測量距離大約500 cm,且誤差維持在2 cm以內,同時溫度補償功能已經發揮作用,即在環境溫度大幅提升的同時,實測距離整體趨于穩定,大大提高測距精度。
表2 測距及溫度補償功能測試結果 cm
根據實物測試結果,雖然系統附加溫度補償的方法,但是不同室溫下測距結果存在一定差異,原因是室內溫度的升高,使得超聲探頭發射和接收超聲波信號的能力明顯下降,同時超聲波能量也會隨之衰減。其次是傳感器本身的精度問題,目前超聲探頭多采用壓電陶瓷材料和磁致伸縮材料制作,其存在著一定的阻抗失配現象,同時發射器的局部超聲波有時候會直達接收器,導致系統存在誤差或出現不穩定現象。需要依靠超聲波探頭材料研發和性能提升來解決本系統缺陷,本文不涉及此方面研究。單片機控制啟動發射超聲波和啟動定時器有時間先后之分,因此為了系統各部分保持同步,最好選擇質量更優的晶振。在空氣中,超聲波的能量會受到一定程度的削弱,提高頻率可以使指向性能得到改善,但隨著頻率的增加,超聲波能量的衰減速度越快,因此可以通過充分放大接收信號以改善這種情況。
本文設計了一種功能完善的超聲波測距儀,試驗驗證了軟硬件設計方案的合理性與有效性,還針對誤差來源提出了改進的建議。能夠滿足短距離測距要求,同時具有溫度補償、溫濕度檢測、聲光報警等功能。所設計的設備測量范圍為0.02~5 m,通過溫度檢測計算修正聲速,把誤差維持在0.02 m以內,即報警閾值的下限可達0.02 m,足日常短距離測距的需求,設備可用于倒車雷達,使用漸變的聲光報警頻率提示行車的安全距離,為汽車實現自動倒車入庫、自動緊急剎車、無人駕駛等功能提供方案。進一步地,所提設計方案也可以作為人工智能的視覺輔助工具,配合CCD圖像傳感器可實現完善的視覺功能,從超聲波傳感器陣列中篩選信號以實現對運動物體的捕捉[13]。所提設計方案具有操作簡單、安全可靠、工作穩定的特點。