蘇俊杰 胡杰



摘 要:文章基于聲源定位技術研發(fā)出一款在移動過程中自動避障的小車,其以 STM32F103C8T6為主控開發(fā)板,將 K210 搭載麥克風陣列作為聲源處理裝置,并且采用時延算法得出聲源到達不同麥克風陣列的時間差,從而計算出聲源和小車的距離以及角度。為了使角度更加準確,加上了卡爾曼濾波。測試結(jié)果表明,小車到達聲源的位置較為準確。
關鍵詞:時延算法;聲源定位;超聲波測距;麥克鳳陣列;STM32
中圖法分類號:TN912文獻標識碼:A
1 引言
聲源定位小車是一種基于聲學傳感技術的智能機器人,它能夠在那些復雜的環(huán)境中實現(xiàn)一些聲源的定位和跟蹤,具有廣泛的應用前景。
目前,聲源定位小車已在安防、智能家居、醫(yī)療等領域得到了廣泛的應用,例如,在安防領域,聲源定位小車可以通過定位報警設備的聲源位置,實現(xiàn)對安全隱患的及時發(fā)現(xiàn)和處理;在智能家居領域,聲源定位小車可以作為家庭智能助手,對家庭中的各種聲源進行識別和分析,從而實現(xiàn)智能家居的控制和管理。然而,聲源定位小車在實際應用中面臨著許多挑戰(zhàn),如復雜的聲音環(huán)境、定位精度、運動控制等方面的問題。因此,本文旨在研究和實現(xiàn)一種基于聲學傳感技術的聲源定位小車,通過對聲學信號的采集和分析,實現(xiàn)聲源的準確定位和跟蹤,以及對小車的運動控制。
本文基于麥克風陣列實現(xiàn)聲源定位。麥克風陣列聲源定位技術在陣列信號處理技術蓬勃發(fā)展的契機下誕生,能夠在多種場景下對各種聲音信號源定位。用麥克風陣列來采集處理聲波信號受到越來越多學者及專家的關注[1] 。
2 總體設計
系統(tǒng)設計方案如圖1 所示,以實現(xiàn)聲源定位的要求。其采用“6 + 1”形式的數(shù)字麥克風陣列進行聲源收集,K210 負責對收集到的聲源進行處理和聲源定位,STM32F103C8T6 作為主控,傳感器模塊包括編碼器、超聲波測距模塊、OLED 顯示屏,驅(qū)動模塊有電機和驅(qū)動電路。
3 硬件設計
基于整體設計方案,本文對系統(tǒng)的主要部分進行詳細設計。
3.1 STM32F103C8T6 主控板
STM32F103C8T6 為系統(tǒng)的主控板,它主要獲取K210 通過串口發(fā)送的數(shù)據(jù)、收集超聲波測距模塊傳過來的距離信息,使小車避障,并通過K210 發(fā)來的數(shù)據(jù)驅(qū)動小車。
3.2 K210 核心模塊
K210 可結(jié)合機器視覺和機器聽覺能力,提供更強大的功能,如圖2 所示,在應用中可以通過聲源定位對目標進行跟蹤,可以根據(jù)麥克風陣列確定一個說話人的方向。K210 的FPIOA 特性,支持每個外設隨意映射到任意引腳,這使得K210 可以有多個I2S 的通道來處理麥克風陣列收集的音頻。
3.3 OLED 顯示屏
硬件的顯示模塊使用0.96 寸的OLED 屏幕,并采用I2C 的通信協(xié)議來連接STM32,精致小巧的特點使它便于安裝在小車上并實時顯示聲源的角度和水平的距離。
3.4 麥克風陣列
麥克風陣列模塊由7 個數(shù)字麥克風組成,其中6 個麥克風圍繞在四周不同方向,每個麥克風夾角為60°,還有1 個在模塊正中央。另外12 個LED 指示燈,方便指示聲源位置,麥克風陣列的12 個燈珠將整體劃分為12 等份,角間距為π/6。麥克風陣列如圖3 所示。
3.5 超聲波測距模塊
超聲波是一種頻率高于20 000 赫茲的聲波,超聲波測距模塊(HC?SR04 模塊) 可以測得最近距離2cm,最遠距離4 m,測量角度可以達到15°,具有性能穩(wěn)定,方向性好,穿透能力強,易于獲得較集中的聲能,便于使用的優(yōu)點。
3.6 驅(qū)動電路
驅(qū)動電路的功率元器件由LR7843 型MOSFET 管組成,直流電機采用可逆雙極型橋式驅(qū)動器,極大地提升了電機的轉(zhuǎn)速[2] 。
4 系統(tǒng)軟件設計
4.1 系統(tǒng)主程序
先初始化各個模塊,以麥克風陣列S 圖標正方向為坐標原點,右邊為X 正軸,豎直向上為Y 軸建立坐標系,以S 圖標正下方角度為0 度,順時針度數(shù)依次增加,當麥克風陣列接收到聲源的信號,K210 記錄聲源到達每個麥克風的時間,從而通過時延算法,計算出聲源的角度和距離。K210 通過串口將計算出的角度和距離發(fā)送給STM32,并在OLED 顯示屏實時顯示發(fā)送過來的角度和距離。STM32 收到數(shù)據(jù)后會驅(qū)動電機讓小車朝著聲源的方向移動,在移動的過程中,超聲波測距模塊會檢測小車的前面有無障礙物。
4.2 TDOA
4.2.1 基本概念
該設計采用基于TDOA 到達時間差定位原理和廣義互相關函數(shù)的時延估計(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 為:
在麥克風陣列幾何形狀已知的情況下,聲源定位問題變?yōu)閷r延的估計問題。在確定麥克風陣列的排布后,聲源定位問題進一步變?yōu)閷r延估算的問題。
4.2.2 時延估計
時延估計常用的有很多種方法,如使用廣義互相關函數(shù)。廣義互相關函數(shù)的目的就是為了在嘈雜環(huán)境下,削弱噪聲和混響的影響,使實際環(huán)境聲源的定位更加準確。在互功率譜域使用加權(quán)函數(shù)加權(quán),然后經(jīng)過IFFT 運算后找到峰值估計時延,最后通過式(4)和式(5)計算出聲源到達2 個麥克風的時延,Gx1x2(ω)是互頻譜。
4.2.3 定位估計
就二維平面來說,聲源到達麥克風陣列的波形被看作平面波,如圖4 所示。
聲速假定為c,這2 個麥克風之間的距為a,M1 和M2 的時延是τ (,根據(jù)圖4 的幾何關系可以得出:
由于其他參數(shù)已知,進而可以得到聲源對于麥克風陣列的角度:
4.3 串口通信
串口通信是一種串行異步通信,通信雙方以字符幀為數(shù)據(jù)傳輸單位,字符幀按位依次傳輸,每個位占固定的時間長度。兩個字符幀之間的傳輸時間間隔可以是任意的,即傳輸完一個字符幀后,可以間隔任意時間再傳輸下一個字符幀。
K210 和STM32 都支持串口通信功能,它們之間的串口通信可以通過連接它們之間的TX 和RX 引腳來實現(xiàn)。K210 一共有3 個UART, 由于K210 的FPIOA 特性,支持每個外設隨意映射到任意引腳,因此UART 可以進行自由的引腳映射。我們將K210 的24 號和25 號引腳作為UART 通信的RX 和TX。STM32C8T6 有3 個UART 接口,本次采用UART1 接口,將PA10 和PA9 作為UART 通信的RX 和TX。下面將介紹K210 和STM32 之間通過串口通信進行數(shù)據(jù)傳輸?shù)幕静襟E。
(1)確定串口通信參數(shù):在K210 和STM32 之間進行串口通信前,需要確認串口通信的波特率、數(shù)據(jù)位、停止位和校驗位等參數(shù),保證2 個設備設置的參數(shù)一致。
(2) 配置K210 的串口:在K210 中,本次使用MaixPy、串口參數(shù)等信息。
(3)配置STM32 的串口:在STM32 中,使用Keil5進行串口配置。
(4)發(fā)送與接收數(shù)據(jù):K210 是發(fā)送數(shù)據(jù)的一端,STM32 則接收K210 發(fā)送過來的串口數(shù)據(jù)。數(shù)據(jù)的傳輸需要保證2 個設備的串口通信參數(shù)一致,而且發(fā)送和接收數(shù)據(jù)的方式也需要保持一致,這樣才能確保數(shù)據(jù)的正確傳輸。由于K210 發(fā)送的數(shù)據(jù)是ASCII 碼的形式,并且是每次發(fā)送一個字符,因此發(fā)送數(shù)據(jù)的結(jié)尾要以‘ \r\n來表明發(fā)送數(shù)據(jù)結(jié)束。
5 系統(tǒng)測試
在實驗中,先對小車進行固定聲源定位的實驗。將小車放在一個標明角度的大圓盤中,將聲源依次放置不同的角度和距離,看小車能否準確到達聲源的位置。先測量小車起始位置與聲源的距離,等到小車停止后,記錄小車所處圓盤的角度并測出小車所停位置與起點的距離,其實驗數(shù)據(jù)如表1 所列。
第2 次實驗,在小車的附近放置障礙物,將聲源的發(fā)聲裝置放在障礙物的后方,測試小車能否繞過障礙物,從而抵達聲源位置。經(jīng)過2 次實驗可以得出,在室內(nèi)封閉的場所,小車在聲源定位時,可以基本準確到達聲源位置,并且可以繞開障礙物。
6 結(jié)束語
本文設計了一種基于聲源定位的智能小車,其重點還是如何處理聲源定位。經(jīng)測試,小車可以很好地確定聲源的角度和距離,也可以較好地實現(xiàn)了對小車的運動控制,可以驗證基于聲源定位的智能小車的定位和可移動性能,并且可以比較不同系統(tǒng)設計和參數(shù)之間的差異。本次實驗中存在一定的角度和距離誤差,不能在聲源嘈雜的環(huán)境下進行聲源定位,未來的改進還需要考慮聲源定位算法的優(yōu)化、定位精度的提高、運動控制等方面的問題。此外,對于不同的應用場景,可能需要對系統(tǒng)進行特定的優(yōu)點適配,以滿足不同的需求,以便可以更加精確地進行聲源定位。本文旨在為后面聲源定位的研究提供參考。
參考文獻:
[1] 邵佳偉.基于麥克風陣列的聲源定位問題研究[D].沈陽:沈陽工業(yè)大學,2022.
[2] 朱智,嚴超,潘曉輝.基于聲源定位的智能小車控制系統(tǒng)設計與實現(xiàn)[J].無線互聯(lián)科技,2022,19(13):76-78.
[3] 王小懷,伊樹彬,蔡洛思.基于TDOA 技術及幾何模型的聲源精準定位[J].中國新技術新產(chǎn)品,2022,(22):29-31+84.
作者簡介:
蘇俊杰(1999—),碩士,研究方向:嵌入式系統(tǒng)。
胡杰(1968—),碩士,副教授,研究方向:物聯(lián)網(wǎng)感知技術、嵌入式系統(tǒng)。