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