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