电器工程及其自动化专业毕业设计-基于单片机的舞蹈机器人控制系统设计_第1页
电器工程及其自动化专业毕业设计-基于单片机的舞蹈机器人控制系统设计_第2页
电器工程及其自动化专业毕业设计-基于单片机的舞蹈机器人控制系统设计_第3页
电器工程及其自动化专业毕业设计-基于单片机的舞蹈机器人控制系统设计_第4页
电器工程及其自动化专业毕业设计-基于单片机的舞蹈机器人控制系统设计_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河南科技学院2021届本科毕业论文设计基于单片机的舞蹈机器人控制系统设计学生姓名: 所在院系: 机电学院 所学专业: 电气工程及其自动化 导师姓名: 完成时间: 年 月 日 基于单片机的舞蹈机器人控制系统设计摘要机器人是典型的机电一体化装置,它综合运用了机械与精密机械、微电子与计算机、自动控制与驱动、传感器与信息处理以及人工智能等多学科的最新研究成果,随着经济的开展和各行各业对自动化程度要求的提高,机器人技术得到了迅速开展,出现了各种各样的机器人产品,本文介绍的就是其中的舞蹈机器人。舞蹈机器人的设计,首先通过对人类动作的深入了解,分析人类的动作特性,确定机器人的根本构成并选择适宜的机械构造,本

2、设计舞蹈机器人采用钢材结构,用舵机充当机器人关节,可实现类人结构。并且与控制对象跳舞机器人的工作原理、动作过程进行比拟,从而选择出组装机器人的造型,文中并分析机器人动作的局限性与优势。同时本毕业设计介绍了基于AT89C51单片机的舞蹈机器人控制系统的设计,包括硬件局部和软件局部。硬件局部介绍了舞蹈机器人控制系统的各模块,包括电源模块、单片机及外围接口电路模块、存储模块、串行通信模块、电机驱动控制模块及防碰撞模块六大局部;软件局部包括设定机器人的舞蹈动作程序。详细阐述了系统的硬件实现方案和软件设计思想。根据要求舞蹈机器人控制系统采用分时复用的方法,利用PWM信号对驱动电机进行控制,用以完成作品设

3、计。关键词:单片机,PWM信号,舞蹈机器人,舵机,直流电机MICROCONTROLLER-BASED ROBOT CONTROL SYSTEM DESIGN DANCEAbstractRobot is a typical mechatronic device, which combines the use of the latest research machinery and precision machinery, microelectronics and computer, automatic control and drive, sensors and information proc

4、essing, and artificial intelligence, multi-disciplinary, with the economic development and the lines each industry to raise the required degree of automation, robotics technology has been developing rapidly, there has been a wide range of robotic products described in this article is one of the danc

5、ing robot.Design dancing robot, first through in-depth understanding of human action, human operating characteristics analysis to determine the basic structure of the robot and select the appropriate mechanical construction, the design of steel structures using robot dance, act as a robot with a ste

6、ering joint, enabling the class human structure.And dancing robot control object works, the course of action are compared to select the shape of the assembly robot, the paper analyzed the limitations and advantages of robot action.Meanwhile, the graduation project presentation based on AT89C51 dance

7、 robot control system design, including hardware and software components.Hardware section describes the various modules dancing robot control system, including the power supply module, microcontroller and peripheral interface circuit module, memory module, serial communication module, motor drive co

8、ntrol module and anti-collision module six parts; Software includes setting the robot dance program.Elaborated hardware implementations and software design. Dancing robot control system according to the requirements using time division multiplexing method using PWM control signal to the drive motor,

9、 designed to complete the work.Keywords: microcontroller, PWM signal, dancing robot, steering, DC目 录 TOC o 1-3 h z u HYPERLINK l _Toc20598 1 绪论 PAGEREF _Toc20598 1 HYPERLINK l _Toc24037 2 方案论证取优及控制系统设计 PAGEREF _Toc24037 1 HYPERLINK l _Toc11426 2.1 设计功能要求 PAGEREF _Toc11426 1 HYPERLINK l _Toc28927 2.2

10、 方案论证取优 PAGEREF _Toc28927 2 HYPERLINK l _Toc4383 2.3 自由度的分配 PAGEREF _Toc4383 2 HYPERLINK l _Toc11337 2.4 电机的选择 PAGEREF _Toc11337 4 HYPERLINK l _Toc24219 2.5 舞蹈机器人的机械部件 PAGEREF _Toc24219 5 HYPERLINK l _Toc6376 2.6 系统设计方案分析 PAGEREF _Toc6376 5 HYPERLINK l _Toc8235 3 系统硬件选型 PAGEREF _Toc8235 6 HYPERLINK

