




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题 目: 可自动分离的多形态舞蹈机器人 摘要(中英文)该项目可自动分离的多形态舞蹈机器人,可自由的进行多种形态的变化如四足机器人、四轮小车、双足直立机器人等,并且可以依靠电磁铁自主实现机器人的连接与分离。该项目是机电一体化的典型代表,也是自动化技术的展现,涉及的知识面极为广泛,涵盖机械结构的原理与设计、硬件电路的设计和程序的算法设计和实现等。The project -A dancing robot which can automatically separate into a variety of morphological freely, such as four-legged robot、 little four-wheel car、 upright bipedal robot, and can be separated or connected by the electromagnets.The project is a typical representative of the mechanical and electrical integration, as well as the embodiment of the automation technology, which is involving an extremely broad range of knowledge, covering the principles and design of the mechanical structure, the design of hardware circuit,and the algorithm design and implementation of procedures etc.1. 引言机器人技术作为20世纪人类最伟大的发明之一,自20世纪60年代初问世以来,经历40余年的发展已取得长足的进步。到现在为止,机器人的种类已有几百种,以应用到生产和生活的各个领域。随着人们物质生活的提高,精神生活以引起了人们的重视。在这种情况下,舞蹈机器人便应用而生。舞蹈机器人作为一种极具娱乐性观赏性的艺术形式,吸引了越来越多的学生,为他们接触前沿科技提供了合适的机会,有助于普及素质教育和机器人技术知识,这反过来也会促进人工智能和机器人的发展;在导游服务行业,有一定的应用前景。同时可分离机器人的灵活性更大,其自动分离与自动对接技术的实现更加增加了其观赏性。除此之外,其自动变形技术更加增加了其观赏性。除了观赏性外,还可以对其程序进行改变,改变其功能,凭借其灵活的变形手段,和变形为车的能力,还有自动分离自动对接技术,可以实现地形侦查,环境监测,自主爆破等功能。是一个绝佳的,多功能的可拓展的机器人。2. 系统方案 在该机器人的设计中主要进行机械结构设计、驱动机构设计、驱动器及电源选择、硬件电路设计及软件算法实现等。1、 机械部分:稳定性、平衡性和灵活性,同时保证一定的刚度;关节连接件的设计要合适,保证机器人行动起来灵活自如,动作顺滑平稳,并且具有一定的承受负载能力;机器人重心的确定,硬件控制电路板和电池等负载如何放置,机器人对接分离时,平稳灵活2、 动力源:驱动源的选择在保证稳定性、平衡性和灵活性的前提下,实现低成本、低功耗。3、 电源要求:由于机器人的几何尺寸的限制,所以电源体积又不能过大;容量不能过小,至少满足一次完整跳舞过程;电源内阻不能过大,减小功耗;电源提供电机和逻辑电路的电压要求。4、 硬件控制板: 1)微控器的选择要求:低功耗,处理数据快。2)信号调理电路的要求:抗干扰性强,稳定性强。3)稳压电路要求提供大电流,并能承受舵机转动的瞬时电流冲击。5、软件设计:1)实时性:在一定时间间隔内,完成一系列的软件的处理过程,所以要求所有程序必须是非阻塞程序。2)平稳性:要保证机器人运动的平稳性必须想办法降低机器人的运动速度,即舵机的转动速度,后来采用内插法,进行舵机转速的调整。3)连续性:为了保证所有舵机转动的快速切换,所以采用中断方式,从而保证每个舵机都可以按要求转动。3. 系统硬件设计硬件设计主要包括机械结构设计和硬件电路设计,再次主要对硬件电路进行介绍,机械结构设计见附录一。(1)430最小系统该系统主要包括JTAG仿真下载接口、复位及振荡电路,主处理器用msp430f149,首先其价格低廉,并且有很强的数据处理能力还有足够的容量来存储动作数据,除此之外还有足够多的I/O口对舵机及电磁铁进行控制。(2)430供电模块LM117-3.3是典型的三引脚稳压芯片,可以提供稳定的3.3V左右的稳定电压。(3)模拟电源模块其中UPC24A05芯片可以产生5V/3A(MAX)的电压足够为舵机提供电源。(4)舵机驱动电路Ib=Ui/R4;Ic=(1+)*Ib;Uo=5-Uc=5-(R2*Ic)=5-(1+)*(R2/R4)*Ui;所以输入电压Ui=2.5时输出电压Uo=0V;所以输入电压Ui=0时输出电压Uo=5V;因为430芯片的输出电压大概在2.5V左右,而舵机控制脉冲的高电平至少要3.5V的电压,所以在此处用三极管进行简单的信号放大,使其足以驱动舵机。(5)电磁铁驱动电路该电路包括两部分,左图为三极管放大电路,右边为场效应管开关电路。场效应管采用2SK3483,因为其可以通过高达60V的电压,并且电阻极小,是非常好的电子开关之一,用来控制要通过大电流,大电压的电磁铁十分理想。它为N沟道绝缘栅型场效应管,其导通电压最大值为2.5V,典型值为2V,而430单片机的I/O口输出电压最大只有2.5V,为了保证其完全导通所以将I/O口的输出电压先用用三极管进行放大然后再将其连接场效应管,进行场效应管的控制。4. 系统软件设计整个系统软件的主体是机器人的动作控制程序,整套动作可以划分为5个部分。(1) 机器人的两部分相结合成为一个完整的双足机器人,在该部分机器人主要进行双手、双臂的动作,包括曲臂、伸臂、摆手等。(2) 在该部分机器人弯腰变形成为四足机器人的第一形态,该形态的主要运动方式是依靠四足转动产生的摩擦力是机器人进行滑步运动,该部分要求对每个舵机(该款舵机可进行360度旋转)的转动方向,转动速度进行严格控制,只有这样,才能是机器人平稳滑步,当然通过四足转动速度的调整也可以随意改变机器人的滑动方向。(3) 该部分通过机器人通过对脚部接触地面角度的控制使其达到四足机器人的第二形态,此形主要适合在大摩擦力的环境运动,该部分通过对四足爬虫爬行动作的模仿而实现运动。(4) 在这个部分四足机器人又进行下一形态的变化变形为四轮小车,进行车类运动。同时该部分也有四轮小车的第二形态。(5) 此时机器人又从小车变为四足机器人,然后通过对电磁铁的控制实现机器人的自动分离而成为两个非完整双足机器人。该机器人又会进行劈叉、弯腰、变形、鞠躬等动作表演。所有这些动作都由程序实现、这些动作的控制数组也存储在430芯片内。因为整个程序的子程序很多,所以为了保证程序的实时性必须保证所有的程序均为非阻塞程序,并且要配合定时中断合理的进行各程序间的切换。其中舵机的减速程序和8路舵机PWM控制信号的实时产生为算法精华和重点。而动作数据库的建立相对简单就不在赘述。主要对8路舵机的控制程序进行介绍。详细描述:(1) 对8个舵机进行角度初始化,并保存于数组pre_action 中。(2) 调用动作数组的第一个动作。(3) 将其保存于一个数组now_action 中。(4) 用now_action 数组中的角度值减去数组pre_action 中的角度值将其差值存于cha_action 中。(5) 采用内插法调整舵机转速,控制8个舵机分别转到now_action 中的角度处。(6) 将数组now_action 里的值保存于数组pre_action 中。(7) 重复(2)(6)过程。关于内插法的详细描述:(1)我们知道模拟舵机的控制方法是在周期为20ms的脉冲信号中控制高电平时间为0.5ms2.5ms之间,即调节其占空比而控制其转动角度。如:高电平为0.5ms时舵机的角度为-90度。高电平为1.5ms时舵机的角度为0度。高电平为1.5ms时舵机的角度为90度。(2)内插法就是在舵机欲抵达的角度Q与现在角度P之间等间隔的插入n个角度值,这样使舵机转动n次每次转动很小一个角度,但是每次所需的时间都至少为一个周期即20ms这样舵机总共转动的时间就增加了n倍,即舵机转动速度也减少了n倍。(3)详细的该部分代码见附录二。5. 系统创新(1)机械结构设计方面,可以实现机器人多个形态间的自由切换。(2)运用电磁铁作为连接机构的主要组成部分,是连接分离更加快捷、方便。(3)舵机的速度控制及8路PWM波实时输出算法。6. 评测与结论整个系统完成后,经指导老师检验,效果良好,可以达到预期目标,自由实现机器人的多形态变化,并且机器人的分离也十分快速充分。附录附录一:关节连接件:机械对接模块:430控制板:整体效果图(来自视频截图):附录二:为了便于大家理解舵机的控制程序特在此截取了部分源代码便于大家对内插法的认识,源代码有8路输出,现在只列出2路输出,动作数组也只有4个,只是为了说明代码的运行过程。如:(1)一些有用的变量定义:#define Pwm_Th_All 8 /表示8路舵机#define TA_Cycle 2500 /定时器A设置周期为:2.5msunsigned int Action_Cnt=0,j=0;/ Action_Cnt表示第 Action_Cnt套动作,j表示第i套动作中第j个舵机/用二维数组表示动作数据库 int const ActionPwm_Th_All=1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, / 1 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500,/ 2 1400, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 600, 1500, 1500, 1500, 1500, 1500, 1500, 1500, ; int Pre_ActionPwm_Th_All=600, 600, 600, 600, 600, 600, 600, 600;/记录前一套动作数据 int Now_ActionPwm_Th_All=600, 600, 600, 600, 600, 600, 600, 600;/记录当前动作数据 int Action_ChaPwm_Th_All=0,0,0,0,0,0,0,0;/记录前一次和当前一次的动作差值unsigned int Pluse_WidthPwm_Th_All=600,600,600,600,600,600,600,600;/每个定时周期内的脉冲宽度,初值为0.6msunsigned char Action_Time_Keep=5,5,5,3,3,3,3,3,3,8;/每一套动作的持续时间,单位Sunsigned int Large_Value=0;/记录最大差值,保存每一套动作中的最大差值unsigned char Cycle_Data=0;/20ms周期计数器unsigned int Action_Time_Cnt=0;/一帧动作时间计数器 unsigned int m=0;/记录脉宽变化量unsigned int a=0;/记录每一套动作持续的时间/*(2)Action_Process()函数:函数名:Action_Process()功能:将动作数据库中的读出并存入Now_Action数组中 又将Now_Action动作值与Pre_Action做差,将读出的 动作值存入Pre_Action中,将差值存入Now_Action中 并由小到大排序*/void Action_Process() unsigned char i=0; j=0; int temp;/临时存储动作变量 for(i=0;i8;i+) Now_Actioni=ActionAction_Cntj;/读入当前动作值 j+; i=0; j=0;/全局变量归零 for(i=0;i=0) /找出绝对值最大的差值,即变化量最大的角度 Large_Value=Action_Cha0; else Large_Value=(-Action_Cha0); for(i=0;i=0) if(Large_Value=Action_Chai) Large_Value=Action_Chai; else if(Large_Value=(-Action_Chai) Large_Value=(-Action_Chai); (3)对所用到的各个I/O口全部置高。#pragma vector=TIMERA0_VECTOR /Timer_A中断服务程序_interrupt void Timer_A (void) if(a=2) Action_Cnt=0; Action_Time_Cnt=Action_Time_KeepAction_Cnt*50;/计算一帧动作计数时间 Action_Process();/对当前的这一帧动作进行处理 m=0;/脉宽记录变化量归零 a=0;/动作持续时间计数器归零 (4)内插法的体现处:#pragma vector=TIMERB0_VECTOR /Timer_B中断服务程序_interrupt void Timer_B (void) if(m0)/当前角度大于前一次的角度,脉冲宽度加10,即10us Pluse_WidthCycle_Data=Pluse_WidthCycle_Data+10; else /当前角度小于前一次的角度,脉冲宽度减10 Pluse_WidthCycle_Data=Pluse_WidthCycle_Data-10; Cycle_Data+;/周期计数值加1 break; case 1: P4OUT=0x00;/将P1.1置为低电平 TBCTL=MC_0;/停止定时器B TBCCTL0&=CCIE;/关闭定时器B if(Pluse_WidthCycle_Data!=Now_ActionCycle_Data) if(Action_ChaCycle_Data0)/当前角度大于前一次的角度,脉冲宽度加10,即10us Pluse_WidthCycle_Data=Pluse_WidthCycle_Data+10; else /当前角度小于前一次的角度,脉冲宽度减10 Pluse_WidthCycle_Data=Pluse_WidthCycle_Data-10; Cycle_Data+;/周期计数值加1 break; if(Pluse_WidthCycle_Data!=Now_ActionCycle_Data) if(Action_ChaCycle_Data0)/当前角度大于前一次的角度,脉冲宽度加10,即10us Pluse_WidthCycle_Data=Pluse_WidthCycle_Data+10; else /当前角度小于前一次的角度,脉冲宽度减10 Pluse_WidthCycle_Data=Pluse_WidthCycle_Data-10; Cycle_Data+;/周期计数值加1 break; default: break; if(Cycle_Data=2) Cycle_Data=0; m=m+10; /每个20ms周期内,m记录脉宽的变化量 a+;/记录该帧持续时间 else/如果角度变化量最大的舵机已转到目标位置,则持续输出目标位置的脉宽,直到这一帧时间到 switch(Cycle_Data)/在对应的脉宽定时间到达时,将对应的IO口置为低电平 case 0: P4OUT=0x00; TBCTL=MC_0;/停止定时器B TBCCTL0&=CCIE;/关闭定时器B Cycle_Data+;/周期计数值加1 break; case 1: P4OUT=0x00; TBCTL=MC_0;/停止定时器B TBCCTL0&=CCIE;/关闭定时器B Cycle_Data+;/周期计数值加1 break; default: break; if(Cycle_Data=2) Cycle_Data=0; /m=m+10; /每个20ms周期内,m记录脉宽的变化量 a+;/记录该帧持续时间 袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第十一课 多姿多彩的“我”说课稿-2025-2026学年小学心理健康人教版二年级上册-人教版
- 化肥厂原料验收登记制度
- 2025电子产品代理的销售合同书
- 江苏大学出版社《应用写作》说课稿-2023-2024学年中职中职专业课职业素养公共课程
- 建材买卖合同(卫浴洁具类)
- 教科版高中信息技术教案+教学设计
- 军训个人体会心得
- 2025年山西人民警察招聘考试申论题库含答案详解
- 2025年监理工程考试合同管理真题及答案
- 商场租赁合同范本及租赁保证金缴纳及退还流程
- 贷款中介签服务合同模板(3篇)
- 急性宫外孕课件
- 贵阳市2026届高三年级摸底考试物理试卷(含答案)
- 美发编发基础知识培训课件
- 同期线损培训课件
- 反诈知识竞赛试题及答案
- 钢筋加工棚租赁合同范本
- 2025年电梯检验员资格考试历年真题及答案试题试卷(含解析)
- 眼整形课件教学课件
- 公司法务知识培训会课件
- 2025年药企QA人员岗位职责培训考核试题及答案
评论
0/150
提交评论