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