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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一款基于ARM的多自由度人形教育機(jī)器人控制系統(tǒng)的設(shè)計(jì)

          一款基于ARM的多自由度人形教育機(jī)器人控制系統(tǒng)的設(shè)計(jì)

          作者:席東河 申一歌 杜娟 高吉珍 時(shí)間:2014-12-29 來(lái)源:電子產(chǎn)品世界 收藏
          編者按:  摘要:針對(duì)以往教育機(jī)器人自由度少、控制不靈活、教育功能弱的缺點(diǎn),使用高集成度ARM芯片設(shè)計(jì)了一個(gè)簡(jiǎn)潔的17自由度人形機(jī)器人控制系統(tǒng)。規(guī)劃了機(jī)器人的軟硬件結(jié)構(gòu),設(shè)計(jì)了控制電路和驅(qū)動(dòng)系統(tǒng),采用1個(gè)定時(shí)器產(chǎn)生17路PWM驅(qū)動(dòng)信號(hào)。重點(diǎn)以實(shí)例講解了波形產(chǎn)生及驅(qū)動(dòng)函數(shù)的編寫(xiě)方法和技巧。設(shè)計(jì)的機(jī)器人能夠完成整套體操運(yùn)動(dòng)。這種方法在多自由度機(jī)器人操控和教學(xué)中具有廣泛的借鑒意義。   1 系統(tǒng)方案設(shè)計(jì)   人形機(jī)器人控制系統(tǒng)包括機(jī)器人控制器和機(jī)器人遙控器兩部分。其中控制器以飛利浦公司的ARM7處理器為核心,包含1

            多個(gè)舵機(jī)的驅(qū)動(dòng)需要依據(jù)的姿態(tài)數(shù)據(jù)計(jì)算出轉(zhuǎn)動(dòng)時(shí)間,將其時(shí)間數(shù)據(jù)按一定算法進(jìn)行排序,并在CPU的控制下設(shè)置各舵機(jī)的運(yùn)動(dòng)和停止時(shí)間。

            3.3 舵機(jī)整體驅(qū)動(dòng)函數(shù) ManMoveFrame()設(shè)計(jì)

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

            函數(shù)功能:將輸入的各角度轉(zhuǎn)換為各的高電平時(shí)間,按照17個(gè)高電平時(shí)間從短到長(zhǎng)依次調(diào)用對(duì)應(yīng)伺服器驅(qū)動(dòng)。共18個(gè)入口參數(shù),17個(gè)是伺服器角度,1個(gè)是動(dòng)畫(huà)停留時(shí)間,轉(zhuǎn)換關(guān)系:1度約為0.00814ms。

            函數(shù)定義:void ManMoveFrame(int16 Head_Angle,int16 Larm1_Angle,… ,,int16 Rleg5_Angle,uint8 t)

            {uint8 i,t1; int HeadTime,Larm1Time,Larm2Time, … ,Rleg4Time,Rleg5Time;/*與角度對(duì)應(yīng)的時(shí)間變量*/

            int MotorTime[17]; /*各舵機(jī)驅(qū)動(dòng)脈沖時(shí)間數(shù)組*/

            MotorTime[0]=HeadTime=Head_0+Head_Angle*Angle1;/*頭部驅(qū)動(dòng)脈沖時(shí)間*/

            /*MotorTime[1]至MotorTime[16]略;*/

            qsort(MotorTime,17,sizeof(int),Compare); /*對(duì)MotorTime數(shù)組快排序,使其值從小到大重排*/ …

            for(i=0;i<17;i++)/*循環(huán)17次依次比較并輸出驅(qū)動(dòng)脈沖低電平*/

            {if(MotorTime[i]==HeadTime) head(HeadTime);/* 如果頭部轉(zhuǎn)動(dòng)角度小則頭部轉(zhuǎn)動(dòng)結(jié)束*/

            else if(MotorTime[i]== Larm1Time) Larm1(Larm1Time); /*如果左肩轉(zhuǎn)動(dòng)角度小則頭部轉(zhuǎn)動(dòng)結(jié)束*/

            … else Rleg5(Rleg5Time);} while(T0TC

            3.4 姿態(tài)數(shù)據(jù)輸入驅(qū)動(dòng)函數(shù)ManMoveKeyframeData()設(shè)計(jì)

            機(jī)器人動(dòng)作的關(guān)鍵姿態(tài)是由各舵機(jī)轉(zhuǎn)動(dòng)位置決定的,需要參照機(jī)器人的體態(tài)對(duì)17個(gè)舵機(jī)的自由度關(guān)系數(shù)據(jù)進(jìn)行設(shè)置,驅(qū)動(dòng)函數(shù)將如表2所示設(shè)置的參數(shù)轉(zhuǎn)換為驅(qū)動(dòng)信號(hào),控制17個(gè)舵機(jī)的轉(zhuǎn)動(dòng),從而完成機(jī)器人行走的動(dòng)作。表格空白的地方默認(rèn)數(shù)據(jù)為0。

            函數(shù)功能:初始化各伺服器角度/時(shí)間數(shù)組,將機(jī)器人每姿態(tài)動(dòng)作的各舵機(jī)角度數(shù)據(jù)輸入給各伺服器數(shù)組。共19個(gè)入口參數(shù):1個(gè)關(guān)鍵幀號(hào)、17個(gè)伺服器角度、1個(gè)動(dòng)畫(huà)停留時(shí)間。

            函數(shù)定義:void ManMoveKeyframeData(uint16 ID,int16 H_Angle, …,int16 RL5_Angle,uint8 t){

            ID_Max++;/*動(dòng)作幀數(shù),全局變量,記錄動(dòng)作幀數(shù),每加入1幀,ID_Max的值就增1*/

            H[ID]=H_Angle;/*頭的角度*/ … RL5[ID]=RL5_Angle; /*左肩的角度*/

            T_Key[ID]=t;/*幀動(dòng)作完成的時(shí)間長(zhǎng)度*/ }

            3.5 機(jī)器人動(dòng)作控制驅(qū)動(dòng)函數(shù)ManMoveKeyframeToFrame()設(shè)計(jì)

            主要功能:把動(dòng)作幅度較大的姿態(tài)關(guān)鍵幀數(shù)據(jù)結(jié)合其下面緊挨的姿態(tài)關(guān)鍵幀數(shù)據(jù)轉(zhuǎn)換為時(shí)間均勻的普通幀驅(qū)動(dòng)參數(shù),供整體驅(qū)動(dòng)使用。入口參數(shù):無(wú)。出口參數(shù):無(wú)。

          萬(wàn)能遙控器相關(guān)文章:萬(wàn)能遙控器代碼


          pwm相關(guān)文章:pwm是什么


          晶振相關(guān)文章:晶振原理


          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();