摘 要:設(shè)計(jì)并制作了一種智能音控小車,。以凌陽單片機(jī)SPCE061A為核心控制部件,,以減速直流電機(jī)LS17RU419i、電機(jī)驅(qū)動芯片L298N,、紅外線光電傳感器ST178等為主要元件,,開發(fā)了系統(tǒng)的硬件和智能控制軟件,其中軟件包括小車避障及路徑控制軟件,、語音識別及播放軟件,。智能音控小車的運(yùn)行狀態(tài)表明該設(shè)計(jì)方案是可行的。
關(guān)鍵詞: 語音識別; 凌陽單片機(jī); 智能; 傳感器
隨著電子業(yè)的發(fā)展,,自動化已經(jīng)不再是新鮮的話題了,,在對系統(tǒng)業(yè)提出更高更深入的要求的同時,智能化已成為必然的發(fā)展趨勢,。智能化產(chǎn)品已開始逐漸投入市場,,走進(jìn)千家萬戶,滲入各個領(lǐng)域,。隨著經(jīng)濟(jì)的增長,,個人擁有私家汽車已不再是夢想,伴隨著汽車業(yè)的發(fā)展,,無人駕駛的智能汽車也必將進(jìn)入實(shí)用階段,。
本設(shè)計(jì)的主要目的是針對智能無人駕駛汽車設(shè)計(jì)出智能音控小車,在智能化小車上實(shí)現(xiàn)語音控制,,避免出現(xiàn)許多大大小小的事故,。本設(shè)計(jì)方案也可應(yīng)用于移庫倒庫過程中,而且在諸如智能建筑,、公共便民設(shè)施,、自動立體車庫等類似的人性化環(huán)境中也能夠發(fā)揮其作用[1]。
1 系統(tǒng)的總體設(shè)計(jì)方案及硬件設(shè)計(jì)
1. 1系統(tǒng)的總體設(shè)計(jì)描述
本設(shè)計(jì)以凌陽單片機(jī)SPCE061A為核心控制部件,,采用減速直流電機(jī)LS17RU419i,、電機(jī)驅(qū)動芯片L298N、紅外線光電傳感器ST178等為主要元件,,以智能控制技術(shù)為理論基礎(chǔ),,通過程序利用SPCE061A的語音模塊,根據(jù)麥克風(fēng)采集的語音信號與事先訓(xùn)練好的語音庫的特征語音進(jìn)行對比,,進(jìn)行語音辨識并通過語音命令小車行進(jìn),、轉(zhuǎn)向及倒庫等操作。音控小車總體結(jié)構(gòu)如圖1所示,。
1. 2系統(tǒng)的核心部件
SPCE061A 芯片內(nèi)部集成了 ICE,、FLASH、SRAM,、通用 I/O 端口,、定時器/計(jì)數(shù)器、中斷控制,、CPU 時鐘鎖相環(huán),、ADC,、DAC輸出、UART,、SIO,、低電壓監(jiān)測/低電壓復(fù)位等模塊[2-3]。SPCE061A可以使外圍電路大大簡化,節(jié)省小車內(nèi)部的空間,,并且凌陽單片機(jī)具有語音功能,,可以加入語音識別模塊。
1. 3 小車電機(jī)驅(qū)動設(shè)計(jì)
L298是SGS公司的產(chǎn)品,,L298N為15個管角的單塊集成電路,,高電壓,高電流,,四通道驅(qū)動,,設(shè)計(jì)用L298N來接收DTL或者TTL邏輯電平,驅(qū)動感性負(fù)載(比如繼電器,,直流和步進(jìn)馬達(dá))和開關(guān)電源晶體管,。內(nèi)部包含4通道邏輯驅(qū)動電路,其額定工作電流為 1 A,,最大可達(dá) 1.5 A,,Vss 電壓最小 4.5 V,最大可達(dá) 36 V,;Vs 電壓最大值也是 36 V,。L298N可直接對電機(jī)進(jìn)行控制,無須隔離電路,,可以驅(qū)動雙電機(jī),。根據(jù)L298N芯片的特點(diǎn)以及SPCE061A自身的特點(diǎn),把IOA4~I(xiàn)OA7作為輸出口,,分別與L298N的IN1~I(xiàn)N4相接,,其VS、VSS分別接+12 V,、+5 V電源,,其輸出口OUT1~OUT2接轉(zhuǎn)向電機(jī),OUT3~OUT4接驅(qū)動電機(jī),,根據(jù)設(shè)計(jì)要求,,結(jié)合所編好的程序,根據(jù)所發(fā)語音命令,,接收信號,,便可給[P_IOA_DATA]傳送數(shù)據(jù),從而控制轉(zhuǎn)向電機(jī)和驅(qū)動電機(jī)。其連接圖如圖2所示,。
1. 4車身微調(diào)裝置
車身的微調(diào)裝置采用紅外線光電傳感器ST178,,ST178由4個管腳組成,是集發(fā)射和接收于一體的傳感器,。發(fā)射和接收管分別采用高發(fā)射功率紅外線光電二極管和高靈敏度光電晶體管組成,。工作的范圍可達(dá)到4 mm~10 mm左右,采用非接觸監(jiān)測的方式。
經(jīng)過反復(fù)試驗(yàn)證實(shí),,ST178紅外線光電傳感器的發(fā)射管要加500 Ω的電阻用來限流,而接收管則要接20 kΩ上拉電阻,,兩管均接5 V電源,,工作時電壓達(dá)到4.8 V,當(dāng)距離發(fā)射頭或接收頭1cm左右的位置有障礙物阻擋時電壓迅速降到1 V,。具體電路如圖3所示,。
1. 5系統(tǒng)硬件部分設(shè)計(jì)
音控小車主要由電機(jī)和電機(jī)驅(qū)動部分組成,電機(jī)有2個分別用來控制后輪的驅(qū)動和前輪的轉(zhuǎn)向,,采用芯片L298做為電機(jī)的驅(qū)動電路,,可以驅(qū)動雙電機(jī)。小車為4輪結(jié)構(gòu),,其中前面2個車輪由前輪電機(jī)控制,,在連桿和支點(diǎn)作用下控制前輪左右擺動,來調(diào)節(jié)小車的前進(jìn)方向,。在自然狀態(tài)下,,前輪在彈簧作用下保持中間位置。后面2個車輪由后輪電機(jī)驅(qū)動,,為整個小車提供動力,,所以又稱前面的輪子為方向輪,后面的兩個輪子為驅(qū)動輪,。利用直流減速電機(jī)控制小車的驅(qū)動,,可以不考慮調(diào)速,利用步進(jìn)電機(jī)控制小車的轉(zhuǎn)向來提高小車的整體性能,,具有很高的性價比,。供電電源選用3塊4 V手機(jī)電池串聯(lián)成12 V電源給小車提供電能。車身裝有5個傳感器在不同方向用來進(jìn)行微調(diào),,防止撞壁,。小車前進(jìn)過程中當(dāng)接收到語音命令時,可執(zhí)行行進(jìn),、轉(zhuǎn)向及倒庫等操作,。
本設(shè)計(jì)最終實(shí)現(xiàn)了對音控小車的設(shè)計(jì),圖4所示是基于凌陽單片機(jī)語音控制小車的實(shí)物圖,,其具體結(jié)構(gòu)是1喇叭,、2車輪,、3凌陽單片機(jī)、4光電傳感器,、5電池及驅(qū)動板,、6電機(jī)。
2系統(tǒng)的軟件設(shè)計(jì)
2. 1語音識別模塊設(shè)計(jì)
小車的語音識別模塊選用凌陽科技公司SPCE061A開發(fā)板,。SPCE061A內(nèi)嵌7通道10位電壓A/D轉(zhuǎn)換器(ADC)和單通道聲音A/D轉(zhuǎn)換,聲音A/D轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動增益控制功能,其本身已經(jīng)成為基本的語音處理平臺,。本系統(tǒng)采用A2000模塊,其語音壓縮編碼率為24 kb/s,,采樣頻率為16 kHz[4],。
語音識別主要分為“訓(xùn)練”和“識別”兩個階段。在訓(xùn)練階段,,單片機(jī)對采集到的語音樣本進(jìn)行分析處理,,從中提取出語音特征信息,建立一個特征模型,;在識別階段,,單片機(jī)對采集到的語音樣本也進(jìn)行類似的分析處理,提取出語音的特征信息,,然后將這個特征信息模型與已有的特征模型進(jìn)行對比,,如果二者達(dá)到了一定的匹配度,則輸入的語音被識別,。
語音識別小車過程分為以下4大部分:
(1)初始化部分:初始化操作將 IOB8~I(xiàn)OB11 設(shè)置為輸出端,,用以控制電機(jī)。必要時還要有對應(yīng)的輸入端設(shè)置,。整個小車的行駛狀態(tài)由2個電機(jī)來控制,,電機(jī)1控制左拐和右拐,電機(jī)2控制前進(jìn),、倒退,。具體行使?fàn)顟B(tài)控制如表1所示。
(2)訓(xùn)練部分:訓(xùn)練部分完成的工作就是建立語音模型,。程序一開始判斷小車是否被訓(xùn)練過,,如果沒有訓(xùn)練過則要求對其進(jìn)行訓(xùn)練,整個訓(xùn)練過程共有 5 次,,依次為:名稱—前進(jìn)—倒車—左拐—右拐,。在訓(xùn)練成功之后將訓(xùn)練的模型存儲到 FLASH,在以后使用時不需要重新訓(xùn)練,;如果已經(jīng)訓(xùn)練過會把存儲在 FLASH 中的模型調(diào)出來裝載到辨識器中,。
(3)識別部分:在識別環(huán)節(jié)當(dāng)中,如果辨識結(jié)果是名字,停止當(dāng)前的動作并進(jìn)入待命狀態(tài),,然后等待動作命令,。如果辨識結(jié)果為動作指令,小車會語音告知相應(yīng)動作,,并執(zhí)行該動作,,在運(yùn)動過程中可以通過呼叫小車的名字使小車停下來。
(4)重訓(xùn)操作:考慮到有重新訓(xùn)練的需求,,設(shè)置了重新訓(xùn)練的按鍵(61 板的 KEY3),,循環(huán)掃描該按鍵,一旦檢測到此鍵按下,,則將擦除訓(xùn)練標(biāo)志位(0xe000 單元),,并等待復(fù)位。復(fù)位后,,程序重新執(zhí)行,當(dāng)檢測到訓(xùn)練標(biāo)志位為 0xffff 時會要求重新對其進(jìn)行訓(xùn)練,。小車訓(xùn)練流程圖如圖5所示[5],。
2. 2系統(tǒng)的軟件設(shè)計(jì)流程圖
系統(tǒng)的軟件設(shè)計(jì)流程如圖6所示。本設(shè)計(jì)采用C語言和匯編語言聯(lián)合編程的方法,。其中,,C語言作為主程序編程,可以充分利用C語言的優(yōu)點(diǎn),,調(diào)用其他程序模塊,。匯編語言主要用在子程序的模塊中,利用它的中斷,、延時等方面的優(yōu)點(diǎn),。匯編語言的主要優(yōu)點(diǎn)是占用硬件資源少、程序直接對硬件操作加快了處理速度,。本設(shè)計(jì)的所有程序均在凌陽單片機(jī)集成開發(fā)環(huán)境IDE中進(jìn)行,。本系統(tǒng)的軟件部分采用模塊化程序結(jié)構(gòu),其軟件設(shè)計(jì)主要包括初始化,、系統(tǒng)主程序,、語音提示程序、小車微調(diào)程序等部分,。
本文設(shè)計(jì)并制作的小車以凌陽單片機(jī)為控制核心,,完成了語音辨識功能,并在實(shí)現(xiàn)語音控制的基礎(chǔ)上擴(kuò)展了SPCE061AI/O接口,,實(shí)現(xiàn)了緊急避障微調(diào)功能,,能夠按照語音指令很好地完成前進(jìn)、倒車、左轉(zhuǎn),、右轉(zhuǎn)以及倒庫,。能夠識別人的語音命令,并根據(jù)命令的含義執(zhí)行相應(yīng)的動作,。整個部分設(shè)計(jì)合理,,小車運(yùn)行正常。
參考文獻(xiàn)
[1] COX I,,BALNCHE J. An expermient in gudiance and gravtiaiton of an autonomous vechicel[J] .IEEE Trans on Robost and Autonomaiton,1991, 7(2): 193-200.
[2] 羅亞非. 凌陽十六位單片機(jī)應(yīng)用基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,,2003.
[3] 薛均義, 張彥斌.凌陽十六位單片原理及其應(yīng)用. [M] 北京:北京航空航天大學(xué)出版社,2003.
[4] 侯媛彬. 凌陽單片機(jī)原理及其畢業(yè)設(shè)計(jì)精選[M]. 北京:科學(xué)出版社,,2006.
[5] 北陽公司內(nèi)部技術(shù)資料. m’nSP 單片機(jī). 2001,11.