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

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 輪式自動機器人控制系統(tǒng)

          輪式自動機器人控制系統(tǒng)

          作者:李進 北京交通大學電子信息工程學院 時間:2010-07-02 來源:電子產(chǎn)品世界 收藏

            采集模塊

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

            采集模塊主要采集各種的信息并做初步的處理,采集過程由CPLD控制。此模塊在整個系統(tǒng)中十分重要,因為它直接關系到定位的精度。傳感器采集模塊的組成結構如圖2所示。

            傳感器采集模塊以CPLD為核心,可以采集多路模擬量、2路編碼器脈沖和16路開關量輸入。采集模塊中各傳感器的采集可以并行工作,由于采用了總線的結構和CPLD的可編程特性,采集模塊可以很方便地根據(jù)具體應用進行裁剪和擴展。各采集模塊采集到的信息經(jīng)過簡單的處理后存儲在CPLD的內(nèi)部寄存器中。通過SPI來訪問寄存器的內(nèi)容。由于只需要完成通信功能,為了簡化設計,僅對時鐘極性CPOL為0,且時鐘相位CPHA為1時的CPLD從機SPI通信模塊進行了設計。

            陀螺儀為角速度傳感器,安裝在的對稱軸上,用來感應的角速度。陀螺儀輸出的模擬信號由16位并行AD芯片MAX1179轉換成數(shù)字信號,A/D的采集過程由CPLD控制。使用陀螺儀的主要問題是零位電壓漂移問題,CPLD對陀螺儀高速多次采集進行均值濾波以減小這一誤差。

            機器人的位移傳感器采用增量式光電編碼器。編碼器安裝在與主動輪同軸的從動輪上,與從動輪同步轉動。使用CPLD對編碼器輸出脈沖計數(shù),根據(jù)脈沖個數(shù)來計算機器人位移。

            運動控制模塊

            在陀螺儀精密傳感器的導航下,機器人走行電機的速度控制同樣要求十分精確。運動控制模塊用來精確控制兩個走行電機的速度,運動控制模塊由運動控制器、直流無刷電機和編碼器三個部分組成。主控模塊通過PWM信號的占空比來控制電機速度,在編碼器信號和電機電流的反饋下,運動控制器內(nèi)部集成的DSP在速度環(huán)、電流環(huán)和位置環(huán)三層閉環(huán)精確控制走行電機。

            執(zhí)行動作控制模塊

            執(zhí)行動作控制模塊控制機器人執(zhí)行動作,本文設計的機器人主要動作有升降、手臂旋轉和抓取還有后部叉取。這些動作主要由舵機和直流電機控制,舵機和直流電機的控制信號都使用PWM信號。執(zhí)行動作控制模塊除了完成電機的驅動,還需要電位器、光電開關等傳感器來檢測動作的完成情況。雖然內(nèi)部集成12路PWM通道,但按照前面介紹的模塊化的設計思想,執(zhí)行動作控制模塊獨立設計使系統(tǒng)的結構更加靈活并且容易擴展和剪裁。執(zhí)行動作控制模塊采用NXP的LPC2114微控制器,主控模塊LPC2478通過UART發(fā)送動作指令,執(zhí)行動作控制模塊控制完成所有動作。LPC2114產(chǎn)生的PWM信號通過H橋電路來驅動電機。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();