摘要:設(shè)計(jì)了一個(gè)基于STM32" title="STM32">STM32控制的聲音導(dǎo)引" title="聲音導(dǎo)引">聲音導(dǎo)引系統(tǒng),。該系統(tǒng)由1個(gè)可移動(dòng)聲源S和3個(gè)聲音接收器A,、B、C構(gòu)成,。由一片從控STM32單片機(jī)控制無(wú)線發(fā)送模塊,,實(shí)現(xiàn)聲音導(dǎo)引信號(hào)的發(fā)送。主控單片機(jī)根據(jù)無(wú)線接收模塊所接收到的信息來(lái)判斷可移動(dòng)聲源運(yùn)動(dòng)的啟停,。
引言
聲音導(dǎo)引系統(tǒng),,主要是靠聲音來(lái)完成對(duì)機(jī)器的智能控制,既方便又快捷,。尤其是環(huán)境比較惡劣,、不適合人類停留的地方,可以依靠聲音來(lái)控制機(jī)器的正常運(yùn)行,。聲音導(dǎo)引系統(tǒng)也是智能化控制的一個(gè)方面,,對(duì)未來(lái)的智能化發(fā)展有較大的促進(jìn)作用,對(duì)未來(lái)智能機(jī)器人的研究也大有幫助,。
1 系統(tǒng)總體方案
如圖1所示,,聲音導(dǎo)引系統(tǒng)由1個(gè)可移動(dòng)聲源S,,聲音接收器A、B和C構(gòu)成,。其中,,可移動(dòng)聲源由發(fā)聲模塊和無(wú)線接收模塊組成;A,、B,、C三處各放置一個(gè)聲音接收器。
針對(duì)系統(tǒng)設(shè)計(jì)要求,,可以采用以下實(shí)現(xiàn)方案:在O點(diǎn)設(shè)置一個(gè)STM32單片機(jī)控制器,,作為A、B,、C三個(gè)聲音接收器的公共控制器,,并通過(guò)一個(gè)公共無(wú)線發(fā)送模塊向可移動(dòng)聲源發(fā)送反饋信號(hào)??梢苿?dòng)聲源開(kāi)始運(yùn)動(dòng)并發(fā)出聲音后,,聲音接收器A、B和C收到聲音,,將聲音信號(hào)分別傳送給STM32單片機(jī),,由STM32單片機(jī)判別A、B和C哪個(gè)聲音接收器先接收到該聲音信號(hào),。
若聲音接收器B先收到,,則不發(fā)送反饋信號(hào)給可移動(dòng)聲源。一旦聲音接收器A先收到聲音信號(hào),,表明可移動(dòng)聲源已經(jīng)在定位誤差的范圍內(nèi)到達(dá)Ox線,,無(wú)線發(fā)送模塊立即向可移動(dòng)聲源發(fā)送反饋信號(hào),可移動(dòng)聲源接收到該信號(hào)后,,立即停止運(yùn)動(dòng),。該方案電路簡(jiǎn)單,只需要一套無(wú)線收發(fā)系統(tǒng),,因此也節(jié)約了成本,。
2 系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)中,可移動(dòng)聲源由EDC-CarX V1.0-2007.06四驅(qū)版DIY競(jìng)賽小車(chē),、日本NEC電機(jī)控制ASSP芯片MMC-1,、STM32 Cortex-M3" title="Cortex-M3">Cortex-M3系列單片機(jī)、無(wú)線接收模塊,、天線,、蜂鳴器組成;音頻接收模塊,、無(wú)線發(fā)送模塊,、天線組成聲音接收器,。
如圖2所示,本系統(tǒng)主要靠無(wú)線模塊實(shí)現(xiàn)主從控制器之間的通信,,進(jìn)而通過(guò)MCU-1來(lái)控制電機(jī)的運(yùn)行狀態(tài),。由于該系統(tǒng)要求系統(tǒng)的響應(yīng)速度快、功耗低,、穩(wěn)定性高等,,一般的C51單片機(jī)不能滿足要求,綜合考慮選擇ST公司Cortex-M3系列的STM32F1103VE作為主控芯片,。該芯片基于專為要求高性能,、低成本、低功耗的嵌入式應(yīng)用設(shè)計(jì)的ARM Cortex-M3內(nèi)核,。其特點(diǎn)如下:工作時(shí)鐘頻率最高達(dá)到72 MHz,;單周期乘法和硬件除法;256~512KB的Flash,,高達(dá)64 KB的SRAM,;睡眠、停機(jī)和待機(jī)3種低功耗模式,;2通道12位D/A轉(zhuǎn)換器,;多達(dá)13個(gè)通信接口;11個(gè)定時(shí)器,,可以進(jìn)行輸入捕捉/輸出比較/PWM信號(hào)通道和增量編碼輸入,。
可移動(dòng)聲源電機(jī)部分由STM32-F103VE、MMC-1和L293芯片驅(qū)動(dòng),,其控制,、驅(qū)動(dòng)電路如圖3所示,。MMC-1和L293都是直流電機(jī)的控制芯片,,這種組合更有利于精確控制。
無(wú)線接收模塊電路如圖4所示,。SCDRX2DS為無(wú)線接收模塊的控制芯片,。301是電路的穩(wěn)壓芯片,起到電壓保護(hù)的作用,。
3 軟件設(shè)計(jì)
本系統(tǒng)的軟件部分主要分為移動(dòng)聲音模塊和聲音接收模塊,。采用ST公司提供的函數(shù)庫(kù)進(jìn)行開(kāi)發(fā)。該函數(shù)庫(kù)是一個(gè)固件函數(shù)包,,它由程序,、數(shù)據(jù)結(jié)構(gòu)和宏組成,包括了微控制器所有外設(shè)的性能特征,,以及每一個(gè)外設(shè)的驅(qū)動(dòng)描述和應(yīng)用實(shí)例,。通過(guò)使用函數(shù)庫(kù),,無(wú)需深入掌握細(xì)節(jié),用戶就可以輕松地應(yīng)用外設(shè),,從而大大縮短了用戶的編程時(shí)間,,進(jìn)而降低了開(kāi)發(fā)成本。為了減小開(kāi)發(fā)難度,,本設(shè)計(jì)以引用函數(shù)庫(kù)為主,,添加自己的用戶程序完成整個(gè)系統(tǒng)的軟件部分。
3.1 移動(dòng)聲音模塊
本模塊主要實(shí)現(xiàn)移動(dòng)聲音控制器的功能,。利用延時(shí)的方法產(chǎn)生高低電平來(lái)驅(qū)動(dòng)蜂鳴器產(chǎn)生聲源,。通過(guò)SPI串口和NEC的從控芯片進(jìn)行通信,發(fā)送命令進(jìn)而來(lái)控制電機(jī)的運(yùn)行狀態(tài),。通過(guò)無(wú)線模塊接收的信息先暫存在SPI的緩沖區(qū)中,,以備控制命令及時(shí)發(fā)送。發(fā)送的控制命令有前進(jìn),、后退,、左轉(zhuǎn)、右轉(zhuǎn)和停止信號(hào),。移動(dòng)聲音模塊控制流程如圖5所示,。
3.2 聲音接收模塊
本模塊的功能主要是循環(huán)接收傳感器的信息,根據(jù)3個(gè)接收器傳回聲音的順序不同,,來(lái)判斷移動(dòng)聲音的位置和運(yùn)行狀態(tài),,進(jìn)而將前進(jìn)、后退,、左轉(zhuǎn)和右轉(zhuǎn)控制命令發(fā)送給移動(dòng)聲源,。由于該控制器的采樣頻率要高,因此把主控制器的時(shí)鐘頻率通過(guò)PLL調(diào)到最大72 MHz,。聲音接收模塊控制流程如圖6所示,。
4 系統(tǒng)測(cè)試
測(cè)試儀器包括:100 MHz數(shù)字示波器,數(shù)字萬(wàn)用表(型號(hào)VICTOR-VC890D),,STM32單片機(jī)開(kāi)發(fā)板,,秒表,卷尺,。
用示波器觀測(cè)單片機(jī),、MMC-1芯片的輸入/輸出引腳信號(hào)波形,用數(shù)字萬(wàn)用表檢查元件有無(wú)虛焊,,從而確定對(duì)電機(jī)的驅(qū)動(dòng)情況,。
用秒表、卷尺測(cè)試小車(chē)運(yùn)動(dòng)的平均速度,,并量取定位誤差,。假設(shè)小車(chē)初始位置為S0,,小車(chē)停止位置為S且SS0與間夾角為α,全程運(yùn)動(dòng)時(shí)間為t,,S與0x線間距離為d,,則小車(chē)平均速度為SS0·tan(α/t)。
測(cè)試數(shù)據(jù)如表1所列,。
結(jié)語(yǔ)
可移動(dòng)聲源開(kāi)始運(yùn)動(dòng)并發(fā)出聲音,,3個(gè)聲音接收器收到來(lái)自可移動(dòng)聲源的聲音信號(hào)后,立即發(fā)出各自載波頻率的反饋信號(hào)給可移動(dòng)聲源,??梢苿?dòng)聲源根據(jù)接收到的不同信號(hào)頻率判斷反饋信號(hào)的源頭,從而由MCU發(fā)出相應(yīng)控制信號(hào)(前進(jìn),、倒退和轉(zhuǎn)彎),,導(dǎo)引可移動(dòng)聲源在定位誤差的范圍內(nèi)。