11、l _Toc10768 3.1 单片机可编程控制器局部 PAGEREF _Toc10768 6 HYPERLINK l _Toc9922 3.1.1 单片机概述 PAGEREF _Toc9922 6 HYPERLINK l _Toc13624 .2 单片机选型 PAGEREF _Toc13624 6 HYPERLINK l _Toc16674 3.2 电源模块 PAGEREF _Toc16674 7 HYPERLINK l _Toc26803 3.3 串行通信模块 PAGEREF _Toc26803 7 HYPERLINK l _Toc31872 3.4 存储模块 PAGEREF _Toc31

12、872 8 HYPERLINK l _Toc7246 3.5 电机驱动控制模块 PAGEREF _Toc7246 8 HYPERLINK l _Toc31545 3.5.1 舵机的驱动控制模块8 HYPERLINK l _Toc29603 3.6 防碰撞模块 PAGEREF _Toc29603 12 HYPERLINK l _Toc6735 4 控制系统软件设计 PAGEREF _Toc6735 12 HYPERLINK l _Toc18498 4.1 主程序 PAGEREF _Toc18498 13 HYPERLINK l _Toc9079 4.2 定时器中断效劳子程序 PAGEREF _T

13、oc9079 13 HYPERLINK l _Toc16861 4.3 串行中断效劳子程序 PAGEREF _Toc16861 14 HYPERLINK l _Toc30985 4.4 外部中断效劳子程序 PAGEREF _Toc30985 145 HYPERLINK l _Toc29979 结论 PAGEREF _Toc29979 15 HYPERLINK l _Toc21014 参考文献 PAGEREF _Toc21014 16 HYPERLINK l _Toc21014 附录 PAGEREF _Toc21014 17 HYPERLINK l _Toc26047 致谢 PAGEREF _T

14、oc26047 231 绪论40年前,比尔盖茨放弃学业,创立了微软,成为个人电脑普及革命的领军人物;10年前,他曾预言,机器人即将重复个人电脑崛起的道路。点燃机器人普及的“导火索,这场革命必将与个人电脑一样,彻底改变这个时代的生活方式,10年的时间验证了他的话是正确的。机器人是人类20世纪最伟大的创造之一,在短短的几十年内就发生了日新月异的变化。可以从近几年世界范围内推出的机器人产品看出来,机器人技术正在向智能化、模块化和系统化的方向开展。其开展趋势主要为:结构的模块化和可重构化;控制技术的的开放化;PC化和网络化;伺服驱动技术的数字化和分散化。随着社会对效劳业的需求不断扩大,可以代替人的机器

15、人将会有更广阔的前景。社会的进步和生活水平的不断提高,使人们对传统的娱乐方式产生了厌倦,对娱乐也有了新的认识和更高的追求。为了满足人们的需求,出现了会跳舞的机器人, 舞蹈机器人在日本、韩国、美国、中国等各个国家都先后有不同程度的开展,尤其是在日本已经有突破性的开展。在机器人科技方面,中国还处于萌芽阶段。近几年,先后在科研、军事、工业、农业等各领域都有应用,尤其在工业中的应用最多,范围最广。 就中国而言,机器人很少向娱乐行业开展,本文介绍了基于AT89C51单片机的舞蹈机器人控制系统的设计,为机器人在娱乐领域的开展略尽绵力。舞蹈机器人出现在娱乐舞台上时,必将使娱乐方式更加时代化、多元化,使娱乐内

16、容更加丰富多彩。它不仅可以填补老人们的空虚与无聊,更满足了青年和儿童的好奇心,而且可以将舞蹈动作用数字记录下来,方便了文化的快速传递,从而实现了在数字时代背景下传统文化的传承。同时也能激发人们对新科技的认识和再创造。2 方案论证取优及控制系统设计 设计功能要求舞蹈机器人集软件与硬件于一体,是一个比拟完善的系统,其设计需要控制、机械、舞蹈与音乐等各方面的相互融合。控制系统那么是整个舞蹈机器人的核心,其设计的好坏,将严重影响到整个舞蹈机器人的性能。舞蹈机器人的控制系统包括硬件电路与软件设计两方面,整个舞蹈机器人控制系统的设计与实现过程,具体控制要求如下:本系统采用分时复用的方法,利用PWM信号对驱

