机器人关节的设计与实现毕业论文.doc

上传人:豆**** 文档编号:17624341 上传时间:2022-05-25 格式:DOC 页数:16 大小:237KB
返回 下载 相关 举报
机器人关节的设计与实现毕业论文.doc_第1页
第1页 / 共16页
机器人关节的设计与实现毕业论文.doc_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《机器人关节的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《机器人关节的设计与实现毕业论文.doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流机器人关节的设计与实现毕业论文.精品文档.河南科技学院 2011 届本科毕业论文(设计)论文(设计)题目: 机器人关节的设计与实现 学生姓名: 周 涵 所在院系: 信息工程学院 所学专业: 计算机科学与技术 导师姓名: 曲培新 完成时间: 2011-05-25 摘 要机器人关节是机器人的基础部件,其性能的好坏直接影响机器人的性能。随着数字伺服技术等电子技术的发展,机器人关节也在不断发展。本文主要研究基于舵机的机器人关节的设计与实现。本文主要了完成以下工作:采用定时器控制方法产生舵机控制的脉冲信号,为了能实现活动关节根据输入角度准确定位和微调,

2、设计加入了矩阵键盘调控系统。在硬件搭建方面,设计了基于STC89C52的2路脉冲信号的舵机硬件控制电路系统。之后对系统所使用的编辑软件和调试工具进行了简要说明,并详细介绍了软硬件的主要模块的设计和实现过程,以及重要部分的调试和仿真的具体过程。最后,根据软硬件设计结果,制作了一个极坐标结构的机器人关节,能够完成分别在水平和竖直方向的比较精确的控制。关键词 舵机,机器人关节设计Abstract Robots joint, is a basic part of robot, whose performance will directly affect a robot. With the develo

3、pment of electronic technology such as digital servo, the technology of robot joint is developing continually. This paper is studying how to designed and (实现) a two-(自由度) robot joint based on digital servo. Key words cellular phone virus, loopholes, Bluetooth目 录1.绪 论51.1.课题背景51.2.舵机简介51.3.本文研究的工作72.

4、系统的总体设计思路73.硬件设计与实现83.1.主要元器件介绍83.1.1.舵机83.1.2.STC89C5283.2.硬件的设计过程83.2.1.工作电源控制电路93.2.2.1602显示控制电路93.2.3.矩阵键盘的设计电路103.2.4.舵机与系统接口电路113.2.5.机器人关节的外形设计113.3.硬件的实现过程113.3.1.电路板的设计过程113.3.2.硬件的组装过程124.软件的设计与实现124.1.单片机的C语言及其开发工具124.2.各模块程序设计134.2.1.脉冲信号产生模块134.2.2.矩阵键盘控制模块144.3.数据处理155.仿真与调试165.1.硬件电路的

5、仿真设计165.2.单片机的程序调试166.总结16致 谢17附录117附录218附录3191. 绪 论1.1. 课题背景从一战以来,机器人学和飞机、火箭、计算机等一样,也日益发展成为我们日常生活不可或缺的科学技术,机器人的应用广泛,从传统的自动化制造领域,到人类的日常生活,再到茫茫星系的探索,都已经离不开机器人。机器人关节是机器人的基础部件,其性能的好坏直接影响机器人的性能。机器人关节的种类有很多,根据机器人的功能不同,关节的配置和运动系统的形式叶都各不相同。工业机器人关节根据输出运动形式的不同分为移动关节和转动关节:根据传动机构的不同可以分为齿轮传动、连杆传动和摆线针轮减速传动;根据驱动器

