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