摘 要:文章基于凌陽SPCE061A 16位單片機設計了紅外傳感與音控結合的避障小車。利用L298N驅動電路驅動兩個直流電動機;利用紅外探測電路檢測行進道路的障礙物;利用單片機的語音識別模塊實現小車的語音控制。文章給出了小車的硬件和軟件設計。
關鍵詞:語音識別;紅外傳感;障礙物探測
1 引言
隨著社會的發展與科學技術的進步,人們對自動化的要求越來越高,在此背景下工業機器人因運而生。現在智能化的產品滲透在各個領域而且許多產品都已成為了大眾消費品,因此研發智能汽車具有廣闊的市場前景,無人駕駛的智能汽車是未來汽車發展的一個趨勢。因此本文基于凌陽SPCE061A單片機利用紅外傳感與音制相結合實現小車的避障,可為人們設計完善的智能車提供新的想法。
2 智能車結構介紹
設計使用的小車是履帶式小車,有承載能力強、抓地力強、行走平穩等優點。小車的兩個后輪分別由兩個直流電動機控制,通過控制電機的正反轉就可實現小車的前進與轉彎,可用4節5號電池為其供電。
3 SPCE061A的主要性能特點
SPCE061A是凌陽科技公司推出的一款16位單片機。SPCE061A在2.6V~3.6V工作電壓范圍內的工作速度范圍為0.32MHz~49.152MHz。2K字SRAM和32K字閃存ROM,32位可編程的多功能I/O端口;兩個16位定時器/計數器;低電壓復位/監測功能;8通道10位模-數轉換輸入功能并具有內置自動增益控制功能的麥克風輸入方式;雙通道10位DAC方式的音頻輸出功能。該單片機最大的特點就是具有語音識別模塊,它可以方便高效地進行語音識別。
4 系統總體設計
基于小車和單片機的特點,本文設計出了紅外檢測障礙物和語音控制相結合的智能小車。以SPCE061A為核心處理器;選擇L298N芯片驅動直流電機;并用紅外線傳感器探測障礙物,利用接收電路將檢測到障礙物的信號反饋給單片機;單片機經過處理后發出語音提示(“前方有障礙物,請指示”),然后通過語音控制小車的行駛方向(如“左轉”等)。小車系統如下:
5 電機驅動模塊設計
由于本次設計使用的小車是由左、右兩個電機通過正反轉控制小車的行駛方向,因此可以采用H橋式電路實現,于是選擇L298N驅動電路。L298N是ST公司生產的一種高電壓、大電流電機驅動芯片。該芯片采用15腳封裝。主要特點是:工作電壓高,最高工作電壓可達46V;輸出電流大,持續工作電流為2A;額定功率25W。內含兩個H橋的高電壓大電流全橋式驅動器,可以用來驅動兩臺直流電動機;采用標準邏輯電平信號控制。芯片N1、IN2端口接單片機的IOB1、IOB2端口用于控制左電機。IN3、IN4端口接單片機的IOB3、IOB4端口用于控制右電機。控制狀態如下表:
6 障礙物探測模塊
紅外線傳感器探測障礙物的基本原理是利用物體的反射性質。在一定范圍內,紅外線遇到障礙物,經反射到達傳感器接收端,接收端檢測到這一信號后輸出一個電平信號送給單片機。將傳感器安放在小車的前部,探測前方的障礙物。電路原理如下圖:
圖中D1發射紅外線,D2接收紅外信號,OUT端口接單片機的IOA4端口。當D2接收到D1發射出經物體反射回的信號后D3發光,在輸出端U01(LM567)的8腳(即OUT端口)輸出低電平,單片機IOA4端口接收到信號,表明前方有障礙物。
7 語音控制系統設計
由于SPCE061A單片機自身帶有語音模塊,它的語音識別模塊自帶語音的API 函數,其中包括A2000 格式和S480 格式自動播放及手動播放的播放函數,S240、MS01 格式自動播放的播放函數、DVR 格式的語音錄放函數和語音識別函數。可作為一個語音系統進行語音播放、語音錄放和語音識別。因此利用單片機的語音識別模塊,降低了音控小車的設計的難度,省去了外圍電路的設計,簡化了程序的設計。
用語音對小車進行控制,就必須讓單片機識別發出的聲音。因此語音識別主要分為“訓練”和“識別”兩個階段。在訓練階段,單片機對采集到的語音樣本進行處理,提取出特征信息,建立一個語音模型;在識別階段,單片機對采集到的語音樣本進行處理,提取出語音的特征信息,然后與已有的模型進行對比,如果二者相匹配,則輸入的語音被識別,小車就會執行相應的命令。訓練的命令依次為:前進-左轉-右轉-倒車-停車這五項簡單命令。
8 軟件系統設計
在軟件編程方面我們采用C語言與匯編語言相結合的編程方式。匯編語言具有直接和硬件打交道、執行代碼效率高等特點。在本設計中用C語言做框架,在中斷部分和對I/O端口的訪問部分編制匯編子程序被C語言調用。這樣設計出的程序不僅簡單而且操作效率高。
避障小車在軟件的設計方面總體分為:初始化、語音訓練、語音識別、障礙物識別、重新訓練五部分:(1)初始化部分:初始化操作將IOA4設置為上拉電阻輸入,用于檢測紅外傳感器探測到障礙物的信號。將IOB1~IOB4設置為同相輸出,用于控制兩個電動機的轉動。(2)訓練部分:單片機采集語音信息,然后建立語音模型。將訓練成功的模型儲存到閃存中,以后使用時會把存儲在閃存中的模型調出來裝載到辨識器中。(3)語音識別部分:單片機對采集到語音信息進行識別,識別后小車會語音告知相應動作并執行該動作。(4)障礙物識別:當單片機讀取IOA4端口處于“0”狀態時,表明前方有障礙物。小車停止前進,并進行語音提示(單片機通過喇叭發出“前方發現障礙物,請指示”的聲音)。(5)重訓操作部分:考慮到有時訓練效果不佳,需要重新訓練,因此設置了重新訓練的按鍵(SPCE061A的 KEY3),并利用一個特殊的 FLASH 單元(0xe000 單元)設置為訓練標志位,當此標志位為0x0055(該值由辨識器自動生成),說明已經訓練過,該單元內容在擦除后為 0xffff,說明沒有經過訓練。通過循環掃描KEY3按鍵,一旦檢測到此鍵按下,則將擦除訓練標志位,當檢測到訓練標志位為 0xffff 時會重新對其訓練。因此在程序的開始也會檢測該標志位,判斷是否訓練過。系統主程序流程如圖3:
9 結束語
本方案經過實踐調試實現了小車在紅外傳感和語音相結合的控制下完成避障任務。紅外識別模塊能夠較好的識別前方20cm處的白色障礙物;語音模塊能夠在較安靜的環境下能清晰識別設定的五個指令。當然本次設計的智能小車還有很多需要完善的地方,可利用PWM資源對小車的車速進行控制,在車身周圍增加傳感器的數量,檢測更多方向的障礙物,對小車進行精確控制等。
參考文獻
[1]邱邵峰.凌陽十六位單片機原理及應用[M].西安.西安電子科技大學出版社,2011(1).
[2]侯媛彬.凌陽單片機原理及開發[M].北京.科學出版社,2012.
[3]凌陽科技大學計劃.凌陽單片機在大學生電子競賽中的應用[M].北京.北京航空航天大學出版社,2005(6).
作者簡介:葉鵬(1991,1-),男,漢,籍貫:新疆,學歷:本科,工作單位:西南交通大學峨眉校區。