基于单片机的轮式机器人舵机控制 毕业论文_第1页
基于单片机的轮式机器人舵机控制 毕业论文_第2页
基于单片机的轮式机器人舵机控制 毕业论文_第3页
基于单片机的轮式机器人舵机控制 毕业论文_第4页
基于单片机的轮式机器人舵机控制 毕业论文_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、防 灾 科 技 学 院毕 业 设 计题 目基于单片机的轮式机器人舵机控制学生姓名学 号系 别防灾仪器系专 业电气工程及其自动化班 级开题时间2012年12月25日答辩时间2013年06月06日指导教师职 称副教授2基于单片机的轮式机器人舵机控制摘要 在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。论文设计了一种采用舵机控制技术的轮式机器人,单片机软件程序采用c语言编程,通过使用单片机内部计数器的定时器功能,在中断服务程序中,对I/O口进行操作输出PWM,对舵机的方向及速度进行控制。将设计的机器人系统在proteus仿真环境中搭建,对整个系统进行仿真,模拟系统的控制。最后,将仿真调试好

2、的系统应用于实际的轮式机器人中,实验结果表明,本设计方案可以实现机器人的转角控制,速度控制,实现了轮式机器人的智能化运动。关键词:单片机; 定时器; proteus仿真; 舵机控制Wheeled Robot Servo Control Based on MicrocomputerAuthor XIONG TaoTeacher CAI Jian-xianAbstract In mechanical and electrical control system of the robot, the steering gear control effect is one of the important

3、 factors affecting performance. A kind of steering gear control technology of the wheeled robot is designed in the paper. The single-chip microcomputer software program using c language programming and the single chip microcomputer internal counter timer function to manipulate output PWM in the inte

4、rrupt service routine. I/O ports control the direction and speed of the steering gear. The designed robot system is set up in the protues simulation environment and simulates control system. Finally, the simulation debugging good system is applied to the actual wheeled robot. Experimental results sh

5、ow that the designed mechanism can control the corner angle and speed of robot and implements the intelligent movement of wheeled robots.Key words: single chip microcomputer; timer; protues simulation; servo control目录引言11总体方案设计22硬件设计22.1控制模块22.2舵机模块82.3红外接收模块92.4电源设计103软件设计113.1综合程序设计113.2舵机驱动程序设计11

6、3.3红外程序设计123.4程序124开发和仿真134.1程序开发环境介绍和应用134.2仿真系统的介绍和应用155组装和调试175.1舵机调零175.2组装185.3 调试19结论21致谢21参考文献23附录24防灾科技学院毕业设计引言轮式机器人在当今社会中的应用越来越广泛,具有移动速度快,运行平稳的特点。轮式机器人多应用在地面平坦,需要平稳运行的场合,例如工厂内的自动循迹送货机器人、家庭内使用的清洁机器人。大多数轮式机器人采用的是直流电机作为驱动电机,但是直流电机的驱动需要有单独的驱动电路,并且对其的控制精度不能保证。所以本设计采用舵机作为轮式机器人的驱动电机。舵机在现代生活中越来越重要,

7、尤其是在现代工业生产中。舵机的应用范围比较广泛。在船舶工业中,舵机有着十分重要的作用,用来控制船的前进方向。在航天领域中,舵机控制着飞行器的前进方向,对整个控制系统至关重要。在机器人中,由于舵机可以精确快速的调整到特定位置,所以舵机在机器人中的应用很广泛。因此,能准确控制着舵机的速度和方向对现代工业有着重大的意义1-6。现在有些人采用模拟电路来控制舵机,这样控制起来容易受到外界的干扰,运行起来也不太稳定。为此本设计采用单片机来控制,这样既满足了快速性,又能满足准确性。单片机在现代控制中占有重要的地位7,8,采用的AT89S52单片机资源也十分的丰富。本次设计的目的就是在理论学习的基础上,通过完