17、动电机进行控制。能正确接收PC指令。可实现舞蹈动作的编辑存储。能驱动电机实现舞蹈动作。能进行碰撞保护。2.2 方案论证取优随着世界第一台工业机器人1962年在美国诞生,机器人已经有了五十多年的开展史。五十多年来,机器人由工业机器人到智能机器人,成为21世纪具有代表性的高新技术之一,其研究涉及的学科涵盖机械、电子、生物、传感器、驱动与控制等多个领域。世界著名机器人学专家,日本早稻田大学的加藤一郎教授说过:“机器人应当具有的最大特征之一是步行功能。两足步行是步行方式中自动化程度最高、最为复杂的动态系统。两足步行系统具有非常丰富的动力学特性,对步行的环境要求很低,对环境有很好的适应性。双足机器人具有

18、支撑面积小,支撑面的形状随时间变化较大,质心的相对位置高的特点。是其中最复杂,控制难度最大的动态系统。但由于双足机器人比其它足式机器人具有更高的灵活性,因此,设计成仿人形的舞蹈机器人优先选择两足步行系统。其典型特点是机器人的下肢以刚性构件通过转动副联接,模仿人类的腿及髋关节、膝关节和踝关节,并以执行装置代替肌肉,实现对身体的支撑及连续地协调运动,各关节之间可以有一定角度的相对转动。舞蹈机器人的运动全靠下肢支撑,因此采用两足步行机器人的两足步行系统。2.3 自由度的分配舞蹈机器人如图1具有人类外观特征、可爱的外貌、又兼有技术含量,极受青少年的喜爱。本课题要求设计一具有简单人体功能的、模拟舞蹈动作

19、的类人型机器人,完成简单人体舞蹈的根本动作:可以前进后退,左右侧行,左右转弯和前后摆动手臂,举手投足、转圈、头部动作灵活。下肢确定采用两足步行机器人的两足步行系统,舞蹈机器人的机械结构可以确定,具体如下:舞蹈机器人设计成仿人形,分别具有上下肢、头部、腰部等关节,能够模仿人类根本的动作,其机械结构如图所示。1头部。具有个自由度,实现头部的左右转动。2上肢。每只手各具有4个自由度,分别实现肩部的左右摆动、肩部的前后摆动、手臂的转动和肘关节的摆动,手的转动和腕关节的摆动。3腰部和下肢。腰部和下肢通过髋关节相连,髋关节配置3个自由度,包括转体(roll)、俯仰(pitch)和偏转(yaw)自由度,膝关

