简易自动组装机器人的设计.doc

简易自动组装机器人的设计

收藏

资源目录
跳过导航链接。
压缩包内文档预览:(预览前20页/共65页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:139485284    类型:共享资源    大小:5.66MB    格式:ZIP    上传时间:2021-08-02 上传人:qq77****057 IP属地:江苏
28
积分
关 键 词:
简易 自动 组装 机器人 设计
资源描述:
简易自动组装机器人的设计,简易,自动,组装,机器人,设计
内容简介:
湖南农业大学东方科技学院湖南农业大学东方科技学院全日制普通本科生毕业设计全日制普通本科生毕业设计简易自动组装机器人的设计简易自动组装机器人的设计DESIGN OF SIMPLE AUTOMATIC ASSEMBLY ROBOT学生姓名:学生姓名: 陈昱名陈昱名学学 号:号: 200741914404200741914404年级专业及班级:年级专业及班级: 20072007 级机械设计制造及其自动级机械设计制造及其自动化化(4)(4)班班指导老师及职称:指导老师及职称: 康江康江 副教授副教授湖南长沙提交日期:2011 年 5 月湖南农业大学东方科技学院全日制普通本科生毕业设计诚信声明本人郑重声明:所呈交的本科毕业设计是本人在指导老师的指导下,进行研究工作所取得的成果,成果不存在知识产权争议。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体在文中均作了明确的说明并表示了谢意。本人完全意识到本声明的法律结果由本人承担。 毕业设计作者签名: 年 月 日目 录摘 要 1关键词 11 前言 21.1 2011 年亚太机器人大赛比赛主题与规则22 机器人创意设计与方案 32.1 机器人一般组成 32.2 机器人设计原则 42.3 比赛策略42.4 研制概要 43 机器人机械设计 53.1 轮子和底盘的选择与设计 53.2 升降机构的设计 73.3 夹取机构设计 84 机器人电路硬件选择 94.1 CPU 的选择94.2 机器人主控制板结构及说明124.2.1 LPC2103 电源模块124.2.2 最小系统 134.2.3 人机交互界面 134.2.4 主控制板实物图 184.3 电机伺服控制 194.4 编码盘采样 244.5 光电传感器 255 主控制板程序设计 275.1 ARM 主程序流程图275.2 PWM 的产生295.2.1 软件生成 PWM295.2.2 硬件生成 PWM 305.3 中文液晶显示 12864 程序设计336 系统的调试 397 总 结 39参考文献 39致 谢 40附录 411简易自动组装机器人的设计简易自动组装机器人的设计学 生:陈昱名指导老师:康 江(湖南农业大学东方科技学院,长沙 410128)摘 要:随着国内外机器人竞赛热潮的兴起,大学生亲自动手制作机器人已成为参加机器人大赛的主要方式。本人作为湖南农业大学东方科技学院 2011 年亚太大学生机器人大赛的参赛队员,参与了机器人的设计和制作整个过程,在创新设计能力、动手能力和培养团队合作精神等方面都得到了提高。而本次设计的简易自动组装机器人是一台自动化程度较高的机器人,这个机器人由行走模块、主控模块和机械手臂组成。需要完成一定难度的“水灯”组装工作并将组装好的水灯放入“小河”中(题目源于 2011 年亚太大学生机器人大赛) 。这对机器人的竞争力、灵活性、准确性有较高要求。机器人的控制系统采用单片机或 ARM 作底层控制模块,充分利用单片机高处理能力。机器人的机械结构采用铝型材制作,利用铝型材轻便加工方便的优点。机器人的主程序采用 C 语言编写。关键词:机器人;LPC2103;ATMEGA128;全向轮;组装 The design of simple automatic assembly robotStudent:ChenYumingTutor:KangJiang(Orient Science&Technology College of Hunan Agricultural University, Changsha 410128, China)Abstract: With the rise of domestic and international robot competition boom, hands-on production robot made by college students has become the main way in robot contest. As a student of orient technological institute, Hunan agricultural university, and a player of Asia-pacific college students robot contest, 2011, I participated in the entire process of design and manufacture of the robot, our ability in innovation and creation, and the spirit of cultivating teamwork have been improved in all aspects. The design of simple automatic assembly robot is a kind of higher automatization which composed by walking module, control module and mechanical arms modules. Its a little difficult to complete the consistent of “water lanterns” and put them in the “small river” properly. (The subject comes from ABS Asia-Pacific Robot Contest) That requires higher standard in competitiveness, flexibility and accuracy in robot. The robot control system adopts single-chip microcomputer or ARM as bottom control module; make full use of single-chip microcomputer high processing ability. Robot mechanical structure was made of aluminum section that possessing the advantage in deft processing. The main program robot uses is C language.Key words: Robot;LPC2103; ATMEGA128; Assembly;Omni-wheel21 前言机器人涉及多学科交叉综合;人工智能、机器人技术、通信技术、传感器技术、信息及编程技术、计算机学、材料学、电子技术、传动技术、接口技术、电机拖动学、精密机械技术、自动控制理论、伺服传动技术等诸多领域的技术集成。因此难度高、技术综合性极强,能充分锻炼参与者多学科综合及设计能力和团队协作精神。2011年全国大学生机器人大赛机器人主要任务是由手动机器人将“水灯”的各个部件运往普通区,再由自动机器人拿取水灯的各部件完成组装并放入“小河”中,点上“烛火”完成水灯制作(先完成者胜利) 。比赛结束。在这种互相干扰不大、主要比拼速度及精度的竞赛中,制作的机器人越稳定,越高速,就越有可能取得比赛的胜利。本人参与设计的简易自动组装机器人就是参加该项比赛的机器人之一。1.1 2011 年亚太机器人大赛比赛主题与规则Robocon2011 竞赛规则竞赛规则每个参与比赛的代表队上场的机器人不超过三个;包括一个手动机器人和一个(或两个自动机器人) 。手动机器人必须完成拿起 3 敬香盆的首要任务、并放置在普通区。在此之后,该手动机器人将带来一个基座放在组装点位置。该手动机器人将收集普通区的三柱香,用于后面的水灯组装。 图 1 比赛道具-(组装完成的河灯)Fig.1 Competition Props - (the assembled lanterns)自动机器人将收集水灯花瓣和花,把它们摆放在准备点。机器人会自动组装一水灯和一花花瓣在位于组装点族的基座上。在完成这项任务, 手动机器人将三炷香放入水灯进行装饰。自动机器人将携带完成装配的水灯放到河面上。机器人任何部分不3能接触河面。 最后,只有一个自动机器人将拖放顶部烛光火焰完成了流域地表水灯漂浮蜡烛。第一队点亮蜡烛灯火焰成功就是本场比赛的冠军。这种类型被称为获奖 “水灯节” 。 比赛场地:比赛场地:图 2 比赛场地Fig.2 Venues2 机器人创意设计与方案2.1 机器人一般组成机器人一般由执行机构、驱动装置、检测装置和控制系统和复杂机械等组成。 执行机构即机器人本体,其臂部一般采用空间开链连杆机构,其中的运动副(转动副或移动副)常称为关节,关节个数通常即为机器人的自由度数。根据关节配置型式和运动坐标形式的不同,机器人执行机构可分为直角坐标式、圆柱坐标式、极坐标式和关节坐标式等类型。 驱动装置是驱使执行机构运动的机构,按照控制系统发出的指令信号,借助于动力元件使机器人进行动作。它输入的是电信号,输出的是线、角位移量。机器人使用4的驱动装置主要是电力驱动装置,如步进电机、伺服电机等,此外也有采用液压、气动等驱动装置。 检测装置的作用是实时检测机器人的运动及工作情况,根据需要反馈给控制系统,与设定信息进行比较后,对执行机构进行调整,以保证机器人的动作符合预定的要求。控制系统有两种方式。一种是集中式控制,即机器人的全部控制由一台微型计算机完成。另一种是分散式控制,即采用多台微机来分担机器人的控制,如当采用上、下两级微机共同完成机器人的控制时,主机常用于负责系统的管理、通讯、运动学和动力学计算,并向下级微机发送指令信息;作为下级从机,各关节分别对应一个CPU,进行插补运算和伺服控制处理,实现给定的运动,并向主机反馈信息。2.2 本次机器人设计原则对于此次比赛的机器人来说,主要考验的是机器人的行走路线、机器人运行的稳定性、快速性、准确性以及可操作性。通过总结往届的经验,小组制定了如下机器人设计原则。1、机器人必须与大赛的主题相吻合,创意独到,在遵循规则的前提下能巧妙地合理地利用规则。2、机器人必须具有较高的速度(包括加速度),比赛中谁的速度快,谁就能在更短的时间内完成组装搬运工作,抢得比赛的先机,因此小组制定了速战速决的战术。3、机器人必须稳、准。指机器人运动的机动性、稳定性和组装水灯的准确性。速度只有与机动性、灵巧性和准确性结合才能相得益彰。才能在竞争激烈,赛况瞬息万变的比赛中获得胜利。4、机器人应具有高智能。目前大部分自动机器人尚处于预编程的水平上,无法达到高要求的定位标准。如果机器人的智能水平能够有所提高,能够正确的处理瞬息万变的赛场信提高定位能力,那么就能更快更好的完成组装和搬运。5、机器人代表队的配合默契程度。指自动机器人、手控机器人的动态配合要好,因为比赛不是比拼单台机器人的功能。因此,小组特别强调机器人团队之间的协同作战。2.3 比赛策略在比赛一开始机器人就以最短路线运动到组装区域,并利用编码盘导引调整行动误差保证最后准确的定位在组装区中心位置,然后机器人转向去抓取待组装的水灯部5件进行组装,完成组装后将组装好的水灯夹取放入小河中。 2.4 研制概要根据大赛主题以及规则,小组经过了多次集体开会讨论,初步确定了控制系统的设计方案。1. 手动机器人任务:将3敬香盆放置在普通区,然后将带来一个基座和蜡烛装饰放在组装点族位置,并且该手动机器人将收集普通区的蜡烛,再次用于在水灯大会。2. 自动机器人:将收集水灯花瓣和花,并把它们摆放在准备点。3. 自动组装机器人:将会自动堆叠(组装)一水灯和一花瓣在位于组装点族的蜡烛基座上,然后将组装好的水灯放入小河中。3 自动组装机器人机械设计3.1 轮子和底盘的选择与设计为了使机器人能够快速的定位就需要有足够的灵活性,在使用全向轮作为动力轮的时候我们就必须考虑底盘形状的问题。底盘大体可分为三角形底盘和四边形底盘它们的功能特性也有很大差别。1. 四边形底盘:动力轮分布在底盘的四个方向两两同轴且相互垂直,轮心到 P 底盘重心 O 的距离都等于 a 如下图所示,假设每个轮子与地面的摩擦力分别为f1、f2、f3、f4,按照力学公式推导如下:图 3 四边形底盘分析Fig.3 Chassis Of Quadrilateral6Fx = f1 + f3Fy = f2 + f4Mo = (f1 * a) + (f2 * a) + (f3 * a) + (f14 * a)(1)当 f1 = f3;f1 与 f3 方向相同 f2 = f4 = 0 此时机器人向 X 方向运动(2)当 f2 = f4;f2 与 f4 方向相同 f1 = f2 = 0 此时机器人向 Y 方向运动(3)f1 = f2 = f3 = f4;f1 与 f3 方向相反 f2 与 f4 方向相反时此时机器人原地旋转(4)f1 = f3 = F1,f2 = f4 = F2;F1 方向与 F2 相反 此时机器人向 F1 与 F2 的合力方向移动。2. 三角形底盘:三角形底盘为等边三角形,动力轮分布在三条垂直平分轴线上,且到重心距离相等如下图所示。假设每个轮子能提供的反向摩擦力分别为 f1、f2、f3,按照力学公式推导如下:图 4 三角型底盘分析Fig.4 Analysis Of Triangular ChassisFy = f2*cos30+ f3*cos30Fx = f3*sin30+ f2*sin30+f17Mo = (f1 * a) + (f2 * a) + (f3 * a)(1) 当 f3 = f2;f3 和 f2 的方向如图示方向且 f1 = 0 时机器人向 Y 方向运动(2) 当 f1 = 2f2 = 2*f3;f2 与 f3 方向如图所示;或 f3 = f2 = 0 此时机器人向 x 方向运动(3) f1 = f2 = f3;f3 方向与图示相反 f1 和 f2 方向与图示一致时 此时机器人原地旋转(4) 此时如果依照四边形底盘第 4 种情况分析不能得到,能产生一个朝向任意方向的合力 但无法使 Mo = 0 这样机器人就会走出一个弧线。当合力方向在大约 35时Mo = 0,也就是三角形底盘只能朝与水平线相差 35的斜线方向直线移动综上分析两种底盘都能实现平移和走某一方向斜线均可以满足设计需求。但是两者均有利弊: 三角地盘的优势是:设计简便 能保证 3 个轮子在同一平面内,能灵活转向。1弊端是:只有 35角度斜线不能朝向任意角度平移。 四边形底盘的优势是:可以向任意方向平移。弊端是:由于 4 点确定一平面2属于过定位很难保证平面度。 由于比赛要求我们需要上到一个高台,四边形底盘由于平面度问题无法做到这一点,而且三角形底盘可以通过软件程序的补偿算法实现很好的平移效果,所以我选择三角形底盘。3.2 升降机构的设计 升降机构可以选择丝杆、导轨、滑块、直线滑轨式和直线轴承式等机构,并且小组也同时讨论了这几种机构的设计方案,但为了满足机器人比赛的要求,必须稳定、可靠、速度快、动作准确、方便控制等特点。在指导教师的组织下,我们小组内部进行了多次选择和分析:1. 采用直线导轨式升降:用于直线往复运动场合,拥有比直线轴承更高的额定负载, 同时可以承担一定的扭矩,可在高负载的情况下实现高精度的直线运动. 2. 采用直线轴承式升降:是一种以低成本生产的直线运动系统,用于无限行程与圆柱轴配合使用。由于承载球与轴呈点接触,故使用载荷小。钢球以极小的摩擦阻力旋转,从而能获得高精度的平稳运动。直线轴承是与淬火直线传动轴配合使用。作无限直线运动的系统。负荷滚珠和淬火传动轴因为是点接触,容许载荷较小,但直线运动时,摩擦阻力最小,精度高,运动快捷。 3. 采用同步带传输动力:同步带是以钢丝绳或玻璃纤维为强力层,外覆以聚氨酯或氯丁橡胶的环形带,带的内周制成齿状,使其与齿形带轮啮合。同步带传动时,传8动比准确,对轴作用力小,结构紧凑,耐油,耐磨性好,抗老化性能好,对于要求同步的传动,也可用于低速传动。同步带传动是由一根内周表面设有等间距齿形的环行带及具有相应吻合的轮所组成。它综合了带传动、链传动和齿轮传动各自的优点。转动时,通过带齿与轮的齿槽相啮合来传递动力。 传输的同步带传动具有准确的传动比,无滑差,可获得恒定的速比,传动平稳,能吸振,噪音小,传动比范围大。传动效率高,结构紧凑,适宜于多轴传动,不需润滑,无污染,因此可在不允许有污染和工作环境较为恶劣的场所下正常工作。4. 丝杆传输动力:丝杠是将回转运动转化为直线运动,或将直线运动转化为回转运动的一种传动结构。典型的丝杠由螺杆、螺母和滚珠组成。它的功能是将旋转运动转化成直线运动,这是滚珠螺丝的进一步延伸和发展,这项发展的重要意义就是将轴承从滚动动作变成滑动动作。由于具有很小的摩擦阻力,丝杠被广泛应用于各种工业设备和精密仪器。综上分析几种升降机构都可以实现任务要求,进行就效率和质量优劣分析可知道: 直线轴承式的优点:简单,成本低廉。弊端:需要圆形的导轨,导轨过细则1受力太小,过粗则较笨重。 直线滑轨式的优点:精度高,可自制。弊端:价格昂贵,重量较重。2 丝杆传动的优点:简单,成本低廉,传动力大。弊端:传动缓慢,需要软件3算法提高精度。 同步带传动的优点:精度高,有瞬时传动比质量轻。弊端:价格昂贵,需要4定制。由于比赛要求我们能在较短的时间内完成升降动作,升降精度要求高,且对机器人的重量有着较高要求,所以我选择成本不高的自制的直线滑轨式和同步带传动的方式来实现升降动作。3.3 夹取机构特性夹取机构需要保持夹取的力度、平稳性和效率性可以选择连杆、铰链、凸轮等机构但必须要满足比赛需要拥有夹取动作快、能锁死、重量轻、易操作等优点,下面我对个机构进行选取分析:1、连杆机构:连杆机构构件运动形式多样,如可实现转动、摆动、移动和平面或空间复杂运动,从而可用于实现已知运动规律和已知轨迹。此外,低副面接触的结构使连杆机构具有以下一些优点:运动副单位面积所受压力较小,且面接触便于润滑,故磨损减小;制造方便,易获得较高的精度;两构件之间的接触是靠本身的几何封闭9来维系的,它不象凸轮机构有时需利用弹簧等力封闭来保持接触。平面连杆机构的缺点是:一般情况下,只能近似实现给定的运动规律或运动轨迹,且设计较为复杂;当给定的运动要求较多或较复杂时,需要的构件数和运动副数往往较多,这样就使机构结构复杂,工作效率降低,不仅发生自锁的可能性增加,而且机构运动规律对制造、安装误差的敏感性增加;机构中作复杂运动和作往复运动的构件所产生的惯性力难以平衡,在高速时将引起较大的振动和动载荷,故连杆机构常用于速度较低的场合。2、铰链:铰链又称合页是用来连接两个固体,并允许两者之间做转动的机械装置。铰链可能由可移动的组件构成,或者由可折叠的材料构成,结构简单。3、凸轮机构一般是由凸轮,从动件和机架三个构件组成的高副机构。凸轮通常作连续等速转动,从动件根据使用要求设计使它获得一定规律的运动凸轮机构能实现复杂的运动要求,通常由两部份动件组成,即凸轮与从动子,两者均固定于座架上。凸轮装置是相当多变化的,故几乎所有任意动作均可经由此一机构产生。 凸轮可以定义为一个具有曲面或曲槽之机件,利用其摆动或回转,可以使另一组件从动子提供预先设定的运动。从动子之路径大部限制在一个滑槽内,以获得往覆运动。在其回复的行程中,有时依靠其本身之重量,但有些机构为获得确切的动作,常以弹簧作为回复之力,有些则利用导槽,使其在特定的路径上运动。综上分析三种家去机构都能实现夹取、平稳性的设计需求。但是三者均有利弊: 连杆机构的优点:制造方便、磨损较小、易自锁。弊端:设计复杂,精度不1高、工作效率不高。 铰链的优点:结构简单。弊端:无法自锁。2 凸轮机构的优点:实现复杂的运动要求、紧凑、设计方便。弊端:质量过大。3由于比赛要求我们的质量轻则不能选择凸轮机构,就平稳性和效率性来说其它两机构都可以完成比赛任务,但就设计简洁来说连杆机构拥有更大的优势,而铰链无法自锁的弊端,很难克服,即使使用电机的自锁来实现自锁效果也不太好,所以选择连杆机构和舵机的组合来实现抓取。4 机器人电路硬件选择4.1 CPU 选择1、ATMEGA128 为基于 AVR RISC 结构的 8 位低功耗 CMOS 微处理器。产品特点:高性能、低功耗的 8 位微处理器先进的 RISC 结构10133 条指令 大多数可以在一个时钟周期内完成32 X 8 通用工作寄存器 + 外设控制寄存器 全静态工作工作于 16 MHZ 时性能高达 16 MIPS只需两个时钟周期的硬件乘法器非易失性的程序和数据存储器128K 字节的系统内可编程 FLASH寿命: 10,000 次写/ 擦除周期具有独立锁定位、可选择的启动代码区通过片内的启动程序实现系统内编程真正的读- 修改- 写操作4K 字节的 EEPROM寿命: 100,000 次写/ 擦除周期4K 字节的内部 SRAM多达 64K 字节的优化的外部存储器空间可以对锁定位进行编程以实现软件加密可以通过 SPI 实现系统内编程JTAG 接口( 与 IEEE 1149.1 标准兼容)遵循 JTAG 标准的边界扫描功能支持扩展的片内调试通过 JTAG 接口实现对 FLASH, EEPROM, 熔丝位和锁定位的编程外设特点两个具有独立的预分频器和比较器功能的 8 位定时器/ 计数器两个具有预分频器、比较功能和捕捉功能的 16 位定时器/ 计数器具有独立预分频器的实时时钟计数器两路 8 位 PWM6 路分辨率可编程(2 到 16 位)的 PWM输出比较调制器8 路 10 位 ADC8 个单端通道7 个差分通道112 个具有可编程增益(1X, 10X, 或 200X)的差分通道面向字节的两线接口两个可编程的串行 USART可工作于主机/ 从机模式的 SPI 串行接口具有独立片内振荡器的可编程看门狗定时器片内模拟比较器特殊的处理器特点上电复位以及可编程的掉电检测片内经过标定的 RC 振荡器片内/ 片外中断源6 种睡眠模式: 空闲模式、ADC 噪声抑制模式、省电模式、掉电模式、STANDBY 模式以及扩展的 STANDBY 模式可以通过软件进行选择的时钟频率通过熔丝位可以选择 ATMEGA103 兼容模式全局上拉禁止功能I/O 和封装53 个可编程 I/O 口线64 引脚 TQFP 与 64 引脚 MLF 封装工作电压2.7 - 5.5V ATMEGA128L4.5 - 5.5V ATMEGA128速度等级0 - 8 MHZ ATMEGA128L0 - 16 MHZ ATMEGA1282、ARM 系列芯片飞利浦公司的 LPC2103 是基于一个支持实时仿真的 16/32 位ARM7 TDMI-S CPU 的微控制器,并带有 32KB 嵌入的高速 FLASH 存储器。128 位宽度的存储器接口和独特的加速结构使 32 位代码能够在最大时钟速率下运行。对中断服务程序和 DSP 算法中性能要求严格的应用,这增加的性能比在 THUMB 模式下的性能超出多达 30%。对代码规模有严格控制的应用,使用 16 位 THUMB 模式将代码规模降低超过 30%,而性能的损失却很小。较小的封装和很低的功耗使 LPC2103 特别适用于访问控制和 POS 机等小型应用中;由于内置了宽范围的串行通信接口(范12围从多个 UART、SPI 和 SSP 到两条 TWI 总线)和 8KB 的片内 SRAM,多个 32 位和 16 位定时器、1 个改良的 10 位 ADC、所有定时器上输出匹配的 PWM 特性、以及具有多达 13 个边沿或电平触发的外部中断管脚的 32 条高速 GPIO 线,使这种微控制器特别适合工业自动化控制、电力电子技术应用、智能化仪器仪表及电机、马达伺服控制系统等LPC2103 芯片的主要性能如下:16/32 位 ARM7 TDMI-S 微控制器,超小 LQFP48 封装。2KB/4KB/8KB 的片内静态 RAM 和 8KB/16KB/32KB 的片内 FLASH 程序存储器。128 位宽度接口/加速器可实现高达 70 MHZ 工作频率。通过片内 BOOT 装载程序实现在系统/在应用编程(ISP/IAP) 。单个 FLASH 扇区或整片擦除时间为 100MS。256 字节编程时间为 1MS。嵌入式 ICE RT 通过片内 REALMONITOR 软件提供实时调试。10 位 A/D 转换器提供 8 路模拟输入(每个通道的转换时间低至 2.44US) ,以及特定的结果寄存器来最大限度地减少中断开销。2 个 32 位定时器/外部事件计数器(带 7 路捕获和 7 路比较通道) 。2 个 16 位定时器/外部事件计数器(带 3 路捕获和 7 路比较通道) 。低功耗实时时钟(RTC)具有独立的电源和特定的 32KHZ 时钟输入。多个串行接口,包括 2 个 UART(16C550)、2 个高速 I2C 总线(400 KBIT/S)、SPI 和具有缓冲作用和数据长度可变功能的 SSP。向量中断控制器(VIC),可配置优先级和向量地址。多达 32 个通用 I/O 口(可承受 5V 电压) 。多达 13 个边沿或电平触发的外部中断管脚。通过一个可编程的片内 PLL(100US 的设置时间)可实现最大为 70MHZ 的 CPU 操作频率,其具有 10MHZ25MHZ 的输入频率。片内集成振荡器与外部晶体的操作频率范围为 125MHZ。低功耗模式包括空闲模式、掉电模式和带有效 RTC 的掉电模式。可通过个别使能/禁止外围功能和外围时钟分频来优化额外功耗。通过外部中断或 RTC 将处理器从掉电模式中唤醒。综上分析两种芯片都能完成比赛要求但在运算速度、定位精确和可靠性等要求上ATMEGA128 与 LPC2103 ARM 系列比较没有任何优势,为了在复杂的赛场上更稳定的发挥和赛后用于教育或工业方面的改装,我选择芯片 LPC2103。134.2 机器人主控制板结构及说明4.2.1 LPC2103 电源模块LPC2103 使用的是 3.3V 电源,对电源要求很高,过大的电源噪声很容易使得程序跑飞或者芯片烧毁,使用 LM117-3.3 稳压芯片能很好的解决这一问题如下图所示是该电源模块的原理图图 5 电源模块Fig.5 Power Module4.2.2 最小系统如下图所示是 LPC2103 的最小工作系统原理图图 6 最小系统Fig.6 Minimum System4.2.3 人机交互界面14如下图所示为人及交互界面的硬件设计其中包括键盘输入和 12864 液晶中文显示模块。图 7 人机交互Fig.7 HCI1、液晶中文显示模块 12864 简介 液晶显示模块是12864点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。可与CPU直接接口,提供两种界面来连接微处理机:8-位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等。 2、液晶中文显示模块 12864 引脚说明15表 1 液晶显示 12864 引脚说明Table 1 LCD 12864 Pin Description引脚 名称 方向 说明 引脚 名称 方向 说明 1 VSS GND 15 PSB 0 数据模式数据模式2 VDD VCC 16 NC 空空3 V0 背光亮度调整背光亮度调整 17 /RST 0 复位(低电平有效)复位(低电平有效)4 RS 0 数据指令端口数据指令端口 18 NC 空空5 R/W 0 读写命令端口读写命令端口 19 LEDA 背光源负极背光源负极6 E(SLCK) 0 使能端口使能端口 20 LEDB 背光源正极背光源正极7-14 I/O 1/0 数据段口数据段口 DB0-DB73、液晶中文显示模块 12864 时序图下图 8 和图 9 为液晶中文显示模块 12864 的读操作时序和写操作时序,依据这些时序图和指令集可以对液晶中文显示模块 12864 进行读写操作,从而完成人机交互。图 8 读操作时序Fig.8 Read Timing16图 9 写操作时序Fig.9 Write Timing4、液晶中文显示模块 12864 的指令集 基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0清楚显示清楚显示 0 0 0 0 0 0 0 0 0 1功能:清除显示屏幕,把 DDRAM 位址计数器调整为“00H”基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0地址归位地址归位 0 0 0 0 0 0 0 0 1 X功能:把 DDRAM 位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0地址归位地址归位 0 0 0 0 0 0 0 1 I/D S功能:把 DDRAM 位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM且执行该命令后,所设置的行将显示在屏幕的第一行。显示起始行是由 Z 地址计数器控制的,该命令自动将 A0-A5 位地址送入 Z 地址计数器,起始地址可以是 0-63 范围17内任意一行。Z 地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0游标显示游标显示 0 0 0 0 0 0 1 D C B功能: D=1 整体显示 ON; C=1 游标 ON; B=1 游标位置 ON;基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0游标位移游标位移 0 0 0 0 0 0 S/C R/L X X功能:设定游标的移动与显示的移位控制位:这个指令并不改变 DDRAM 的内容基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0指令集设定指令集设定 0 0 0 0 1 DL X RE X X功能:DL=1(必须设为 1) RE=1;扩充指令集动作; RE=0:基本指令集动作;基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0CGRAM 0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0功能:设定 CGRAM 位址到位址计数器(AC)基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0CGRAM地地 0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0功能:设定 DDRAM 位址到位址计数器(AC)基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB018查忙查忙 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0功能:读取忙碌状态(BF)可以确认内部动作是否完成,同时可以读出位址计数器(AC)的值基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0写入写入RAM 1 0 AC7 AC6 AC5 AC4 AC3 AC2 AC1 AC0功能:写入资料到内部的 RAM(DDRAM/CGRAM/TRAM/GDRAM)基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0读取读取RAM 1 1 AC7 AC6 AC5 AC4 AC3 AC2 AC1 AC0功能:从内部 RAM 读取资料(DDRAM/CGRAM/TRAM/GDRAM)基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0待命模式待命模式 0 0 0 0 0 0 0 0 0 1功能:进入待命模式,执行其他命令都可终止待命模式基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0反白选择反白选择 0 0 0 0 0 0 0 1 R1 R0功能:选择 4 行中的任一行作反白显示,并可决定反白的与否基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0睡眠模式睡眠模式 0 0 0 0 0 0 1 SL X X功能:SL=1;脱离睡眠模式 SL=0;进入睡眠模式基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB019扩从功能扩从功能 0 0 0 0 1 1 X 1RE G 0功能:RE=1;扩充指令集动作 RE=0;基本指令集动作 G=1;绘图显示 ON G=0;绘图显示 OFF基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0IRAM位址位址 0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0功能:SR=1:AC5AC0 为垂直卷动位址 ;SR=0:AC3AC0 写 ICONRAM 位址;基本指令 RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0设定绘图设定绘图 0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0功能:设定 GDRAM 位址到位址计数器(AC)5、液晶中文显示模块 12864 的初始化过程写指令 C0H:设置显示初始行;1写指令 3FH:开显示;24.2.4 主控板硬件实物图下图为实物图;具体的设计的原理图和 PCB 见附图。20图 10 控制板实物图Fig.10 Physical Map Panel此电路板为力天电子LPC2103 学习板开发。本设计 LPC2103 开发板类似于此电路板(本设计完稿时电路板在制作中,无实物) ,其硬件资源丰富包括:LPC 最小系统、适配器电源座、复位电路、独立的按键、RS232 和串口 MAX232、小 12864液晶接口、以及 20P JTAG 仿真调试接口等。4.3 电机伺服器控制 在这次的设计中,采用了 DCS810 全数字直流伺服驱动器采用专用运动控制 DSP 和高效 MOSFET 等先进技术。控制指令信号与步进驱动器兼容,用户不用更换控制器,就可将所用的步进驱动升级为全数字直流伺服驱动。由 DCS810 组成的小功率运动控制系统在速度、精度、噪声和低速平稳性等方面达到甚至超越数字式交流伺服系统,而系统成本远低于交流伺服。其体积小巧、安装方便、可靠性高、调试简单。用户可通过雷赛 PRO TUNER 调试软件、文本显示器或 STU 伺服调试器轻松实现系统参数整定和保存。21图 11 伺服器 Fig.11 Server1、适用范围 适合驱动有刷、永磁直流伺服电机,空心杯永磁直流伺服电机,力矩电机; 最大连续电流 10A,最大峰值电流 20A; 直流电源+1238V; 功率 400 瓦以内,过载能力达 800 瓦; 速度、位置的四象限控制。2、主要功能 输入模拟信号进行速度控制; 输入 PWM 信号进行速度控制; 通过 RS232 口进行速度控制; 通过 RS232 口进行位置控制; 输入脉冲、方向信号进行步进模式控制; 外部零位信号输入; 22外部制动信号输入; 通过 RS232 实现 PC 控制、参数调整、在线监测; 实时读取驱动器内部温度; 过流、过载、过压、欠压保护; 温度保护; 超调、失调保护,动态跟踪误差保护。3、技术参数表2 伺服器技术参数Table 2 Technical data server参数 标号 参数值 单位 电源电压U12-38VDCPWM开关频率fPWMDS3810E / DS3810:62.5DS3810TE / DS3810T:20kHz效率95%最大连续输出电流Idauer10A最大峰值输出电流Imax20A硬件保护电流Ip26A电源保险30A静态功耗(待机电流)Iel115/12V,65/24V,45/38VmA可控速度范围130000Rpm输出编码器电源VCC5VDCICC60mA模拟输入端输入阻抗25K模拟信号速度控制输入电压范围 10VV23续表PWM控制信号标准低电平00.3,高电平35V频段100500Hz占空比范围1%占空比99%占空比50%0RPM占空比50%电机反转CCWPWM控制占空比50%电机正转CW步进脉冲最高频率fmax800KHz故障输出集电极开路输出最大电压为30V,电流5mA有故障低电平输出EN逻辑电平低电平00.3,高电平35VDIR逻辑电平低电平00.3,高电平35V逻辑电平低电平00.3,高电平35V编码器输入最高频率200KHz欠压保护10.5V过压保护54V通讯端口RS2329600(2400、4800、19200)bps内置存储器EEPROM256BytesDS3810/ DS3810T小于-10或大于70保护;高低温保护DS3810E/ DS3810TE小于-40或大于85保护工作温度DS3810/ DS3810T-10 +7024续表DS3810E/ DS3810TE-40 +85DS3810/ DS3810T-40 +85储存温度DS3810E/ DS3810TE-55 +1254、接口定义图12端口定义Fig.12 Port Definition5、步进控制模式(脉冲方向模式) (a)信号来源:CLK,DIR (b)设置模式:步进控制模式,信号源:SCS3 (c)常用指令: 设置最大速度:SSP 参数 设置最大跟踪误差:SER 参数 设置最大加速度:A 参数 25设置步宽:STW 参数 读取步宽值:GSTW 切换到步进模式:S(e)工作原理 在步进模式下,脉冲输入端每接收一个脉冲,电机将运转一个步宽; 这种工作模式能同时实现位置和速度控制。由于允许设置步宽(STW),输入频率和电机转速的比率可以根据需要设置。 转速与脉冲频率之间的关系如下: 转速脉冲频率X步宽(STW)X 60 编码器分辨率(4倍线数) 位置与脉冲个数之间的关系如下: 位置(圈数)脉冲个数X步宽(STW) 编码器分辨率(4倍线数) (f)优点(与步进电机比较) 步宽可编程设定; 没有因齿槽效应而引起的转矩损失; 具有优异的动态特性; 无震动,发热小; 采用闭环控制,不会产生“丢步”现象; 功率随着负载变化动态调节,效率高(步进电机无论有无负载,均按最大功率运行6、伺服器的运用伺服器主要运用在电机的驱动控制上。伺服器是一种电机驱动模块,它的采样与电机同轴的编码盘通过自身的 PID 算法能很快的对电机的状态进行控制其中包括电机的转速与圈数,在收到电机停止信号时能很好的锁死电机使机器人能在任何时候迅速停止运行。它集成的过流过压保护能很好的保护电机延长使用寿命。我们运用他的强大功能对机器人的速度和行程进行理论控制,为什么是理论控制呢?因为打滑和失步的影响会降低控制精度。4.4 编码盘采样1、编码盘的分类从结构类型上讲,编码盘可分为:接触式、电磁式和光电式,接触式的优点是:结构简单,体积小,输出信号不需放大。缺点是:有电刷磨损现象,使用寿命短。电磁编码盘有寿命长,传输高等优点,但是在低速状态效果不佳,而光电式编码盘没有26磨损寿命长,精度高缺点是价格高。这次机器人的设计中所使用的编码盘为光电式编码盘。2、编码盘的工作原理编码盘或编码尺是一种按一定的编码形式,如二进制编码,二十进制编码、格莱码或余三码等,将一个圆盘或直尺分成若干等分,并利用电子、光电或电磁器件,把代表被测位移量大小的各等分上的编码转换成便于应用的其他二进制表达方式的测量装置。下面以接触式编码盘为例说明其工作原理。图 15 是一个 4 位二进制编码盘,图中涂黑部分是绝缘的。码盘的外 4 圈按导电为“1”、绝缘为“0”组成二进制码。通常,我们把组成编码的各圈称为码道。对应 4 个码道并排安装有 4 个电刷,电刷经电阻接到电源正极。编码盘的最里一圈是公用的,与 4 个码道上的导电部分连在一起,而与绝缘部分断开,该圈接到电源的负极(地)。编码盘的转轴与被测对象连在一起(如机床丝杠),编码盘的电刷则装在一个不随被测对象一起运动的部件(如机床本体)上。当被测对象带动编码盘一起转动时,根据与电刷串联的电阻上有无电流流过,可用相应的二进制代码表示。如图 15(b)所示,若编码盘沿顺时针方向转动,就可依次得到 0000,0001,0100,1111 的二进制输出。图13编码盘工作原理Fig.13 Encoding Disk Works2、编码盘的运用编码盘随着自身的转动发出一个频率变化的脉冲信号,该信号的频率可以表现此时机体的运动速度,脉冲个数可以变现所走过的距离,这样我们使用 CPU 采样这些脉冲信号就能对运动状态有一个很好的了解,从而更好的控制机器人的运动与动作。4.5 光电传感器光电传感器是采用光电元件作为检测元件的传感器。它首先把被测量的变化转换成光信号的变化,然后借助光电元件进一步将光信号转换成电信号。光电传感器一般27由光源、光学通路和光电元件三部分组成。1、光电传感器工作原理不同所制成的光学测控系统是多种多样的,按光电元件(光学测控系统)输出量性质可分二类,即模拟式光电传感器和开关式光电传感器.模拟式光电传感器是将被测量转换成连续变化的光电流,它与被测量间呈单值关系.模拟式光电传感器按被测量(检测目标物体)方法可分为透射(吸收)式,漫反射式,遮光式(光束阻档)三大类.所谓透射式是指被测物体放在光路中,恒光源发出的光能量穿过被测物,部份被吸收后,透射光投射到光电元件上;所谓漫反射式是指恒光源发出的光投射到被测物上,再从被测物体表面反射后投射到光电元件上;所谓遮光式是指当光源发出的光通量经被测物光遮其中一部份,使投射刭光电元件上的光通量改变,改变的程度与被测物体在光路位置有关.图14光电传感器Fig.14 Photoelectric Sensor1、光电传感器的分类漫反射式:它是一种集发射器和接收器于一体的传感器,当有被检测物体经过时,物体将光电开关发射器发射的足够量的光线反射到接收器,于是光电开关就产生了开关信号。当被检测物体的表面光亮或其反光率极高时,漫反射式的光电开关是首选的检测模式。镜反射式:它亦集发射器与接收器于一体,光电开关发射器发出的光线经过反射镜反射回接收器,当被检测物体经过且完全阻断光线时,光电开关就产生了检测开关信号。对射式:它包含了在结构上相互分离且光轴相对放置的发射器和接收器,发射器发出的光线直接进入接收器,当被检测物体经过发射器和接收器之间且阻断光线时,光电开关就产生了开关信号。当检测物体为不透明时,对射式光电开关是最可靠的检测装置。28槽式:它通常采用标准的 U 字型结构,其发射器和接收器分别位于 U 型槽的两边,并形成一光轴,当被检测物体经过 U 型槽且阻断光轴时,光电开关就产生了开关量信号。槽式光电开关比较适合检测高速运动的物体,并且它能分辨透明与半透明物体,使用安全可靠。光纤式:它采用塑料或玻璃光纤传感器来引导光线,可以对距离远的被检测物体进行检测。通常光纤传感器分为对射式和漫反射式。它们的工作光线示意图如图 17 所示。图 15 光电开关工作光线示意图Fig.15 Schematic Diagram Of Optical Switching Of Light5 主控制板程序设计在本系统中,ARM 7 的控制程序用 IAR Embedded Workbench 编写的。5.1 ARM 主程序流程图在本系统中 ARM 7 的主要工作是: (1)人机交互界面,键盘输入和 12864 液晶显示来设定比赛相关参数灵活选择赛时程序;(2)输出三路 PWM 信号,通过伺服器控制电机的运动状态;(3)编码盘信号采样,全场定位;(4)光电传感器采样,作为启停信号;29(5)输出 PWM 信号,控制舵机实现机械手臂的运动。图 16 主流程图Fig.16 Main Flow图 17 方案一流程图Fig.17 Flow Chart For One30图 18 方案二流程图Fig.18 Flow Chart For Two5.2 PWM 的产生5.2.1 软件生成 PWM软件 PWM 产生是通过软件给一个或几个 I/O 口赋值为高电平然后延迟一定时间后转换为低电平以此循环,延迟时间决定该脉冲信号的频率,这样做的好处就是程序设计简单,对于初学者来说简单明了,这样我们使用的循环能根据开发者要求立刻跳出,能方便快捷的对脉冲个数进行控制,如果要改变占空比则改变两个延迟的时间。具体操作如下,如下程序 GPIO 017 口发送了 100 个频率为 1K 的脉冲#include incconfig.h/*系统初始化*/void Sys_Init(void) /使用 GPIO 功能,将所有引脚链接到 GPIO PINSEL0 = 0X00000000; PINSEL1 = 0X00000000; IO0DIR = 117; /设定 GPIO 引脚方向31 IO0SET = 10,i-) IO0CLR = 117; /低电平打开 GPIO17 Delay(5000); IO0SET = 10; dly-) for(i=0; i5000; i+);void PLL_Init(void) /* 设置系统各部分时钟 */ PLLCON = 1;#if (Fcclk / 4) / Fpclk) = 1VPBDIV = 0;#endif33#if (Fcclk / 4) / Fpclk) = 2VPBDIV = 2;#endif#if (Fcclk / 4) / Fpclk) = 4VPBDIV = 1;#endif#if (Fcco / Fcclk) = 2PLLCFG = (Fcclk / Fosc) - 1) | (0 5);#endif#if (Fcco / Fcclk) = 4PLLCFG = (Fcclk / Fosc) - 1) | (1 5);#endif#if (Fcco / Fcclk) = 8PLLCFG = (Fcclk / Fosc) - 1) | (2 5);#endif#if (Fcco / Fcclk) = 16PLLCFG = (Fcclk / Fosc) - 1) | (3 5);#endifPLLFEED = 0xaa;PLLFEED = 0x55;while(PLLSTAT & (1 10) = 0);PLLCON = 3;PLLFEED = 0xaa;PLLFEED = 0x55;/*主函数*/void main() unsigned char i; PINSEL0=0x00000000; /管脚连接到 GPIO PINSEL1=(0x0210); /MAT3.0 连接到管脚34 PLL_Init(); /PLL 初始化 T3PWMCON=0x01; /使能 PWM 模式 T3PR =9; /9+1 个 Fpclk,TC 增加一次 T3MCR=0x17; /当 MR2 和 TC 相等时,TC 复位 T3MR2=Fpclk/1000; /PWM 的时钟频率为 APB 时钟频率的 1/1000 T3MR0=T3MR2/10; /占空比为 90% T3TCR=0x02; /定时计数器复位 T3TCR=0x01; /定时器使能 while(1) for(i=0;i3;i+) T3MR0=T3MR2*TABLEi/10;/改变占空比 Delay(1000); 这样做的好处是节约了大量的 CPU 资源,可以使用这些资源做其他的操作和判断,从而提高了 CPU 的效率。5.3 中文液晶显示 12864 程序设计12864 中文液晶显示模块(后面简称 12864)能够显示汉字、图片、数字等,对于 12864 的程序设计主要有几个子函数的设计,包括:初始化、数据发送、发送一个字节数据、发送一个字节命令、延迟等子函数。#include .incconfig.h/* 名称:MSpiIni()35* 功能:初始化 SPI 接口,设置为主机。*/void MSpiIni(void) SPI_SPCCR = 0x52;/ 设置 SPI 时钟分频 SPI_SPCR = (03)| (14)| (15)| (06)| (07); / 设置 SPI 接口模式,MSTR=1,CPOL=1,CPHA=0,LSBF=0/* 名称:MSendData()* 功能:向 SPI 总线发送数据。* 入口参数:data 待发送的数据* 出口参数:返回值为读取的数据*/void MSendData(unsigned char data) IO0CLR = RCK|SCLK|MOSI; / 片选 SPI_SPDR = data; while( 0=(SPI_SPSR&0x80) );/ 等待 SPIF 置位,即等待数据发送完毕/* 延时子程序*/void Delay(int ms) Unsigned short k; while(ms-) for(k=0; k1000; k+); 36void PLL_Init() PLLCON = 1;#if (Fcclk / 4) / Fpclk) = 1VPBDIV = 0;#endif#if (Fcclk / 4) / Fpclk) = 2VPBDIV = 2;#endif#if (Fcclk / 4) / Fpclk) = 4VPBDIV = 1;#endif#if (Fcco / Fcclk) = 2PLLCFG = (Fcclk / Fosc) - 1) | (0 5);#endif#if (Fcco / Fcclk) = 4PLLCFG = (Fcclk / Fosc) - 1) | (1 5);#endif#if (Fcco / Fcclk) = 8PLLCFG = (Fcclk / Fosc) - 1) | (2 5);#endif#if (Fcco / Fcclk) = 16PLLCFG = (Fcclk / Fosc) - 1) | (3 5);#endifPLLFEED = 0xaa;PLLFEED = 0x55;while(PLLSTAT & (1 10) = 0);PLLCON = 3;PLLFEED = 0xaa;37PLLFEED = 0x55;/* 函数名称:WriteData (U8 Data)* 功能描述:发送一个字节到 LCD* 入口参数:Data 要发送的数据* 出口参数:无* 全局变量: 无* 调用模块: 无*/void WriteData (unsigned char Data) Write_D(); CS_L(); WriteByte(Data); CS_H();/* 函数名称:WriteCommand(U8 command)* 功能描述:发送一个字节命令* 入口参数:U8 command发送的命令数据* 出口参数:无* 全局变量: 无* 调用模块: 无*/void WriteCommand (unsigned char Command) Write_C(); CS_L(); WriteByte(Command); CS_H();38/打开液晶背光 0:关闭 1:打开 void Lcd_BackLed(unsigned char on)if(on=1)IO0CLR=B_LED;/打开背光else if(on=0)IO0SET=B_LED;/关闭背光/液晶复位void Lcd_Reset(void)Res_L();Delay(1000);Res_H();/列顺序翻转,左右翻转 0:正常 1:翻转void Lcd_ColRev(unsigned char i)WriteCommand(0xa0|(i&0x01);/液晶初始化void Lcd_Init(void)Lcd_Reset();/液晶复位Lcd_BackLed(1);/打开液晶背光 WriteCommand(0xaf); /打开显示 WriteCommand(0x40);/开始显示 WriteCommand(0xa0); /ADC NORMAL WriteCommand(0xa6); / 39 WriteCommand(0xa4); /清除 WriteCommand(0xa2); /1/9BIAS WriteCommand(0xc8); /COMMON OUTPUT DIRECTION WriteCommand(0x2f); /POWER CONTROL WriteCommand(0x24); /RESISTER RATIO WriteCommand(0x81); /VOLUM MODE SET WriteCommand(0x24); /RESISTER RATIO Lcd_ColRev(1);/左右翻转/*主函数*/void main( ) U8 seg,tmp,page; PINSEL0 = (PINSEL0&0xFFFF00FF)|0x00001500;/ 设置 SPI 管脚连接 PINSEL1 = 0x00000000; IO0DIR = LCD_A|LCD_CS|LCD_CLK|LCD_DATA|BEEP|B_LED|LCD_RES; PLL_Init(); MSpiIni(); Lcd_Init(); for(page=0xb0;page0xb8;page+) /写页地址共 8 页 0xb00xb8 WriteCommand(0xa4); /清除 WriteCommand(page); WriteCommand(0x10); /列地址,高低字节两次写入,从第 0 列开始 WriteCommand(0x00); for(tmp=0;tmp4;tmp+) WriteData(0);40 for(seg=0;seg128;seg+)/写 128 列 WriteData(0xfe); display_map(niu); /显示一副图案 while(1);6 系统调试在本此设计当中本人充分考虑了比赛的要求、实验室条件和经济性,设计了一款达到比赛要求,价格适中,操作方便的作品。突出表现在一下几点:(1)精确性 机器人自身的精确性很好,机械手臂的动作定位精准;采用编码盘定位技术,使得机器人的自动行走和定点停车可以很准确不会有严重的偏移。(2)创新性 这台机器人是 2011 年亚太大学生机器人大赛的参赛机器人,所以以前是没有这种机器人的,在得知比赛题目之后,个参赛队才会制作此种机器人。7 总 结通过这次的毕业设计,使我充实了很多。三年来大部分的课余时间包括寒暑假都是在实验室度过的,在这个小小的实验室里,汇集了全校机器人机械电子方面的爱好者,通过交流相互学习,共同进步。实验室生活极大的提高我的动手能力,能独立设计制作电路板;也提高了我收集利用资料的能力,因为我们设计中会遇到很多技术难关,单凭课堂上学的知识很难解决,只有询问老师,查看有关书籍,或者在网络上寻找资料。简易自动组装机器人涉及到机械原理、特种加工、电子技术、微机控制、接口技术、传感测试技术、程序编写及调试等多方面的知识,锻炼综合应用能力,在设计时自学了大量的技术资料,充实了自己。参考文献1 张继电机控制与供电基础M成都:西南交通大学出版社2000:20-180.2 张琛直流无刷电动机原理及应用(第 2 版)M北京:机械工业出版社1996:20-2203 秦曾煌.电工学上册M. 北京.高等教育出版社.2002:58-102.414 秦曾煌.电工学下册M. 北京.高等教育出版社.2002: 156-180.5 张相军,陈伯时无刷直流电机无位置传感器控制技术的研究J上海:上海大学20016 王敏,周顺荣无位置传感器 BLDC 电机控制策略综述J上海:上海交通大学20017 刘光斌,刘冬,姚志成.单片机系统实用抗干扰技术M.北京:人民邮电出版社,2003:36-97 8 马潮,詹卫前,耿德根ATmega8 原理及应用手册M清华大学出版社2003:1-1279 程仁杰功率电子学M成都:成都电讯工程学院出版社1989:46-5810 应根裕电子器件M北京:清华大学出版社1989:45-5211 吴安顺等最新使用交流调速系统M北京:机械工业出版社1998:56-6812 周必水C 语言程序设计M北京:科学出版社200413 金春林,邱慧芳,张皆喜 AVR 单片机 C 语言编程及应用实例M北京:清华大学出版社200314 赵亮单片机 c 语言编程与实例M北京:人民邮电出版社200315 田淳无位置传感器稀土永磁无刷直流方波电机系统研究D南京航空航天大学硕士学位论文,1998.3致 谢 本论文是在康江老师的悉心指导和热情关怀下完成的。经过几个月的设计与制作,我的毕业设计基于简易自动组装机器人已经基本完成并制作出了实物。首先感谢学校给予了我大力的支持,给我提供了各种需要调试的设备。再次感谢我的指导老师康江老师,正因有他的精心指导,我的毕业设计才能顺利制作完成。康老师严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。康老师给我们提供了一个很好的锻炼的平台。在生活上老师也给与我无微不至的关怀,毕业设计的进展如何,康老师都非常关心,几乎每天都会询问进展情况。在此谨向恩师表示诚挚的敬意和由衷的感谢。还要感谢机器人小组各个成员和陈业东学长给我的各方面帮,正是由于大家的帮助和支持,我才能克服一个个的困难和疑惑,直至本此设计的顺利完成并让我学到了许多的知识。无论是电路方面还是程序方面。最后还要感谢各位关心我的老师,给予我帮助和建议。42作为一个本科生的毕业设计,由于经验的不足,难免有许多考虑不周全的地方,如果没有导师的督促指导,没有一起工作的同学们的支持,想要完成这个设计制作是很难的。敬爱的师长、同学、朋友,在这里请接受我诚挚的谢意!附录附录 1:机器人程序附录 2:电路原理及 PCD 图(LPC2103 开发板)附录 3:机器人机械设计装配简图43附录1:机器人程序typedef unsigned char U8; /* 无符号8位整型变量 */typedef signed char S8; /* 有符号8位整型变量 */typedef unsigned short U16; /* 无符号16位整型变量 */typedef signed short S16; /* 有符号16位整型变量 */typedef unsigned int U32; /*无符号32位整型变量 */typedef signed int S32; /*有符号32位整型变量 */typedef float fp32; /* 单精度浮点数(32位长度) */typedef double fp64; /* 双精度浮点数(64位长度) */*/* ARM的特殊代码 */*/#includeLPC2103.h/* 系统设置, Fosc、Fcclk、Fcco、Fpclk必须定义*/#define Fosc11059200/晶振频率,10MHz25MHz,应当与实际一至#define Fcclk (Fosc * 4) /系统频率,必须为Fosc的整数倍(132),且=60MHZ#define Fcco(Fcclk * 4) /CCO频率,必须为Fcclk的2、4、8、16倍,范围为156MHz320MHz#define Fpclk (Fcclk / 4) * 1 /VPB时钟频率,只能为(Fcclk / 4)的1 4倍#includetarget.h /这一句不能删除/*LED Define */#define LED3CON (0x117) /*P0.17*/#defineLED2CON (0x118) /*P0.18*/#defineLED1CON (0x119) /*P0.19*/#defineLED_MASKLED1CON|LED2CON|LED3CON/*BUZZER Define*/#defineBEEP0x121 /*P0.21*/*PWMDAC Define*/#definePWM0x120 /*P0.20*/*KEY Define */44#defineKEY10x115 /*P0.16*/#defineKEY20x116 /*P0.15*/#defineISP 0x114 /*P0.14*/*IIC EEPROM Define */#defineSCL 0x12 /*P0.2*/#defineSDA 0x13 /*P0.3*/*Msster Clock*/#defineMCK11059200/*ADC Define */#define ADC0 0x0122 /*P0.22*/#define ADC1 0x0123 /*P0.23*/*LCD Define */#defineDB40x014#defineDB50x015#defineDB60x016#defineDB70x017#defineDBS0xf4 /数据位移#defineRS 0x0126#defineRW0x0125 /R/W#defineEN 0x0124 /DE#define LCDBL 0x0119/*SPI Define*/#define SCLK 0x014#define MISO 0x015#define MOSI 0x016#define RCK 0x017#include .incconfig.h/* 名称:MSpiIni()* 功能:初始化SPI接口,设置为主机。*/45void MSpiIni(void) SPI_SPCCR = 0x52;/ 设置SPI时钟分频 SPI_SPCR = (03)| (14)| (15)| (06)| (07); / 设置SPI接口模式,MSTR=1,CPOL=1,CPHA=0,LSBF=0/* 名称:MSendData()* 功能:向SPI总线发送数据。* 入口参数:data 待发送的数据* 出口参数:返回值为读取的数据*/void MSendData(unsigned char data) IO0CLR = RCK|SCLK|MOSI; / 片选 SPI_SPDR = data; while( 0=(SPI_SPSR&0x80) );/ 等待SPIF置位,即等待数据发送完毕/* 延时子程序*/void Delay(int ms) Unsigned short k; while(ms-) for(k=0; k1000; k+); void PLL_Init()46 PLLCON = 1;#if (Fcclk / 4) / Fpclk) = 1VPBDIV = 0;#endif#if (Fcclk / 4) / Fpclk) = 2VPBDIV = 2;#endif#if (Fcclk / 4) / Fpclk) = 4VPBDIV = 1;#endif#if (Fcco / Fcclk) = 2PLLCFG = (Fcclk / Fosc) - 1) | (0 5);#endif#if (Fcco / Fcclk) = 4PLLCFG = (Fcclk / Fosc) - 1) | (1 5);#endif#if (Fcco / Fcclk) = 8PLLCFG = (Fcclk / Fosc) - 1) | (2 5);#endif#if (Fcco / Fcclk) = 16PLLCFG = (Fcclk / Fosc) - 1) | (3 5);#endifPLLFEED = 0xaa;PLLFEED = 0x55;while(PLLSTAT & (1 10) = 0);PLLCON = 3;PLLFEED = 0xaa;PLLFEED = 0x55;/*47* 函数名称:WriteData (U8 Data)* 功能描述:发送一个字节到LCD* 入口参数:Data要发送的数据* 出口参数:无* 全局变量: 无* 调用模块: 无*/void WriteData (unsigned char Data) Write_D(); CS_L(); WriteByte(Data); CS_H();/* 函数名称:WriteCommand(U8 command)* 功能描述:发送一个字节命令* 入口参数:U8 command发送的命令数据* 出口参数:无* 全局变量: 无* 调用模块: 无*/void WriteCommand (unsigned char Command) Write_C(); CS_L(); WriteByte(Command); CS_H();/打开液晶背光 0:关闭 1:打开 void Lcd_BackLed(unsigned char on)48if(on=1)IO0CLR=B_LED;/打开背光else if(on=0)IO0SET=B_LED;/关闭背光/液晶复位void Lcd_Reset(void)Res_L();Delay(1000);Res_H();/列顺序翻转,左右翻转 0:正常 1:翻转void Lcd_ColRev(unsigned char i)WriteCommand(0xa0|(i&0x01);/液晶初始化void Lcd_Init(void)Lcd_Reset();/液晶复位Lcd_BackLed(1);/打开液晶背光 WriteCommand(0xaf); /打开显示 WriteCommand(0x40);/开始显示 WriteCommand(0xa0); /ADC NORMAL WriteCommand(0xa6); / WriteCommand(0xa4); /清除 WriteCommand(0xa2); /1/9BIAS WriteCommand(0xc8); /COMMON OUTPUT DIRECTION WriteCommand(0x2f); /POWER CONTROL 49 WriteCommand(0x24); /RESISTER RATIO WriteCommand(0x81); /VOLUM MODE SET WriteCommand(0x24); /RESISTER RATIO Lcd_ColRev(1);/左右翻转/*主函数*/void LCD12864(unsigned char *ptr ) U8 seg,tmp,page; PINSEL0 = (PINSEL0&0xFFFF00FF)|0x00001500;/ 设置SPI管脚连接 PINSEL1 = 0x00000000; IO0DIR = LCD_A|LCD_CS|LCD_CLK|LCD_DATA|BEEP|B_LED|LCD_RES; PLL_Init(); MSpiIni(); Lcd_Init(); for(page=0xb0;page0xb8;page+) /写页地址共 8 页 0xb00xb8 WriteCommand(0xa4); /清除 WriteCommand(page); WriteCommand(0x10); /列地址,高低字节两次写入,从第 0 列开始 WriteCommand(0x00); while (*ptr) lcm12864_wirte_data(*ptr+); while(1);#include config.h#define KEY2116/ P0.16引脚连接KEY1 50#define KEY1115/ P0.15引脚连接KEY2#define KEY0114/ P0.14引脚连接KEY3/* 函数名称:KeysInit()* 功能描述:KEY初始化* 入口参数:无* 出口参数:无* 全局变量: 无* 调用模块: 无*/void KeysInit (void) /将引脚连接到外部中断 PINSEL0_bit.P0_14 = 1; PINSEL0_bit.P0_15 = 1; PINSEL1_bit.P0_16 = 1; / 设置中断边沿敏感模式 EXTMODE = 0x1; / 下降沿触发 EXTPOLAR = 0; / 设置中断 / 分配IRQ VICIntSelect_bit.EINT0 =0; /设置接口 VICVectAddr0 = (unsigned int) KeySpeedIntHandler; VICVectCntl0_bit.NUMBER = VIC_EINT0; VICVectCntl0_bit.ENABLED = 1; / 清除中断标志位 EXTINT = 0x1; / 使能中断 VICIntEnable_bit.EINT0 = 1;51/* 函数名称:WaitKey()* 功能描述:等待一个有效按键,返回对应指示灯的值。本函数有去抖功能。* 入口参数:无* 出口参数:LedStat* 全局变量: 无* 调用模块: 无*/uint32 WaitKey(void) uint32 tmp,PinIn,LedStat;while(1)doPinIn = IOPIN;/ 读到IO状态PinIn = PinIn & (KEY1|KEY2); / 获得键码while( PinIn!=0 );/ 等待KEY1键按下for(tmp=0; tmp0; dly-) for(i=0; i5000; i+);void PLL_Init(void) /* 设置系统各部分时钟 */ PLLCON = 1;#if (Fcclk / 4) / Fpclk) = 1VPBDIV = 0;#endif#if (Fcclk / 4) / Fpclk) = 2VPBDIV = 2;#endif#if (Fcclk / 4) / Fpclk) = 4VPBDIV = 1;#endif#if (Fcco / Fcclk) = 253PLLCFG = (Fcclk / Fosc) - 1) | (0 5);#endif#if (Fcco / Fcclk) = 4PLLCFG = (Fcclk / Fosc) - 1) | (1 5);#endif#if (Fcco / Fcclk) = 8PLLCFG = (Fcclk / Fosc) - 1) | (2 5);#endif#if (Fcco / Fcclk) = 16PLLCFG = (Fcclk / Fosc) - 1) | (3 5);#endifPLLFEED = 0xaa;PLLFEED = 0x55;while(PLLSTAT & (1 10) = 0);PLLCON = 3;PLLFEED = 0xaa;PLLFEED = 0x55;/*定时器中断 3*/void PWM_1_Produce( U8 m) U8 i; PINSEL0=0x00000000; /管脚连接到GPIO PINSEL1=(0x0210); /MAT3.0连接到管脚 PLL_Init(); /PLL初始化 T3PWMCON=0x01; /使能PWM模式 T3PR =9; /9+1个Fpclk,TC增加一次 T3MCR=0x17; /当MR2和TC相等时,TC复位 T3MR2=Fpclk/1000; /PWM的时钟频率为APB时钟频率的1/1000 T3MR0=T
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:简易自动组装机器人的设计
链接地址:https://www.renrendoc.com/paper/139485284.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

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