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