6、形式的不同可以分为电驱动关节、气压驱动关节、液压驱动关节和特种驱动关节等等。仿人机器人也是当今机器人爱好者研究的热点之一,仿人机器人因为外型类人则其关节可以分为上肢关节和下肢关节。微型机器人则是利用集成电路微细加工,将驱动器,关节传动装置以及传感器控制器和电源等集成在很小的多晶硅上。总体来看机器人关节呈现出大力矩,高精度,反应灵敏,小型化,标准化和模块化的趋势和发展。工业机器人常见的关节形式有移动关节和转动关节。应用最多的工业机器人是多关节机器人,它主要是由多个回转关节和连杆组成,模拟人的肩关节、肘关节和腕关节等的作用。其关节与仿人机器人的肩、肘、髋关节不同的是自由度的个数。通常工业机器人的肩

7、肘髋的关节的自由度为1。仿人机器人主要分为仿人手臂型和仿人双足型。仿人手臂型主要是研究7自由度手臂和多自由度操作臂、多指灵巧手及手臂和灵巧手的组合。仿人双足型主要研究步行机构及步行特性,下肢关节结构是步行质量好坏的关键。1.2. 舵机简介在机器人关节的设计中,电机是至关重要的一部分,电机就像是机器人关节的肌肉,只有正确的配置和使用电机才能使机器人关节正常运转起来。常见的电机主要有直、交流电机,而直流电机一直在机器人设计中占有主导地位。直流电机可以分为连续转动电机和步进电机2种,主要区别是连续转动的电机在通电后主轴连续转动,只有当断电或者电机提供的驱动力无法驱动负载时,主轴才停止转动或这阻塞;步

8、进电机则是通电后主轴转动某一个角度后,然后停止。伺服电机是一种比较特殊的连续转动电机类型。直流电机和步进电机都是开环反馈系统,也就是在电机转动的过程中并不知道电机究竟转过了多少角度。而伺服电机是一种闭环反馈系统,内部主要有一个控制电路、一个电机、一个齿轮箱和一个电位计组成。伺服电机转动的角度可以通过控制电路反馈,并且控制电路不断的修正转动角度的误差,直到电机转动要预期位置。舵机是一种伺服电机,它具有伺服电机的优点,即在接收到控制信号后可以转过相对准确的位置,这使舵机在机器人设计,航模,船模等有着广泛的应用,比如用来控制机器人的转动方向等。舵机的控制方法。舵机的定位是利用脉宽调制的方法实现的。舵

9、机可以根据周期内高电平的持续时间(即脉宽)来完成定位。一般的舵机控制电路能够接收周期为20ms、脉宽为12ms的脉冲信号,脉冲的准确长度决定了舵机轴转动的准确位置(图1.1)。目前普遍使用PWM(占空比)即高电平在20ms周期内的持续时间所占的比例来描述脉宽。当舵机接收到的1ms的脉宽时,舵机向某一个极限位置转动,当接收到脉宽为2ms的时候,舵机向另一个方向极限位置转动。也可以说舵机的角位移与接收到的脉宽成正比,一般来说,舵机能在0.250.5的时间内转过60。舵机的控制原理。电位计的作用是检测舵机的输出轴是否已经转到期望位置。电位计与舵机的输出轴相连接,这样分压计能够非常准确的反映出舵机输出

10、轴的当前位置。电位计输出为一个电压信号,当舵机的输出轴的位置变换时,控制电路就会从分压器接收到不同的电压信号。舵机中的控制电路将电位计的输出的电压信号和控制脉冲信号定时比较,如果电压信号不正确就会产生误差信号。该误差信号与电位计的位置和可能告知脉冲的差值成正比,当存在误差信号时,电机就会保持转动,直到电位计输出的电压信号和控制脉冲信号相匹配时,误差信号被移除,电机停转。舵机的主要技术参数有力矩,回转率,工作电压,工作温度,死区等。图1.1 周期为20ms的脉冲信号的高电平持续时间在12ms之间变化可以控制舵机的输出轴位置舵机的应用场合,主要有多自由度机器人设计,多路伺服航模控制,电动遥控飞机,

