新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > SPCE061A在語音識別機器人中的應用

        SPCE061A在語音識別機器人中的應用

        作者: 時間:2011-12-28 來源:網絡 收藏

        1 引言
          為了提高廣大單片機愛好者學習單片機的興趣,凌陽科技大學計劃教育推廣中心推出了應用作為主控制器,外加電機驅動電路制作的。該機器人采用對機器人進行控制,可以完成向前走、倒退、左轉、右轉、跳兩首舞曲、向左瞄準、向右瞄準、發射、連續發射等功能。該可以大大提高在校學生學習單片機的興趣。

        2 模組特性簡介
        2.1 特性簡介
          是凌陽科技研發生產的性價比很高的一款十六位單片機,使用它可以非常方便靈活的實現語音的錄放系統,該芯片擁有8路10位精度的ADC,其中一路為音頻轉換通道,并且內置有自動增益電路。這為實現語音錄入提供了方便的硬件條件。兩路10位精度的DAC,只需要外接功放(SPY0030A)即可完成語音的播放。另外凌陽十六位單片機具有易學易用的效率較高的一套指令系統和集成開發環境。在此環境中,支持標準C語言,可以實現C語言與凌陽匯編語言的互相調用,并且,提供了語音錄放的庫函數,只要了解庫函數的使用,就會很容易完成語音錄放,這些都為軟件開發提供了方便的條件:
          特性:
          ◆ 16位μ'nSP微處理器;
          ◆ 工作電壓:內核工作電壓VDD為3.0~3.6V(CPU),IO口工作電壓VDDH為VDD~5.5V(I/O);
          ◆ CPU時鐘:0.32MHz~49.152MHz;
          ◆ 內置2K字SRAM;
          ◆ 內置32K閃存ROM;
          ◆ 可編程音頻處理;
          ◆ 晶體振蕩器;
          ◆ 系統處于備用狀態下(時鐘處于停止狀態),耗電小于2μA@3.6V;
          ◆ 2個16位可編程定時器/計數器(可自動預置初始計數值);
          ◆ 2個10位DAC(數-模轉換)輸出通道;
          ◆ 32位通用可編程輸入/輸出端口;
          ◆ 14個中斷源可來自定時器A / B,時基,2個外部時鐘源輸入,鍵喚醒;
          ◆ 具備觸鍵喚醒的功能;
          ◆ 使用凌陽音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語音數據;
          ◆ 鎖相環PLL振蕩器提供系統時鐘信號;
          ◆ 32768Hz實時時鐘;
          ◆ 7通道10位電壓模-數轉換器(ADC)和單通道聲音模-數轉換器;
          ◆ 聲音模-數轉換器輸入通道內置麥克風放大器和自動增益控制(AGC)功能;
          ◆ 具備串行設備接口;
          ◆ 低電壓復位(LVR)功和低電壓監測(LVD)功能;
          ◆ 內置在線仿真板(ICE,In- Circuit Emulator)接口。

        2.2 機器人簡介
        2.2.1 機器人驅動電路圖
          機器人驅動電路圖如圖2.1所示:


        圖 2.1機器人驅動電路圖

          機器人驅動電路采用功率較大的三極管搭成H橋來驅動電機,可以實現電機的正向旋轉與電機的反向旋轉。這些電機包括2個用于走路的電機與一個頭部轉向的電機。另外用了一個三極管驅動單向旋轉的電機,包括加速電機與發射電機,驅動電路比較簡單。

        2.2.2主要功能
          ◆ 通過語音命令對其進行控制;
          ◆ 可以跳兩首舞曲;
          ◆ 走步功能、轉向功能、轉頭功能;
          ◆ 發射飛盤功能;

        3 系統總體方案介紹
          用61板來控制機器人,使用了IOB7-IOB15資源,另外使用了揚聲器。如圖3.1所示:


        圖3.1 系統的結構框圖

          系統主要由61板與機器人驅動電路構成。61板作為整個系統的主控板,驅動電路驅動電機。在主控板61板的控制下完成各個動作。另外增加了的功能,通過命令來控制機器人,使機器人智能化。

        4 系統軟件設計
          在主函數中調用相關函數完成特定人語音的訓練,然后再訓練成功后進行語音識別,根據識別的命令執行相關的操作。程序流程圖如4.1所示:


        圖4.1程序流程圖與中斷流程圖

           判斷是否為第一次下載根據FLASH中的標志位來進行判斷。將訓練好的語音模型導出存儲到FLASH中使用庫函數BSR_ExportSDWord(uiCommandID);進行操作,然后再調用讀寫FLASH中的函數進行。在進行語音識別時,首先讀取FLASH將語音模型取得,然后調用BSR_ImportSDWord(uiCommandID);函數將語音資源載入內存。在識別出命令后,執行相關動作,相關動作操作就是操作電機的正向或反向旋轉同時配合延時與播放聲音組合起來形成不同的動作。

          應用方案的驗證步驟:
          步驟一:啟動u'nSP IDE。打開機器人應用實例程序,編譯、鏈接確認沒有錯誤。如圖4.2所示:


        圖4.2編譯、鏈接圖

          步驟二:下載程序代碼到機器人的61板上。
          步驟三:打開機器人的電源,進行語音訓練,訓練過程按照下面進行:
          按順序訓練以下15條指令:"名稱","開始","準備","跳舞","再來一曲","開始","向前走","倒退","右轉","左轉","準備","向左瞄準","向右瞄準","發射","連續發射"。每條指令要訓練兩遍。當一條指令被正確識別時會提示進入下一條;如沒有被識別會要求重復該指令,直到正確識別為止。
          步驟三:如果訓練成功則進入語音識別狀態,如果訓練沒有成功則重復訓練。由于SPCE061A的FLASH存儲器只有32K,所以15條指令需要分組存放。在這里分成3組,每組5條指令。在不同組指令中交換需要根據出發名稱,所以在識別狀態,要執行動作首先需要出發名稱,就是訓練的第一條命令,然后可以識別第一組的其余四條命令。在觸發第一條指令,然后再觸發第二條指令,就可以識別第三條指令,參考下圖:


        圖4.3 機器人操作示意圖

        5 結語
          應用SPCE061A外加電機驅動控制電路可以實現多個電機的控制,完成機器人的許多動作。單片機愛好者可以自己制作電機驅動電路,發揮想象力制作出自己的機器人。

        6 參考文獻
        [1] 羅亞非.凌陽16位單片機應用基礎[M]. 北京:北京航空航天大學出版社,2003
        [2] 凌陽大學計劃網站www.unsp.com.cn



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 华宁县| 海城市| 金塔县| 阿克陶县| 长沙县| 金沙县| 西华县| 河北省| 南开区| 罗田县| 安泽县| 长沙市| 镇宁| 图们市| 牙克石市| 镇远县| 丰原市| 大厂| 乌审旗| 交城县| 德兴市| 庆云县| 确山县| 桂东县| 利川市| 仙居县| 桦川县| 鄂伦春自治旗| 油尖旺区| 涿鹿县| 西和县| 青川县| 磐安县| 阳原县| 宜良县| 横峰县| 三穗县| 乌兰察布市| 德钦县| 建平县| 万载县|