鄧毅 郭小華



摘? 要:為了提高系統測距精度,該文將在以往研究的基礎上,選取STM32作為核心處理器,開發一套超聲波測距系統。測試結果表明,該系統在漏波情況和不漏波情況下測量精度較高,且不受溫度影響。
關鍵詞:測距系統;超聲波;STM23
中圖分類號:TN912? ? ? ? ? 文獻標志碼:A
超聲波測距具有防塵防霧功效,屬于非接觸測量工具,在各個領域均有所應用。在實際應用中通過觀察測量精度,可以有效判斷系統的優勢和劣勢。傳統的超聲波測距系統在硬件選取和軟件開發上均存在不足,導致誤差較大,大小在1 cm左右。因此,改進超聲波測距系統研究顯得尤為重要。
1 超聲波測距原理
超聲波是一種機械波,在20 kHz以上頻率彈性介質中傳播。測量距離的原理如下:
選取發射轉換器作為操作工具,利用此工具向外發射超聲波并計時,測量超聲波在空氣中的傳輸速率。當超聲波遇到障礙物會立即反射,當接收器接收到超聲波以后停止計時。
假設測量目標障礙物與發射起始點之間的距離為S(單位:m),計時時間為t(單位:s),超聲波在空氣介質中傳輸速度為v(單位:m/s),可以得到以下關系:
在公式(2)和公式(3)中,H代表傳感器布設位置與障礙物之間的直線距離;L代表傳感器與換能器之間的距離。將公式(1)、公式(2)、公式(3)組合到一起,可以得到以下關系:
假設傳輸頻率為f,波長為λ,則2項參數與聲波傳輸速度之間的關系公式為:
2 基于STM32的超聲波測距系統的設計與實現
基于超聲波測距原理,該文選取STM32作為核心控制器,設計一套超聲波測距系統,設計內容分為系統硬件、系統軟件、上位機。
2.1 系統硬件
超聲波測距系統硬件由蜂鳴器、LCD顯示模塊、ESP8266無線網絡模塊、STM32主控芯片、溫度傳感器、超聲波傳感器6個部分構成。如圖1所示為超聲波測距系統硬件框架圖。
2.1.1 蜂鳴器
蜂鳴器主要起到警示作用,如果系統運行發生異常,即測量距離超出安全范圍,則系統自動啟動蜂鳴器,發出警報。
2.1.2 LCD顯示模塊
該功能模塊主要是借助液晶顯示屏顯示信息采集終端的數據信息,便于用戶查看數據。
2.1.3 ESP8266無線網絡模塊
該無線網絡模塊采用的傳輸協議為TCP/IP協議,支持距離數據和溫度數據傳輸,從現場采集終端傳輸至上位機。
2.1.4 STM32主控芯片
該文選取STM32系列單片機作為核心控制器,利用此控制器下達各個器件的控制命令。此單片機主頻率為168 MHz,定時器誤差為0.002 mm,精度為0.005952 μs。由于STM32單片機的誤差較小,所以在實際應用中其誤差可以忽略不計。
2.1.5 溫度傳感器
該文選取DS18B20作為系統溫度傳感器,此傳感器的誤差精度為±0.5 ℃,對聲速測量造成的影響大約為±305 m/s,在誤差允許范圍之內。
2.1.6 超聲波傳感器
該文選取HC-SR04型號傳感器作為超聲波傳感器,與同種類型傳感器相比,該傳感器測量精度更高一些,并且運行穩定。
該傳感器是系統獲取信號的主要器件之一,含有4個引腳,除了接地GND和接電VCC引腳以外,還包括回波引腳(Echo)、脈沖出發引腳(Trig)。系統上電以后,脈沖觸發引腳接收到發射端發送來超聲波信號以后,回波引腳電平將從低電平轉換為高電平。
2.2 系統軟件
該系統采用Keil5開發系統軟件,利用C語言編寫系統程序。如圖2所示為系統軟件開發流程。
第一步:系統初始化。
第二步:測量溫度數據和距離數據。
第三步:修整三角函數和濾波算法。
第四步:判斷修整后的閾值的超神波測量距離之間大小關系,如果測量距離超出了閾值,則蜂鳴器發出警報,執行第五步;反之,執行第五步。
第五步:借助LCD液晶顯示屏顯示數據信息,同時返回第二步。
在開發系統軟件過程中,考慮到接收器和換能器之間存在一定距離,容易影響測量距離精度,即測量得到的距離與實際距離不符。按照該文給出的公式(3)的距離關系可知,實際距離H小于測量距離S。為了提高測量精度,不可以忽略H與S之間的誤差。針對此問題,該文在對系統軟件進行開發時,利用公式(3)對函數進行修整,經過計算得到實際距離。如果H為2.7 cm,則L取值為1.35 cm。
該系統采用頻率為40 kHz的超聲波信號,信號在空氣中的傳輸速度為340 m/s,經過計算得到長度λ=0.85 cm。在不漏掉脈沖波形的情況下,誤差較小,滿足系統測量要求。如果在信號采集與傳輸過程中漏掉脈沖,采取復小波變換法,檢測回波包絡峰值,或采用中位值平均濾波算法進行處理,最終測量結果取平均值。
2.3 上位機
該系統采用Lab VIEW軟件進行開發,直接嵌入C語言。上位機界面開發除了用戶IP地址管理功能以外,還包括實時數據部分。如圖3所示為上位機實時數據測量與報警功能實現界面。
在圖3中,設定了測量距離、當前環境溫度、預設報警值、當前報警值4個功能框,能夠采集和設定數據信息,便于用戶操作。
3 系統測試分析
為了驗證該文設計的超聲波測距系統設計方案的可靠性,該文對3種情況下系統運行效果進行測試分析。
3.1 不漏波形情況在不漏波形情況下,對系統測量精度進行測試分析,表1為測量結果。
通過觀察表1中的數據可知,在不漏波的情況下,該系統的測量誤差在0.24%以下,滿足系統測量精度要求。
3.2 漏波形情況針對漏波情況,該文采取中位值平均濾波算法進行處理,得到表2中的測試結果。
通過觀察表2中的測試結果可知,采取中位值平均濾波算法處理后的數值誤差在允許范圍之內。
3.3 溫度變化情況為了探究溫度變化是否會對系統測量精度造成影響,該文對不同溫度下的測量精度進行測試分析,見表3。
4 結語
該文在傳統超聲波測距系統基礎上,選取STM32作為核心處理器,提出了超聲波測距系統研究,分為系統硬件、系統軟件、上位機3個部分進行設計。測試結果表明,該系統在漏波情況和不漏波情況下測量精度較高,且不受溫度影響。
參考文獻
[1]張悅,陳勁操.基于單相全橋逆變拓撲的超聲波測距系統設計[J].儀表技術與傳感器,2016(4):67-70.
[2]孔維正,靳寶全,王宇,等.礦用本質安全超聲測距電路系統設計[J].工礦自動化,2016,42(10):65-69.
[3]王浩,譚振文,王治彪,等.基于STM32的分體式超聲測距與目標定位系統[J].儀表技術與傳感器,2017(2):58-61.
[4]王盟.基于DSP與超聲波測距的農業機器人定位與避障控制[J].農機化研究,2017,39(8):207-211.