傳感器是人工智能研究中非常重要的一環,要想要讓機器更加智能,就需要用傳感器來賦予它們像人一樣的各種感官。文章結合了紅外線傳感器測距較短、精度較高,超聲波傳感器測距較長、精度較低的特點,設計了一款以 STM32 單片機為核心,將紅外線傳感器 GP2Y0A02YK0F 與超聲波傳感器 HC-SR04 融合的新型測距系統,并優化了測距算法。通過實驗表明,該系統可以彌補單一傳感器測距性能的不足,提高了測距精度,具有結構簡單、成本低及使用方便等優點。將該新型測距系統應用到智能無人小車的控制系統中,可提升小車的避障性能,效果顯著。
0 引言
紅外線傳感器測量數據精度高但是測量距離較短,而超聲波傳感器的測量距離長但精度較低 [1], 所以本文選用在性能上互補的超聲波傳感器和紅外線傳感器融合使用,結合兩種傳感器的優缺點,將二者測得的數據進行算法融合,在一段較長的測距范圍內得到更精確的測量數據。新的測距系統可以應用于多種場合,具有結構簡單、成本低等優點,在無人車、機器人等領域有廣泛的應用價值 [2-3]。
1 新型測距系統總體設計
設計方案:分別使用紅外線和超聲波傳感器測量一組距離數據,將兩組數據傳輸到控制系統,利用融合算法計算出第 3 組數據,并利用實驗值修正算法參數。將修正后的第 3 組數據作為最終測距值,測量范圍為 20 ~ 150cm。將數據傳輸到控制端進行監測,接收部分在接收到數據后,同時進行數據處理,最終形成可視化輸出 [4]。
本系統主要由3個部分組成,分別是使用STM32F103ZET6 單片機進行數據處理的控制部分、使用 HC-SR04 超聲波傳感器和 GP2Y0A02YK0F 紅外線傳感器進行初次測距的測距部分以及使用 HC-05藍牙模塊連接主機與控制系統的信號傳輸部分。主機在接收到信號后,進行數據記錄與監測,并利用LCD1602 顯示屏顯示數據。具體的測距系統方案。
2 系統硬件設計
2.1 控制部分
本文選用 STM32F103ZET6 芯片作為微處理器,該芯片成本低、功耗低,但是運算功能強大、功能眾多,可以根據不同的優先級先后執行中斷程序,能夠滿足本系統的需求。
2.2 測距部分
超聲波在傳播過程中遇到介質會被反射,利用超聲波的這一特性便可以進行超聲波測距。
設計選用 HC-SR04 超聲波傳感器模塊作為超聲波測距部分,此模塊性能穩定,測量范圍為 2~ 400cm,測量距離大、盲區小,擁有高達 0.3cm 的測距精度。將超聲波傳感器發射端對著被測對象發射,超聲波傳感器的接收端接收到反射回的超聲波后,根據發射和接收的時間差就可以計算超聲波的傳播距離。
紅外線測距部分選用夏普 gp2y 系列的紅外線傳感器,夏普的紅外線測距傳感器采用三角測量原理。三角測量是一種間接測量目標距離的方法,又叫三邊量測法。設計將目標定為一個三角形的第 3 個點,當確定了一條邊長和發射光線、反射光線的兩個角度后,可以由此計算出與目標的距離。紅外線傳感器測量原理,如圖 2 所示。利用數學的幾何知識,傳感器到物體的距離 D,可以由如下公式求得:
式(1)中, D 是待測距離,L 是 CCD 檢器接收到信號后的偏移值, X 是發射器與接收器中心之間的距離, f 是受光透鏡焦距。
在型號的選擇上,綜合考慮了超聲波傳感器的測距范圍與設計目標,本系統最終選擇使用GP2Y0A02YK0F 紅外線傳感器。這款紅外線測距傳感器測量精度高,測量范圍在 20 ~ 150cm。
2.3 信號傳輸部分
信號傳輸部分選用 HC-05 藍牙模塊。HC-05 藍牙模塊有 6 個引腳,除了接正極與接地的引腳以及用于檢測藍牙模塊連接狀態的 LED 引腳外,還有 TXD和 RXD 引腳以及 KEY 引腳。HC-05 支持使用標準AT 命令,在設備啟動時進入特殊命令模式,然后再進入數據模式,這樣就可以與其他設備進行無線通信,通信距離可以達到 10m。控制端通過 HC-05 藍牙模塊接收小車傳來的紅外線測距數據、超聲波測距數據以及經過數據處理后的最終數據,對結果進行記錄與監測。
LCD1602 液晶顯示器是一種字符顯示器,在顯示時,有兩行內容,每行有 16 個字符的顯示器,總共擁有 16 個引腳。LCD1602 主要顯示經過系統數據處理后的最終數據,也就是測得的小車與前放障礙物之間的距離。
2.4 無人車實驗平臺
為了驗證測距系統的有效性,將系統搭載在四輪式智能無人車實驗平臺上。由于超聲波測距傳感器的有效距離小于紅外線測距傳感器的有效距離,所以系統的最小探測距離為 2cm,在傳感器安裝時,要確保發射端與小車最前端的距離大于 2cm。
3 測距算法設計
根據設計目標,要使系統完成在 20 ~ 150cm 的高精度測量,應首先由超聲波測距傳感器和紅外線測距傳感器進行一次測量,然后將數據傳輸到控制系統中進行處理,通過大量實驗建立的數據模型來得到最接近實際距離的參數,最后輸出測量距離。
3.1 超聲波測距
HC-SR04采用IO口TRIG觸發測距,提供一個10us以上的高電平脈沖觸發信號,模塊內部將會發送8個40kHz周期電平并檢測回波。當檢測到信號返回時,輸出回響信號。回響信號的脈沖寬度與測量距離成正比。回響信號的脈沖寬度為高電平持續時間, T 是高電平持續時間。表達式如下:
式(2)中, V 是聲音的速度,具體為 340m/s,T 高電平持續時間,也就是超聲波從發射到返回的時間。
如果發射信號的周期太短,那么發射信號會對回響信號產生影響,因此設置脈沖觸發信號的發射周期為 100ms。
3.2 紅外線測距
紅外線模塊在使用中通常會受被測物體的材質、溫度、物體表面粗糙度、被測物體的光學顏色等的因素影響。但是在本系統中,被測物體的因素對傳感器測量精度的影響會因為紅外線傳感器的不同而大大降低。傳感器輸出的電壓值與被測距離之間存在映射關系,通過測量電壓值就可以得到所測的距離。夏普的gp2y 系列紅外線傳感器每個型號的輸出曲線都不同。GP2Y0A02YK0F 傳感器特性曲線如圖 3 所示,這是制造商給出的 0A02 型號傳感器的參考特性曲線。從圖 3中可以看到,該傳感器存在的最小探測距離為 20cm。
圖 3 GP2Y0A02YK0F 傳感器特性曲線
3.3 算法設計
在得到紅外線測量的數據 L 1 和超聲波測量的數據 L 2 后,與實際距離進行比對,得到參數 k 1 和 k 2,采用平均算法,修正距離值:
在不同的溫度、亮度、被測物體表面粗糙度和被測物體表面顏色的不同情況下, k 1 和 k 2 均會改變,所以再取平均值為:
此時,得到一個 k 1 和 k 2 的數值。
同時考慮到本系統所選用的超聲波測距傳感器的有效距離略大于紅外線測距傳感器的有效距離。因此,當接收到超聲波傳感器的數據時再進行一次判斷,得到的結果小于 20cm 或大于 150cm 時,直接以超聲波傳感器的數據為最終數據。當數據范圍在 20 ~ 150cm 時,結合兩個傳感器的數據,利用式
(3)計算得出最終數據。本系統設計的重點在于測量 20 ~ 150cm 內的數據。測距系統流程。
注:k1=0.568;k2=0.422 平均相對誤差 =0.1154%
表 1 在可測量范圍內的實驗測量數據
4 實驗數據及分析
為驗證該測距系統的效果,本文進行一系列測試,選取了 10 組測試數據,L1 為超聲波測距傳感器數據,L2 為紅外線測距傳感器數據,L3 為經過控制系統處理的最終數據,也就是測量得到的最終數據。在可測量范圍內的實驗測量數據,如表 1 所示。
通過表 1 可以發現,利用超聲波傳感器和紅外線傳感器的融合測距,在測量范圍內的平均相對誤差小于 0.3%,滿足檢測系統的精度要求,說明該測距系統方案可行。
因超聲波測距與紅外線測距均會受到外界因素的影響,若要進一步提高測量精度,可設置不同環境下的 k1、k2 值。通過藍牙控制,使系統在不同情況使用不同的 k1、k2 值。
5 結語
本文設計了一種基于紅外線和超聲波傳感器的新型測距系統。該系統結構具有簡單、成本低及精度高的優點,融合了紅外線和超聲波傳感器的特點,改進了測距算法,從而提高了測量精度,并擁有較大的測量范圍。將該系統應用在智能無人車中,能提升無人車的避障性能,同時也為基于多傳感器的測距系統設計提供了一種新思路。
參考文獻
[1]曹湘斌 , 頡炯 . 基于多傳感器數據融合的機器人測距系統設計 [J]. 電氣傳動自動化 ,2020,42(6):16-18.
[2]白冰峰 , 溫秀蘭 , 張中輝 . 基于超聲波和紅外線傳感器的 IN-RT 移動機器人的避障算法研究 [J]. 南京工程學院學報 ( 自然科學版 ),2016,14(1):53-55.
[3]張磊 , 周建全 , 鞠文杰 ,等. 基于超聲波與紅外線技術的測距系統的研究與應用[J].電氣自動化 ,2021,43(3):99-101.
[4]洪一民 , 錢慶豐 , 章志飛 . 基于 STM32 的智能小車循跡避障測距的設計 [J]. 物聯網技術 ,2022,12(1):12-13,17.
班寧產品匯總