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