• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

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

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

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

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

      3.3 舵機整體驅(qū)動函數(shù) ManMoveFrame()設(shè)計

    本文引用地址:http://www.czjhyjcfj.com/article/267427.htm

      函數(shù)功能:將輸入的各角度轉(zhuǎn)換為各的高電平時間,按照17個高電平時間從短到長依次調(diào)用對應(yīng)伺服器驅(qū)動。共18個入口參數(shù),17個是伺服器角度,1個是動畫停留時間,轉(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;/*與角度對應(yīng)的時間變量*/

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

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

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

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

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

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

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

      … else Rleg5(Rleg5Time);} while(T0TC

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

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

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

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

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

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

      T_Key[ID]=t;/*幀動作完成的時間長度*/ }

      3.5 機器人動作控制驅(qū)動函數(shù)ManMoveKeyframeToFrame()設(shè)計

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

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


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


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


    關(guān)鍵詞: ARM 機器人 PWM 伺服器 LPC2114 201501

    評論


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

    關(guān)閉
    主站蜘蛛池模板: 白河县| 洛扎县| 洪雅县| 宣化县| 法库县| 铁岭市| 岳西县| 巫溪县| 剑阁县| 博乐市| 东源县| 平潭县| 平潭县| 忻州市| 平阳县| 宁阳县| 马龙县| 伊川县| 盘山县| 江川县| 安岳县| 蒙城县| 北票市| 崇礼县| 大关县| 陆河县| 通辽市| 曲松县| 舒城县| 绍兴县| 长汀县| 贺州市| 惠水县| 望奎县| 济南市| 和政县| 资阳市| 浦城县| 庆阳市| 武城县| 库车县|