智能玩具的設(shè)計-聰明寶寶
圖3.3光感輸入電路
3.5 直流電機驅(qū)動電路
直流電機控制電路比較簡單。由I/O口輸出信號,通過NPN型三極管8050反相驅(qū)動電路去控制電機。其控制電路如圖 3.4所示。二極管起保護作用,防止電機的反向電流過大擊穿器件。
圖3.4直流電機控制電路
3.6 MIC輸入電路和揚聲器輸出電路
MIC采用駐極體電容話筒,這種話筒具有靈敏度高、無方向性、重量輕、體積小、頻率響應(yīng)寬、保真度好等特點。SPCE061A內(nèi)置專門用于語音信號采集的具有自動增益控制放大器(AGC)的麥克風輸入通道(MIC_IN)。語音信號經(jīng)麥克風轉(zhuǎn)換成電信號,由隔直電容隔掉直流成分,然后輸入至內(nèi)部前置放大器,最后通過ADC轉(zhuǎn)換成數(shù)字信號。 揚聲器采用一般的喇叭,電壓不超過5V。凌陽SPCE061A單片機自帶雙通道DAC音頻輸出,DAC1、DAC2轉(zhuǎn)換輸出的模擬量電流信號分別通過AUD1和AUD2管腳輸出,DAC輸出為電流型輸出,61板自帶音頻放大電路,所以外接一喇叭即可。
4軟件設(shè)計
4.1 主程序流程及說明
整個系統(tǒng)的外部輸入包括:按鍵、觸摸鍵、感光控制及語音控制,其中語音控制需等到感光喚醒之后才能進行。當各控制鍵觸發(fā)后,系統(tǒng)從睡眠狀態(tài)喚醒,通過判斷標志位,進入相應(yīng)的處理子程序,之后在主程序中不斷檢測,1分鐘內(nèi)若無任何操作,則再次進入睡眠狀態(tài)。 具體程序中,通過判斷gKeyDoubleUseSign的值來確認執(zhí)行何種操作,當為1時,進入鍵處理子程序;為2時,進入復(fù)用鍵處理程序;為0時,不執(zhí)行任何操作,認為是出錯或出現(xiàn)異常情況。在鍵處理子程序中,根據(jù)標志位gKeyID來判斷進入哪一個處理程序,如表 4.1所示。
表4.1
gKeyID的值 | 對應(yīng)處理 |
1 | 左手按鍵處理 |
2 | 背部按鍵處理 |
3 | 臉部觸摸鍵處理 |
4 | 肚部觸摸鍵處理 |
5 | 右手按鍵處理 |
0 | 異常情況 |
主程序包括端口的初始化,提示語音的播放,主循環(huán)以及進入睡眠狀態(tài)前中斷的初始化、端口的初始化。 主循環(huán)包括:鍵掃描,判斷標志位及相應(yīng)子程序,AD轉(zhuǎn)換及比較。 端口的初始化包括A口和B口的初始化,A口的IOA0~IOA4設(shè)置為帶喚醒的下拉電阻輸入,IOA6設(shè)置為懸浮輸入的光敏器件輸入端;B口的IOB9設(shè)置為低電平輸出,作為TimerA脈寬調(diào)制輸出;其余未使用的端口設(shè)置為低電平輸出。 提示語音的播放即“您好”的播放,主要應(yīng)用于系統(tǒng)重新啟動以及復(fù)位鍵的觸發(fā),在這里,復(fù)位鍵既可當一個功能按鍵來使用,也可以在系統(tǒng)無反應(yīng)時當作重啟鍵來使用。 進入睡眠狀態(tài)前的系統(tǒng)初始化包括:端口A口的重新初始化,保證系統(tǒng)運行的可靠性;喚醒中斷的允許、開中斷;睡眠信號的寫入。 其主流程見圖 4.1:
圖 4.1主程序流程圖
4.2 S480語音播放子程序
SACM-S480自動方式程序流程如圖 4.2:
圖 4.2 SACM-S480自動方式程序流程
4.3 語音的識別及訓練程序流程圖
語音的識別取材于凌陽語音庫bsrv222SDL.lib及相關(guān)頭文件,如bsrSD.h。SPCE061只有特定發(fā)音人模式,即只能辨識特定的使用者,辨識前需由單個人訓練,且最多識別6條命令,序號范圍從0x100到0x105,每條命令只有1.3秒,超出了1.3秒只有前1.3秒命令有效。在本系統(tǒng)中,利用通過光敏電阻的暗電阻較大,分壓值也較大的原理,產(chǎn)品觸發(fā)后通過AD采樣,與原環(huán)境光線采集值比較有較大變化時,置標志位,從而在主循環(huán)中進入識別模式。而訓練模式通過左手按鍵經(jīng)IOA0觸發(fā),訓練模塊和語音識別框圖如下所示:
圖4.3 訓練模塊
圖 4.4語音識別框圖
在辨識主循環(huán)中,辨識得到確認后就可以執(zhí)行相應(yīng)的處理子程序,整個流程如圖4.5所示。
評論