劉曉玲++丁保全
摘 要:針對多旋翼無人機對所搭載外圍設(shè)備體積小、重量輕、可靠性高的技術(shù)要求,設(shè)計了一款高精度、輕量型和抗干擾能力強的超聲波測距系統(tǒng),并介紹了系統(tǒng)中的超聲波發(fā)射電路、接收電路和放大濾波電路。該系統(tǒng)利用STM32自帶的ADC采樣功能確定渡越時間,并簡化了硬件電路;與傳統(tǒng)超聲波測距模塊采用固定式輸出頻率相比,該系統(tǒng)的數(shù)據(jù)輸出頻率可根據(jù)測距范圍實時更新。同時針對戶外使用的要求,引入了溫度補償技術(shù)。經(jīng)戶外環(huán)境下的測試實驗表明,此超聲波測距系統(tǒng)可以滿足多旋翼無人機產(chǎn)品的技術(shù)要求。
關(guān)鍵詞:STM32單片機;超聲波傳感器;ADC采樣法;更新速率
中圖分類號:TP274.53 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2016)02-00-04
0 引 言
隨著科學(xué)技術(shù)的發(fā)展,各式各樣的飛行器已逐漸進(jìn)入實用階段。多旋翼無人機因其輕巧、靈活的機身被廣泛用于執(zhí)行地理測繪、航拍等工作。由于多旋翼無人機本身有限的負(fù)載能力和體積限制,導(dǎo)致其對外圍機載模塊要求極為苛刻[1-3];多旋翼無人機在低速飛行時,旋翼荷載和機體慣性都比較小,十分容易受氣流干擾,這就需要無人機的控制系統(tǒng)更加靈活,外圍機載模塊與主控制系統(tǒng)在數(shù)據(jù)通信方面要更實時、更加精確[4]。超聲波測距模塊作為多旋翼無人機系統(tǒng)主要機載模塊之一,為多旋翼無人機系統(tǒng)實現(xiàn)定位的準(zhǔn)確性、避障的智能化以及在定位模式下航拍效果的穩(wěn)定性起到了很好的保障作用;相比高端激光雷達(dá)測距模塊需要高精度的特殊硬件做支撐,且成本較高的特點,超聲波測距在控制方法、性價比和安全性等方面都占有明顯優(yōu)勢;但超聲波測距模塊用在多旋翼無人機上會出現(xiàn)因槳葉運動對超聲波探頭接收信號干擾比較嚴(yán)重的現(xiàn)象。目前多旋翼無人機系統(tǒng)所選用的超聲波測距模塊采用8位或者16位單片機作為主控制器[5],因為主控芯片性能的限制,功能擴展性差,導(dǎo)致數(shù)據(jù)傳輸?shù)膶崟r性差、精度低;加之采用收發(fā)分體式探頭且對回波信號的處理采用硬件檢波法,導(dǎo)致整個模塊的體積偏大。針對以上缺點,本研究設(shè)計了一款基于STM32系列單片機的超聲波測距模塊,選用收發(fā)一體式探頭,采用軟件檢波法和濾波法,旨在降低硬件電路重量和尺寸,解決數(shù)據(jù)輸出頻率較低且固定的問題,提高整個系統(tǒng)的靈敏度、實時性和抗干擾能力。
1 超聲波測距系統(tǒng)
本研究設(shè)計的超聲波測距系統(tǒng)采用ST公司最先進(jìn)的Cortex-M4內(nèi)核的32位高性能微控制STM32F302K8U6作為主控制器,CPU主頻72 MHz,但芯片尺寸僅為5mm×5mm,對比選用CPU主頻只有35 MHz,但芯片尺寸卻為12 mm×12mm的16位單片機作為主控制器的超聲波測距模塊,此款芯片在處理速度和尺寸上明顯占優(yōu)勢;相比收發(fā)分體雙探頭的超聲波測距模塊體積11.5cm×8.0cm×5cm[6],本設(shè)計采用收發(fā)一體式探頭,整個模塊體積僅為2.6cm×2.71cm×5 cm;除了采用硬件濾波處理之外,還結(jié)合軟件濾波處理算法,有效降低無人機螺旋槳在高速運動過程中產(chǎn)生的高頻信號對超聲波探頭接收信號的影響[7]。超聲波測距系統(tǒng)總框圖如圖1所示。
整個超聲波測距系統(tǒng)的原理:首先主控制器STM32F302K8U6負(fù)責(zé)發(fā)送8個40 kHz的方波,經(jīng)發(fā)射電路驅(qū)動超聲波傳感器40C16TR-1激勵出超聲波,待接收到回波信號后,經(jīng)過LM324運放電路實現(xiàn)放大、整形和濾波,最終信號進(jìn)入STM32的ADC采樣通道進(jìn)行處理,計算距離信息。
多數(shù)超聲波測距系統(tǒng)對外通信采用串口通信,本設(shè)計中超聲波測距系統(tǒng)與無人機主控制單元的通信采用應(yīng)答式CAN通信方式。當(dāng)無人機主控單元需要超聲波測距信息時,向本系統(tǒng)發(fā)送數(shù)據(jù)幀,本系統(tǒng)再將測距信息應(yīng)答給主控單元,從而避免頻繁向主控單元發(fā)送測距信息增加系統(tǒng)的額外負(fù)擔(dān)。同時,CAN在通信速率、錯誤檢測機制以及抗干擾能力上都明顯優(yōu)于串口通信,保證了主控單元對數(shù)據(jù)實時性和穩(wěn)定性的要求[8]。
2 超聲波測距系統(tǒng)功能控制模塊設(shè)計
2.1 超聲波測距系統(tǒng)發(fā)射和接收電路
系統(tǒng)的發(fā)射電路主要由STM32的高級定時器TIM1輸出兩路幅值為3.3 V、頻率為40 kHz的互補型PWM信號,兩路信號分別為IO-1 和IO-2。超聲波測距系統(tǒng)發(fā)射電路原理圖如圖2所示。
相比于僅采用單三極管和單MOS管作為超聲波發(fā)射電路的測距系統(tǒng)[9],本設(shè)計增添了MOS管Q3,其作用是保證M點處能夠產(chǎn)生一個和IO-1同頻率而幅值為VCC的周期信號。若不引入IO-2,會導(dǎo)致M點低電平不完全為0,如圖3(a)所示;引入IO-2后,M點波形如圖3(b)所示。這樣從發(fā)射端保證了信號的不失真性;經(jīng)中軸T1放大后,最終通過超聲波傳感器U1將超聲波信號發(fā)射出去。
2.2 超聲波放大濾波電路
超聲波傳感器處于接收回波信號狀態(tài)時,由于回波信號在傳播過程中會有一定的損耗而變得很微弱,所以在進(jìn)入單片機之前需要進(jìn)行放大有效信號,濾除噪聲和干擾,以達(dá)到最大的信噪比。超聲波測距系統(tǒng)回波處理電路如圖4所示。
值得注意的是,本設(shè)計采用二極管組將放大后的超聲波交流信號幅度限制在二極管導(dǎo)通壓降之內(nèi),減少了尖峰脈沖對系統(tǒng)的影響,這樣經(jīng)最后一級反向放大后的信號就會變得相對平滑。
3 超聲波測距系統(tǒng)軟件設(shè)計
3.1 ADC采樣法確定渡越時間
一般超聲波測距電路采用外接比較電路檢測回波信號,本設(shè)計采用軟件法檢測回波信號確定渡越時間。軟件法檢測回波信號工作原理:利用STM32自帶的ADC采樣功能,首先采用遞推平均濾波法將采集回來的信號進(jìn)行濾波處理,再與設(shè)定好的軟件閾值比較;如果ADC采集的電壓值連續(xù)多次大于所設(shè)閾值,即可判斷出第一個回波所在位置,從而能夠確定此時對應(yīng)的AD采樣點N。如果已知AD采集一個點所需時間t,便能確定渡越時間T=N×t。
3.2 超聲波測距系統(tǒng)軟件流程設(shè)計
以超聲波傳播速度340 m/s,測距范圍5 m為例,理論上需要30 ms實現(xiàn)一次超聲波的發(fā)射和接收,所以超聲波測距系統(tǒng)相當(dāng)于每隔30 ms傳輸一次實時測距信息給多旋翼無人機系統(tǒng)的主控端。若將ADC采集一個數(shù)據(jù)的時間配置為16μs,則一個周期內(nèi)理論上需要采集點數(shù)n=30 ms/16 μs≈1875。不同的測距范圍與各參數(shù)配置關(guān)系見表1所列。
整個超聲波測距系統(tǒng)采用模塊化程序設(shè)計,包括CAN通信配置函數(shù)、端口配置函數(shù)、定時器配置函數(shù)、ADC配置函數(shù)、中斷處理函數(shù)、溫度采集函數(shù)等。系統(tǒng)開始進(jìn)行CAN通信的初始化配置,然后根據(jù)無人機主控單元發(fā)送的ID信息判斷此時要求的測距范圍,根據(jù)不同的測距范圍進(jìn)行相應(yīng)的初始化設(shè)置。定時器2主要控制對外輸出頻率,進(jìn)入定時器2中斷后先調(diào)用溫度處理子函數(shù)[10],再開啟定時器1和定時器3;定時器1主要負(fù)責(zé)發(fā)送超聲波,定時器3用于控制ADC采樣子函數(shù)并計算渡越時間。當(dāng)檢測到回波信號后,調(diào)用距離計算子函數(shù),計算結(jié)果通過CAN通信方式將數(shù)據(jù)再傳至無人機主控單元。
針對ADC采樣點數(shù)較多的特點,使用DMA傳輸方式將ADC采集的數(shù)據(jù)直接經(jīng)總線傳遞至內(nèi)存單元,此過程不需要CPU參與;而如果采用非DMA方式,不僅需要CPU全程控制數(shù)據(jù)傳送,還會出現(xiàn)因并行設(shè)備過多CPU處理不及時導(dǎo)致數(shù)據(jù)丟失的現(xiàn)象。超聲波測距系統(tǒng)程序流程圖如圖5所示。
4 超聲波測距系統(tǒng)實驗結(jié)果及分析
4.1 測距效果對比分析
為了驗證系統(tǒng)的測距效果,選擇在戶外進(jìn)行實際測試。戶外溫度32 ℃時,超聲波在空氣中的傳播速度為350.28 m/s,選擇正對350 cm×400 cm的墻面進(jìn)行測試,實驗測結(jié)果見表2~表5所列。
在表2和表3中,D1是用專業(yè)測距儀Fluke414D測量的距離,D2是使用目前常用的HC-SR04超聲波模塊測量的數(shù)據(jù),D3是本設(shè)計的超聲波測距模塊所測數(shù)據(jù)。實驗過程在將三者處于同一對地高度的前提下正對墻面測試。
由表2可知,相比 HC-SR04超聲波測距模塊,本設(shè)計的超聲波測距模塊在穩(wěn)定性和精度上都具有明顯優(yōu)勢。從表3中可以發(fā)現(xiàn),HC-SR04超聲波測距量程僅有4.5 m,當(dāng)測距范圍超過其量程之后,并沒有設(shè)置檢測機制,導(dǎo)致輸出數(shù)據(jù)極不穩(wěn)定。
測距范圍為10 m的測距效果見表4所列。其中D1是專業(yè)測距儀Fluke414D測量的數(shù)據(jù),D2是本文設(shè)計的超聲波測距模塊測量的數(shù)據(jù);實驗過程同樣保證專業(yè)測距儀和超聲波測距模塊處于同一對地高度的前提下正對墻面測試。
對比表2和表3,由表4可知,隨著測距范圍的增大,超聲波模塊的測距誤差也隨之增大。主要原因是反射回波較弱,會存在誤差;但整體的測距誤差控制在15 cm之內(nèi),滿足多旋翼無人機系統(tǒng)在戶外環(huán)境下對精度的要求。
為避免表3中HC-SR04超聲波測距模塊因沒有設(shè)置超量程檢測機制導(dǎo)致數(shù)據(jù)輸出極不穩(wěn)定的情況,本設(shè)計經(jīng)實際測試找到其量程,并針對其超量程的情況給予改進(jìn)。超測距范圍時的實驗結(jié)果見表5所列。
由表5可知,當(dāng)測距超過10 m后數(shù)據(jù)波動較大,為避免主控單元因誤用數(shù)據(jù)而發(fā)生墜機等危險情況發(fā)生,本設(shè)計將檢測不到回波信號情況下的測量距離設(shè)定為一定值11,保證無人機系統(tǒng)能夠可靠、安全的執(zhí)行任務(wù),實驗結(jié)果見表6所列。
4.2 數(shù)據(jù)更新頻率對比分析
為了測試數(shù)據(jù)的更新頻率,將本文設(shè)計的超聲波測距模塊與MB1200超聲波測距模塊進(jìn)行對比分析,測試結(jié)果見表7和表8所列。表7所列是測距范圍為5 m時的對比結(jié)果,表8所列是測距范圍為10 m時的對比結(jié)果。表中n1和f1是本文所設(shè)計的超聲波模塊對應(yīng)的數(shù)據(jù),n2和f2是MB1200超聲波模塊對應(yīng)的數(shù)據(jù)。
由表7和表8可知,相比更新頻率為固定式的超聲波測距模塊,本文設(shè)計的超聲波測距模塊更新頻率可根據(jù)測距范圍實時更新,且更新頻率最高為33 Hz,保證了無人機主控單元對數(shù)據(jù)的實時性要求。
5 結(jié) 語
對比采用收發(fā)分體式雙探頭的超聲波模塊的體積和重量,本設(shè)計的收發(fā)一體式超聲波模塊在體積上縮小了一倍,僅為26 cm×27.1 cm×5 cm,而且整個超聲波測距模塊重量輕至5.6 g。
充分利用32位主控芯片STM32F302K8U6的性能,采用軟件檢波法確定超聲波信號從發(fā)射到接收的時間;對比采用硬件電路檢波的超聲波模塊,不僅減少了電路板的尺寸,而且提高了測距精度;同時為了配合無人機主控單元對數(shù)據(jù)實時性要求高的特點,可以根據(jù)測距范圍更新數(shù)據(jù)輸出頻率,最快更新頻率是其他超聲波測距模塊的3倍。
在硬件電路上首次引入二極管組,將放大后的超聲波交流信號的幅度限制在二極管導(dǎo)通壓降之內(nèi),減少尖峰脈沖對系統(tǒng)的干擾;配合結(jié)構(gòu)工藝合理安裝在多旋翼無人機系統(tǒng)中,能有效降低無人機螺旋槳在運動過程中對超聲波測距精度的影響,提高了系統(tǒng)的抗干擾能力。
參考文獻(xiàn)
[1]畢凱,李英成,丁曉波,等.輕小型無人機航攝技術(shù)現(xiàn)狀及發(fā)展趨勢[J].測繪通報,2015(3):31-35.
[2]楊愛玲,孫汝岳,徐開明.基于固定翼無人機航攝影像獲取及應(yīng)用探討[J].測繪與空間地理信息,2010,33(5):160-162.
[3]金偉,葛宏立,杜華強,等.無人機遙感發(fā)展與應(yīng)用概況[J].遙感信息,2009(1):88-92.
[4] Rango A, Laliberte A, Herrick J E, et al. Unmanned aerial vehicle-based remote sensing for rangel and assessment, monitoring, and management[J].Journal of Applied Remote Sensing,2009,3(1):33-42.
[5]閆東磊.基于ATmega8L高精度超聲波測距儀的設(shè)計[D].武漢:武漢理工大學(xué),2010.
[6]苑潔,常太華.基于STM32單片機的高精度超聲波測距系統(tǒng)的設(shè)計[D].北京:華北電力大學(xué),2010.
[7]謝瑞云,毛得明,向敏.無人機電氣系統(tǒng)與機載通信設(shè)備電磁兼容問題研究[J].通信技術(shù),2014(10):1211-1212.
[8]黃韜,芮曉艷,葛立峰.基于車載CAN 總線的倒車?yán)走_(dá)智能節(jié)點設(shè)計[J].自動化與儀表,2010(7):9-12.
[9]夏繼強,鄭昆,鄭健峰,等.基于STM32的收發(fā)一體式超聲波測距系統(tǒng)[J].儀表技術(shù)與傳感器,2014(8):43-45.
[10]張振生.基于溫度補償?shù)某暡y距系統(tǒng)的研究[D].天津:天津大學(xué),2012.