11、油动遥控飞机,航海模型,高档遥控仿真车等。1.3. 本文研究的工作通过对电机类型的结构和原理进行分析与比较,本课题选用舵机作为机器人关节的本体原件,来完成的机器人关节的设计与实现,以达到可以在水平和竖直两个方向上控制机器人关节的活动效果。主要包括系统的软件和硬件设计,以及最终硬件的制作。在本文的下面一些章节会详细介绍各部分的设计过程。通过对舵机的结构原理,控制特性与机械特性的综合分析与研究,最终选择TowerProMG995型号舵机(图1.2)作为本课题的舵机本体。该型号的舵机具有力矩大(10KG/cm),输出功率高,价格合理,稳定性好等优点。图 1.2 TowerProMG9952. 系统的

12、总体设计思路系统的总体设计分别包括系统的硬件设计和软件设计。下图(图2.1)为总的流程图。图2.1 系统流程图3. 硬件设计与实现硬件是系统运行的基础,硬件设计是系统设计中的重要组成部分。本系统中的硬件设计主要包括系统工作电源,液晶显示,矩阵键盘和脉冲信号产生的电路设计过程等。3.1. 主要元器件介绍下面主要对硬件中使用的一些重要的元器件的电气特征作一下介绍。3.1.1. 舵机名 称:TowerPro MG995外 形:40.7*19.7*42.9mm力 矩:10kg/cm回 转 率:0.20s/60工作电压:4.87.2v温度范围:055工作死区:10us角度范围:090脉宽范围:1ms2m

13、s3.1.2. STC89C52由于51系列单片机在国内广泛使用,技术比较成熟,而且相关的开发工具也比较普及,性能优越,所以在此也选择51系列的STC89C52单片机作为控制机器人关节的单片机。STC89C5*系列单片机不仅性能优越,而且控制简单,价格合理。该型号的单片机片内EPROM达到8K,同时有2个定时器,足以承担系统的设计需要。其他的选用的主要器件还有稳压器7805, 液晶显示器1602,电容和电阻等一系列电器元件。3.2. 硬件的设计过程硬件的设计过程包括硬件的电路设计和机器人关节的外形设计。根据系统将要完成的几项功能考虑硬件电路设计,硬件部分所要提供的功能有液晶显示、矩阵键盘、舵机

14、接口,所以电路设计主要包含这几个部分以及要完成系统工作的电压、单片机的最小系统(复位和晶振)等电路设计。下面主要介绍重要功能模块的设计电路。3.2.1. 工作电源控制电路为了给系统各部分提供稳定可靠的直流电压,在控制系统中选用了稳压器7805完成对工作电压的稳定控制工作。7805具有体积小,重量轻,可靠性好等特点。下图(图3.1)是为系统电源控制电路图。图3.1电源控制电路图12V的直流电压经过7805后转换为稳定的5V电压后,供应整个电路的电源系统。LED的作用是保护7805,防止电路回时电流过大对7805造成损害。3.2.2. 1602显示控制电路系统选用1602(SPI16引脚)作为数据

15、显示器件,主要用于显示舵机的当前角度和调整角度。1602是一种16*2字符型液晶显示器,引脚分为电源、通信数据和控制三部分,可以很方便的可以与单片机进行连接。下图(图3.2)为1602与STC89C51的接口电路图。图3.2 1602显示电路图选用单片机的P0口作为1602的数据输入端口(D0D7),P3.2,P3.3,P3.4分别作为数据命令选择端(H/L)(RS),读/写选择端(H/L)(RW),使能信号端(E)。上拉电阻部分(RP1)具有限流的作用。3.2.3. 矩阵键盘的设计电路本系统的矩阵键盘主要是用于定位调整和加减微调舵机角度两项功能。下图(3.3)为矩阵键盘的控制电路。图3.3矩

