1、唐 山 学 院毕 业 设 计设计题目:基于单片机的多自由度机械手臂控制器设计系 别: 信息工程系 班 级: 11 电气工程及其自动化 3 班 姓 名: 刘亮 指 导 教 师: 田红霞 2015 年 6 月 1 日基于单片机的多自由度机械手臂控制器设计摘 要机械臂控制器作为机械臂的大脑,对于它的研究有着十分重要的意义。随着微电子技术和控制方法的不断进步,以单片机作为控制器的控制系统越来越成熟。本课题正是基于单片机的机械臂控制系统的研究。本文首先介绍了国内外机械臂发展状况以及控制系统的发展状况。其次,阐述了四自由度机械手臂控制系统的硬件电路设计及软件实现。详细阐述了机械臂控制系统中单片机及其外围电
2、路设计、电源电路设计和舵机驱动电路设计。在程序设计中,着重介绍了利用微分插补法进行 PWM 调速的程序设计。并给出了控制器软件设计及流程图。最后,给出了系统调试中出现的软硬件问题,进行了详细的分析并给出了相应的解决办法。关键词:机械臂 单片机 自由度 舵机 PWMDesign of Multi DOF Manipulator Controller Based on MCUAbstractAs the brain of robot arm, manipulator controller is very important for its research.With the development
3、 of microelectronics technology and control method, the control system of MCU is becoming more and more mature.This thesis is based on the research of the manipulator control system of MCU.Firstly,it is introduced the development of the manipulator and the control system at home and abroad.Secondly,
4、it is given the circuit and software design for the four DOF manipulator in this disertation.it is expatiated the Single Chip Microcomputer(SCM),the relative circuit design ,Power circuit design,and driver circuit design of manipulator control system.In the design of the program, the design of PWM s
5、peed regulation by differential interpolation is introduced emphatically. The software design and flow chart of the controller are given.Finally,it is presented the problems of hardware and software in practive given resolves.Key word: Manipulator;MCU;DOF;Steering engine;PWM目 录1 引言 11.1 研究的背景和意义 11.
6、2 国内外机械臂研究现状 21.2.1 国外机械臂研究现状 21.2.2 国内机械臂研究现状 31.3 机械臂控制器的发展现状 31.4 本设计研究的任务 42 机械结构与控制系统概述 52.1 机械结构 52.2 控制系统 62.3 系统功能介绍 82.4 舵机工作原理与控制方法 82.4.1 概述 82.4.2 舵机的组成 82.4.3 舵机工作原理 93 系统硬件电路设计 113.1 时钟电路设计 113.2 复位电路设计 113.3 控制器电源电路设计 123.4 舵机驱动电路 133.5 串口通信电路设计 134 系统软件设计 144.1 四自由机械臂轨迹规划 154.2 主程序设计
7、 164.3 舵机调速程序设计 174.3.1 舵机 PWM 信号 .174.3.2 利用微分插补法实现对多路 PWM 信号的输出 .184.4 初末位置置换子程序 214.5 机械爪控制程序 224.6 定时器中断子程序 234.6.1 定时器 T1 中断程序 234.6.2 定时器 T0 中断子程序 245 系统软硬件调试 255.1 单片机系统开发调试工具 255.1.1 编程器 255.1.2 集成开发环境 Keil 和 Protues 255.2 控制系统的仿真 265.3 软件调试 275.4 硬件调试 275.5 软硬件联合调试 286 结论 29谢辞 .30参考文献 .31附录
8、 .32唐 山 学 院 毕 业 设 计01 引言1.1 研究的背景和意义机器人是传统的机械结构学结合现代电子技术、电机学、计算机科学、控制理论、信息科学和传感器技术等多学科综合性高新技术产物,它是一种拟生结构、高速运行、重复操作和高精度机电一体化的自动化设备。在研究和开发未知及不确定环境下作业的机器人的过程中,人们逐步认识到机器人技术的本质是感知、决策、行动和交互技术的结合 1。随着科技的不断进步尤其控制理论、材料学和传动结构学的发展以及制造工艺的进步,推动着机器人技术大跨步的向前发展。目前,各个领域的都有其专有的机器人为其服务,如移动机器人、微机器人、水下机器人、医疗机器人、军用机器人、空中
9、空间机器人、娱乐机器人等 2。当今各领域的制造行业都有其自动化流水线,例如,汽车自动化生产流水线就主要由工业机器人组成。机器人与其他相应的制造设备的最大的优点是,其对生产环境有着极大的适应性和对各种任务的拓展性。目前工业机器人已和最初的仿人型机器人有着很大的区别,更加符合各种不同生产制造领域的特殊要求,其中,目前,大多数工业机器人的形状类似人的手臂,能模拟人的手臂的部分动作,按预定的程序轨迹及其它要求,实现抓取、搬运工作或操纵工具的自动化装置 3。它们通常用于代替人的繁重劳动以解决人的生存,生产的难题,实现生产的机械化和自动化,能在有害环境下操作以保护人身安全,因而广泛应用于机械制造、冶金、电
10、子、轻工业和原子能等行业 4。近年来工业机器人在工厂自动化改革中发挥着巨大的作用,代替人处理一些重复性、精密性、高工作负荷的工作,大大加快了生产效率,缩减了生产周期。如汽车自动化生产线中的机器人的无缝焊接,钢厂里的钢材分拣机器人的搬运打捆,都用到了工业机器人(机械臂)。各生产领域专有的机器人能够使生产效率更高,降低损失,节约成本。随着机器人技术的发展,当前的工业机械手臂的结构更加的简单,大多数为模块化的,因此,能够做到易于维护、容易扩展到更多的自由度,并且其动作能够具有较高的灵活性。对于机械手臂的控制器设计,希望使用复杂高效的控制算法使机械手臂实现更高的控制性能,更精确的定位精度。并希望其控制
11、拥有较好的系统稳定性并有较强的可扩展性。唐 山 学 院 毕 业 设 计11.2 国内外机械臂研究现状1.2.1 国外机械臂研究现状世界上第一台工业机器人(机械手臂)诞生在美国,1954 年美国人乔治德沃尔研制了世界上第一台可编程机器人样机。从第一台机械手臂诞生以来的 60 多年里,人类对机械手臂的热情不但没有丝毫减弱,反而越来越多的人投入到机械臂的研究和制造中。1969 年,世界上第一条自动化汽车生产线由美国通用汽车公司用 21 台工业机器人组成。美国凭借其机器人技术全面、先进、适应性强在国际上仍一直处于领先地位。日本在 1967 年,由丰田纺织自动化公司从美国引入第一台工业机器人,开始了日本
12、的工业机器人发展时代。1976 年以后,随着微电子的快速发展和市场需求急剧增加,日本当时经济增长迅速,劳动力显著不足,工业机器人的出现使企业犹如获得了救命稻草,使其日本工业机器人得到快速发展。日本现有的工业机器人保有量位居世界第一,素有“机器人王国” 之称 5。工业机器人在欧洲的发展也非常快,1973 年 ABB 公司研制的 IRB6 机器人,是世界上第一台全自动微型处理器控制的机器人。同年库卡机器人也推出了自己的第一台机器人 FAMULUS,它是第一个由 6 个电机驱动的关节机器人。大多数欧洲国家政府比较重视工业机器人的发展,比如法国规定,对于一些危险、有毒、有害的工作岗位,必须以机器人来代
13、替普通人的劳动。德国由于其先进的工业体系,政府通过大力支持一系列研究计划,建立了一个完整的工业机器人科学技术体系,使德国机器人技术一直处于领先的地位。近些年,意大利、瑞典、英国、俄罗斯、乌克兰等国家由于自身国内机器人市场的巨大需求和国际上机器人市场的激烈竞争,发展速度也非常迅速。目前,世界上工业机器人生产厂家主要集中在日本和欧美。日系生产厂家组要有三菱、发那科、松下、川崎、安川等。欧系中具有代表性的有,瑞典的ABB、德国的 KUKA、美国的 Adept、意大利的 COMAU 及奥地利的 IGM 公司。下面以 KUKA 最新研制的小型机器人 KR 6 R700 fivve 为代表介绍当前工业机器
14、人的最新技术, KR AGILUS fivve 是一个五自由度的机械臂,它的特点是极高的作业速度和极高的精确度。因为它的体积小,占用空间很小,可选择安装地面、天花板等位置,因此 KR AGILUS fivve 的安装适用能力极高。 KR AGILUS fivve 的重量 48kg,最大负荷是 6kg,最大工作半径是 7067mm,重复精确度为 0.03mm,可见其精确度极高,可以应付的工艺流程很多。其控制系统是 KUKA 公司最新研究的 KR C4 COMPACT,只是一种更高效、更稳定、更灵活且更智能化的控制系统。唐 山 学 院 毕 业 设 计2灵活的结构设计和由此产生的可扩展性令其成为一款
15、全能型控制系统。按照目前的发展趋势国外机械手今后将大力研制具有某种智能的机械手,例如,触觉交互技术的加入。1.2.2 国内机械臂研究现状在古代的中国就有类似于现代的某些机器人的设备,例如,诸葛亮研制的木牛流马,鲁班造的木车。当前在我国,现代机械臂的研究最早开始于上世纪 70 年代。1972,上海成功的研制了我国的第一台机械手臂,随之各地都有相应的研制计划研制基地,各重点高校陆续的开展的相关的专业和课程,今天我国的机械手臂应用已达到空前的高度。我国政府从七五规划开始,大力发展机器人技术,制定了大量的相关鼓励政策并且为此投入大量的科研资金。随后各地自动化研究所和相关企业开发并且制造了一系列的工业机
16、器人,有由北京机电一体化研究所研制的焊接机器人,哈尔滨机床厂和哈工大联合制造的喷涂机器人,大连自动化研究所设计制造的拥有自主知识产权的氩弧焊机器人,沈阳工业大学设计制造的装卸载机器人等 6。机器人的控制器技术通过从外国引进、消化、吸收,大多是由中国工程院和沈阳自动化研究所及北京科技大学机器人研究所开发的,但很多的机器人关键部件还有国外几家少数机构垄断,如机器人专用轴承,减震齿轮,直流伺服电机等 7。我国的工业机械手的应用范围主要集中在一些自动化要求较高的制造业和先进的重工业,并且随着能源产业的壮大的相应的工业机器人也在逐渐的被应用。在目前专业机械手的发展和应用比较广泛时,应相应的发展通用机械手
17、,组合式机械这种机械手具有很强的灵活性和较高的拓展性,由此带来的优点是对生产环境有很强的适应性,可以在多种生产环境工作。目前国内工业机械臂主要应用在铸造、焊接、搬运及热处理方面,以减轻人类的劳动强度,改善生产作业条件。在研究设计通用机械手时可以将机械手臂的各运动构件,如伸缩、摆动、升降、横移、俯仰等机构,设计成典型的通用机构,以便适应不同工作环境的作业要求,选用通用型结构机构,使其能够组装成可改变结构的各种用途的机械手,这种机械手往往便于跟换工件,同时也便与设计制造与检修,扩大了应用范围。当前我国在机械臂的数量、品种、性能方面都达不到工业生产的需要,并且在机械臂的通用性,精确性和稳定性等方面与
18、国外还有很大的差距。因此,我国机械臂产业在大力发展专用型和通用型机械臂的前提下,此外还应大力研究通用型的机械臂控制器、以及具有触觉、视觉处理能力的学习型机械臂控制器,并考虑将将其接入互联网,逐步建立智能学习型机械臂控制系统网络。1.3 机械臂控制器的发展现状唐 山 学 院 毕 业 设 计3机械臂控制器主要分为两部分:机械臂控制系统硬件平台和机械臂软件控制系统。在早期的工业机械臂控制中,主要采用可编程控制器(PLC)作为主控制器,这种控制系统是将控制步骤和运行轨迹事先编程写入PLC中。这种控制器体积大、能耗高、不适合实时数据处理且寿命短难以满足越来越复杂的生产环境。随着半导体芯片制造工艺的进步带
19、动微电子技术和嵌入式系统的发展,单片机、FPGA、ARM 等被广泛的应用于的机械臂控制系统中。在如今的机械臂系统中,机械臂需要进行实时调整、多传感器融合辅助以及实现自动控制等任务,同时采集现场环境并加以识别并做出相应的控制策略 8。1.4 本设计研究的任务本设计以单片机为核心控制器完成机械手控制系统设计,主要围绕四自由度机械手臂实现货物的抓取这一任务:对机械手的结构进行分析,查阅资料,选择合适的单片机型号;对机械手臂建立空间坐标模型,确定规定动作控制要求;设计控制系统各功能电路,驱动电路、控制电路及各部分元件选型;根据机械手臂各关节动作控制要求,完成控制系统软件设计。制定手臂动作行程,手臂能实
20、现四自由度规定动作。唐 山 学 院 毕 业 设 计42 机械结构与控制系统概述2.1 机械结构机械手臂的动力驱动方式有气动式、齿轮式和绳索式等。其中齿轮式是目前被采用最多的机械手臂驱动方式之一,主要因为齿轮式机械手臂具有传动精度高、体积小、速度较快及运行平稳等优点。随着制造工业的发展需要,对机械手臂的自由度,精确度,运行的平稳性要求越来越高,机械手臂向多自由度,高速度,高精确度发展。考虑到齿轮式的机械臂结构简单,易于安装与拆卸;重量轻,关节转动的惯性小、灵活性强等优点,本文选用齿轮式(舵机驱动方式)。本设计综合考虑机械臂的结构、功能要求、平举力矩等因素决定机械臂为四自由度,四自由度机械臂采用四
21、个舵机控制,如图 2.1 所示,舵机 1 控制底座,实现自由旋转,舵机 2 控制机械臂上下运动,舵机 3 控制末端机械爪的水平倾角,舵机 4 控制机械爪的开合,用于抓取物件。其中在机械臂的驱动中最大力矩出现在平举的过程中,为了使机械臂能平稳准确的完成平举,本机械臂舵机 2 选用输出力矩更大的数字舵机,考虑到性价比其它舵机采用模拟舵机。为了使机械手运行的更加轻巧,关节连接件选用轻质 U 型铝合金连接杆,因此可以在动作上可以做的更加灵活,可以完成各种高难度动作。本机械臂各关节的最大运动范围:关节 1(舵机 1)底座的转动范围受舵机极限转动范围的限制为-90+90。关节 2(舵机 2)用于平举最大的
22、转动为最低 0,最高 90。关节 3(舵机 3)机械爪倾角的控制最低为-90,最高 90。关节 4(舵机 4)机械爪的开合,最小(闭合)0,最大(张开)90 。关节 1关节2关节 3关节4图 2.1 机械臂关节运动范围图唐 山 学 院 毕 业 设 计52.2 控制系统本控制系统的直接控制对象是驱动机械臂的舵机,而舵机的控制信号是一种占空比可调的 PWM 波。从而本设计从 PWM 信号的生成上考虑主控制器的选型。机械臂舵机 PWM 信号的生成方法,主要有以下三种。第一种是采用模拟电路的方法实现的,利用一些独立元器件搭建模拟电路来实现,这种电路虽然原理简单易实现,但是脉宽精度不高、脉冲宽度难以调整
23、且受环境影响较大等缺点;第二种是采用可编程逻辑器 FPGA 实现的,FPGA 有丰富的编程指令,强大的运算能力,并且具有并行处理的功能,能够产生稳定可靠的 PWM 信号,但是 FPGA 系统电路复杂,编程难度大开发效率低且成本很高;第三种是利用单片机作为控制系统的主控制器来产生 PWM 信号的,这种方法具有输出性能稳定、编程灵活多样、控制精度较高等优点,而且这种电路的体积较小,是当前生成 PWM 信号进行舵机及直流电机调速的最常用的方案。综合比较以上的三种方法本设计确定采用性价比更高的新一代 8051 单片机 STC12C5A60S2 作为主控制芯片。控制系统方案如图2.2 所示。STC12C
24、5A60S2 是一种新型的 8051 单片机,最大的特点是具有单时钟/机器周期(1T )速度快 8-12 倍,自带 A/D 转换功能,并能产生 PWM 信号,双串口,指令代码完全兼容传统 8051。传统 8051 单片机与新一代 STC12C5A60S2 系列单片机的区别:STC12C5A60S2 系列单片机的定时器 T0/定时器 T1 及串口与传统 8051 完全兼容,但其没有定时器 T2。上电复位后,定时器方式控制寄存器缺省仍然是除 12 再计数的。STC12C5A60S2 与传统 8051 的 111 条指令完全兼容且执行速度全面提速,最高的能提速 24 倍,最慢的也能快 3 倍。新型的
25、 STC12C5Axx 去除了传统 8051 单片机 ALE 脚对 6 分频输出,不可对外输出时钟,但可利用其新加进去的可编程时钟输出控制器对外输出时钟(CLKOUT0/CLKOUT1/CLKOUT2)或 XTAL2 脚串一个 200 欧姆电阻对外输出时钟。由于 STC12 系列速度更快执行由高变低或由低变高的 I/O 口操作,仅需 4 个时钟周期,而传统 8051 需要 12 个时钟 9。传统 8051 单片机在执行读外部状态时,需将相应的引脚拉高,否则读不对。主要特性:唐 山 学 院 毕 业 设 计61) 增强型 8051 CPU,1T 单时钟/机器周期2) 工作频率范围:035MHz,相
26、当于普通 8051 的 0420MHz3) 片上集成 1280 字节 RAM4) 通用 I/O 口(36/40/44 个),复位后为:准双向口/ 弱上拉(普通 8051 传统 I/O口)可设置成四种模式:准双向口/弱上拉,强推挽 /弱上拉,仅为输入/高阻,开漏每个 I/O 口驱动能力均可达到 20mA,但整个芯片最大不要超过 120mA10。5) 共 4 个 16 位定时器,两个与传统 8051 兼容的定时器/计数器,16 位定时器 T0和 T1,没有定时器 2,但有独立波特率发生器做串行通讯的波特率发生器,再加上 2 路 PCA 模块可再实现 2 个 16 位定时器 11。图2.2 机械臂控
27、制系统组成电源舵机控制系统编程接口STC12C5A60S2时钟电路复位电路唐 山 学 院 毕 业 设 计72.3 系统功能介绍本设计采用电动式四自由度机械手臂结构方案,其控制器方案由单片机系统提供,采用舵机作为动力传动方式来驱动机械臂 12。该手臂具有四个关节,每个关节可以转动 180,手臂转动采用 4 台舵机驱动,可以完成点对点的夹取物件的简单动作,系统控制图如图 2.3 所示。图2.3 四自由度机械臂控制2.4 舵机工作原理与控制方法2.4.1 概述舵机是一种伺服控制系用,由于可以通过程序连续控制其转角,通常用于需要实现角度旋转控制的各类关节运动中。舵机是关节转向的控制与驱动机构,具有体积
28、小、力矩大、外部机械设计简单、控制精度高等特点,无论是在硬件设计还是软件设计,舵机的设计都是机械臂驱动的重要的组成部分。2.4.2 舵机的组成单片机驱动器 1驱动器 2驱动器 3驱动器 4电机 1电机 2电机 3电机 4单片机驱动器 1驱动器 2驱动器 3唐 山 学 院 毕 业 设 计8一般来讲,舵机主要由舵盘、减速齿轮组、位置反馈电位计、直流电机、控制电路几部分组成,如图 2.4 所示。图 2.4 舵机的组成示意图舵机有三条输入线,电源线、地线、控制线如图 2.5 所示,其中中间的红线是电源线,黑色的是地线,舵机的地线要与控制电路的接地端相连(共地)。舵机主要是通过这两条线获取能源的。舵机的
29、电源电压一般有两种规格,一是 4.8V,一是 7.2V,7.2V 通常应用于转矩要求较高的场合,4.8V 主要应用于超小型长时间持续工作的场合;另外一根黄色线是控制信号线,舵机由这条信号线接收控制系统输出的 PWM 信号。图 2.5 舵机的输出线图2.4.3 舵机工作原理舵机的信号线接收 PWM 控制信号控制电机转动,电机带动一系列减速齿轮组,减速后传动至输出舵盘,舵机的输出轴带动位置反馈电位计,电位计将相应角度的输出电压信号与到控制电路板的 PWM 控制信号进行比较,然后控制电路板根据所在位置决定电机转动的方向和速度,从而达到目标停止 13。其工作流程为:控制信号控制电路板电机转动齿轮组减速
30、舵盘转动位置反馈电位计控制电路板反馈,如图 2.6 所示。PWM 波控制电路 电机 减速齿轮电位器角度唐 山 学 院 毕 业 设 计9图 2.6 舵机控制原理图舵机的控制信号是周期为 20ms 的脉宽调制(PWM)信号,脉冲宽度的调节范围是 0.5ms2.5ms ,对应输出角度-9090 ,呈线性变化如图 2.7 所示。对于模拟舵机来说,只有给它提供稳定持续的脉宽信号,它的输出轴才会保持在对应角度上。而对于数字舵机,则只用给它提供相应的脉宽信号,它的输出轴就会保持在对应的角度上,并不用维持这一脉宽信号。舵机的控制电路产生一个周期为20ms,宽度 1.5ms 的基准 PWM 信号,其内部有一个比
31、较器,将外加信号与内部基准信号相比较,判断出电机的转动方向和大小。通过调节 PWM 信号的占空比可以方便的控制舵机的转角,因此舵机广泛的应用于角度控制系统中,比如机器人的关节驱动,智能小车的转向控制等。图 2.7 舵机输出转角与输入脉冲的关系唐 山 学 院 毕 业 设 计103 系统硬件电路设计单片机为整套系统的控制核心,单片机本身和其外围电路的性能直接决定系统复杂程度及系统性能。故单片机的选择及其外围电路的设计也就显得十分的重要。STC12C5A60S2/AD/PWM 系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代 8051 单片机,指令代码完
32、全兼容传统 8051,但速度快 8-12 倍 14。内部集成 MAX810 专用复位电路,2 路 PWM,8路高速 10 位 A/D 转换(250K/S ,即 25 万次/秒),针对电机控制,强干扰场合15。考虑到芯片的性价比以及供货等综合因数,本文中采用 STC12C5A60S2 单片机。3.1 时钟电路设计STC12C5A60S2 的时钟源可以来自外部时钟信号或者振荡器。通常单片机系统使用外部时钟输入,因为外部时钟可更换灵活性强可根据处理速度选着不同频率的时钟芯片,同时外部时钟的精度高、稳定性好。时钟电路如图 3.1 所示。图 3.1 时钟电路3.2 复位电路设计复位操作完成单片机片内电路
33、的初始化,使单片机从一种确定的状态开始运行。当 8051 单片机的复位引脚 RST 出现 5ms 以上的高电平时,单片机就完成了复位操作。唐 山 学 院 毕 业 设 计11常用的上电且开关复位电路如图 3.2 所示。上电后,由于电容充电,使 RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使 RST 持续一段高电平时间。从而实现上电且开关复位的操作。通常选择 C=1030 F,R=10k。图 3.2 复位电路图3.3 控制器电源电路设计本电路所需 5V 直流电源采用工频 220V 电源,经由一个变压器降压后,通过H 桥整流,再使用三端稳压芯片稳压得到。常见的三端稳压集成电路有正
34、电压输出的 78系列和负电压输出的 79系列。三端 IC 的三条引脚分别是输入端、接地端和输出端。用 78/79 系列三端稳压 IC 来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。因为本设计只需要正电压 5V,故这里选用 7805。整流桥选择正向电流 1A,耐压值为 25V。整流出来的波形是脉动的,为了得到平稳的电压,在整流桥输出端接一个大电容。7805 的最高输出电流约为 1.5A,最高输出功率:P=UI=5V *1.5A=7.5W故用一片 7805 可设计满足要求。下图中 C1 和 C3 作平波用,故选用大电容;C2 和 C4
35、 择消除长导线的电感效应,选用小电容如图 3.3 所示。图 3.3 控制器电源电路图唐 山 学 院 毕 业 设 计123.4 舵机驱动电路通过实验发现,舵机在运行过程中要从电源吸纳较大的电流,若舵机与单片机控制器共用一个电源,则舵机会对单片机产生较大的干扰。因此,舵机与单片机控制器采用两个电源供电。两者共地,并且给舵机供电的电源最好采用输出功率较大的开关电源,如图 3.4 所示。图 3.4 舵机驱动电路图3.5 串口通信电路设计STC12C5A60S2有两个全双工的串行通讯口,所以单片机和计算机之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如计算机的串口是RS232电平的,而单
36、片机的串口是 TTL电平的,两者之间必须有一个电平转换电路,本设计采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。采用三线制连接串口,也就是说和计算机的9针串口只连接其中的3根线:第5脚的GND、第2脚的 TXD、第3脚的RXD。这是最简单的连接方法,但是已经足够使用了,电路如下图3.5所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。唐 山 学 院 毕 业 设 计13图 3.5 RS232 串口通信电路4 系统软件设计随着单片机技术日新月益的发展,学习和应用它的人越来越多。相应的单
37、片机的编程语言也在不断地发展、完善、丰富中。目前比较完善、常用的编程语言有 3 种,即汇编语言、C 语言和 BASIC 语言。BASIC 是一种高级语言,是在 1965 年 5 月,由美国科学家托马斯库尔兹研制出来的。几十年来,BASIC 语言一直被认为是初学者编程的语言。具备了很多结构化思想和编程方式,如函数、模块、局部变量、全局变量、数据传递等。BASIC 为简化使用变量,所有变量都用浮点值。另外,它还有针对单片机硬件所设计的命令如:LCD 命令可以用一条命令来实现 LCD 的显示操作。Cls /清 LCD 屏Lcd“How are you” /向 LCD 输入字符“How are you
38、”类似于这样的命令主要是提供了直接对单片机及其外部硬件的操作,大大的简化了开发过程。汇编语言是面向机器的,为了克服机器语言的缺点,用英文字符来代替机器语言,这些英文字符被称为助记符。用汇编语言编写的程序效率高,占用存储空间小,适时性强,运行速度快,因此用汇编语言能编出最优化的程序。但是,汇编语言可读性差,编程耗时,并且汇编语言与机器语言一样,都离不开具体的机器硬件,对不同的类型的单片机,其汇编语言可能有点差异,因此,缺乏通用性不易移植。例如,比如你在 PICl2CESl8 单片机上用汇编语言编了一个程序,到了STC89C51 单片机上那可就运行不了,因为他们的指令系统是有区别的。C 语言是嵌入
39、式系统中一种通用的程序设计语言,其数据类型及运算符丰富,代码率高,有较好的移植性和丰富的功能函数,并且有良好的程序结构,适用于各种应用程序的设计,是目前嵌入式系统中使用较广的编程语言。唐 山 学 院 毕 业 设 计1451 单片机的 C 语言采用 C51 编译器(简称 C51)。C51 是一种结构化的编程语言,其源程序可读性强、简单易学、便于调试、符合 C 语言的 ANSI 标准,十分适合作为单片机这类微处理的编程语言,并且可与 A51 汇编语言目标代码混合使用。应用 C51 变成具有以下优点:1编程时不用考虑内部寄存器和存储器的分配,从而减少用户编程的工作量;2程序由若干函数组成,具有良好的
40、模块化结构;3有丰富的子程序库可直接引用,极大地提高了编程的速度;4C 语言和汇编语言可以交叉使用本设计总结以上各编程语言的优缺点,决定采用汇编语言和 C51 混合编程的方法。为了使程序结构清晰,便与调试,采用结构式编程方法。本设计程序由主程序、初末位置置换函数、速度控制函数、机械爪控制函数、定时器 T0 子程序、定时器 T1 子程序 6 部分组成。4.1 四自由机械臂轨迹规划在工业生产的中,装配机器人广泛应用于生产线上。生产线上的典型机器人即机械臂,主要是自动完成往复式操作。本设计的机械手臂正是基于此,执行往复式操作的。执行往复式操作的机械手臂在运行之前就在程序中设定好执行轨迹,即事先设定机
41、械臂的末端机械爪位姿和过程位姿。为了保证机械臂末端运动平稳,需要机械臂各个关节保持平稳运动。而为了保证关节平稳运动,机械臂关节转动变量在运动的过程中增量不能出现突变。为了实现机械臂末端按照给定的路径运动,需要对机械臂的各自由度的位姿进行规划。即机械臂控制参数设定,由前文已知舵机的转动范围是 0180,脉冲宽度是 0.5ms2.5ms,对应的占空比参数为 500025000。机械臂在组装后,应先确定各关节的转动范围,舵机一般能够承受 10 秒以内的堵转,在调节舵机时要避免舵机进入堵转状态。在测试初期采用各关节单独测试,在测试其中一个舵机时,其它舵机需要保持断电状态。通过修改舵机测试程序的占空比参
42、数,同时观察相应舵机的实际运行范围。记录舵机运行时角度位置与占空比的对应关系。然后确定机械臂的初始位置。机械臂的初始位置即为机械臂的复位状态,该状态需要机械臂保持一种平衡,且有利于其抓取操作。在机械臂各自由度关节运动范围确定以后,将占空比参数设置为舵机运动范围的中间值。角度与占空比参数的对应关系如表 4.1 所示。机械臂初始参数设定后,保证机械臂可以在相对安全空间内运动,机械臂末端的运动空间如图 4.1 所示。由于受机械臂自身结构限制,该系统中机械唐 山 学 院 毕 业 设 计15臂在 XOY 平面内只能转动 180,末端只能在图 4.1 所示的 1/4 球面内运动,机械臂在 XYZ 空间的最
43、大伸臂长度 20cm。表 4.1 舵机角度与占空比参数的对应关系表位置 A 位置 B 初始位置占空比参数占空比 占空比参数占空比 占空比参数占空比舵机 1 1200 6% 500 2.5% 900 4.5%舵机 2 2000 10% 1400 7% 1700 8.5%舵机 3 1000 5% 1650 8.25% 1300 6.5%舵机 4 2100 4.5% 1500 7.5% 1800 9%唐 山 学 院 毕 业 设 计16xZY位置 A位置BZYX位置 A位置 B唐 山 学 院 毕 业 设 计17图 4.1 机械臂运动空间图4.2 主程序设计主程序是模块化程序中主干,起到协调程序执行的顺
44、序,连接各子程序,传递各子程序间的参数。本设计的主程序主要执行以下 4 部分任务:第一步,在程序启动后完成全局变量的声明,占空比参数数组初始化,定时器 T0、 T1 初始化,将引脚设为强推挽输出,使其能为舵机提供足够大的电流。第二步,开定时器中断,定时器赋初值,开定时器程序真正启动,程序进入循环执行状态。第三步,再循环体内判断定时器中断是否置 1,是,则调用 pwm数组更新函数 vpwm()(舵机调速子程序),否,则等待中断到来。流程图如图 4.2 所示。图 4.2 主流程图4.3 舵机调速程序设计为使机械臂运行平稳,需要对舵机进行速度调节控制,其实质是对舵机控制信号 PWM 占空比的调节。下
45、文将首先介绍 PWM 信号。全区变量声明,占空比参数数组声明,定时器初始化,P 口设为强推挽输出开始Flag_vpwm=1?调用 vpwm()开中断,定时器赋初值Flag_vpwm=0唐 山 学 院 毕 业 设 计184.3.1 舵机 PWM 信号PWM(Pulse-Width Modulation)即脉冲宽度调制信号,具有控制简单、快速和动态响应好等优点,被广泛应用在机器人及航模设计的舵机及直流电机的控制中,其 PWM 格式注意的几个要点:(1)上升沿最少为 0.5mS,为 0.5mS-2.5mS 之间;(2)要求连续供给 PWM 信号,这时表现出来的跟随性能很好、很紧密。通过阅读相关文献结
46、合实验经验,总结出了评价 PWM 信号生成方法合理性的四个原则:(1)PWM 信号周期的适应性(2)占空比的可调整性(3)PWM 信号输出的丰富性(4)PWM 信号输出的同步性其中原则一,PWM 信号周期的适应性指的是 PWM 信号周期能够满足不同应用场合的要求。比如舵机的 PWM 控制信号周期要求是 20ms,而对于直流电机控制来说,PWM 信号的周期一般要小于 0.1ms。只有 PWM 信号周期具有可调性,或者周期恰好为所需要的周期,产生的 PWM 信号才能被应用,因此原则一是对PWM 信号生成方法合理性评价的一个最基本的原则 16。原则二是 PWM 控制核心,因为只有 PWM 控制信号通
47、过实时的改变占空比,才能实现 PWM 信号对平均电压的调整,才能在一些控制系统中实现脉宽调制的控制作用,体现 PWM 控制的意义。原则三要求能够实现多路 PWM 信号的输出,在大多数控制系统中往往需要多路的 PWM 信号协同控制,比如在机器人的控制系统中,通常有几十上百路的舵机要协调运行,那么就需要有相同数量的 PWM 信号进行单独控制。如果不能生成足够的 PWM 信号就不能实现对该机器人的控制,这种生成 PWM 信号的方法也就不算是一种合理的方法 17。原则四是多路 PWM 控制信号的关键,多路 PWM 信号如果不能同步输出,也就失去了多路 PWM 控制信号的意义。尤其对于机械手臂这种同步性
48、要求较高的场合,如果不能实现对多路 PWM 信号的同步输出,就无法实现各个关节运动的协调控制,也就无法完成各种高精度的复杂动作。4.3.2 利用微分插补法实现对多路 PWM 信号的输出(1)微分插补法的原理在舵机的控制中不仅其位置角度的控制至关重要,而且速度的控制也是一个必须考虑的问题。尤其对于像机械臂的控制,其运动平滑性决定了它工作的稳定唐 山 学 院 毕 业 设 计19性,准确性是一个重要的考核指标。这就需要对驱动机械臂关节的舵机进行速度调节控制,舵机速度的控制其实都是让舵机从初始位置到目标的位置不是直接到达,而是划分成很多细微的小过程逐步让他到达。比如说让舵机的初始位置是 0度让他跑到
49、90 度,直接送入 90 度的数据的话由于舵机的响应速度还是比较快的,几乎就一下子跑到 90 度的位置。如果我们在它到达 90 度的过程中给他制造很多缓冲,就是让他从 0 度到 1 度到 2 度 3 度的逐步过渡过到 90 度,那么出现的效果就是舵机以比较慢的速度到达目标位置,这样就达到控速的目的,而每个间距切换的时间加以控制既可以得到我们想要的具体旋转速度,因为划分的过程很多,所以舵机的旋转看上去是一个流畅的速度的旋转 18。这就是微分插补法。微分插补法的中心思想是先微分,将某一过程量进行微分处理分割成若干个(通常越多越好)小过程量,然后进行插补,将小过程量一步一步的叠加起来直至完成整个过程量的插补。从而得到控制过程量增长速度的目的。根据微分插补法的思想设计多路舵机 PWM 速度控制程序。(2)微分插补法生成多路舵机 PWM 速度控制信号的程序实现VPWM( )函数采用微分插补法对舵机进行调速使机械臂能从一个位置平滑稳定的过度到另一个位置。VPWM( )是数组 pwm更新函数,其功能是数据插补,由定时器 T0 控制,使舵机实现平滑的速度控制;另