8、成一个涉及AT89S52单片机应用并具有综合功能的最小系统目标板的设计与编程应用,使我们能够将理论知识与实际应用结合起来,加深了对理论知识的理解,而且对电气、电子电路、电子元器件、印刷电路板的知识进一步加深了解,在软件编程的同时,布置和调试、焊接技术及相关设备使用技能得到全面的锻炼和提高,为将来能独立一些单片机应用系统的开发设计工作打下一定的基础。同时在设计之初先采用Proteus进行仿真,加快了设计的进程,使设计出实物的成功率更高9-11。1总体方案设计本设计的机器人采用的是舵机作为驱动轮,舵机的控制信号是周期为20Ms,脉冲宽度为0.5Ms到2.5Ms的PWM信号。采用单片机作为控制芯片。

9、通过接收红外遥控器发出的信号,来遥控机器人的运行。同时要将舵机的供电与单片机的供电隔离开来,防止舵机运行过程中的电压波动影响到单片机的工作。PWM波红外线舵机遥控器单片机+6V+5V电源模块图1.1 系统结构图2硬件设计2.1控制模块考虑到该对舵机控制是由PWM信号完成的,又知道PWM信号的脉冲宽度是由0.5MS到2.5MS变化。即PWM信号要做到微秒级的变化。而AT89S52单片机若采用12MHz的晶振,其工作频率为1MHz,可以满足要求,再加上其性能可靠,价格便宜,便于入门。所以采用AT89S52单片机最为控制芯片。2.1.1 单片机的基本发展概况从第一台单片机问世至今三十多年以来,我国开

10、始使用单片机是在1982年,短短五年时间里发展极为迅速。目前单片机产品已达50多个系列,300多种型号,且综合性能、成本、体系结构、开发环境等都取得了显著的进步。单片机就其字长可分为4位机、8位机、16位机和32位机,其中8位机长期以来都是主流机型,在我国应用尤为广泛,且在今后的很长时间内仍具有相当的活力。以8位机为例,单片机的发展历史可综合为单片机初级阶段、单片机完善阶段、微控制器形成阶段和微控制器成熟阶段等四个阶段。单片机也可以称之为微控制器(Microcontroler),是因为它最早的应用领域是工业控制。起初单片机只是一个只有CPU的芯片,它作为专用的处理器。在此基础上慢慢发展而来。单

11、片机最初的设计为了让系统变小,更加容易的被应用集成进更加复杂要求更加严格的控制场合当中,将CPU和大量的外设集成在一个很小的芯片中。INTEL的Z80处理器就是这种设计思想最早的应用,单片机和专用处理器在此之后便向不同的方向发展。单片机的结构:单片机当中包括CPU、RAM、ROM、I/0口等各个主要的部件,并且把这些部件集成在一块小小的芯片上。但是尽管各个主要器件仅仅集成在一块很的小芯片上,但是它包括了构成一个完整的计算机所需要的绝大部分硬件:CPU、ROM、RAM、外部总线。同时还包括定时器、实时时钟、通讯接口等外围设备。更有甚者甚至可以将复杂的输入输出系统、网络、图像、声音等功能都集成在芯

12、片内部。2.1.2 单片机特点单片机是一种在线式的实时控制的计算机,在线式就是现场控制,需要有比较好的抗干扰能力,低的成本。单片机是靠程序的,并且可以修改。不同的程序以实现不同的功能,对于一些比较特殊的功能,其他器件很难或者是根本就不可能做到。单片机还具有优异的性价比、集成度很高、体积小、可靠性很高。单片机的各功能部件都集成在一块芯片当中,内部采用的是总线结构,这样就减化了各部件之间的连接,在很大程度上提高了其抗干扰能力和工作的可靠性。另外,其体积小,易于屏蔽外界的强磁场干扰,适合在比较恶劣环境下工作。单片机的指令系统中有非常丰富的转移指令、位处理功能以及I/O口的逻辑操作,这样就满足了工业控

13、制的要求。其逻辑控制的功能以及其运行速度都比同一档次的微机要高。单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统总线方式,进一步缩小了体积,简化了结构。外部总线增加了 I2C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行总线。因为单片机体积小,通常都被放在被控目标的内部。在全部装置中,它的作用和人脑一样,它出了问题,全部装置就瘫痪了。目前单片机的应用领域十分广泛,如通讯设备、智能仪表、导航系统、实时工控、家用电器等。产品一旦使用了单片机,产品就有了能够换代升级的功效,通常在使用了单片机的产品名称之前