16、阵键盘电路图选用STC98C52单片机的P2口作为矩阵键盘的控制端口。按键09为数字按键,主要用于定位舵机角度的输入。键D1+,D1,D2+,D2分别为舵机1和舵机2微调时的加减。确定键,当输入舵机需要定位的角度后,按下确认键后,舵机开始运转。取消键,用于取消输入的定位角度(未按确定键前)。3.2.4. 舵机与系统接口电路向舵机发送脉冲信号的电路部分,舵机根据PWM的大小调整舵机的位置。下图(图3.4)为舵机PWM控制电路部分。图3.4舵机脉冲信号控制电路分别选用STC89C52单片机的P1.3,P1.4引脚作为舵机1和舵机2的输出脉冲信号的控制端口。在电路仿真中,该2个端口接的是虚拟示波器,

17、用来显示和反映脉冲信号的输出状态。3.2.5. 机器人关节的外形设计机器人关节的外形设计是指最终机器人关节的成型外形。机器人关节的外形设计主要参考当今网络上流行的多自由度机械臂的外形。3.3. 硬件的实现过程3.3.1. 电路板的设计过程将整个系统电路图设计出来后,接下来我们就需要制作电路板图了。电路板设计得是否合理,质量是否可靠,直接决定着制作出来的红外通信遥控器的质量和运行的可靠性。Altium Designer提供了板图设计功能,包括自动布线和器件自动摆放功能。事实上,器件自动摆放功能是达不到要求的,因此,实际操作时应采用“人工摆放元件人工预布线自动布线人工细调”的设计流程,一步一步制作

18、出符合要求的电路板。电路板图见附录二。3.3.2. 硬件的组装过程硬件的组装主要包括机器人关节的外形组装和电路板的各元件的安放与焊接。4. 软件的设计与实现软件是系统的灵魂,软件设计的好坏直接影响到整个系统性能的强弱。所以软件设计是本系统中很重要的组成部分。在本系统中的软件主要是指单片机的程序,主要包括舵机脉冲信号发生模块,矩阵键盘控制模块和液晶显示器1602显示模块几大部分。4.1 系统设计流程图4.1. 单片机的C语言及其开发工具对于单片机的编程语言的选择,选用近年来流行的C语言编程。首先C语言比较普及,可读性强,易编写,且不必了解处理器的指令集和存储器结构。和汇编语言相比,C语言程序的编

19、制和调试时间都大大缩短,并且C语言的可移植性好,稳定性强。基于C语言的种种优点,本系统选择C语言来设计和开发单片机程序。开发工具则是选用目前国内流行的Keil公司出品的51系列单片机软件仿真器。Keil uVision3是一个基于Windows的应用程序,可以完成编辑,编译,链接,调试等整个开发流程,而且界面友好,方便易用,支持很多单片机类型。本系统所有的单片机程序均使用Keil进行编辑,链接,调试。4.2. 各模块程序设计单片机程序的子模块主要包括脉冲信号产生模块,矩阵键盘控制模块和液晶显示模块,这这里主要介绍和分析前2个模块。4.2.1. 脉冲信号产生模块在该单片机程序中,主要使用2个定时

20、器来产生2路脉冲信号(PWM1、PWM2)注1,分别输送给2个舵机。具体实现方法是timer1作为基准定时器,提供稳定的10ms定时,timer0则作为控制高电平时间定时器。在timer1中每次根据标志位选择翻转(PWM1或PWM2)脉冲信号高低电平,并打开timer0:在timer0中断到来后,timer0中则根据标志位重新翻转脉冲信号,最后关闭timer0,则形成高电平脉冲,完成舵机脉冲信号的输出。脉冲信号产生流程图如图(图4.1)所示。图4.1 脉冲信号产生流程图因为舵机的控制电路周期的脉冲时间为20ms,而STC89C52里共有2个定时器,所以本系统采用分时复用的方法来产生2路脉冲信号

