新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一款基于ARM的多自由度人形教育機器人控制系統的設計

        一款基于ARM的多自由度人形教育機器人控制系統的設計

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

          多個舵機的驅動需要依據的姿態數據計算出轉動時間,將其時間數據按一定算法進行排序,并在CPU的控制下設置各舵機的運動和停止時間。

          3.3 舵機整體驅動函數 ManMoveFrame()設計

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

          函數功能:將輸入的各角度轉換為各的高電平時間,按照17個高電平時間從短到長依次調用對應伺服器驅動。共18個入口參數,17個是伺服器角度,1個是動畫停留時間,轉換關系:1度約為0.00814ms。

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

          {uint8 i,t1; int HeadTime,Larm1Time,Larm2Time, … ,Rleg4Time,Rleg5Time;/*與角度對應的時間變量*/

          int MotorTime[17]; /*各舵機驅動脈沖時間數組*/

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

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

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

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

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

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

          … else Rleg5(Rleg5Time);} while(T0TC

          3.4 姿態數據輸入驅動函數ManMoveKeyframeData()設計

          機器人動作的關鍵姿態是由各舵機轉動位置決定的,需要參照機器人的體態對17個舵機的自由度關系數據進行設置,驅動函數將如表2所示設置的參數轉換為驅動信號,控制17個舵機的轉動,從而完成機器人行走的動作。表格空白的地方默認數據為0。

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

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

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

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

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

          3.5 機器人動作控制驅動函數ManMoveKeyframeToFrame()設計

          主要功能:把動作幅度較大的姿態關鍵幀數據結合其下面緊挨的姿態關鍵幀數據轉換為時間均勻的普通幀驅動參數,供整體驅動使用。入口參數:無。出口參數:無。

        萬能遙控器相關文章:萬能遙控器代碼


        pwm相關文章:pwm是什么


        晶振相關文章:晶振原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东光县| 鹿邑县| 绩溪县| 咸丰县| 北海市| 芜湖县| 于田县| 谷城县| 浪卡子县| 萍乡市| 丹寨县| 土默特右旗| 五常市| 临沭县| 莒南县| 兰考县| 永胜县| 同心县| 富蕴县| 专栏| 嘉义县| 三亚市| 东明县| 万全县| 龙里县| 南通市| 乌拉特后旗| 双辽市| 屏东县| 颍上县| 读书| 县级市| 泰宁县| 甘肃省| 庆云县| 田阳县| 新源县| 安国市| 德惠市| 固镇县| 绍兴市|