14、加上一个形容词“智能型”,比如智能型电子表等。现在有些业余电子爱好的开发者或工厂的技术人员制作出来的产品,不是功能太简单且极易被仿制,就是电路太复杂。这其中的原因,可能就是在产品中没有使用单片机或者是其的它可编程逻辑器件。2.1.3 单片机的应用在当今的时代单片机的应用扩展到了我们生活的很多领域,很难找到单片机涉及不到的领域。通信、汽车系统、门禁系统、各种仪器仪表、电视系统、甚至是在军工领域等等。在自动控制领域的智能仪表、机器人、医疗器械等方面就更加与单片机相关了。因此,对于单片机的学习是十分有用的这可能造就一批智能化控制与计算机应用的工程师、科学家。单片机广泛应用于家用电器、仪器仪表、航空航

15、天、医用设备、过程控制12,13及专用设备的智能化管理等领域,大盖分如下几个领域:(1)在家用电器中的应用现在的家用电器大部分都使用单片机控制,从电子秤量设备、电饭褒、洗衣机、空调机、电冰箱、其他音响视频器材再到彩电,无所不在、五花八门。(2)在智能仪器仪表上的应用单片机具有体积小、控制功能强、功耗低、微型化、用方便和扩展灵活使等优点,被广泛应用于仪器仪表的设计中,组合上不同种类型的传感器,可实现诸如频率、电压、硬度、压力、湿度、元素、功率、温度、流量、长度、速度、角度、厚度等物理量的检测。运用单片机的控制使得仪器仪表微型化、智能化、数字化,且功能更加强大。比如更加精密的测量设备 (示波器,功

16、率计,各种分析仪等)。(3)单片机在医用设备领域中的应用单片机在医用设备当中的用途也是相当广泛,例如病床呼叫系统、医用呼吸机,监护仪,各种分析仪及超声诊断设备等等。此外,单片机在金融、科研、工商、国防航空航天、教育、等领域都有着非常广泛的应用。(4)在工业控制中的应用用单片机可以构成多种多样的数据采集系统、控制系统。例如各种报警系统、电梯智能化控制、计算机联网构成二级控制系统,和工厂流水线的智能化管理等。(5)在计算机网络和通信领域中的应用现代的单片机普遍都具备通信的接口,可以很方便地与计算机进行数据的通信与交流,给在计算机网络与需要通信的设备之间的应用提供了非常好的物质条件,现在的通信设备大

17、部分都实现了用单片机智能控制,从小型程控、手机,交换机、电话机、列车无线通信、楼宇自动通信呼叫系统、再到日常工作中随处可见的集群移动通信、移动电话、无线电对讲机等。2.1.4 MCS-51单片机MCS-51是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了很多品种,如8031,8051,8751,8032,8052,8752,8952等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS-51系列单片机。MCS-51系列单片机分为两大系列,即51子系列与52子系列。51子系列:基本型,根据

18、片内ROM的配置,对应的芯片为8031、8051、8751、8951。52子系列:增强型,根据片内ROM的配置,对应的芯片为8032、8052、8752、8952。而本设计就采用AT89S52单片机MCS-51系列单片机为哈佛结构(而非普林斯顿结构),其基本情况如下:(1) 内ROM:4KB(2) 内RAM:128B(52系列为256B)(3) 外ROM:64KB(4) 外RAM:64KB(5) I / O线: 32根(4埠,每埠8根)(6) 定时/计数器:2个16位可编程定时/计数器(52系列为3个16位定时/计数器)(7) 串行口:全双工,2根(8) 寄存器区:工作寄存器区、在内128B

19、RAM中,分4个区(9) 中断源:5个源中断,2级优先(52系列为6个中断源,2级优先)(10) 堆栈:最深128B(11) 布尔处理机:位处理机,某位单独处理(12) 指令系统:五大类,111条51系列单片机8031、8051及AT89S52均采用DIP40的封装。图2.1是它们的引脚配置:40个引脚中,有一个电源正引脚,一个电源负引脚,两个外置的晶体振荡器引脚,4组8位共32个I/O口,P3口线复用。图2.1 51系列单片机引脚图下面对单片机引脚的功能加以说明:Pin20:GND接地脚。Pin40:VCC正电源脚,工作时,接正5V电源。Pin19:时钟XTAL1引脚,接外部晶振的一端。它是

