新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 智能玩具的設計-聰明寶寶

        智能玩具的設計-聰明寶寶

        作者: 時間:2012-06-09 來源:網絡 收藏

        點擊在新窗口中瀏覽產品
        圖3.3光感輸入電路

        3.5 直流電機驅動電路
        直流電機控制電路比較簡單。由I/O口輸出信號,通過NPN型三極管8050反相驅動電路去控制電機。其控制電路如圖 3.4所示。二極管起保護作用,防止電機的反向電流過大擊穿器件。

        點擊在新窗口中瀏覽產品
        圖3.4直流電機控制電路

        3.6 MIC輸入電路和揚聲器輸出電路
        MIC采用駐極體電容話筒,這種話筒具有靈敏度高、無方向性、重量輕、體積小、頻率響應寬、保真度好等特點。內置專門用于語音信號采集的具有自動增益控制放大器(AGC)的麥克風輸入通道(MIC_IN)。語音信號經麥克風轉換成電信號,由隔直電容隔掉直流成分,然后輸入至內部前置放大器,最后通過ADC轉換成數字信號。 揚聲器采用一般的喇叭,電壓不超過5V。凌陽單片機自帶雙通道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所示。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 马关县| 福贡县| 丹凤县| 射洪县| 于田县| 宁德市| 桐梓县| 永年县| 丘北县| 万全县| 昭苏县| 门源| 吉隆县| 贡觉县| 泽库县| 溧水县| 正蓝旗| 和林格尔县| 景宁| 大关县| 德清县| 横峰县| 尼勒克县| 松潘县| 昆山市| 巍山| 虞城县| 辽阳市| 彭山县| 延庆县| 道真| 马山县| 昌平区| 新邵县| 平塘县| 宜川县| 宁强县| 蒲城县| 云龙县| 奇台县| 布尔津县|