?

基于聲源定位的智能小車

2023-08-09 12:51蘇俊杰胡杰
計算機應用文摘 2023年15期

蘇俊杰 胡杰

摘 要:文章基于聲源定位技術研發出一款在移動過程中自動避障的小車,其以 STM32F103C8T6為主控開發板,將 K210 搭載麥克風陣列作為聲源處理裝置,并且采用時延算法得出聲源到達不同麥克風陣列的時間差,從而計算出聲源和小車的距離以及角度。為了使角度更加準確,加上了卡爾曼濾波。測試結果表明,小車到達聲源的位置較為準確。

關鍵詞:時延算法;聲源定位;超聲波測距;麥克鳳陣列;STM32

中圖法分類號:TN912文獻標識碼:A

1 引言

聲源定位小車是一種基于聲學傳感技術的智能機器人,它能夠在那些復雜的環境中實現一些聲源的定位和跟蹤,具有廣泛的應用前景。

目前,聲源定位小車已在安防、智能家居、醫療等領域得到了廣泛的應用,例如,在安防領域,聲源定位小車可以通過定位報警設備的聲源位置,實現對安全隱患的及時發現和處理;在智能家居領域,聲源定位小車可以作為家庭智能助手,對家庭中的各種聲源進行識別和分析,從而實現智能家居的控制和管理。然而,聲源定位小車在實際應用中面臨著許多挑戰,如復雜的聲音環境、定位精度、運動控制等方面的問題。因此,本文旨在研究和實現一種基于聲學傳感技術的聲源定位小車,通過對聲學信號的采集和分析,實現聲源的準確定位和跟蹤,以及對小車的運動控制。

本文基于麥克風陣列實現聲源定位。麥克風陣列聲源定位技術在陣列信號處理技術蓬勃發展的契機下誕生,能夠在多種場景下對各種聲音信號源定位。用麥克風陣列來采集處理聲波信號受到越來越多學者及專家的關注[1] 。

2 總體設計

系統設計方案如圖1 所示,以實現聲源定位的要求。其采用“6 + 1”形式的數字麥克風陣列進行聲源收集,K210 負責對收集到的聲源進行處理和聲源定位,STM32F103C8T6 作為主控,傳感器模塊包括編碼器、超聲波測距模塊、OLED 顯示屏,驅動模塊有電機和驅動電路。

3 硬件設計

基于整體設計方案,本文對系統的主要部分進行詳細設計。

3.1 STM32F103C8T6 主控板

STM32F103C8T6 為系統的主控板,它主要獲?。耍玻保?通過串口發送的數據、收集超聲波測距模塊傳過來的距離信息,使小車避障,并通過K210 發來的數據驅動小車。

3.2 K210 核心模塊

K210 可結合機器視覺和機器聽覺能力,提供更強大的功能,如圖2 所示,在應用中可以通過聲源定位對目標進行跟蹤,可以根據麥克風陣列確定一個說話人的方向。K210 的FPIOA 特性,支持每個外設隨意映射到任意引腳,這使得K210 可以有多個I2S 的通道來處理麥克風陣列收集的音頻。

3.3 OLED 顯示屏

硬件的顯示模塊使用0.96 寸的OLED 屏幕,并采用I2C 的通信協議來連接STM32,精致小巧的特點使它便于安裝在小車上并實時顯示聲源的角度和水平的距離。

3.4 麥克風陣列

麥克風陣列模塊由7 個數字麥克風組成,其中6 個麥克風圍繞在四周不同方向,每個麥克風夾角為60°,還有1 個在模塊正中央。另外12 個LED 指示燈,方便指示聲源位置,麥克風陣列的12 個燈珠將整體劃分為12 等份,角間距為π/6。麥克風陣列如圖3 所示。

3.5 超聲波測距模塊

超聲波是一種頻率高于20 000 赫茲的聲波,超聲波測距模塊(HC?SR04 模塊) 可以測得最近距離2cm,最遠距離4 m,測量角度可以達到15°,具有性能穩定,方向性好,穿透能力強,易于獲得較集中的聲能,便于使用的優點。

3.6 驅動電路

驅動電路的功率元器件由LR7843 型MOSFET 管組成,直流電機采用可逆雙極型橋式驅動器,極大地提升了電機的轉速[2] 。

4 系統軟件設計

4.1 系統主程序

先初始化各個模塊,以麥克風陣列S 圖標正方向為坐標原點,右邊為X 正軸,豎直向上為Y 軸建立坐標系,以S 圖標正下方角度為0 度,順時針度數依次增加,當麥克風陣列接收到聲源的信號,K210 記錄聲源到達每個麥克風的時間,從而通過時延算法,計算出聲源的角度和距離。K210 通過串口將計算出的角度和距離發送給STM32,并在OLED 顯示屏實時顯示發送過來的角度和距離。STM32 收到數據后會驅動電機讓小車朝著聲源的方向移動,在移動的過程中,超聲波測距模塊會檢測小車的前面有無障礙物。

4.2 TDOA

4.2.1 基本概念

該設計采用基于TDOA 到達時間差定位原理和廣義互相關函數的時延估計(Generalized Cross CorrelationPHAse Transformation,GCC?PHAT)原理[3] 。在有2 個麥克風M1 和M2 并有噪聲的情況下收到聲源,對其建立模型,具體如下:

