杜藍(lán)清,林 巨,李瑞芹,高 蕓,王洪超,楊 超
(中國(guó)海洋大學(xué)信息科學(xué)與工程學(xué)院,山東青島 266100)
導(dǎo)航是引導(dǎo)飛機(jī)、船舶、車輛以及個(gè)人安全、準(zhǔn)確地沿選定路線,準(zhǔn)時(shí)到達(dá)目的地的一種手段。聲定位技術(shù)[1]是通過(guò)聲傳感裝置接收聲波,用電子裝置將聲信號(hào)轉(zhuǎn)化為電信號(hào),再利用計(jì)算機(jī)系統(tǒng)對(duì)電信號(hào)進(jìn)行分析處理,以實(shí)現(xiàn)對(duì)聲源識(shí)別、探測(cè),并對(duì)聲目標(biāo)進(jìn)行定位及跟蹤的一門技術(shù)。聲定位技術(shù)以其隱蔽性強(qiáng)、適用性高、成本低等優(yōu)點(diǎn)而備受重視,在軍事和民用領(lǐng)域有著廣泛的應(yīng)用和重要意義。因此聲定位技術(shù)與導(dǎo)航技術(shù)結(jié)合形成有特色的聲導(dǎo)航自行小車。
目前的聲控移動(dòng)裝置多見于采用超聲波技術(shù)躲避障礙物或通過(guò)某些語(yǔ)音語(yǔ)句控制裝置的行進(jìn)路線[2]。聲導(dǎo)航主要應(yīng)用于聲吶、潛水器、UUV(無(wú)人水下航行器)等水下裝置,而在空氣中采用聲學(xué)方式進(jìn)行導(dǎo)航的移動(dòng)裝置還不多見。項(xiàng)目所研究聲導(dǎo)航自動(dòng)小車,可以通過(guò)接收信號(hào),判定聲源位置,確定前進(jìn)方向,并通過(guò)自主追蹤移動(dòng)聲源,修正移動(dòng)路徑。
系統(tǒng)包括聲發(fā)射模塊、聲接收模塊、硬件濾波模塊、計(jì)時(shí)模塊、運(yùn)算控制模塊和電機(jī)驅(qū)動(dòng)模塊。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。整個(gè)系統(tǒng)可以分為聲源定位和車體移動(dòng)兩大部分。系統(tǒng)各模塊工作是由單片機(jī)MC9S12XS128控制協(xié)調(diào)的,它是整個(gè)系統(tǒng)的核心。單片機(jī)MC9S12XS128擁有128 kB的Flash程序空間,8通道24位中斷定時(shí)器,8通道16位定時(shí)器,8通道PWM波輸出和8通道12位精度的A/D轉(zhuǎn)換器;同時(shí)集成CAN,SPI,SCI和UART等通信接口;使用16 MHz外部晶振,通過(guò)鎖相環(huán)最高可倍頻至96 MHz;最小系統(tǒng)包括外部晶振、復(fù)位電路及BDM調(diào)試接口電路等[3],且該單片機(jī)性價(jià)比較高。該芯片通過(guò)FPGA計(jì)算出的時(shí)間差計(jì)算出小車與聲源的相對(duì)r和α,其中r是小車與聲源間的距離,α是聲源相對(duì)于小車的方位角,并產(chǎn)生合適的PWM,是小車到達(dá)聲源處。
圖1 系統(tǒng)基本框圖
1.2.1 聲發(fā)射模塊
模塊采用SRF05超聲波傳感器作為系統(tǒng)的通信模塊。作為發(fā)射端模塊,沒有使用Echo接收端的功能。該模塊采用3節(jié)干電池供電,打開焊接的開關(guān)后,指示燈亮,模塊自動(dòng)發(fā)射8個(gè)周期的40 kHz方波超聲信號(hào)??諝庵袔缀鯖]有超聲信號(hào),選擇40 kHz的超聲信號(hào)可以忽略空間的其他聲源的干擾。
1.2.2 聲接收及硬件濾波模塊
該模塊也采用SRF05超聲波傳感器作為系統(tǒng)的通信模塊,作為接收端,沒有使用發(fā)射功能。接收端接收信號(hào)后,通過(guò)硬件濾波,判斷是否為有效信號(hào)。圖2為接收模塊的電路圖。若接收到40 kHz的信號(hào)電路導(dǎo)通,I/O口Echo輸出高電平、OUT端輸出1;若接收到的信號(hào)中沒有40 kHz的信號(hào)電路不導(dǎo)通,I/O口Echo為低電平、OUT端為0。該系統(tǒng)使用了3個(gè)接收端,其位置關(guān)系如圖3所示。
圖2 接收模塊電路圖
1.2.3 FPGA計(jì)算時(shí)間差模塊
模塊采用Altera FPGA CycloneII EP2C5T144計(jì)算時(shí)間差。信號(hào)接收端1接收到有效信號(hào)后觸發(fā)FPGA的計(jì)數(shù)器,接收端2接收到有效信號(hào)后停止計(jì)數(shù)且觸發(fā)另一個(gè)計(jì)數(shù)器,接收端3接收到有效信號(hào)后停止計(jì)數(shù)。計(jì)數(shù)數(shù)值乘以FPGA的頻率可以得到兩個(gè)時(shí)間差。
1.2.4 單片機(jī)模塊
采用飛思卡爾智能車芯片MC9S12XS128。該芯片接收到FPGA傳來(lái)的兩個(gè)時(shí)間差,再利用麥克間距、聲速算出聲源距離小車的距離r和角度α,并產(chǎn)生合適的PWM驅(qū)動(dòng)電機(jī)使小車準(zhǔn)確到達(dá)聲源處。
圖3為系統(tǒng)程序流程圖。
圖3 系統(tǒng)程序流程圖
如圖4所示,在小車上安裝3個(gè)等間距的端口,間距為d,且3個(gè)端口在同一直線上。要測(cè)量的是點(diǎn)聲源M與中心陣元B的距離r與方位角α[3-4]。
圖4 三元陣被動(dòng)測(cè)距幾何關(guān)系
t12為聲源到達(dá)端口1和2的時(shí)間差;t23為聲源達(dá)到端口2、3的時(shí)間差;陣元間距為d;聲速為c。在遠(yuǎn)場(chǎng)平面波近似條件下,由幾何關(guān)系得
FPGA根據(jù)聲接收模塊的信號(hào),進(jìn)行時(shí)間差計(jì)算。當(dāng)有一路信號(hào)有效時(shí)啟動(dòng)計(jì)數(shù)器開始計(jì)時(shí),另外兩路信號(hào)同時(shí)有效時(shí)停止計(jì)數(shù),且計(jì)數(shù)結(jié)果可以借助計(jì)數(shù)器的存儲(chǔ)功能得以存儲(chǔ)。所用FPGA主頻為50 MHz,時(shí)間差=計(jì)數(shù)值×0.02 μs。根據(jù)兩次的時(shí)間差值,利用定位算法可以實(shí)現(xiàn)定位功能。此外還設(shè)置了各路鎖存信號(hào),可以判別出聲源的左右位置。圖5為利用Quartus II所設(shè)計(jì)的FPGA簡(jiǎn)單計(jì)數(shù)的電路圖。利用角度估計(jì)的遠(yuǎn)場(chǎng)條件,但仍不放棄柱面波和球面波的假設(shè),由余弦定理和泰勒展開得到目標(biāo)距離
圖5 利用Quartus II設(shè)計(jì)的FPGA計(jì)數(shù)電路圖
選用雙直流電機(jī)的小車模型進(jìn)行試驗(yàn),兩個(gè)電機(jī)分別對(duì)小車左側(cè)的兩個(gè)車輪和右側(cè)的兩個(gè)車輪進(jìn)行控制。預(yù)設(shè) PWM波的頻率值為10 kHz。在單片機(jī)MC9S12XS128芯片特定的應(yīng)用程序CodeWarrior IDE中進(jìn)行代碼編寫。針對(duì)不同的電機(jī)系統(tǒng),需要進(jìn)行實(shí)測(cè)并判斷合適的轉(zhuǎn)向、延時(shí)時(shí)間[5]。
采用40 kHz的信號(hào)有利于避免外界干擾,使信號(hào)的誤判率降低。系統(tǒng)采用FPGA與單片機(jī)結(jié)合的形式進(jìn)行聲導(dǎo)航,使小車能夠準(zhǔn)確到達(dá)聲源處。電機(jī)運(yùn)行環(huán)境和路面狀況不同時(shí),由r和α產(chǎn)生合適的PWM比較困難,需要不斷調(diào)試,最終找到合適的PWM。該技術(shù)方案還可推廣,搭載家用小型餐桌、兒童搖籃、電腦桌和餐廳餐車等以實(shí)現(xiàn)智能行走功能,為生活提供方便。
[1]曹南雋.聲源定位算法研究[D].北京:北京理工大學(xué),2007.
[2]黃晶晶.環(huán)境障礙物超聲波探測(cè)技術(shù)的研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2007.
[3]吳斌華,黃衛(wèi)華,程磊,等.基于路徑識(shí)別的智能車系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2007(3):80-82.
[4]田垣.聲納技術(shù)[M].2版.哈爾濱:哈爾濱工程大學(xué)出版社,2009.
[5]王勇,劉穎,劉建平.一種基于麥克風(fēng)陣列的聲源定位算法研究[J].現(xiàn)代電子技術(shù),2011,34(9):61-64.