基于AVR和51單片機(jī)的機(jī)器魚語音控制系統(tǒng)設(shè)計與實現(xiàn)
AVR是魚體主控芯片,它的軟件主要包括主程序,串口初始化(波特率和串口模式需要同上一致,還設(shè)置接收中斷打開狀態(tài)),產(chǎn)生使機(jī)器魚直游的PWM波,無論在什么狀態(tài),只要串口接收到命令就會產(chǎn)生中斷,就需要根據(jù)命令改變PWM波的占空比,從而改變機(jī)器魚的游動方向,需要注意的是在改變PWM波占空比以后,只需要保持此占空比一段時間(該時間段內(nèi)有可能有新的命令),在魚體改變方向以后就需要再次將占空比改為直游。AVR控制流程如圖7所示。本文引用地址:http://www.ex-cimer.com/article/170958.htm
4 實驗結(jié)果
此語音控制系統(tǒng)在實驗中已經(jīng)得到實現(xiàn)。我們在51單片機(jī)中編輯了“zuo”、 “you”、 “qian”等命令:在AVR單片機(jī)的接受中斷編輯了相應(yīng)命令的PWM波占空比;所有串口通訊參數(shù)設(shè)置為:波特率9600bps;串口模式為8個數(shù)據(jù)位,1個停止位,無校驗位;頻道設(shè)置為28;發(fā)射功率設(shè)為最大(FF)。使用了奧林巴斯ME52的麥克風(fēng)作為語音接收設(shè)備。
表1是魚在直游(前)的時候,三個舵機(jī)在十個離散周期各自的轉(zhuǎn)角。在轉(zhuǎn)向的時候,前兩個舵機(jī)偏轉(zhuǎn),第三個舵機(jī)保持不變;在進(jìn)行“左”轉(zhuǎn)命令時,舵機(jī)1和舵機(jī)2在直游基礎(chǔ)上加上負(fù)40°;“右”轉(zhuǎn)時加上正40°。由于舵機(jī)轉(zhuǎn)角與PWM波占空比是線性關(guān)系,在此基礎(chǔ)上,我們匹配了PWM波占空比與舵機(jī)轉(zhuǎn)角的數(shù)學(xué)關(guān)系式
jiaodu是定義的直游時各舵機(jī)的轉(zhuǎn)角數(shù)組,j是舵機(jī)號,i是周期,pianjiao是左轉(zhuǎn)右轉(zhuǎn)等附加給直游時的角度(正負(fù)40°);xiuzheng是實際中需要調(diào)試的補(bǔ)償角度。
實際操作中,當(dāng)發(fā)出“左”、 “右”、 “前”等命令時,機(jī)器魚會立即做出相應(yīng)的動作。
5 結(jié)束語
文中主要介紹了語音識別技術(shù)在機(jī)器魚上的應(yīng)用以及魚體波的產(chǎn)生原理,實現(xiàn)了語音控制機(jī)器魚的游動方向,相信隨著機(jī)器魚的研究深入,可以在語音系統(tǒng)基礎(chǔ)上實現(xiàn)更多功能,使機(jī)器魚更加趨于智能化,最終可以為人類探索海洋提供更多幫助和便利。
評論