x1(t)= s(t-τ1)+n1(t) (1)

x2(t)= s(t-τ2)+n2(t) (2)

其中,τ1 和τ2 分別是聲源到達2 個麥克風的延遲時間,n1(t)和n2(t)為加性噪聲。那么聲源信號到達2個麥克風的TDOA 為:

在麥克風陣列幾何形狀已知的情況下,聲源定位問題變為對時延的估計問題。在確定麥克風陣列的排布后,聲源定位問題進一步變為對時延估算的問題。

4.2.2 時延估計

時延估計常用的有很多種方法,如使用廣義互相關函數。廣義互相關函數的目的就是為了在嘈雜環境下,削弱噪聲和混響的影響,使實際環境聲源的定位更加準確。在互功率譜域使用加權函數加權,然后經過IFFT 運算后找到峰值估計時延,最后通過式(4)和式(5)計算出聲源到達2 個麥克風的時延,Gx1x2(ω)是互頻譜。

4.2.3 定位估計

就二維平面來說,聲源到達麥克風陣列的波形被看作平面波,如圖4 所示。

聲速假定為c,這2 個麥克風之間的距為a,M1 和M2 的時延是τ (,根據圖4 的幾何關系可以得出:

由于其他參數已知,進而可以得到聲源對于麥克風陣列的角度:

4.3 串口通信

串口通信是一種串行異步通信,通信雙方以字符幀為數據傳輸單位,字符幀按位依次傳輸,每個位占固定的時間長度。兩個字符幀之間的傳輸時間間隔可以是任意的,即傳輸完一個字符幀后,可以間隔任意時間再傳輸下一個字符幀。

K210 和STM32 都支持串口通信功能,它們之間的串口通信可以通過連接它們之間的TX 和RX 引腳來實現。K210 一共有3 個UART, 由于K210 的FPIOA 特性,支持每個外設隨意映射到任意引腳,因此UART 可以進行自由的引腳映射。我們將K210 的24 號和25 號引腳作為UART 通信的RX 和TX。STM32C8T6 有3 個UART 接口,本次采用UART1 接口,將PA10 和PA9 作為UART 通信的RX 和TX。下面將介紹K210 和STM32 之間通過串口通信進行數據傳輸的基本步驟。

(1)確定串口通信參數:在K210 和STM32 之間進行串口通信前,需要確認串口通信的波特率、數據位、停止位和校驗位等參數,保證2 個設備設置的參數一致。

(2) 配置K210 的串口:在K210 中,本次使用MaixPy、串口參數等信息。

(3)配置STM32 的串口:在STM32 中,使用Keil5進行串口配置。

(4)發送與接收數據:K210 是發送數據的一端,STM32 則接收K210 發送過來的串口數據。數據的傳輸需要保證2 個設備的串口通信參數一致,而且發送和接收數據的方式也需要保持一致,這樣才能確保數據的正確傳輸。由于K210 發送的數據是ASCII 碼的形式,并且是每次發送一個字符,因此發送數據的結尾要以‘ \r\n來表明發送數據結束。

5 系統測試

在實驗中,先對小車進行固定聲源定位的實驗。將小車放在一個標明角度的大圓盤中,將聲源依次放置不同的角度和距離,看小車能否準確到達聲源的位置。先測量小車起始位置與聲源的距離,等到小車停止后,記錄小車所處圓盤的角度并測出小車所停位置與起點的距離,其實驗數據如表1 所列。

第2 次實驗,在小車的附近放置障礙物,將聲源的發聲裝置放在障礙物的后方,測試小車能否繞過障礙物,從而抵達聲源位置。經過2 次實驗可以得出,在室內封閉的場所,小車在聲源定位時,可以基本準確到達聲源位置,并且可以繞開障礙物。

6 結束語

本文設計了一種基于聲源定位的智能小車,其重點還是如何處理聲源定位。經測試,小車可以很好地確定聲源的角度和距離,也可以較好地實現了對小車的運動控制,可以驗證基于聲源定位的智能小車的定位和可移動性能,并且可以比較不同系統設計和參數之間的差異。本次實驗中存在一定的角度和距離誤差,不能在聲源嘈雜的環境下進行聲源定位,未來的改進還需要考慮聲源定位算法的優化、定位精度的提高、運動控制等方面的問題。此外,對于不同的應用場景,可能需要對系統進行特定的優點適配,以滿足不同的需求,以便可以更加精確地進行聲源定位。本文旨在為后面聲源定位的研究提供參考。

參考文獻:

[1] 邵佳偉.基于麥克風陣列的聲源定位問題研究[D].沈陽:沈陽工業大學,2022.

[2] 朱智,嚴超,潘曉輝.基于聲源定位的智能小車控制系統設計與實現[J].無線互聯科技,2022,19(13):76-78.

[3] 王小懷,伊樹彬,蔡洛思.基于TDOA 技術及幾何模型的聲源精準定位[J].中國新技術新產品,2022,(22):29-31+84.

作者簡介:

蘇俊杰(1999—),碩士,研究方向:嵌入式系統。

胡杰(1968—),碩士,副教授,研究方向:物聯網感知技術、嵌入式系統。

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合