SPCE061A在智能語音識別避障機器人中的設計應用
在4096Hz時基中斷中進行的處理流程如圖4-3所示。
圖 4-3 語音播放中斷服務程序流程圖
在播放背景音樂的同時,程序將調用超聲波測距函數(shù)進行機器人前方障礙物檢測。測距函數(shù)利用TimerB產生40KHz的PWM方波驅動超聲波發(fā)射傳感器。當接收傳感器接收到回波后經過處理電路處理將引起SPCE061A的外部中斷,計算從發(fā)射超聲波到產生中斷的時間,即可計算出目標物體的距離。測距函數(shù)流程如圖4-4所示。
圖 4-3 語音播放中斷服務程序流程圖
在播放背景音樂的同時,程序將調用超聲波測距函數(shù)進行機器人前方障礙物檢測。測距函數(shù)利用TimerB產生40KHz的PWM方波驅動超聲波發(fā)射傳感器。當接收傳感器接收到回波后經過處理電路處理將引起SPCE061A的外部中斷,計算從發(fā)射超聲波到產生中斷的時間,即可計算出目標物體的距離。測距函數(shù)流程如圖4-4所示。
圖4-5 編譯、鏈接圖
步驟二:下載程序代碼到機器人的61板上。
步驟三:打開機器人的電源,進行語音訓練,訓練過程按照下面進行:
按順序訓練以下15條指令:名稱,開始,準備,跳舞,再來一曲,開始,向前走,倒退,右轉,左轉,準備,向左瞄準,向右瞄準,發(fā)射,連續(xù)發(fā)射。每條指令要訓練兩遍。當一條指令被正確識別時會提示進入下一條;如沒有被識別會要求重復該指令,直到正確識別為止。
步驟三:如果訓練成功則進入語音識別狀態(tài),如果訓練沒有成功則重復訓練。由于SPCE061A的FLASH存儲器只有32K,所以15條指令需要分組存放。在這里分成3組,每組5條指令。在不同組指令中交換需要根據(jù)觸發(fā)名稱,所以在識別狀態(tài),要執(zhí)行動作首先需要觸發(fā)名稱,就是訓練的第一條命令,然后可以識別第一組的其余四條命令。在觸發(fā)第一條指令,然后再觸發(fā)第二條指令,就可以識別第三條指令,參考下圖:
圖 4-6 機器人操作示意圖
步驟四:在機器人前進、倒退、跳舞時,用手或其他物體靠近機器人前方,機器人會發(fā)出HoHooHoHoo的聲音,并停止動作,接著,向前方發(fā)射飛盤。
應用SPCE061A外加電機驅動控制電路可以實現(xiàn)多個電機的控制,完成機器人的許多動作。配合超聲波傳感器等感測裝置,可以為機器人增加更多的功能。單片機愛好者可以自己制作電機驅動電路,選擇多式多樣的傳感器,發(fā)揮想象力制作出自己的機器人。
評論