21、。该方法在理论上可以控制10个舵机的共同工作,可扩充性强。4.2.2. 矩阵键盘控制模块在单片机程序中,矩阵键盘的控制最为繁杂。首先是键盘的扫描,根据按键的不同分别执行不同的程序操作:09数字按键经过键盘的散列转换后分别被存入程序处理并置flag_key=1(表示有数字按键被按下)和送去液晶显示器显示;+,按键直接控制脉宽信号微调增加(减少)千分之0.5(0.1);确定键则是很据所输入2个舵机的角度的范围满足要求且flag_key=1(表示数字键按下后产生的确定键操作)时, 脉宽信号发生变化,则舵机会转动到相应角度,并更新1602显示,否则执行出错;取消键则是用于取消已输入角度,但是还未按下确

22、定键的角度值。矩阵键盘的控制流程图如下图(图4.2)所示。图4.2 矩阵键盘流程图4.3. 数据处理在本单片机程序中,数据处理的任务主要有两个部分,分别是矩阵键盘的散列转换和脉宽转换为角度的处理。散列转换是指键盘分别接收到不同的按键信息后,分别转化为相应的数字或者相应的操作。脉宽与角度的满足线性关系(图4.2),角度记为,脉宽记为w。 图4.2 脉宽角度关系图脉宽与角度的处理包含2个部分,一是将脉宽信号转化为角度并用液晶显示器显示出来,另一部分是将输入的角度转换为脉宽信号。在将脉宽转换为角度的时候,因为显示的角度是整数,显示部分采取下限取整(如80.080.9显示为80)。需要指出的是,在程序

23、内部,使用的脉宽单位为us,故转换公式如下:=0.09*w -90脉宽信号在程序内部采用的是整数(即10002000us),在将输入的角度转换为脉宽信号时,采取的约法是四舍五入(如1500.3=1500,1500.6=1501)。转换公式如下:w=(+90)*1000)*1.1111+0.55. 仿真与调试5.1. 硬件电路的仿真设计在本系统中的硬件电路仿真设计,主要是运用英国Labcenter electronics公司开发的 EDA工具软件Protues,Protues是一款非常优秀的仿真软件,能支持当前主流单片机系统的仿真并有丰富的软件调试功能。下面对主要的硬件电路仿真作介绍和分析。首先

24、是系统PWM信号的产生,因为产生的是脉冲信号,所以选用2个虚拟示波器查看单片机定时器产生的波形与大小;然后使用LCD1602来模拟液晶显示器的显示,4*4按键模拟矩阵键盘(仿真图见附录图1)。下图(图5.1)为2路舵机脉冲信号图。图5.1 2路舵机脉冲信号图5.2. 单片机的程序调试由于单片机程序采用C语言编写,因而程序的调试比较简单。使用Keil uVision3提供了丰富的调试工具,使调试进行的非常顺利,最后通过编译并生成了hex可执行文件(部分调试图见附录图2)。6. 总结本课题利用单片机定时器实现了舵机2路脉冲信号的输出,实现了机器人关节转动的功能,完成了本课题的主要内容:机器人关节的

25、设计与实现。由于制作工艺水平的有限,使得本次设计中电路系统做得比较简易与粗糙,由于时间紧迫,未能完成更高等的目标与任务。然而,在有限的时间内,我努力掌握了舵机的控制方式,整体把握了机器人关节的设计思路,完成了从设计硬件电路、单片机程序到实现关节转动的整个过程。在实验过程中,我学习了Keil、Potues和Altium Designer软件的基本功能,并掌握了一些基本的使用方法。在前期收集资料的过程中,从网上和前辈们的论文中搜集到了很多不同的多路PWM脉冲信号的控制方法,使我从不同的角度深入的了解舵机的控制方法,这对我本次实验的软件设计脉冲信号部分有很大的借鉴和参考意义。虽然这次软件设计过程中,

26、林林总总换了三、四种脉冲型号产生方案,在作过几种方法的稳定性与操作难度的比较之后,最终决定使用定时器方式来完成脉冲信号的产生。毕业设计是一个回顾与理顺旧知识,不断的吸收新知识的过程。在这个过程中,我深深感觉到自己的不足,连每一次的失败都显得是那么的珍贵,都会给我以深刻的启迪。虽然在以后不一定会有机会从事单片机相关的工作,但是这个过程的努力和汗水,思维和方法都会是我宝贵的人生财富。致 谢在论文的完成过程中,得到了院系的支持。尤其感谢曲培新老师的精心指导和帮助,感谢曲师在百忙之中的辛苦指点,给予我无尽的启迪。在论文即将完成之际,在这里请接受我诚挚的谢意!附录11、硬件电路仿真图附图 1: 硬件电路