20、片内振荡器反相放大器的输入端。在采用外部时钟时,外部时钟振荡信号直接送入此引脚作为驱动端,其频率为033MHz。Pin18:时钟XTAL2引脚,接外部晶振的另一端。它是片内振荡器反相放大器的输出端,振荡电路的频率为晶振振荡频率。当采用外部时钟电路时,此引脚应悬空不用。AT89S52的时钟有两种方式,一种是片内时钟振荡方式,但需在18和19脚外接石英晶体(2-12MHz)和振荡电容,振荡电容的值一般取10p-30p。另外一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2输入。 内部时钟方式 外部时钟方式图2.2 单片机时钟电路Pin39-Pin32:为P0口引脚。P0口是一个标准的

21、双向8位并行口,既可以用作通用I/O口,也可以用作地址/数据线。由特殊功能寄存器P0管理P0口各位的工作状态,其地址为80H,各位地址为80H87H。它分时提供低8位地址和8位数据,故这些I/O线有“地址/数据总线”之称,简写为AD0AD7。Pin1-Pin8:为P1口引脚。P1口是一个准双向的8位并行口,主要作为通用I/O口使用。由特殊功能寄存器P1管理P1口各位的工作状态,其地址为90H,各位地址为90H97H。Pin21-Pin28:为P2口引脚。P2口是一个准双向的8位并行口,既可以作为通用I/O口使用,也可以作为高8位地址线使用。由特殊功能寄存器P2管理P2各位的工作状态,其地址为A

22、0H,各位地址为A0HA7H。Pin10-Pin17:为P3口引脚。P3口是一个多功能双向8位并行口,它的每一位既可以作为通用I/O口使用,又都具有第二输出功能。由特殊功能寄存器P3管理P3口各位的工作状态,其地址为B0H,各位地址为B0HB7H。Pin9:RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。 AT89S52的复位方式可以是自动复位,也可以是手动复位,见图2.3。此外,RESET/Vpd还是一复用引脚,Vcc掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。 上电自动复位电路 手动

23、复位电路图2.3 8051复位电路Pin30:ALE/为地址锁存允许输出/编程脉冲输入端。Pin31:为内、外程序存储器选择/变成电源输入端。MCS-51的CPU能处理8位二进制数或代码。CPU是单片机的主要核心部件,在CPU里面包含了运算器、控制器以及若干寄存器等部件给成。MCS-51内部有4KB或8KB的只读随机存储空间(51系列一共有4KB,52系列一共有8KB),用来存放程序、原始数据或者是表格。因此它被称之为程序存储器,简称内部RAM,寻址范围为00000FFFH。MCS-51外部分别有64KB的RAM和64KB的ROM,称为外部数据存储器和外部程序存储器,寻址范围为0000HFFF

24、FH。51系列一共有2个16位的定时器/计数器(52系列一共有3个16位的定时器/计数器),通过塔门可以实现计数或定时的功能,并且可以通过它定时或者是计数的结果对单片机进行控制。定时的功能靠的是内部分频时钟频率计数来实现,当用作计数器时,可以对T0或者是T1端口的低电平脉冲进行计数。MCS-51一共有4个8位的I/O口(P0、P1、P2、P3)以实现数据的输出和输入。MCS-51有一个全双工的可编程的串行口,以实现同其它设备进行串行数据接收和发送。这个串口有很强的功能,既可作为移位器使用作,同时也可做为全双工异步通信收发器使用。TXD(P3.1)脚为发送端口,RXD( P3.0)脚为接收端口。

25、MCS-51单片机有很强的中断功能,可以满足不同控制场合应用的要求。51系列有5个中断源(52系列有6个中断源),即外部中断2个,定时中断2个,串行中断1个,全部中断分为高级和低级共二个优先级。2.2舵机模块舵机可分为位置伺服舵机,速度伺服舵机,扭矩伺服舵机。本设计主要作为机器人的驱动轮,可实现机器人的前进、后退、转弯等操作,且对其扭矩的要求不高,所以本设计中采用速度伺服舵机。 舵机是一个闭环控制系统。其输入信号为周期为20Ms,脉宽变化范围为0.5Ms到2.5Ms的PWM波。PWM信号经过解调后得到一个直流偏置电压,舵机中的直流电机与一个电位器相连,直流电机的转动带动电位器转动,电位器又可以

