汪文立,王琪,,丁柏文,任俊,金琦淳,,張金錚,
(江蘇科技大學(xué) a. 蘇州理工學(xué)院,機電與動力工程學(xué)院,江蘇 蘇州 215600; b. 張家港校區(qū)機電與動力工程學(xué)院,江蘇 蘇州 215600)
近年來,語音識別技術(shù)一直是國內(nèi)外研究的熱點。語音識別是最自然的人機交互方式,具有靈活、便捷、快速響應(yīng)的特點,對提高工作效率、簡化設(shè)備控制有著巨大的作用[1]。在智能車領(lǐng)域中,該技術(shù)已得到應(yīng)用,有文獻中提出了語音小車采用51單片機作為主控芯片[2-3],但其芯片構(gòu)成最小系統(tǒng)的電路復(fù)雜。也有學(xué)者提出直接由語音命令控制單片機驅(qū)動小車電機[4],但該方案的問題是電機轉(zhuǎn)動產(chǎn)生噪聲而易造成識別干擾,可能出現(xiàn)控制不穩(wěn)定及控制距離不夠的問題。本文通過采用IAP系列單片機、語音識別芯片、無線模塊及驅(qū)動模塊組成了小車系統(tǒng),省去了外部晶振及復(fù)位電路,簡化了系統(tǒng)的電路設(shè)計,解決了遠程語音穩(wěn)定控制的問題,實現(xiàn)了對小車運動狀態(tài)的實時控制。
無線語音智能小車系統(tǒng)分為控制部分和驅(qū)動部分。控制部分由單片機、語音識別模塊和無線模塊組成,驅(qū)動部分由單片機、無線模塊和電機驅(qū)動模塊組成。系統(tǒng)控制過程如下:由外部發(fā)出語音指令信息,然后通過語音模塊進行識別。根據(jù)用戶說出的語音信息經(jīng)頻譜轉(zhuǎn)換成語音特征參數(shù),與預(yù)存的參數(shù)庫中的條目一一進行匹配,得出最佳匹配結(jié)果。將結(jié)果通過串口通訊的方式傳送給單片機,進而通過無線模塊將指令發(fā)送給小車。通過小車上的無線模塊接收無線信號,經(jīng)單片機讀取信號并發(fā)出相應(yīng)的指令給驅(qū)動芯片,最后驅(qū)動電機實現(xiàn)小車前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止的實時控制,系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
無線語音小車系統(tǒng)硬件電路設(shè)計分為控制系統(tǒng)電路和驅(qū)動系統(tǒng)電路設(shè)計。系統(tǒng)硬件設(shè)計選用IAP15F2K61S2單片機為主控核心,該單片機性能高且功耗低,其運行速度是傳統(tǒng)8051的12倍,并擁有大容量程序存儲器。片內(nèi)集成可編程計數(shù)器(PCA)模塊,可同時3路脈寬調(diào)制(PWM)輸出用于電機速度控制。內(nèi)部高可靠復(fù)位,可徹底省掉外圍復(fù)位電路。在常溫工作時可使用內(nèi)部RC振蕩器時鐘,省去外部時鐘電路??刂葡到y(tǒng)硬件電路設(shè)計包括:單片機最小系統(tǒng)設(shè)計、無線模塊設(shè)計、語音模塊設(shè)計和電源電路設(shè)計,如圖2所示。
驅(qū)動系統(tǒng)硬件電路設(shè)計包括:單片機系統(tǒng)設(shè)計、無線模塊設(shè)計、驅(qū)動模塊設(shè)計和電源模塊設(shè)計,如圖3所示。
圖2 控制系統(tǒng)電路圖
圖3 驅(qū)動系統(tǒng)電路圖
1) 語音識別模塊
LD3320是一款基于ASR技術(shù)非特定人語音識別的語音芯片[5],不需要用戶事先訓(xùn)練語音。芯片采用并行的方式和單片機通信,可以支持50條預(yù)存指令,其內(nèi)容可以進行動態(tài)修改。但由于語音識別的敏感性,當(dāng)環(huán)境嘈雜、距離過遠時或當(dāng)語音內(nèi)容相對于預(yù)設(shè)關(guān)鍵字漏字、多字時,容易發(fā)生誤識別。為了避免上述情況,可以多設(shè)置幾條相關(guān)的關(guān)鍵詞,其對應(yīng)的程序為空,用這樣的方式可以來吸收錯誤識別,也可將模塊設(shè)置為口令模式,只有當(dāng)模塊識別到口令之后,其余的語音指令才有效[6]。
語音識別系統(tǒng)工作過程如下,首先通過MCU用拼音串的方式將用戶需要的關(guān)鍵詞信息寫入到LD3320關(guān)鍵詞語列表。再由麥克風(fēng)采集外界聲音,經(jīng)過頻譜分析后提取其中的語音特征信息(即關(guān)鍵詞語),通過語音識別器與關(guān)鍵詞語列表內(nèi)的詞語進行逐個對比,尋找到最接近的一個詞語為最佳的識別結(jié)果[7]。最后將最佳識別結(jié)果傳回給單片機,語音識別工作圖如圖4所示。
圖4 語音識別工作圖
2) 無線發(fā)射模塊
系統(tǒng)采用一對NRF24L01無線通信模塊進行數(shù)據(jù)的通信。該模塊工作2.4GHz~2.5GHz ISM頻段,可自由調(diào)節(jié)輸出功率及信道。模塊功耗低,在掉電模式和待機模式下效果更為顯著[8]。模塊天線采用印制導(dǎo)線,使得硬件電路更為輕便、靈活。
模塊的工作模式選用Enhanced ShockBurshTM(增強型突發(fā))模式,低速輸入、高速發(fā)出且數(shù)據(jù)不易丟失。無線模塊采用I/O模擬SPI接口的方式與單片機通訊,通過SPI串行總線協(xié)議對芯片進行讀與寫的基本操作[9]。在控制電路中設(shè)置NRF24L01芯片為發(fā)射模式,按照SPI協(xié)議寫入發(fā)射和接收節(jié)點地址、自動應(yīng)答功能、允許接收通道、自動重發(fā)次數(shù)、通信頻率及發(fā)射的參數(shù)。CE置高,激活寄存器中數(shù)據(jù)并發(fā)送。隨后開啟自動應(yīng)答模式,接收應(yīng)答信號。如果接收應(yīng)答信號成功,置位IRQ并轉(zhuǎn)為發(fā)送模式,繼續(xù)循環(huán)發(fā)送數(shù)據(jù)。如果未接收到應(yīng)答信號,則重新發(fā)送上一次數(shù)據(jù)包,工作圖如圖5所示。
圖5 無線發(fā)射工作圖
1) 電機驅(qū)動模塊
電機驅(qū)動芯片采用L298N,芯片內(nèi)含4通道邏輯驅(qū)動電路,即有2個H橋的高電壓大電流雙全橋式驅(qū)動器,接收TTL邏輯電平信號。驅(qū)動芯片電源端分為邏輯控制電源和電機驅(qū)動電源,分別為5 V和7.4 V。芯片外部接8個二極管,作用是保護L298N芯片,防止電機在正反轉(zhuǎn)切換時負載電機兩端電壓過高或過低,對周圍元器件造成破壞。
L298N芯片有6路輸入通道和4路輸出通道,如圖3所示。單片機通過I/O口控制IN1、IN2、IN3、IN4輸入端,實現(xiàn)電機的正轉(zhuǎn)、反轉(zhuǎn)和停止,并控制ENA、ENB 2個使能端,結(jié)合單片機內(nèi)部PCA模塊輸出的PWM脈寬進行平滑調(diào)速,使小車兩輪差速,實現(xiàn)轉(zhuǎn)向的功能[10]。
2) 無線接收模塊
在驅(qū)動系統(tǒng)電路中設(shè)置NRF24L01芯片為接收模式,按照SPI時序?qū)懭霟o線模塊的接收發(fā)射地址、信號通道、發(fā)射速率和數(shù)據(jù)長度。進入等待接收數(shù)據(jù)的狀態(tài),讀取狀態(tài)寄存器來判斷是否有數(shù)據(jù)。若接收到數(shù)據(jù),則CE置低并清除中斷標志,自動進入發(fā)射模式,回傳應(yīng)答信號。若未接收到數(shù)據(jù),則一直保持接收狀態(tài)。然后進入程序循環(huán),使NRF24L01保持接收狀態(tài),工作圖如圖6所示。
圖6 無線接收工作圖
系統(tǒng)軟件設(shè)計程序分為控制系統(tǒng)程序和驅(qū)動系統(tǒng)程序??刂撇糠质紫瘸跏蓟疞D3320芯片及串口,等待語音信息采集并進行信息處理。若有信息采集則判斷此信息是否符合預(yù)設(shè)關(guān)鍵詞,當(dāng)信息匹配成功則通過單片機轉(zhuǎn)為相關(guān)指令經(jīng)無線模塊發(fā)送。當(dāng)匹配失敗則退出識別運算,繼續(xù)采集信息。驅(qū)動部分首先初始化單片機中PCA模塊,給予電機一個初始信號保持不動,然后配置無線模塊為接收模式并循環(huán)判斷是否接收到指令,若接收到則判斷執(zhí)行哪一個驅(qū)動子程序,子程序驅(qū)動電機完成小車運動。若接收不到則繼續(xù)保持接收狀態(tài)。整個系統(tǒng)軟件設(shè)計結(jié)構(gòu)思路清晰,運行良好。
該智能小車在系統(tǒng)軟件設(shè)計上選用KEIL uVision 4為開發(fā)環(huán)境并使用C語言為程序開發(fā)語言。整個系統(tǒng)程序以一個工程內(nèi)采用多個C文件的方式編寫,結(jié)構(gòu)清晰,可移植性強,便于對程序進行修改及提升其運行性能。
經(jīng)實踐操作,完成了控制系統(tǒng)和驅(qū)動系統(tǒng)的實際制作,系統(tǒng)實物如圖7所示。圖7(a)為驅(qū)動系統(tǒng)設(shè)計實物,圖7(b)為控制系統(tǒng)設(shè)計實物。
圖7 實物圖
系統(tǒng)做了穩(wěn)定性測試,主要將系統(tǒng)分別放在安靜與嘈雜的環(huán)境進行測試。測試選用地點為空曠的地帶及室內(nèi)進行實驗,分別進行實驗次數(shù)為100次。小車實際測試數(shù)據(jù)如表1所示。
表1 系統(tǒng)穩(wěn)定性測試
測試分析:在安靜環(huán)境下,在百米空曠地帶無線傳輸成功率略大于在室內(nèi)傳輸,語音識別成功率近似。在嘈雜環(huán)境下,無線傳輸成功率變化不大,語音識別率有所降低??傮w而言,語音信息無線傳輸及識別成功率較高,系統(tǒng)整體運行良好、可靠性高,達到了預(yù)期的效果。
詳細論述了一款由IAP15F2K61S2單片機、LD3320語音模塊、NRF24L01模塊、L298N驅(qū)動模塊組成的無線語音智能小車的系統(tǒng)設(shè)計。該小車通過語音識別技術(shù)與無線技術(shù)的結(jié)合,提高了語音控制的可靠性,解決了語音指令傳輸距離短的問題。整個系統(tǒng)具有結(jié)構(gòu)清晰、簡單、智能化的優(yōu)點,且采用模塊化設(shè)計,具有良好的擴展性。
[1] 陳哲. 智能家居語音控制系統(tǒng)的設(shè)計與實現(xiàn)[D]. 西安:電子科技大學(xué),2013.
[2] 李健,任玲芝,郭亮,等. 無線語音控制小車的設(shè)計與實現(xiàn)[J]. 工業(yè)控制計算機,2015(11):147-148.
[3] 湯莉莉,馬仟,黃偉. 語音無線遙控智能小車設(shè)計[J]. 無線電工程,2014(12):66-69.
[4] 杜希棟,王志偉,潘黎,等. 基于 LD3320 的非特定語音控制小車設(shè)計[J]. 信息技術(shù),2015(1):53-55.
[5] Simon King, Joe Frankel, Karen Livescu, et al. Speech production knowledge in automatic speech recognition [J]. Acoustical Society of America, 2007, 121(2):723-742.
[6] 姜杰文,姜彥吉, 邴曉環(huán),等. 基于LD3320的非特定人識別聲控?zé)粝到y(tǒng)設(shè)計[J]. 現(xiàn)代電子技術(shù),2015,38(11):27-30.
[7] 洪家平. LD3320的嵌入式語音識別系統(tǒng)的應(yīng)用[J]. 單片機與嵌入式系統(tǒng)應(yīng)用,2012(2):47-49.
[8] Peter hrist, Bernd Neuwinger, Felix Werner, et al. Performance analysis of the nRF24L01 ultra-low-power transceiver in a multi-transmitter and multi-receiver scenario[J]. Proceeding of IEEE Sensors, 2011:1205-1208.
[9] 李賀,程祥,曾國令. 基于nRF24L01芯片的近程無線通信系統(tǒng)設(shè)計[J]. 現(xiàn)代電子技術(shù),2014(15):32-34.
[10] 楊雄. 51單片機的PWM直流電機調(diào)速系統(tǒng)分析[J]. 數(shù)字技術(shù)與應(yīng)用,2014(4):26-28.