27、仿真图2、软件调试图附图2:软件调试图附录2附录3主要单片机程序代码:/* 现在系统中需要2个舵机的控制,采用的控制方式是改变单片机的一个定时器中断的初值,对于每一个舵机来说,是将20ms分为三次中断执行,一次短定时中断和两次长定时中断。这样既节省了硬件电路,也减少了软件开销,控制系统工作效率和控制精度都很高。具体的设计过程:例如想让舵机转向左极限的角度,它的正脉冲为2ms,则负脉冲为20ms-2ms=18ms,所以开始时在控制口发送高电平,然后设置定时器在2ms后发生中断,中断发生后,在中断程序里将控制口改为低电平,并关闭短中断,再过18ms进入下一次定时长中断,再将控制口改为高电平,打开短

28、中断并将定时器初值改为2ms,等待下次中断到来,如此往复实现PWM信号输出到舵机。用修改定时器中断初值的方法巧妙形成了脉冲信号,调整时间段的宽度便可使伺服机灵活运动为保证软件在定时中断里采集其他信号,并且使发生PWM信号的程序不影响中断程序的运行(如果这些程序所占用时间过长,有可能会发生中断程序还未结束,下次中断又到来的后果),所以需要将采集信号的函数放在长定时中断过程中执行,也就是说每经过两次中断执行一次这些程序,执行的周期还是20ms。*/#include #include #include #include /1ms-2ms 步进为1ns,1000步 1/1000的分辨率unsigned

29、 char TIM0H1; unsigned char TIM0L1; unsigned char flag=1;unsigned char TIM0H2;unsigned char TIM0L2;void init(void); /定时器初始化函数sbit PWM1=P13; /定义舵机1信号输出接口sbit PWM2=P14; /定义舵机2信号输出接口 主函数 void main() init(); /定时器初始化F1602_init(); /1602 初始F1602_clear(); /1602 清屏NUM1=1500; /1.5ms的高电平舵机不动NUM2=1500;PWM1=1;go

30、toxy(1,0);int_To_char();display_string(a); /1602显示while(1) key();TIM0H1=(65536-NUM1)/256); /时间为NUM1 usTIM0L1=(65536-NUM1)%256);TIM0H2=(65536-NUM2)/256);TIM0L2=(65536-NUM2)%256); 中断服务函数 void Time1(void) interrupt 3 TH1=0xd8; /10ms定时 TL1=0xf0;if(flag=0) PWM1=PWM1; flag=1; elsePWM2=PWM2;flag=0; /波形产生,每

31、舵机PWM20ms反转 TR0=1; /产生长时间中断后,打开小中断void Time0(void) interrupt 1 if(flag=1) /舵机1的信号控制TH0=TIM0H2; TL0=TIM0L2;PWM1=PWM1;else /舵机2的信号控制TH0=TIM0H1; TL0=TIM0L1;PWM2=PWM2; TR0=0; /关闭短中断,等待长中断实现 void init() / 定时器初始化函数 TMOD=0x11; /打开两个定时器 00010001TH1=0xd8; /T0初值 10ms TL1=0xf0; EA=1; ET1=1; /允许定时/计数器1 中断 TR1=1; /启动定时/计数器1 中断 TH0=0xfa; /1.5ms定时 TL0=0x24; ET0=1; TR0=1; /开T0参考文献:何龄修. 读顾城. 南宋明史 J. 中国史研究, 1998, (3): 167173.1、王光建.梁锡昌.蒋建东. 机器人关节的发展现状与趋势 J.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