26、输出一个电压(这是反馈信号),直流偏置电压与这个电位器得到的电压经过电压比较器后得到的电压差输入控制芯片中,来完成对对舵机的控制。所以对舵机的控制,即对PWM波形的控制。图2.4 舵机以上说的是位置伺服舵机的原理,其实速度伺服舵机的原理是大同小异的,只不过随直流电机转动的电位器变成了事先固定好的电位器或电阻,输出一个固定的电压,这个电压对应的就是使舵机停转的PWM信号得到的直流偏置电压值,所以也可以通过调整这个电压的值,来调整舵机停转的PWM脉宽。当PWM的脉宽为0.5Ms或2.5Ms时,舵机正转或反转的速度最快,当脉宽越接近1.5Ms时转速越慢,当脉宽为1.5Ms时舵机停转。2.3红外接收模

27、块红外遥控器采用UPD6422编码方式,一帧码含有一个引导码,8位用户编码,8为用户编码反码,8位键数据码,8位键数据码反码。引导码由9Ms高电平及4.5Ms低电平组成。用户编码、键数据码及其反码采用脉冲位置调试方式(PPM)编码。利用之间的时间间隔来区分“0”和“1”。图2.5 红外波形红外接收模块采用VS1838B。VS1838B采用小型设计。内置专用IC,宽角度及长距离接收,抗干扰能力强,能抵挡环境干扰光线,最低可在2.7V的电压下工作。图2.6 红外接收模块VS1838B2.4电源设计由于本设计中有2路舵机,及其他外围器件,采用2节18650电池供电。舵机部分直接采用18650供电,单

28、片机采用7805芯片稳压后得到的+5V电源供电。这样就将舵机的供电系统与单片机的供电隔离开来,抑制了舵机转动的时候对单片机的供电产生的扰动。7805芯片是一个三段正电源稳压芯片,输入电压为+5V+18V,输出电压为+5V。其最大输出电流为1.5A。有热过载保护,短路保护,输出晶体管安全工作区保护功能。图2.7 稳压芯片78053软件设计3.1综合程序设计程序由舵机驱动程序和红外解码程序组成。初始化机器人停止。当红外接收到前进、后退、停止、转向命令时,将舵机状态变量更新为相应值,通过舵机驱动函数来驱动舵机做出相应动作。3.2舵机驱动程序设计由于控制舵机需要产生一个周期为20Ms,脉宽变化范围为0

29、.5Ms到2.5Ms的PWM波。且对PWM波的精度有一定要求,所以采用单片机的定时器1来产生一个基准时钟,在此基础上输出2路PWM波,来分别控制4个舵机。舵机程序流程图如图3.1所示。定时器中断NUM值+1计数值与设定值相比较输出高电平输出低电平定时器初始化NUM值大于等于最大值NUM值小于最大值计数值小于设定值计数值大于设定值图3.1 舵机程序流程图定时器1的工作方式为方式1,初值设定为TH1 = (65536 - 100) / 256;TL1 = (65536 - 100) % 256。即定时器1每隔0.1Ms产生一次中断。每当定时器1产生中断时,变量NUM自动加一,当加到200时自动清零

30、,一产生一个20Ms的周期脉冲,在分别设定两个变量PWM_NUM_L,和PWM_NUM_R这两个变量值的范围在5-25之间,通过这两个变量值和NUM值的对比来产生输出的高电平。通过这两个变量的设置来产生时间长度为0.5Ms到2.5Ms的高电平。但是考虑到在实际运行时中断函数中还有程序运行,实际的产生中断的时间要长一些,在经过仿真个实际的情况调整相应的参数,以满足实际的需要。最后经过仿真和实际的运行后,得到了确切的运行参数,NUM变量的最大值为182,即当NUM值达到182时自动清零,能产生20.0733Ms的周期脉冲。PWM_NUM_L和PWM_NUM_R的变化范围为4到22,产生0.548M

