<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于AVR和51單片機(jī)的機(jī)器魚語音控制系統(tǒng)設(shè)計與實現(xiàn)

          基于AVR和51單片機(jī)的機(jī)器魚語音控制系統(tǒng)設(shè)計與實現(xiàn)

          作者: 時間:2012-09-02 來源:網(wǎng)絡(luò) 收藏

          是魚體主控芯片,它的軟件主要包括主程序,串口初始化(波特率和串口模式需要同上一致,還設(shè)置接收中斷打開狀態(tài)),產(chǎn)生使魚直游的PWM波,無論在什么狀態(tài),只要串口接收到命令就會產(chǎn)生中斷,就需要根據(jù)命令改變PWM波的占空比,從而改變魚的游動方向,需要注意的是在改變PWM波占空比以后,只需要保持此占空比一段時間(該時間段內(nèi)有可能有新的命令),在魚體改變方向以后就需要再次將占空比改為直游。控制流程如圖7所示。

          本文引用地址:http://www.ex-cimer.com/article/170958.htm

          j.jpg



          4 實驗結(jié)果
          在實驗中已經(jīng)得到。我們在51中編輯了“zuo”、 “you”、 “qian”等命令:在的接受中斷編輯了相應(yīng)命令的PWM波占空比;所有串口通訊參數(shù)設(shè)置為:波特率9600bps;串口模式為8個數(shù)據(jù)位,1個停止位,無校驗位;頻道設(shè)置為28;發(fā)射功率設(shè)為最大(FF)。使用了奧林巴斯ME52的麥克風(fēng)作為接收設(shè)備。

          l.jpg


          表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)系式
          k.jpg
          jiaodu是定義的直游時各舵機(jī)的轉(zhuǎn)角數(shù)組,j是舵機(jī)號,i是周期,pianjiao是左轉(zhuǎn)右轉(zhuǎn)等附加給直游時的角度(正負(fù)40°);xiuzheng是實際中需要調(diào)試的補(bǔ)償角度。
          實際操作中,當(dāng)發(fā)出“左”、 “右”、 “前”等命令時,魚會立即做出相應(yīng)的動作。

          5 結(jié)束語
          文中主要介紹了識別技術(shù)在機(jī)器魚上的應(yīng)用以及魚體波的產(chǎn)生原理,了語音控制機(jī)器魚的游動方向,相信隨著機(jī)器魚的研究深入,可以在語音系統(tǒng)基礎(chǔ)上更多功能,使機(jī)器魚更加趨于智能化,最終可以為人類探索海洋提供更多幫助和便利。


          上一頁 1 2 3 4 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();