20、节配置一个俯仰自由度,踝关节配置有俯仰和偏转两个自由度。这样,每条腿配置6个自由度,两条腿共12个自由度。图 舞蹈机器人机械结构图舞蹈机器人的自由度总体配置如图3所示。图2 舞蹈机器人的自由度总体配置图图2中,机器人从右脚踝关节,膝关节,髋关节,腰部,到左脚腰部,髋关节,膝关节,踝关节,自由度配置分别为1,2,3,4,5,6);(7),(8,9,10,11,12。从右手腕关节,肘关节,肩部,到左手肩部,肘关节,腕关节,自由度配置分别为13,14,15,16;17,18,19,20。头部的自由度配置为21。舞蹈机器人的运动是通过各个自由度连续的进行各种角度组合而完成的,髋关节、膝关节和踝关节的俯

21、仰自由度共同协调动作可完成机器人的在纵向平面(前进方向)内的直线行走功能;髋关节的转体自由度可实现机器人的转弯功能;髋关节和踝关节的偏转自由度协调动作可实现在横向平面内的重心转移功能。为了方便舞蹈机器人的控制程序编写,建立空间坐标系,横向平面偏转方向为X轴方向,纵向平面(前进、俯仰方向)为Y轴方向,舞蹈机器人的身高垂直方向为Z轴方向。机器人的转体(roll)、俯仰(pitch)和偏转(yaw)定义如图3所示。图3 舞蹈机器人方向示意图2.4 电机的选择电动机也称电机俗称马达,在电路中用字母“M旧标准用“D表示。它的主要作用是产生驱动力矩,作为用电器或小型机械的动力源。常用的电机有直流电机、步进

22、电机、舵机等。下面我们大概对直流电机、步进电机、舵机进行一下比照,见表1。表1 电机比照电机优点缺点适用重量应用场合直流电机功率大、接口简单、容易购得型号多较难装配、较贵、控制复杂任何重量的机器人较大型机器人步进电机精确的速度控制型号多、接口简单、廉价体积大,较难装配、功率小、控制复杂轻型机器人巡线跟踪机器人,迷宫机器人舵机易于安装、接口简单、功率中等负载能力较低速度调节范围较小小型机器人,步行机器人通过表1中电机性能的比照,可以确定舞蹈机器人实现各自由度选择的电机。设计舞蹈机器人舞蹈动作时可知道,机器人的头部舞蹈动作较为简单,只需要能在前方180范围内转动,所以头部选择用1个舵机;双臂的舞蹈

23、动作也没有特殊要求,舵机比拟适宜,所以两条手臂选择用8个舵机;舞蹈机器人需要用双腿做滑行动作,选择用直流电机完成,所以双腿需要8个舵机,两个直流电机。由于已经选定舵机,就可以根据参加垫片以后各宽度设计支架的宽度,并按着人体比例设计大腿、小腿处需要的支架的长度。从而计算出组装舞蹈机器人所需要的各部件的尺寸。2. 5 舞蹈机器人的机械部件舞蹈机器人的核心部件是舵机,是舞蹈机器人运动的动力源,选用型号MG995。用于连接舵机与铝合金支架的部件为舵盘,因为舵机左右结构不同,所以舵盘分两种: = 1 * GB3 * MERGEFORMAT 舵盘a用于连接舵机的齿轮端, = 2 * GB3 * MERGE

24、FORMAT 舵盘b用于配合舵机的光滑轴端。用于机器人的四肢主体支撑关节的铝合金支架,起着连接舵机与舵机、舵机与腰部的身体板的重要作用。连接块,在4个面上都有螺纹孔,用于舵机与铝合金关节的连接以及关节与关节之间的连接。腰部身体板,主要用于连接腿部、放置单片机和固定蓄电池。上身支架板,链接腰部、头部与双臂,内部中空。脚底板,中间安装轱辘,可通过直流电机实现滑行功能。2. 6 系统设计方案分析舞蹈机器人控制系统的硬件局部包括电源模块、单片机及外围接口电路模舵机的驱动控制电路 P1 I/OAT89C51 单片机 EXLNTRXD/TXD Vcc 串行通信开关无线启动开关舵机直流电机直流电机的驱动电路

25、外部时钟、复位电路外部程序存储器RS232电平转换电路防碰撞模块PC机编辑舞蹈动作17路舵机2路直流电机AT24C16FLASH MEMORY 电源模块图4 控制系统硬件框图块、存储模块、串行通信模块、电机驱动控制模块及防碰撞模块六大局部,其整体结构框图如图4所示。3 系统硬件选型3.1 单片机可编程控制器局部 单片机概述单片机,全称单片微型计算机英语:Single-Chip Microcomputer,又称微控制器Microcontroller,是把中央处理器、存储器、定时/计数器Timer/Counter、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。与应用在个人电脑中的通用型

26、微处理器相比,它更强调自供给不用外接硬件和节约本钱。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其开展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;由于单芯片微电脑常用于当控制器故又名single chip microcontroller,但是目前在中国大陆仍多沿用“单片机的称呼。单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路集成

27、到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,开展到现在的32位300M的高速单片机。.2 单片机选型单片机及其外围接口电路模块包括单片机、时钟电路、复位电路、外部程序表2 AT89C51单片机的主要特性1与MCS-51 兼容24K字节可编程闪烁存储器3寿命:1000写/擦循环4数据保存时间:10年5全静态工作:0Hz-24Hz6三级程序存储器锁定7128*8位内部RAM832可编程I/O线9两个16位定时器/计数器105个中断源 11 = 11 * MERGEFORMAT 11可编程串行通道12低功耗的闲置和掉电模式13

28、片内振荡器和时钟电路存储电路。根据系统的应用领域、采集数据的类型和大小、I/O口数、以及设置数据需要得内存大小,本文中所选用的单片机采用Atmel公司的AT89C51。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器FPEROMFalsh Programmable and Erasable Read Only Memory的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89

29、C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。其主要特性如表2。3.2 电源模块电源模块就相当于把一个电源所需要的各种元器件集成到一块芯片或者一块电路板上。而电源从根本分类上可以分为线性电源和开关电源两大类,开关电源的效率比拟高,但纹波系数大,而线性电源的特点刚好相反,效率低但精度可以做得很高,所以精密电源根本上都是加了数字控制的线性电源。本设计中的电源模块主要用来给光电隔离前的芯片、光电隔离后的芯片、舵机与直流电机分开供电,使其相互之间不会产生干扰。在电源模块中,由于采用同一个+8V镍镉电池供电,故设计中采用了DC/CD转换模块CD05S0

30、5/5W、光电耦合、7805稳压电路,实现电压的转换和信号的隔离,从而保证其余各电路的正常工作和排除相互之间的干扰。3.3 串行通信模块串行通信模块主要用于AT89C51单片机与PC机之间的串行通信。串行通讯模板只有RS232C或TTY或RS485/422 三种电气接口类型,本设计由于PC机的COM口符合RS-232标准, AT89C51单片机上的串行接口是CMOS电平,在RS-232与CMOS电平通信时,需要电平转换,因此,设计时利用MAX232芯片来作电平转换。MAX232芯片是MAXIM公司生产的、包括两路接收器和驱动器的RS-232电平转换芯片,适用于各种232通信接口,其内部有1个电

31、源电压变换器,可以把输入的+5V电源电压变换成RS-232输出电平所需的10V电压。如图5所示。图5 串行通信模块图3.4 存储模块在舞蹈机器人控制系统中,舞蹈动作的编辑与执行是分开的。舞蹈动作的编辑是在PC机上完成的,而舞蹈动作的执行是在单片机上完成的,因而必须把舞蹈动作进行存储,以转换到单片机上执行。设计中利用AT24C16作为舞蹈动作的存储元件。AT24C16可以充分利用单片机的I/O口,仅需2根通信线,其通信格式是12C总线。3.5 电机驱动控制模块对于舵机和直流电机,其驱动控制稍有不同,现分述如下:3.5.1 舵机的驱动控制模块舵机的控制信号来自AT89C51单片机的P1口,利用三片

32、锁存器74LS573可提供24路控制信号,其中舵机用到17路控制信号。为了防止干扰,17路舵机控制信号和驱动电路应经过TLP-521光电隔离。通过隔离出来的控制信号,还必须接入LM324比拟器,以消除毛刺,增加信号的稳定性,提高信号的输出电流,以便舵机能够正确工作不至于产生不必要的抖动。此外,由于舵机数量多,为了节省I/O口,可通过P1口的分时复用和锁存器来实现。在系统中,由于程序执行都在微秒级,在舞蹈动作执行时,用到定时器中断,而定时器是采用0.25ms进行中断,因而,在时间上完全可以采用分时复用的方法来实现舵机的控制。由于本机器人机构采用了17个舵机,本控制系统就是要实现能同时驱动这17个

33、舵机的功能。由前面的表达知道,舵机的控制信号为周期是20ms的脉宽调制(PWM)信号,其中脉冲宽度从0.5ms2.5ms,相对应舵盘的位置为0180,呈线性变化。也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。舵机输出转角与输入信号脉冲宽度的关系如图6所示。图6 舵机输出转角与输入信号脉冲宽度的关系传统产生PWM波的方法是通过大量的分立元件来实现的,所产生的脉冲频率和宽度往往不是很准确,很难做到对舵机的精确控制。目前,产生PWM波的方法有很多种:最直接的方法就是用单片机本身所带

34、的PWM口产生波形,但该方法受MCU内部资源的限制,仅能实现24路PWM波的输出,对于需要多路舵机的场合显然是不够的。另一种方法就是利用分时复用的思想利用单片机一个中断产生7路控制futaba舵机用PWM波的方法。该方法虽然实现了7路舵机的控制,但也仅能实现7路舵机的控制,并且仅针对特定舵机的控制,控制精度也不高,在一些重要场合的应用受到了限制;还有一种方法就是利用单片机纯软件的循环计数的方法或者,利用硬件定时,软件计数相结合的方法,在不增加任何硬件接口的前提下,实现了多路PWM波的输出。然而此方法大量占用MCU运算时间,根本不能再处理其它的事务,并且精度不高。另外,目前一些数字信号处理芯片片

35、内就集成了PWM波形产生的功能,只需要进行存放器参数的设置就可得到PWM的输出。但在一些只需要简单电机控制的场合,从本钱考虑不需要较为昂贵的数字信号处理芯片。本文采用一片51单片机和一片复杂可编程逻辑器件(CPLD)实现了PWM的产生。由于CPLD具有他特有的并行处理能力和大量的I/O接口,可以同时控制几十甚至上百个舵机同时工作,可以为后续的工作留出一定的空间,但由于CPLD不具备事务处理能力,实际应用中还需要MCU协同工作,本文使用51系列的单片机和CPLD协同控制舵机,另外,使用了单片机,还可以为后续的传感器反应处理留出空间。结构图如图7所示。UART 单片机 8051 下位机RAM控制计

36、算机上位机MAX232 RS232 CPLD舵机117 直流电机 晶振图7 控制系统结构图控制系统如图7所示,选用“上位机+串口+下位机的控制系统解决方案。上位机控制软件的主要功能是对预定的机器人动作进行规划和位置插补,再按照一定时间间隔和次序进行发送给下位机,实现机器人关节位置和近似的速度控制;下位机主要功能是接收上位机发送的位置信号,根据信号要求产生PWM波,控制机器人各个关节舵机运动,使机器人按动作规划完成舞蹈动作。相应的,下位机主要由完成串口通信、数据的调度和17个舵机驱动模块构成。图8为CPLD的17路舵机驱动原理框图,CPLD通过一个简单的接口与51单片机进行通信,把要驱动的17个

37、舵机的PWM信号数据存入到数据存储区,从而通过数字PWM生成器驱动17个舵机转到需要的角度,当需要转换到下一数字PWM生成器117数据存储区与51单片机的接口 PWM波形 117图8 CPLD的17路舵机驱动原理框图个角度时,通过与51单片机的接口,从51单片机中传送新的PWM信号数据到数据存储区中进行更新,这样数字PWM生成器就会驱动舵机转过一个新的角度。舵机的控制电路图如图9所示。图9 舵机的控制电路 3.5.2 直流电机的驱动控制模块 舞蹈机器人进行舞蹈表演时,需要进行滑行表演,这是人体不能做到的。所以机器人的两只脚是通过两个直流电机来运动的。为了使机器人能够实现直线行走、转弯、侧滑等动

38、作,必须对直流电机的转动方向与转速进行控制,为此我们选用了L289N驱动芯片,其控制电路图如上页图10所示。L289N是高电压、高电流的双桥驱动器,利用一片L289N就可以实现对个直流电机的控制。每个直流电机用三路控制信号,其中两路为转向控制信号IN1和IN2或IN3和IN4,一路为转速控制信号ENA或ENB,每组有两路输出信号,可以直接接到直流电机的引线上。通过改变IN1和IN2或IN3和IN4输入端的上下电平值,即可实现直流电机的转向控制。ENA与ENB所引入的信号是PWM波,通过改变PWM波的脉宽,进而改变加在直流电机上的平均电压,就可以实现直流电机的速度控制。为了防止直流电机在启动、停

39、止瞬间所产生的反应电压损坏L289N,在L289N和直流电机之间参加8个二极管,起断电续流的作用,从而保护元件。图10 直流电机驱动控制电路3.6 防碰撞模块由于舞蹈机器人需要运动起来,进行舞蹈动作的表演,难免会出现磕磕碰碰,虽然本设计描述的舞蹈机器人是钢架结构,但也只是外壳比拟结实罢了,本质上舞蹈机器人是一个脆弱的物体。机器人在舞台边缘做一些动作时,就有可能发生碰撞或者卡死,这样会对机器人内部的控制系统硬件造成损毁,所以需要对舞蹈机器人进行防碰撞保护。保护的方式首先在在机器人外部的前后左右方向装了四个碰撞传感器,选择压力传感器,加上相应的逻辑电路,当机器人发生碰撞对压力传感器压力到达对机器人

40、内部电路有损时,产生逻辑信号,舞蹈机器人控制系统中的防碰撞模块对该信号进行处理,作为外部中断信号输入AT89C51单片机,让所有电机都停止工作,从而完成了对发生碰撞或卡死的情况进行处理。此防碰撞功能是通过 AT89C51外部中断来处理的。4 控制系统软件设计软件局部是控制系统设计中最重要的局部,它关系到舞蹈动作的编辑、存储和执行。软件由PC机上的软件设计和单片机上的软件设计两局部组成,在此仅介绍单片机的软件设计。单片机上的控制程序包括一个主程序和相应的中断效劳子程序,其程序流程如图11所示。开始外部中断、定时器中断、串口中断初始化舞蹈动作初始化单片机与PC机串行通信舞蹈动作存储P0.5=1?

41、N P0.4=1? Y N舞蹈动作的读取和执行防碰撞处理 Y结束图11 程序控制总流程图其中P0.5是串行数据的开关控制量,不等于1,表示单片机进入串行中断等待,进而机与PC机进行数据交换,等于1,表示程序往下执行;P0.4是机器人开始跳舞的遥控开关,等于1,表示机器人开始跳舞,否那么,机器人保持原来状态。4.1 主程序主程序主要负责设置堆栈指针和中断向量,对所用到的特殊存放器进行初始化和舞蹈动作初始化,设置定时器中断,设置串口中断和串口通信波特率及开关中断,设置P0.4的状态控制无线遥控器启动机器人,调用相应的子程序。4.2 定时器中断效劳子程序定时器中断效劳子程序用于产生舵机、直流电机的P

42、WM控制信号和加载舞蹈动作。在设计中,由于AT89C51内部的定时器1已作为HSO产生PWM信的时间基准,因而采用定时器2作为舞蹈机器人的时间控制,其中断向量单元为2000H,每0.25ms中断一次,定时时间一到,那么转入中断效劳程序,生成PWM控制信号和直流电机的转动方向控制信号,驱动舵机和直流电机运转,进而控制机器人各个关节做出各种各样的动作。4.3 串行中断效劳子程序串行中断效劳子程序实现AT89C51从PC机下载舞蹈动作和由AT89C51向PC机上传舞蹈动作。通过串行中断,利用AT89C51的TXD、RXD引脚与PC机的COM口实现串行通信,二者之间采用全双工的异步通信模式,其波特率设

43、为9600,此外为了保正数据的正确传输,软件设计了握手协议。在传输数通信的据前,先进行单片机与PC机的握手,采用“与“一对字符进行握手,握手协议通过,表示单片机与PC机建立了可靠的通信,就可以进行数据传输可以了。4.4 外部中断效劳子程序外部中断效劳子程序用于处理机器人的边缘碰撞问题。通过外部中断,对机器人前后左右四个方向上的碰撞做出处理,确保机器人不会因为碰撞影响以后动作的执行。对碰撞的处理,实际上就是改变保存舞蹈动作的存放器,由于每0.5s读取一次动作数据,因此对碰撞的处理只有在碰撞发生后的0.5s内才能生效。只要对直流电机的控制数据设置恰当,就完全可以满足要求,使其不影响以后动作的执行。

44、5 结论本舞蹈机器人的控制系统设计,涉及到了机器人的机械局部、硬件局部和软件局部。在机械局部,本设计采用钢架结构,用舵机模拟人体的关节,通过各个舵机进行各种转角组合而完成机器人的各种仿人形动作,在舞蹈机器人的脚部,装上了轱辘,通过直流电机提供动力,可实现机器人的滑行,这是人类舞蹈动作的禁区。控制系统的硬件局部,是通过Atmel公司的AT89C051单片机微控制器作为控制芯片,来完成舞蹈机器人的控制系统设计的,机器人至今已近进行了半个世纪的开展,各个方面都有成熟的技术了,只是在精细化上有所欠缺,本设计对舞蹈机器人的控制系统设计的浅显探索,希望能够对机器人控制系统的开展有所奉献。参考文献1沙占有,

45、王彦朋单片机外围电路设计M北京:机械工业出版社,20032石秋洁变频器应用根底M北京:机械工业出版社,20033胡汉才. 单片机原理与系统设计M.清华大学出版社 ,2002 4顶峰. 单片微型计算机原理与接口技术M,20035孙涵芳. Intel 16位单片机M . 北京,科学出版社,19986李 华.MCS-51系列单片机实用接口技术M . 北京航空航天大学出版社,1993,8 7潘存云,高里基. 通用工业机器人运动仿真系统 IRKSS. 机器人M,1994,9(2): 94-978 Vision2应用实践M电子工业出版社,2004 9丹尼斯.克拉克,迈克尔.欧文斯机器人设计与控制M科学出版

46、社,200410解仑,王志良,李华俊双足步行机器人制作技术M机械工业出版社,2021 11万光毅,严义,邢春香单片机实验与实践教程一第二版M北京:北京航空航天大学出版社,200612梅晓榕、柏桂珍、张卯瑞自动控制元件及线路M北京:科学出版社,200713陈石胜单片机技术“做中学实例教程M北京:国防工业出版社,202114王毅单片机器件应用手册M北京:人民邮电出版社,199415杨帮文.实用电子小制作精选M,北京:人民邮电出版社,200616Siemens AG,SIMATIC STEP7编程手册Z,2017Z.Yan. A microstrip patch resonator with a v

47、ia connecting ground planeJ, Microwave and optical technology letters.2002,118Dogra AK, Indian Agr Res Inst, Div Agr Engn, New Delhi 110012, India. Development of an intelligent controller for greenhouse management.Acta Horticulturae,2002,0(578)附录系统程序#include /51芯片管脚定义头文件#include /内部包含延时函数 _nop_()#d

48、efine uchar unsigned char#define uint unsigned intsbit SDATA_595=P30 ; sbit SCLK_595 =P31 ; sbit RCK_595 =P36 ; uchar run=0; uchar num=0; uchar i;sbit in0=P10;sbit in1=P11;sbit in2=P12;sbit in3=P13;sbit in4=P14;sbit in5=P15;sbit in6=P16;sbit in7=P17;sbit in8=P00;unsigned char state0_A=0;unsigned cha

49、r state0_B=0;unsigned char state1_A=0;unsigned char state1_B=0;unsigned char state2_A=0;unsigned char state2_B=0;nsigned char state3_A=0;unsigned char state3_B=0;unsigned char state4_A=0;unsigned char state4_B=0;unsigned char state5_A=0;unsigned char state5_B=0;unsigned char state6_A=0;unsigned char

50、 state6_B=0;/unsigned char state7_A=0;/unsigned char state7_B=0;/unsigned char state8_A=0;/unsigned char state8_B=0;unsigned int temp=0 xffff;unsigned int temp_595;unsigned int temp_0;unsigned int temp_1;unsigned int temp_2;unsigned int temp_3;unsigned int temp_4;unsigned int temp_5;unsigned int tem

51、p_6;unsigned int temp_7;unsigned char P17_temp;unsigned char P17_flag;unsigned int num_0=0 xffff;unsigned int num_1=0 xffff;unsigned int num_2=0 xffff;unsigned int num_3=0 xffff;unsigned int num_4=0 xffff;unsigned int num_5=0 xffff;unsigned int num_6=0 xffff;/unsigned int num_7=0 xffff;/unsigned int

52、 num_8=0 xffff;unsigned int count_0=0;unsigned int count_1=0;unsigned int count_2=0;unsigned int count_3=0;unsigned int count_4=0;unsigned int count_5=0;unsigned int count_6=0;/unsigned int count_7=0;/unsigned int count_8=0; void WR_595(); void OUT_595(); void scan(); void start_595(void); void stop

53、(void); void moto0(unsigned char s0); void moto1(unsigned char s1); void moto2(unsigned char s2); void moto3(unsigned char s3); void moto4(unsigned char s4); void moto5(unsigned char s5); void moto6(unsigned char s6); void moto7(unsigned char s7); void scan0(unsigned int n0); void scan1(unsigned int

54、 n1); void scan2(unsigned int n2); void scan3(unsigned int n3); void scan4(unsigned int n4); void scan5(unsigned int n5); void scan6(unsigned int n6); void scan7(unsigned int n7); void delay50ms(int ms);/*/*将移位存放器内的数据锁存到输出存放器并显示 */*/ void OUT_595(void) RCK_595=0 ; _nop_() ; _nop_() ; RCK_595=1 ; /上升

55、沿将数据送到输出锁存器 _nop_() ; _nop_() ; _nop_() ; RCK_595=0 ;/*/* 595开启子程序 */*/ void start_595(void) WR_595();OUT_595();_nop_() ; /*/* 停止子程序 */*/ void stop(void) temp=0 xffff; /取数据 WR_595(); /把数据写入595的存放器 OUT_595(); _nop_() ; /*/* 延时子程序 */*/void delay50ms(int ms) int k ; while(ms-) for(k=12500; k0 ; k-) _no

56、p_() ; _nop_() ; _nop_() ; _nop_() ; /*/* 开关电机 */* 0-关电机 /关某位用 1 或,其他位为0 */* 1-正转 /开某位用 0 与,其他位为1 */* 2-反转 */*/void moto0(unsigned char s0) switch(s0)case 0: temp_0=temp; temp_0|=0 x0003; temp=temp_0; break ; /关电机 case 1: temp_0=temp; temp_0&=0 xfffe; temp=temp_0; break ; /正转case 2:temp_0=temp; temp

57、_0&=0 xfffd; temp=temp_0; break ; /反转void moto1(unsigned char s1) switch(s1)case 0: temp_1=temp; temp_1|=0 x000c; temp=temp_1; break ; /关电机 case 1: temp_1=temp; temp_1&=0 xfffb; temp=temp_1; break ; /正转case 2:temp_1=temp; temp_1&=0 xfff7; temp=temp_1; break ; /反转 void moto2(unsigned char s2) switch(

58、s2)case 0: temp_2=temp; temp_2|=0 x0030; temp=temp_2; break ; /关电机 case 1: temp_2=temp; temp_2&=0 xffef; temp=temp_2; break ; /正转case 2:temp_2=temp; temp_2&=0 xffdf; temp=temp_2; break ; /反转void moto3(unsigned char s3) switch(s3)case 0: temp_3=temp; temp_3|=0 x00c0; temp=temp_3; break ; /关电机 case 1:

59、 temp_3=temp; temp_3&=0 xffbf; temp=temp_3; break ; /正转case 2:temp_3=temp; temp_3&=0 xff7f; temp=temp_3; break ; /反转void moto4(unsigned char s4) switch(s4)case 0: temp_4=temp; temp_4|=0 x0300; temp=temp_4; break ; /关电机 case 1: temp_4=temp; temp_4&=0 xfeff; temp=temp_4; break ; /正转case 2:temp_4=temp;

60、 temp_4&=0 xfdff; temp=temp_4; break ; /反转void moto5(unsigned char s5) switch(s5)case 0: temp_5=temp; temp_5|=0 x0c00; temp=temp_5; break ; /关电机 case 1: temp_5=temp; temp_5&=0 xfbff; temp=temp_5; break ; /正转case 2:temp_5=temp; temp_5&=0 xf7ff; temp=temp_5; break ; /反转void moto6(unsigned char s6) swi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论