31、s到2.528Ms的高电平。在通过分别设置两边舵机的运动速度来达到控制机器人前进后退转弯的目的。3.3红外程序设计红外解码由外部中断0口来实现,当接收到红外信号时,进入外部中断0,首先检测9Ms和4.5Ms的引导码,之后通过计算高电平的时长,来识别编码是1还是0,并且将4组编码分别计入4个数组中,舍弃用户码和用户反码。通过键值反码来校验键值编码是否接收正确。最后输出键值编码。舵机控制程序的源代码见附录。4开发和仿真4.1程序开发环境介绍和应用本设计程序采用C语言编写,用的是Keil软件进行开发。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,C语

32、言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。(1) 程序编写和编译先用Keil软件编写程序,程序编写好后,进行编译。图4.1 编译程序(2) 程序仿真程序编译通过后点击Debug按钮进入仿真界面,进行程序仿真。图4.2 仿真界面(3) 获得波形仿真时可以分别得到周期为20Ms的脉冲波形,如图4.3和图4.4得到的是周期为20Ms,当舵机停转时脉宽为1.54Ms的波形。图4.3 20Ms周期PWM的波形图4.4 1.5

33、4Ms舵机停转的PWM波形(4) 得到HEX文件之后将生成可烧写的HEX文件。图4.5 生成HEX文件4.2仿真系统的介绍和应用4.2.1 Proteus的介绍Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。采用这款软件可以大大的缩短我们做设计的开发周期。我们可以先在仿真系统中搭建好这个系统,然后直接连接好导线,编程调试。这样就可以避免在

34、程序没有调好的情况下,直接去焊接硬件。直接焊接硬件可能会因为硬件没有焊接好,在调试过程中有出现错误不知道是硬件原因还是软件原因。这样就给这个设计的开发增加了难道。本系统中采用的51单片机和舵机在仿真系统中都可以找到相应的模型。还可以采用系统中提供的示波器,对输出端口的波形测试。4.2.2 仿真系统的搭建首先在仿真系统中搭建单片机最小系统。搭建最小系统的步骤如下图4.6所示。图4.6 最小系统最小系统搭建好了之后就开始放置单片机外围器件了。器件放置如下图所示。在原理图中还放置了示波器用于观察I/O口的状态,便于调试程序。如图4.7所示。图4.7 原理图4.2.3 系统仿真理图画好之后就可以将得到

35、HEX文件放入单片机中进行仿真了,点击仿真按钮之后出现如图4.8画面。图4.8 仿真运行图从图12们可以清楚地看到单片机I/O口的状态,红色代表高电平,蓝色代表低电平。在仿真环境中看图的电平状态,就可以分析出系统的工作状态。由于单片机要产生PWM波,外加一个示波器来观察输出的PWM波。在仿真时打开示波器就可以看到示波器的面板。图4.9 仿真波形图5组装和调试5.1舵机调零先将各个舵机依次接入停止信号,并调整舵机后方的电位器,直到舵机停止转动,就完成了舵机调零。图5.1 舵机调零5.2组装将舵机安装到舵机支架上,然后安装到机器人底部。图5.2 将舵机安装到机器人底部将各个电源线和信号线接好。图5

36、.3 机器人实物图5.3 调试机器人安装完成,进行调试,其运行效如图5.4图5.9所示,机器人的运行结果表明,论文设计的舵机控制方案可以实现机器人的转角控制,速度控制,机器人运行效果较理想,实现了轮式机器人的智能化运动。图5.4 开始运行图5.4 直行运动图5.5 后退运动图5.6 原地左转运动图5.7 原地右转运动图5.8 左转弯运动图5.9 右转弯运动结论论文设计了一种采用舵机控制技术的轮式机器人,由单片机内部定时器产生脉冲基准控制PWM的输出,对舵机的方向及速度进行控制。将设计的机器人系统在protues仿真环境中搭建,对整个系统进行仿真,模拟系统的控制。最后,将仿真调试好的系统应用于实

