鄧三星,李克強(qiáng),薛國陽,李恒,張兆寬
(黃河交通學(xué)院 河南省智能制造技術(shù)與裝備工程技術(shù)研究中心,河南焦作,454950
《墨子》一書中有這樣的記錄:“令陶者為罌,容四十斗以上,固順之以薄革,置井中,使聰耳者伏罌而聽之,審知穴之所在,鑿穴迎之。”其中指的就是戰(zhàn)國時期的“地聽”跟“瓷聽”。這是我國有記載的最早用聲響來實現(xiàn)定位的案例。
在日漸現(xiàn)代化、智能化的今天,語音識別和聲源定位的高效性已進(jìn)入我們生活的方方面面。聲源定位技術(shù)在視頻會議系統(tǒng)[1]、汽車鳴笛定位、人機(jī)交互[2]等均有非凡的意義,傳統(tǒng)的單個麥克風(fēng)的拾音范圍很有限,拾取信號的質(zhì)量不高。本文以K210 單片機(jī)作為主控制核心,Mega2560 單片機(jī)作從控制核心,設(shè)計了一種聲源定位裝置,可實現(xiàn)對聲源信息的二維定位,并對系統(tǒng)精確度進(jìn)行測試。
主控制單元從麥克風(fēng)陣列獲取個麥克風(fēng)探頭讀取到的聲音信息取最高三個值計算出聲源的跟基準(zhǔn)面的夾角信息并將其通過串口發(fā)送給從控制單元;從控制單元收來自于主控制單元的角度信息后控制舵機(jī)轉(zhuǎn)至對應(yīng)角度,隨后通過三路超聲波模塊對位置進(jìn)行小范圍糾偏。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
麥克風(fēng)陣列,是將多個麥克風(fēng)按一定的空間位置關(guān)系布置形成的陣列,是對空間傳播聲音信號進(jìn)行空間采樣的一種裝置,采集到的信號包含了其空間位置信息。根據(jù)聲源和麥克風(fēng)陣列之間距離的遠(yuǎn)近,可將陣列分為近場模型和遠(yuǎn)場模型。根據(jù)麥克風(fēng)陣列的拓?fù)浣Y(jié)構(gòu),則可分為線性陣列、平面陣列、體陣列等。本文使用集成化的平面陣列;對其控制方式是通過計算時延來實現(xiàn)對聲源位置的計算;計算時延的方法多種多樣,本文采用最為經(jīng)典的廣義互相關(guān)函數(shù)估計時延。
(1)時延計算[3]
在噪聲存在的情況下一個平面束波由聲源發(fā)出,被麥克風(fēng)陣列識別到并提取三組最高值并將兩頭數(shù)據(jù)分別同中間數(shù)據(jù)進(jìn)行比對計算那么可建立數(shù)學(xué)模型:
上式st是聲音信號,n1t和n2t是這兩個麥克風(fēng)探頭所檢測到的噪聲值,麥克風(fēng)陣列上的每個麥克風(fēng)都是獨(dú)立運(yùn)行的其各自采集的數(shù)值互不影響。
(2)x1和x2之間的關(guān)系
麥克風(fēng)陣列擴(kuò)展模塊由 7 個數(shù)字麥克風(fēng)組成,其中6 個按圓周陣列分布于模塊四周最后一個位于模塊中心,便于識別各個方向的聲源另外 12 個LED 指示燈同樣呈圓周陣列分布于模塊四周,方便指示聲源位置[5]。本文使用圓周六個麥克風(fēng),中央的麥克風(fēng)并不使用。麥克風(fēng)陣列擴(kuò)展模塊如圖2 所示。
圖2 麥克風(fēng)陣列擴(kuò)展模塊
(1)74LVC1T45W6 單位雙向可控電平轉(zhuǎn)換芯片在其中將聲音信號以高低電平的形式將聲信號轉(zhuǎn)換為電信號傳輸給后續(xù)的低通濾波器,以自身所具有的高噪音抑制特性與低通濾波器共同實現(xiàn)對聲音信號的降噪處理。74LVC1T45W6 電平轉(zhuǎn)換電路如圖3 所示。
圖3 74LVC1T45W6 電平轉(zhuǎn)換電路
(2)MCP6242 是用于放大器的運(yùn)算放大器。這是一款 3.3V 兼容軌對軌運(yùn)算放大器。初始高通濾波器的截止頻率約為 160Hz。帶通放大器上的高通濾波器被選擇為與初始高通濾波器的截止值大致匹配。至于運(yùn)算放大器的低通濾波器,選擇該濾波器的截止頻率約為 725Hz。選擇這些較低頻率的原因是能夠用簡單方法獲得原始采樣率。使用的增益是 1000:1。麥克風(fēng)電路的每個輸出都連接到一個具有模擬功能的輸入/輸出引腳。使用的引腳是RA0、RA1 和RB3,它們對應(yīng)于AN0、AN1 和AN5。
基于麥克風(fēng)陣列的聲源定位裝置的設(shè)計與實現(xiàn)采用的核心部件為K210 單片機(jī),最小系統(tǒng)由上電復(fù)位電路、電源供電電路與時鐘電路三部分構(gòu)成,其中電源電路中有5 個數(shù)字電源正極;主時鐘晶振頻率為400MHz,晶振電路為單片機(jī)提供定時計數(shù)功能;NRET 引腳正常工作時接3.3V 高電平,同時并連一個按鈕開關(guān),按鈕開關(guān)接地,在需要進(jìn)行初始化操作時,按下開關(guān)復(fù)位引腳被賦予低電平即可。
K210 全稱為堪智K210,是嘉楠科技自主研發(fā)的一款采用RISC-V 處理器架構(gòu),支持機(jī)器視覺與機(jī)器聽覺多模態(tài)識別,可廣泛應(yīng)用于智能家居、智能園區(qū)、智能能耗和智能農(nóng)場等場景。擁有雙核64 處理器,相應(yīng)的算力高達(dá)1TPOS,硬件可靠性強(qiáng)穩(wěn)定性高在一定程度上提高了裝置的響應(yīng)速度與精度[6~9]。
舵機(jī)是一種位置(角度)伺服的驅(qū)動器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。在智能控制領(lǐng)域應(yīng)用較為普遍。
舵機(jī)是一個經(jīng)典的閉環(huán)反饋系統(tǒng),原動力由電機(jī)提供,進(jìn)而帶動齒輪箱,承擔(dān)終端位置檢測反饋任務(wù)的為電位器,線性電位器以比例電壓的形式將轉(zhuǎn)角坐標(biāo)反饋給控制電路板,控制電路板將該信號與輸入的控制信號相比較,然后發(fā)生修正脈沖信號,同時驅(qū)動電機(jī)正向或反方向的轉(zhuǎn)動。
舵機(jī)結(jié)構(gòu)示意圖如圖4 所示。
圖4 舵機(jī)結(jié)構(gòu)示意圖
HC-SR04 超聲波模塊可以自身對超聲波的發(fā)送與接收來實現(xiàn)測距工作,在誤差允許情況下最遠(yuǎn)可達(dá)400cm,其主要由發(fā)射極、接收極與調(diào)理電路構(gòu)成自帶晶振電路和濾波電路在一定程度上減小了控制單元工作量。其基本工作原理如下:
(1)采用IOTRIG 觸發(fā)測距,給最少 10μs 的高電平信號。
(2)模塊在此期間自動發(fā)送 8 個 40kHz 的方波信號,同時自動檢測是否有信號返回;
(3)若有信號返回,通過 IOECHO 輸出一個高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間。測試距離=(高電平時間×聲速(340m/s))/2。超聲波模塊如圖5 所示。
圖5 超聲波模塊
系統(tǒng)通電后各部分模塊進(jìn)行初始化操作,K210 單片機(jī)作為主控制單元,Mega2560 單片機(jī)作為從控制單元。麥克風(fēng)陣列模塊檢測到聲源信息后將聲音信號以電信號的形式發(fā)送給K210 單片機(jī),在其內(nèi)部經(jīng)過一系列計算得到角度信息與距離信息,點亮對應(yīng)方向的LED 指示燈并將距離信息和角度信息傳輸給Mega2560 單片機(jī),Mega2560 單片機(jī)控制舵機(jī)轉(zhuǎn)至對應(yīng)角度,隨后超聲波模塊通過測得距離的差值對角度信息進(jìn)行微調(diào)并將得到的距離信息與K210 單片機(jī)傳來的距離信息比對進(jìn)而得到最終的距離信息并通過OLED顯示屏顯示。系統(tǒng)主程序流程圖如圖6 所示。
圖6 系統(tǒng)主程序流程圖
K210 單片機(jī)通過mic_appay 程序模塊獲取聲源分布圖進(jìn)而計算出聲源方向,在去除干擾值后計算出對應(yīng)的x,y 坐標(biāo)并換算出角度跟距離,將之通過串口傳送給Mega-2560 單片機(jī)。
角度信息、距離信息讀取關(guān)鍵行程序如下:
Mega2560 單片機(jī)控制的舵機(jī)上方搭載三路超聲波測距模塊,在接收到K210 單片機(jī)發(fā)送的角度信息后Mega2560 單片機(jī)會控制舵機(jī)旋轉(zhuǎn)到對應(yīng)的位置,然后三路超聲波模塊會對聲源面進(jìn)行測量距離并相互比對最終正對聲源面,讀取此時的舵機(jī)角度偏移量并跟K210 單片機(jī)發(fā)送的角度信息取和即完成對角度的校準(zhǔn)。
Mega2560 角度校準(zhǔn)關(guān)鍵行程序如下:
主要測量聲源與裝置的角度方位以及距離大小。系統(tǒng)測量結(jié)果如表1、表2 所示。為測試系統(tǒng)誤差采用控制變量法測試距離不變時測量角度與理論角度對比如圖7 所示。角度不變時測量距離與理論距離對比如圖8 所示。距離與角度均變化時測量結(jié)果如表3 所示。距離與角度均變化時測量值與理論值對比如圖9 所示。
表1 距離不變時系統(tǒng)測量結(jié)果
表2 角度不變時系統(tǒng)測量結(jié)果
表3 角度距離均變化時測量結(jié)果
圖7 距離不時測量角度與理論角度對比
圖8 角度不變時測量距離與理論距離對比
圖9 角度距離均變化時測量值與理論值對比
(1)在距離原點較近范圍內(nèi)的聲源定位誤差較大,原因是距離越近,聲音到達(dá)麥克風(fēng)的時間越小,對系統(tǒng)的時延分辨率要求就越高,在系統(tǒng)的實驗分辨率一定的情況下,聲源距離誤差自然會增加。
(2)算法的問題:時間延遲的求法受噪聲影響很大,想提高精度必須提高算法抗噪性;下一步定位估計的過程是直接利用第一步結(jié)論,會導(dǎo)致誤差進(jìn)一步放大。
(3)是由于多普勒效應(yīng)(Doppler effect)的影響,多普勒效應(yīng)是波源與觀察者有相對運(yùn)動時,觀察者接受到波的頻率與波源發(fā)出的頻率并不相同的現(xiàn)象。即同樣的聲音信息但是當(dāng)聲源是運(yùn)動的情況下我們所采集到的信息是有一定差異的,如行駛的汽車在面駛來時鳴笛跟背向遠(yuǎn)離時鳴笛我們聽到的聲音是不一樣的,迎面駛來聲音尖細(xì)背向遠(yuǎn)離聲音沉悶;在聲源運(yùn)動時我們采集到的聲音信息波長會發(fā)生變化但是由于聲源與裝置的位置的細(xì)微變化我們無法測量,因此存在誤差[10]。
(1)聲測定位技術(shù)研究是一項涉及聲學(xué)、信號檢測、數(shù)字信號處理、電子學(xué)、軟件設(shè)計等諸多技術(shù)領(lǐng)域的新技術(shù)課題。
(2)本實驗實現(xiàn)了二維平面內(nèi)的聲源位置測定,將之用角度與距離數(shù)據(jù)體現(xiàn)并且在元件規(guī)格允許范圍內(nèi)對聲源位置實現(xiàn)了跟蹤定位。
(3)本實驗只能對單個聲源進(jìn)行定位且距離信息只有在表面積相對大的情況下才能實現(xiàn)較為準(zhǔn)確的測定,同時信號時延問題也有待進(jìn)一步研究,在算法上加以深入研究。
(4)在本實驗基礎(chǔ)之上增加豎直方向的拾音傳感器并配合云臺舵機(jī)將有望實現(xiàn)對三維空間鍵的聲源定位,同時改變算法結(jié)構(gòu)提升算法性能完全可以脫離外部測距裝置依靠聲音信息造成的時間差進(jìn)行對聲源位置的測定。