电动机械手控制系统设计.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流电动机械手控制系统设计.精品文档.引言在中国工业韧带发展中,很多高生产率高精度的机械加工设备从国外引进,比如数控车床和铣床等,还有把几种机床的功能集中在一起的加工中心等。总之这类 CNC机床大大的提高了工作速度,产品的加工精度,降低了工作的劳动强度,所以大受欢迎。但是这类设备引进费用也是相当的昂贵,所以国内很多企业的技术人员在原先的旧机床上进行改进,来达到提高生产率和降低工人的劳动强度,实现工业自动化,这类改进同样也大受欢迎。机械手是一种模仿人体上肢运动的机器,它能按照预定要求输送工种或握持工具进行操作的自动化技术设备,对实现工业生产自动化,推动工业生产的进一步发展起着重要作用。因而具有强大的生命力,受到人们的广泛重视和欢迎。工业机械手可以代替人手的繁重劳动,显著减轻工人的劳动强度,提高劳动生产率和自动化水平。工业生产中经常出现的笨重工件的搬运和长期频繁,单调的操作,如果没有机械手那么工人的劳动强度是很高的,有时候还要用行车员工件,生产速度大大延缓,这种情况采用机械手是很有效的。此外,它能在高温、低温、深水、宇宙、反射性和其他有毒、有污染环境条件上进行操作。更显其优越性,有着广阔的发展前途。工业机械手是近几十年发展起来的一种高科技自动化生产设备。工业机械手的是工业机器人的一个重要分支。它的特点是可通过编程来完成各种预期的作业任务,在构造和性能上兼有人和机器各自的优点,尤其体现了人的智能和适应性。机械手作业的准确性和各种环境中完成作业的能力,在国民经济各领域有着广阔的发展前景。机械手是在机械化,自动化生产过程中发展起来的一种新型装置。在现代生产过程中,机械手被广泛的运用于自动生产线中,机械人的研制和生产已成为高技术邻域内,迅速发殿起来的一门新兴的技术,它更加促进了机械手的发展,使得机械手能更好地实现与机械化和自动化的有机结合。机械手虽然目前还不如人手那样灵活,但它具有能不断重复工作和劳动,不知疲劳,不怕危险,抓举重物的力量比人手力大的特点,因此,机械手已受到许多部门的重视,并越来越广泛地得到了应用在机械工业中,应用机械手的意义可以概括如下:(一)以提高生产过程中的自动化程度应用机械手有利于实现材料的传送、工件的装卸、刀具的更换以及机器的装配等的自动化的程度,从而可以提高劳动生产率和降低生产成本。(二)以改善劳动条件,避免人身事故在高温、高压、低温、低压、有灰尘、噪声、臭味、有放射性或有其他毒性污染以及工作空间狭窄的场合中,用人手直接操作是有危险或根本不可能的,而应用机械手即可部分或全部代替人安全的完成作业,使劳动条件得以改善。在一些简单、重复,特别是较笨重的操作中,以机械手代替人进行工作,可以避免由于操作疲劳或疏忽而造成的人身事故。(三)可以减轻人力,并便于有节奏的生产。综上所述,有效的应用机械手,是发展机械工业的必然趋势。1 任务要求与总体设计方案1.1 设计任务与要求许多娱乐场合设有投币手动抓物机械手。仿照娱乐场合中的手动抓物机械手,设计机械手的控制系统,能够配合机械手的机械结构实现手动抓物。要求:在资料调查和分析的基础上,对系统进行的分析和设计;要求完成如下主要功能:(1)机械手的控制可以用单片机或PLC;(2)通过按键,实现机械手的上升、下降、左移、右移、手爪张开、闭合;(3)可采用上位机,远程控制机械手的上升、下降、左移、右移、手爪张开、闭合。(4)采用电机驱动控制方式。1.2 总体设计方案确定机械手的任务要求,根据任务要求初步拟定机械手的技术参数、运动形式、驱动方案、控制系统方案等。本课题主要涉及到一下三部分内容:第一,机械手的机械结构的设计;第二,使机械手摆动的设计及驱动手臂运动的选择。第三,控制系统的设计。实施方案:(1)机械手的机械结构设计按照模块化的设计方法,将机械手分为底座、大臂、中臂、前臂和手爪四个部分,共四个自由度(不包括爪开关自由度)。(2)机械手摆动的设计机械手根据手臂的动作形态,采用多关节型机械手结构紧凑,定位精度较高,控制灵活范围广,占地面积小,因此本设计采用多关节型机械手。(3)驱动手臂运动的选择 机械手采用电动机构驱动机械手结构简单、控制方便,驱动力较大大等特点。(4)控制系统的设计本毕设采用机械手控制系统使用VB6.0编程软件编制作上位机操作界面,人工手动操作上位机输出控制信号通过RS232串口通信发送给ATmega64单片机,单片机接收到信号后使用内部定时器模拟输出伺服电机的控制脉冲,从而实现自动控制和远程控制机械手的目的。机械手由执行机构、驱动传动系统和控制系统这三部分组成,如图 1-1 所示。图1-1机械手系统组成要实现机械手所期望实现的功能,机械手的各部分之间必然还存在着相互关联、相互影响和相互制约。它们之间的相互关系如图1-2 所示。图1-2 机械手控制系统2 机械结构设计机械结构是机械手的骨架,机械结构的好坏直接影响着机械手的功能。2.1机械手的主体机械设计对于机械手的主体骨架的设计,机械部分底座、大臂、中臂、前臂和手爪。2.2 机械手摆动的设计为实现机器人的末端执行器在空间的位置而提供的3个自由度,可以有不同的运动组合,通常可以将其设计成如下四种形式:表2-1 机械手结构选型表结构形式方案特点优缺点结构简图1直角坐标型作机的手臂具有三个移动关节,其关节轴线按直角坐标配置结构刚度较好,控制系统的设计最为简单,但其占空间较大,且运动轨迹单一2圆柱坐标型操作机的手臂至少有一个移动关节和一个回转关节,其关节轴线按圆柱坐标系配置结构刚度较好,运动所需功率较小,控制难度较小,但运动轨迹简单,使用过程中效率不高3球坐标型操作机的手臂具有两个回转关节和一个移动关节,其轴线按极坐标系配置结构紧凑,但其控制系统的设计有一定难度,且机械手臂的刚度不足,机械结构较为复杂4关节型操作机的手臂类似人的上肢关节动作,具有三个回转关节运动轨迹复杂,结构最为紧凑,但控制系统的设计难度大,机械手臂的刚度差根据本次设计的要求,工件要垂直升降、旋转、水平移动。考虑其复杂程度选择关节型。2.3 机械手爪部设计夹持式手部结构由手指(或手爪)和传力机构所组成。其传力结构形式比较多,如滑槽杠杆式、斜楔杠杆式、齿轮齿条式、弹簧杠杆式等。夹持式是最常见的一种方式,其中常用的有两指式、多指式和双手双指式:按手指夹持工件的部位又可分为内卡式(或内涨式)和外夹式两种:按模仿人手手指的动作,手指可分为一支点回转型,二支点回转型和移动型(或称直进型),其中以二支点回转型为基本型式。当二支点回转型手指的两个回转支点的距离缩小到无穷小时,就变成了一支点回转型手指;同理,当二支点回转型手指的手指长度变成无穷长时,就成为移动型。回转型手指开闭角较小,结构简单,制造容易,应用广泛。移动型应用较少,其结构比较复杂庞大,当移动型手指夹持直径变化的零件时不影响其轴心的位置,能适应不同直径的工件。如图2-1所示为夹持式手部结构。图2-1夹持试机械爪其手指夹紧工件是由舵机中的齿轮带动另一手爪齿轮使手指开闭。手部结构中的齿轮齿条属于传力机构。设计时考虑的几个问题:(一)具有足够的握力(即夹紧力)。在确定手指的握力时,除考虑工件重量外,还应考虑在传送或操作过程中所产生的惯性力和振动,以保证工件不致产生松动或脱落。(二)手指间应具有一定的开闭角。两手指张开与闭合的两个极限位置所夹的角度称为手指的开闭角。手指的开闭角应保证工件能顺利进入或脱开,若夹持不同直径的工件,应按最大直径的工件考虑。(三)具有足够的强度和刚度手指除受到被夹持工件的反作用力外,还受到机械手在运动过程中所产生的惯性力和振动的影响,要求有足够的强度和刚度以防折断或弯曲变形,但应尽量使结构简单紧凑,自重轻,并使手部的中心在手腕的回转轴线上,以使手腕的扭转力矩最小为佳。综合上述考虑,由于机械爪性能要求及加工精度要求都比较高,现有的工具无法完成其制作要求,故决定通过购买获得符合该要求机械爪。2.4 材料与型材选择机械手的制作材料多种多样,因此有多种方案可以选择。方案一:使用及铝合金材料相对于通常使用的钢铁材料,铝有以下的重要特点和优点。基于这些特点和优点,铝及其铝合金在许多领域得到广泛的应用。(1)质量轻。铝的密度约为2.7g/cm,只是钢铁的1/3。铝合金不仅用应用于飞机制造等方面,而且由于当前节约能源的需要,车辆与舟船等常用交通运输工具的轻量化更加突出,铝合金在这方面也得到更加广阔的应用。此外,在土木结构和建筑门窗等方面,铝合金制造的结构也已经被广泛采用。(2)耐腐蚀。铝及铝合金在大气中不会“生锈”,耐大气腐蚀性远优于钢铁。这是由于铝对于空气中的氧具有较大的亲和力,因此,当铝的表面曝露大气中时,其表面很快就能生成一层附着力强、致密的有一定保护下的自然氧化膜。尽管氧化膜的厚度很薄,只有0.010.05um,但这已经赋予铝及铝合金优良的耐大气腐蚀性。特别是铝的阳极氧化处理,由于铝的阳极氧化膜是透明膜,既可以保持铝原有的金属质感,而且又可大幅度的提高金属铝原表面的硬度。耐腐蚀性和耐磨损性,从而大大拓宽铝及铝合金的应用范围。(3)铝容易形成各种合金。铝合金可以满足多方面新的性能要求,尤其可以满足力学性能与腐蚀性能方面的需要。目前已经使用的工业铝合金品种以达400多种,形成8个系列,从延展性最好的低强度純铝1XXX系列到超高强度的7XXX系合金,极限抗拉强度已经高达690MPa。铝合金可以通过热处理进一步强化,其强度甚至可以和优质合结钢媲美。(4)加工成型性好。铝及铝合金的压力加工产品,如板、管、棒、型、线、箔和粉都可以生产,并且其产品都已近得到广泛的工业应用。另外,许多铝的零部件和工艺品还可以通过铸造工艺得到。铝合金还可以进行车、铣、镗、刨等机械加工。(5)热传导性高。铝的热传导性虽次于铜,其导热率相当高,约为铜的50%60%,而单位重量的导热性则优于铜。不论加热还是冷却,铝都是很好的金属介质。为此,在食品工业、化学工业、石油工业和航空工业中,铝材是被广泛采用的热交换器材料。此外,铝是生产金属厨具首选材料。(6)导电性好。铝是两个常用的高电导率金属之一,电导体级别的铝是IACS(国际退火铜标准)的62%,然而铝的密度只有铜的1/3,因此,单位重量的铝却是相同单位重量的铜导电性的两倍。(7)光反射性强。抛光的铝对于无线电波、可见光波,直至红外光波等所有电磁光波都具有极强的反射性。抛光的铝表面对于白光的反射率达到80%以上。(8)无低温脆性。铝的低温拉伸强度比较高,可以用于低温结构材料。(9)耐克辐射性。铝的热中子吸收截面小,仅为0.23x10Pa左右,适合与热中子可反应堆使用。(10)冲击吸收性比较好。铝及铝合金的冲击吸收性好,适于制作汽车的保险杠。(11)非磁性,冲击不产生火花。铝及铝合金是非磁性的,且受冲击时不产生火花。这一性能在某些特殊用途时是非常可贵的特性,由此可作为电器设备的屏蔽材料,或作为易燃易爆的器材、仪表材料等。(12)可焊接。铝及铝合金通过惰性气体电弧焊接后的外观、耐腐蚀性和力学性能都比较好,可以满足焊接结构件的需要。(13)无毒性。铝对于生物体是无毒的。铝的缺点:尽管铝具有上述优点和特点,但是铝也有其本身的缺点和弱点,其中有一些缺点可能就是从优点衍生的。其主要缺点是:(1)铝的硬度比较低,与此同时其耐磨性也比较差。(2)铝在凝固时体积收缩率比较大,大约为6.6%。(3)铝的线膨胀系数比较高。(4)铝的熔点比较低,铝和铝合金的使用温度不可能超过200摄氏度,因此起高温的使用受到限制。(5)铝的弹性模量只有刚的1/3。机械手使用的材料大部分是用于结构,一般应该是金属材料,而且所承载的力度和运动后不应该产生严重的变形和断裂,从力学的角度看即具有足够的强度。因此主要材料选用各种不锈钢管和铝合金管。这两者比较,重量轻,寿命高,因此除了特别讲究强度,刚度以及抗摩擦磨损性的机构,一般更多选用不锈钢管作为结构构件的材料。方案二:使用有机玻璃材料有机玻璃的特性: (1)高度透明性。有机玻璃是目前最优良的高分子透明材料,透光率达到92,比玻璃的透光度高。称为人造小太阳的太阳灯的灯管是石英做的,这是因为石英能完全透过紫外线。普通玻璃只能透过0.6的紫外线,但有机玻璃却能透过73。 (2)机械强度高。有机玻璃的相对分子质量大约为200万,是长链的高分子化合物,而且形成分子的链很柔软,因此,有机玻璃的强度比较高,抗拉伸和抗冲击的能力比普通玻璃高718倍。有一种经过加热和拉伸处理过的有机玻璃,其中的分子链段排列得非常有次序,使材料的韧性有显著提高。用钉子钉进这种有机玻璃,即使钉子穿透了,有机玻璃上也不产生裂纹。这种有机玻璃被子弹击穿后同样不会破成碎片。因此,拉伸处理的有机玻璃可用作防弹玻璃,也用作军用飞机上的座舱盖。(3)重量轻。有机玻璃的密度为1.18kg/dm3,同样大小的材料,其重量只有普通玻璃的一半,金属铝(属于轻金属)的43。(4)易于加工。有机玻璃不但能用车床进行切削,钻床进行钻孔,而且能用丙酮、氯仿等粘结成各种形状的器具,也能用吹塑、注射、挤出等塑料成型的方法加工成大到飞机座舱盖,小到假牙和牙托等形形色色的制品。 有机玻璃(聚甲基丙烯酸甲酯)具有质地坚硬,可加热塑形。绝热绝缘,对X线、MRI检查无影响等优点,在国内外曾一度得到广泛应用。其缺点是力学性能差,主要是脆性大,抗冲击性能差,受到第二次意外打击时,有机玻璃易破碎。以后有学者对有机玻璃进行了改进,在其中加入了增强纤维(短碳纤维),制成了短碳纤维增强聚甲基丙烯酸甲酯。经测试,其抗拉弹性模量(刚性)和抗冲击强度比有机玻璃提高了2倍,硬度高,线膨胀系数常温时相当于有机玻璃在-400的数值。耐介质试验在常温下350h,几乎无明显增重、增容。板材压模复合材料中随机走向的纤维,可阻止裂纹的扩展。具有板材薄、重量轻、有良好的抗冲击能力,不释放毒性物质.综合上述两种方案:(1)由于该机械手为机械模型,机械强度要求并不是很高,有机玻璃的机械强度足以满足该机械手运动强度。(2)从制作难度考虑,有机玻璃受热容易形变,相比铝合金更容易加工制作。(3)从成本考虑,有机玻璃比铝合金便宜很多,相同体积的铝合金比有机玻璃贵510倍。集合以上优缺点故选择方案二。2.5 驱动系统方案的选择一般情况下机械手驱动系统的选择按照动力源分为液压、气压和电动三大类,根据需要,也可以将这三种基本类型组合成复合式的驱动系统。目前广泛采用的驱动系统的比较如下表:表2-2:常用驱动系统特性特性输出功率和使用范围控制性能和安全性结构性能安装和维护要求效率和制造成本气压驱动气压较低,输出功率小,当输出功率增大时,结构尺寸将过大只适用于小型,快速驱动压缩性大,对速度、位置精确控制困难。阻尼效果差。低速不易控制,排气有噪音结构体积较大,结构易于标准化。易实现直接驱动,密封问题不突出安装要求不高,能在恶劣环境种工作,维护方便效率低,(为0.150.2)气源方便,结构简单,成本低液压驱动油压高,可获得较大的输出功率,适用于重型,低速驱动器液体不可压缩,压力、流量易控制,反应灵敏,可无级调速、能实现速度、位置的精确控制,传动平稳,泄漏对环境污染结构较气动要小,易于标准化,易实现直接驱动,密封问题显得重要安装要求高(防泄漏),要配置液压元设备,安装面积大,维护要求较高效率中等为0.30.6,管路结构较复杂,成本高交直流普通电动机适用于抓其重量较大而速度低的中、重型机器人的驱动 输出力较大控制性能差,惯性大,不易精确定位对环境无影响电动机驱动以实现标准化,需减速装置,传动体积较大安装维修方便成本低效率为0.5左右步进、伺服电动机步进电动机输出力较小、伺服电机可大一些适用于运动控制要求严格的中、小型机器人控制性能好,控制灵活性强,可实现速度、位置的精确控制,对环境无影响体积小,需减速装置维修使用较复杂成本较高效率为0.5左右综合考虑以上驱动系统的优缺点以及工作要求,选择伺服电动机驱动系统作为驱动方式。2.6 电机类型选择方案 在日常系统所采用的电机,一般采用直流电机、步进电机、舵机。方案一:使用直流电机直流电机工作原理:直流电动机是使电机的绕组在直流磁场中旋转感应出交流电,经过机械整流,得到直流电。广泛应用于收录机、录像机、影碟机、电动剃须刀、电吹风、电子表、玩具等。直流电机能提供较大力矩,能够轻易驱动机体运动。在极限位置放置限位开关,可控制机械手转动。方案二:使用步进电机 步进电机的工作原理:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可固定角度转动,不需限位开关便可控制机械手转动到指定位置。方案三:使用舵机图2-2舵机 图2-3舵机接线图图2-4舵机结构图舵机工作原理:舵机主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由接收机发出讯号给舵机,经由电路板上的 IC判断转动方向,再驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回讯号,判断是否已经到达定位。舵机可在0°180°精确转动,能够提供较大力矩并且拥有保持位置的功能,反应灵敏,可很好的完成机械手运动要求。 根据设计要求,该机械手的电机需满足:(1) 电机能够提供比较大的力矩来抓取物体。(2) 电机能够做到精确角度定位,使机械爪准确移动抓取物体。(3) 电机能够在较大力矩下保持原位置能力。综上要求,直流电机虽然能提供很大力矩,但不好精确定位并保持原位置。步进电机能够转动较精确角度,但不能提供大力矩和保持原来位置。舵机可在0°180°精确转动,且能够提供较大力矩并且拥有保持位置的功能。故选择方案三。按上述设计考虑,完成机械手结构的制作,如图2-5:图2-5机械手结构3 机械手硬件电路设计根据任务要求,机械手系统电路设计可主要分为三个模块:单片机主控模块、矩阵按键模块、串口通讯模块。图3-1为硬件电路设计方框图。图3-2 单片机整体模块设计原理图。图3-1硬件电路设计方框图图3-2 单片机整体模块设计原理图3.1 单片机模块3.1.1单片机方案选择单片机体积小巧,内部包括中央处理器,数据存储器,程序存储器及输入输出设备。对于需要灵活机动,精度要求不高,有可扩展性及程序可擦写和简单成熟的编程平台等要求,单片机不失为最合适的选择。现有两种单片机AT89S51和AVR可供选择。方案一:采用常见的 89S51作为米粉机点餐系统的控制核心。传统的51 单片机具有价格低廉,输入输出接口多,使用简单等特点,容易开发。方案二:采用AVR单片机,AVR单片机在一个芯片内将增强性能的RISC 8位CPU与可下载的FLASH相结合使其成为适合于许多要求。具有高度灵活性的嵌入式高效微控制器。从机械手的功能实现来说,单片机主要能够多路模拟输出精确的PWM功能上,实现上位机串口通讯,S51单片机与AVR单片机相比,AVR单片机拥有内置多路的PWM输出而且AVR单片机具有更好的稳定性和程序处理效率,实现起来也比较方便,因此采用方案二的AVR单片机。3.1.2单片机主控电路设计ATmega64是基于增强的AVR RISC机构的低功耗8位CMOS微控制器。由于其先进的指令执行时间,ATmega64的数据吞吐率高达1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。主控电路的设计是以ATmega64单片机和RS232通信模块为核心,外接矩阵按键模块和电源等硬件电路。ATmega64单片机工作在8MHZ的频率下,采用+5V的直流电源供电。图3-3为单片机最小系统设计图。图3-3 ATmega64处理器在单片机系统模块中,还包括有外部晶振电路、复位电路。3.1.3AVR晶振电路的设计与传统的51单片机相比,AVR单片机内置RC振荡电路。出厂时,未进行时钟源设置的AVR,其时钟源使用的是内部RC振荡,一般情况使用的是1M频率。通过对熔丝位的设置,可以设置MCU的内部RC振荡频率。例如:4M、8M等。不过,内置RC振荡,在一致性方面存在差异,它因生产的批次有所差异,亦与温度等因素有较大的相关性。所以,在一些对时钟要求较高的场合,如:精确定时,RS232通信等,这些场合,建议使用外部的晶振线路。图3-4为外部晶振电路:图3-4晶振电路3.1.4AVR复位电路的设计AVR单片机内置复位电路,并且在熔丝位里,可以控制复位时间,所以,AVR单片机可以不设外部上电复位电路,依然可以正常复位,稳定工作。 若是系统需要设置按键复位电路,那么注意,AVR单片机是低电平复位,图3-5为设计的按键复位电路: 图3-5复位电路3.2 矩阵按键模块单片机通过动态扫描识别矩阵按键,可大大减少单片机IO口的使用。使用按键时注意由於这种按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,為了避免让8051误判為多次输入同一按键,我们必须在侦测到有按键被按下,就延迟一小段时间,使键盘跳过抖动状态以达稳定状态,再去判读所按下的键,就可以让键盘的输入稳定。图3-6为矩阵按键电路图:图3-6矩阵按键图3-7矩阵键盘3.3串口通信模块RS-232C是由美国电子工业协会(EIA)正式公布的,在异步串行通信中应用最广泛的标准总线。它规定连接电缆和机械、电气特性、信号功能及传送过程。现在,计算机上的串行通信端口(RS-232)是标准配置端口,已经得到广泛应用。图3-7为串口通信模块,图3-7 RS232串口通信4 软件系统设计软件编程既可以用汇编语言,又可采用C语言。在这套系统制作中单片机编程采用的是C语言编程。C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言有功能丰富的库函数、运算速度快、编译效率高、有良好的可移植性,而且可以直接实现对系统硬件的控制。用C语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。软件部分是用来配合硬件电路,指挥控制整个系统的动作,以实现设计预定功能。此系统在运行中,其主要由两部分功能组成:一部分是PC上位机操作界面通过人工手动操作鼠标点击或键盘按键信息收集控制信号,并将信号通过串口通信发送给单片机。另一部分是单片机接受上位机信号或接受外部矩阵按键信号后对机械结构的运动的控制。4.1 上位机程序设计根据设计的电路要求,图4-1为 PC上位机操作界面的程序框图,图4-1上位机操作界面框图根据流程图的流程编写上位机操作界面,打开VB6.0创建主窗体frmmain,创建串口通信Mscomm控件及添加按键控件。一般用VB开发串行通信程序有两种方法:一是利用Windows的通信API函数;另一种是采用VB标准控件Mscomm来实现。利用API编写串口通信程序较为复杂,需要掌握大量通信知识,其优点是可实现的功能更丰富、应用面更广泛,更适合于编写较为复杂的低层次通信程序。在本毕设中不需太多串口功能,故不使用该方法。采用Mscomm控件实现串口通信时,首先添加一Mscomm控件到窗体中,该控件一般不在通用工具窗口中,而是需通过菜单项"工程(P)部件(O)"进入选择窗口,在控件tab页中选取MicrosoftCommControl5.0,此时工具窗口中出现Mscomm图标,即可被使用。以下程序为VB6.0打开串口程序:Private Sub cmd打开串口_Click() MSComm.CommPort = 4 '打开COMM4口 If MSComm.PortOpen = False Then MSComm.Settings = "9600,n,8,1" '9600波特率,无校验,8位数据位,1位停止位 MSComm.PortOpen = True '打开串口 End If MSComm.InBufferCount = 0 '清除接收缓冲区 End Sub在主窗体添加键盘按键触发事件及鼠标按下放开事件,检测按键及鼠标按键。以下是在键盘触发事件中检测按键的程序:Private Sub Form_KeyPress(KeyAscii As Integer)If KeyAscii = Asc("a") Then Call cmd1_Click '按 “a”键,按键1触发事件If KeyAscii = Asc("d") Then Call cmd2_Click '按 “d”键,按键1触发事件If KeyAscii = Asc("u") Then Call cmd3_Click '按 “u”键,按键1触发事件If KeyAscii = Asc("j") Then Call cmd4_Click '按 “j”键,按键1触发事件If KeyAscii = Asc("i") Then Call cmd5_Click '按 “i”键,按键1触发事件If KeyAscii = Asc("k") Then Call cmd6_Click '按 “k”键,按键1触发事件If KeyAscii = Asc("o") Then Call cmd7_Click '按 “o”键,按键1触发事件If KeyAscii = Asc("l") Then Call cmd8_Click '按 “l”键,按键1触发事件If KeyAscii = Asc("w") Then Call cmd9_Click '按 “w”键,按键1触发事件If KeyAscii = Asc("s") Then Call cmd10_Click '按 “s”键,按键1触发事件End Sub根据检测到的按键信号发送机械手控制信号到串口数据发送区。图4-2为程序框图:图4-2程序框图在编写的上位机操作界面添加编组框及退出键完善操作界面,使界面更友好。(上位机总程序详见附录一)。图4-3为完成后的操作界面:图4-3上位机操作界面4.2 单片机总程序设计 根据设计的的要求,进行AVR单片机C语言编程,编程思路方框图如图4-4。(单片机程序详见附录二)开始初始化检测矩阵按键按下串口中断判断键值发送指令接收数据输出控制信号图4-4单片机程序框图使用WINAVR编程软件进行编程。创建工程进入编程,首先调用头文件:#include <avr/io.h> #include <util/delay.h>#include <avr/interrupt.h>分别为单片机引脚定义头文件、延迟头文件、中断函数头文件。这三个头文件在一般编程中常常用到,接着将IO口初始化和串口初始化。4.2.1串口程序设计ATmega64单片机拥有2个串口中断函数,分别为串口中断0(Usart0)和串口中断1(Usart1)本次毕设使用串口中断1。串口中断1程序初始化如下:void Usart_Init()UCSR1A = 0X00;UCSR1C &=(1<<UMSEL1); /异步通信UCSR1C |= (1 << UCSZ11) | (1 << UCSZ10); /数据格式8,N,1 /UCSRC寄存器与UBRRH寄存器共用相同的I/O地址,写 UCSRC 时, URSEL 应设置为 1。UBRR1L = (fosc / BAUD / 16 - 1) % 256; /波特率设置UBRR1H = (fosc / BAUD / 16 - 1) / 256;UCSR1B |= (1 << RXCIE1) | (1 << RXEN1) | (1 << TXEN1); /发送使能串口程序还包括串口接收中断函数、串口字节发送函数等。(详见附录二单片机程序)4.2.2舵机控制程序设计舵机主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由接收机发出讯号给舵机,经由电路板上的 IC判断转动方向,再驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回讯号,判断是否已经到达定位。 舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。工作时,控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。 控制脉冲固定周期为20ms,当送出以下正脉冲宽度时,可以得到不同的控制结果:1、正脉冲宽度为 0.5ms 时,舵机会反转(逆时针)。 2、正脉冲宽度为 2.5ms 时,舵机会正转(顺时针)。 3、正脉冲宽度为 1.5ms 时,舵机会回到中点。如图4-5:图4-5 舵机输出转角与输入信号脉冲宽度的关系本毕设使用单片机计数/定时器0产生模拟PMW信号来控制舵机转动。由于使用外部晶振为8MHz,便于精确计算定时时间,采用8分频,定时50计数次后产生中断。定时初值设置TCNT0 = 0xce,定时时间 = (256-206)/8M*8=50us。每产生400次中断后便可生成20ms的PWM舵机控制信号。以下为定时器0的初始设置:void init_devices(void) /初始配置/T/C0定时中断设置 cli(); /禁止所有中断TIMSK |= (1 << TOIE0); /T/C0溢出中断允许TCCR0 |= (1 << CS01); / T/C0工作于普通模式8分频TCNT0 = 0xce; /定时初值设置,定时时间 = (256-206)/8M*8=50usCounter50us = 0; / 500us计时变量清零 sei(); /使能全局中断 5 系统调试 在硬件和软件都完成后,需要对硬件和软件分别调试。只有当硬件中的各个模块工作测试稳定好后,才能进行系统总体调试。这里将调试的过程及在调试的过程中所遇到的问题提出来进行讨论,以便能够进一步的掌握设计工作的要领,积累经验。5.1 机械系统总装调试在每个机械模块都加工完成后,就把每个模块安装在主体骨架的相应位置,把电机接上相应的电源,调试电机带动机械运动的效果,对不到位之处进行修改,从而确定电机装配位置,和所提供电源电压的大小,使系统运行达到设计效果。对模块的机械系统调试,是以小体配合大体来进行调试,已修改小尺寸为主,以最简单的修改方式来解决一些装配上的问题。5.2 硬件调试硬件调试主要是针对电路板调试,检测它们的工作状态是否到达电路设计要求,也是检测电路板功能的实现情况。5.2.1单片机电路板的调试首先通过下载口写入一个程序验证板子的基本功能,可使一些IO管脚输出不同高低电平,再用万用表测量电压来判断电路好坏,由于本毕设电路的单片机PA口有发光二极管,可使PA口输出流水灯,便于直观的观察电路情况,如下为测试程序:#include <avr/io.h> /io端口寄存器配置文件,必须包含#include <util/delay.h> /GCC中的延时函数头文件int main(void) /GCC中main文件必须为返回整形值的函数,没有参数PORTA = 0X00; /PORTB输出低电平,使LED熄灭DDRA = 0XFF; /配置端口PB全部为输出口while(1)unsigned char Flow_LED,Delay500ms; /定义流水灯循环次数以及延时时间变量for(Flow_LED = 0;Flow_LED <= 7;Flow_LED+) /流水灯从0-7总共循环8次PORTA = (1 << Flow_LED); /每次循环中点亮一个LEDfor(Delay500ms = 0;Delay500ms < 5;Delay500ms+) /延时500ms_delay_ms(100); /delay.h中的延时1ms函数然后拔掉下载线,以5V的电压给单片机板供电,此时看看板子的工作状态,如果运行流水灯状态则板子调试成功,可以写入所需的程序;反之要检测板子的电路原理图和电路上的焊接点,从而找出错误并采取相应的措施修改。5.2.2RS232串口的调试打开串口调试助手软件,然后烧入接收到数据并发送接收数据的串口程序给单片机,给电路提供5V的芯片工作电压,打开串口调试助手并发送数据,如果有信号返回则串口电路成功;反之要检测反之要检测板子的电路原理图和电路上的焊接点,是否有无接反,从而找出错误并采取相应的措施修改。5.3 软件调试5.3.1上位机程序调试VB操作界面编程中,串口控件是难点,编好程序后可将串口连接线2和3脚短接,可不用外部硬件便可以进行数据发送接收调试。5.3.2单片机程序调试单片机控制程序是采用C语言编程,编程所采用的软件是Keil 编程软件。关于单片机C语言软件调试,在语句中出现的语法错误,该软件会提示出来,以便于更正。因此,软件调试主要的工作是检查头文件是否正确,是否与单片机的端口地址相匹配。其次,就是检查初始化程序的正确性。然后就是根据软件实现步骤逐个检查程序的可行性,以及程序的嵌套性是否都能达到设计的要求。单片机部分调试中的难点是舵机控制部分。PWM模拟信号判断输出需在每次定时中断期间完成,若定时中断时间过短,则在下一个中断来临时程序还在运行判断,则会丢失中断;如果中断时间过长,则PWM模拟信号输出粗糙,不能精确控制舵机转动,更有可能会出现舵机抖动的情况。5.4 最终