37、际的轮式机器人中,实验结果表明,本设计方案可以实现机器人的转角控制,速度控制,实现了轮式机器人的智能化运动。致谢感谢指导老师的悉心指导,感谢同组的同学所付出的辛勤劳动以及对我的真诚帮助。感谢蔡老师,她对整个设计的选题到设计过程中给与指导和鼓励。感谢其他老师和同学对我的帮助和指点。老师用辛勤劳动的汗水浇灌我们,使我们能更好的成长,能收获更有用的知识,我知道我有学不足的地方,但是我努力了,所学的成绩希望得到老师们的认可。做论文也许呈现我的一些不足,如计算机水平掌握不足、思路不够严密、文句不够通顺等,希望老师谅解。但是通过这次的锻炼,使我懂得了做事要认真、仔细。在论文即将完成之际,我的心情无法平静,

38、从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意。参考文献1 章家保,刘慧,贾宏光,宣明.电动舵机伺服系统的模型辨识及其矫正J.光学精密工程,2008, 10(16) : 19711976.2 方庆山,林春方.一种基于AT89C2051的多路舵机控制方案设计J.微特电机,2009, 7: 5658.3 赵小龙,马铁华,刘艳莉.一种数字化舵机系统设计与实现J.核电子学与探测技术,2012 ,32: 522555.4 刘歌群,卢京潮,艳建国,薛尧舜.单片机产生7路舵机控制PWM波方法J. 机械与电子,2004 2: 7678. 5 侯红,李建国

39、,王龙.一种基于新型自抗扰控制的舵机系统J.电光与控制,2011,18(7): 2631.6马云,石秀华,贺天鹏. IIC总线的四路舵机控制系统研究J.机械与电子,2012,5: 3539.7 张毅刚,彭喜元,彭宇.单片机原理及应用M.北京:高等教育出版社,2010. 8 王允上学用单片机制作机器人 M北京:科学出版社,20129 谢龙汉,莫衍Proteus电子电路设计及仿真 M北京:电子工业出版社,201210 彭伟. 单片机C语言程序设计实训100例:基于8051+Proteus仿真 M北京:电子工业出版社,200911 冯晓伟,王雷阳,李正生.多路舵机控制PWM发生器的设计与Proteu

40、s仿真J. 现代电子技术,2011 ,34(11): 167169.12 李国勇.过程控制系统M.北京:电子工业出版社,2009.13 颜嘉男.伺服电机应用技术M.北京:科学出版社,2010.附录源程序代码#include#include drives.h#include IR.hint main(void)IR_initialization();drives_initialization();drives(GO1);while(1)drives(duoji_state);void IR() interrupt 0 unsigned char j = 0, k = 0, N = 0;EX0 =

41、 0;delay(15);if(IRIN = 1)EX0 = 1;return;while(!IRIN);for(j = 0;j 4; j+)for(k = 0; k = 30)EX0 = 1;return;IR_buffj = IR_buffj 1;if(N = 8)IR_buffj = IR_buffj | 0x80;N = 0;if(IR_buff2 != IR_buff3)EX0 = 1;return;IR_duoji();EX0 = 1;IRIN = 1; void time1() interrupt 3TH1 = (65536 - 100) / 256;TL1 = (65536 -

42、 100) % 256;NUM +;if(NUM = 177)NUM = 0;if(PWM_NUM_L NUM)PWM_L = 0;else PWM_L = 1;if(PWM_NUM_R NUM)PWM_R = 0;else PWM_R = 1; 3.4.2 drives程序#ifndef _drives_h_#define _drives_h_#define STOP 0x0c#define GO1 0x0e#define GO2 0x0d#define BACK2 0x0a#define BACK1 0x0b#define TURN_LEFT1 0x02#define TURN_LEFT2

43、 0x03#define TURN_RIGHT1 0x04#define TURN_RIGHT2 0x05sbit PWM_L = P00;sbit PWM_R = P01;unsigned char PWM_NUM_L = 0, PWM_NUM_R = 0, NUM = 0;void drives_initialization()EA = 0;TH1 = (65536 - 100) / 256;TL1 = (65536 - 100) % 256;TMOD |= 0x10;ET1 = 1;EA = 1;TR1 = 1;void drives(unsigned char input)switch(input)case GO1 : PWM_NUM_L = GO1;PWM_NUM_R = GO1;break;case GO2 :PWM_NUM_L = GO2;PWM_NUM_R =

温馨提示

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

评论

0/150

提交评论