资源描述
精选优质文档-倾情为你奉上专业综合实验设计报告 项 目:自动循迹轮式机器人的设计制作 班 级: 电131 姓 名: 学 号: 同组同学: 学 期: 2016-2017-1 1 实验目的和要求1.1实验目的自动循迹、智能避障机器人是一个与电气工程专业有着密切关系的实际工程装备,本综合实验以此为依托,把自动循迹避障轮式机器人能够沿着设置的道路路线运动作为控制目标,完成从模型建立、控制方案确定、控制参数仿真分析、硬件线路设计到实物机械安装、硬件安装调试、控制程序编写集成、系统调试等步骤过程的训练。本实验涉及到电路分析、电子技术、电力电子技术、电机学、电力拖动、自动控制原理、传感器与检测技术、电机控制技术等课程的理论和实验知识。是学生接触实际电气工程专业复杂工程问题的重要及关键途径。通过实验培养学生实践动手能力,运用现代工程工具和信息技术工具的能力,分析和解决实际工程问题的能力。从而使学生初步能够解决主要涉及电气工程专业知识的复杂工程问题。1.2实验要求要求同学综合运用课程的理论和实验知识,以自动循迹避障轮式机器人能够以一定的速度沿着设置的道路路线运动作为控制目标(技术指标为:机器人行走速度1m/s,行走偏离导航的线速度2/3车身宽度),要求完成从模型建立、控制方案确定、控制参数仿真分析、硬件线路设计到实物机械安装、硬件安装调试、控制程序编写集成、系统调试等实验步骤。具体要求为:1)检索资料,对自动循迹避障轮式机器人的发展状况,当前的研究热点,技术发展的现状,发展趋势有所了解,查阅工程规范文件、产品样本、使用说明,了解实际系统运行时必须遵守的工程规范和系统实现时所受到的商用产品的实际限制。2)理解自动循迹避障轮式机器人的机械结构,用CAD软件绘制机械零部件的加工图纸,安装自动循迹避障轮式机器人。3)综合运用物理特性分析法和实验参数测定法建立自动循迹避障轮式机器人的数学模型,必要时在工作点附近近似线性化,以获得线性数学模型。4)设计自动循迹避障轮式机器人控制系统的硬件系统,包括控制芯片的选型,外围电路的设计,传感器类型型号的选择、功率驱动电路的选择、人机交互部件的选择,掌握所选择元器件、部件的性能、用法。用电子线路设计软件绘制硬件原理图,设计相应的PCB设计图,安装硬件并调试。5)根据控制要求,设计控制系统的控制结构,选择合适的控制算法,结合具体数学模型,计算系统所能达到性能指标,利用MATLAB软件进行必要的系统仿真,通过仿真掌握控制参数的整定方法,使自动循迹避障轮式机器人系统满足性能指标。6)掌握系统联调的步骤方法,调试参数的记录方法,动态曲线的测定记录方法。记录实验数据,采用数值处理方法和相关软件对实验数据进行处理并加以分析,记录实验曲线,与理论分析结果对比,得出有意义的结论。2 实验仪器设备与器件表1:设备与器件器件名称数量双12V变压器1红外避障传感器直流电机1声音传感器1有源蜂鸣器1红外循迹传感器1稳压芯片7805/78125继电器1红外避障传感器1LM298电机驱动1STC15W4K58S4单片机1四轮车模型1PC机1烙铁1焊锡1起子1按键若干软件平台:window7操作平台keil软件编程protues软件AD软件AutoCAD软件Matlab软件3 实验原理分析3.1自动循迹避障轮式机器人的工作原理智能车,又称为自动循迹避障轮式机器人,它是以轮子作为移动设备、实现自主行驶的移动机器人。智能车是一种基于计算机技术、电子技术、传感器技术、信息融合技术、通信技术、网络技术、导航技术、智能控制技术及自动化控制技术等发展起来的现代智能控制系统,是一个集环境感知、规划决策、自主行驶与行为控制等功能于一体的高技术综合系统1,它可以在复杂环境下,通过计算机控制调节行驶方向、控制启停、实现速度的自主控制等。目前,智能车在各个领域都具有广泛的应用前景,如它可以代替人类对零部件、线路板等类似产品进行检测;可以为顾客提供导购帮助;可以帮助残疾人改善生活质量和生活自由度;可以用于水下、太空及远程的服务与探测;可以完成在各种恶劣环境下的货物搬运以及系统维护和监测等工作;可以代替人类在危险地带完成军事任务;可以帮助人类完成地质勘探;可以改善道路交通安全,提高道路网络利用率,降低能源消耗等等。自动循迹避障轮式机器人要实现自动寻迹功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能2。避障控制系统是基于自动导引自动循迹避障轮式机器人(avgauto-guide vehicle)系统,基于它的自动循迹避障轮式机器人实现自动识别路线,判断并自动避开障碍,选择正确的行进路线.使用传感器感知路线和障碍并作出判断和相应的执行动作。本设计自动循迹避障轮式机器人主要由主控模块的单片机开发板,遥控模块的遥控板,电源模块,电机驱动模块,超声波模块,机械臂控制模块等组成。根据研究进展的深浅可基于单片机开发板增加声控模块,避障模块,循迹模块,跟踪模块等等。3.2 数学模型的建立3.2.1 运动数学模型的建立采用的四轮结构,驱动系统采用两轮差速驱动方式,后两个为从动轮,只起到支撑平衡作用。假定左右两个驱动轮与地面之间没有滑动,也没有侧移,只是做纯粹的滚动,则机器人满足钢体运动规律。图3.1所示XW,YW,O为世界坐标系,X,Y,O为移动坐标系,PX为机器人前进方向。图1坐标系图智能循迹机器人运动学主要处理控制参数和系统在状态空间的运动两者之间的关系,它包括正运动学和逆运动学两个方面。正运动学解决如何根据智能循迹机器人的速度来计算它的位姿或运动轨迹,当机器人的位姿(,, )时,差动智能循迹机器人的正运动学就是利用这连个差动轮的速度(,)来计算其位置,通用公式计算如下 (1) (2) (3)其中, 和分别为左右轮的驱动速度,是两个驱动轮之间的距离,为智能循迹机器人的驱动轮半径;智能循迹机器人逆运动学解决如何控制轮子的速度以达到智能循迹机器人所需的运动轨迹或位姿,即在已知位置(,)时,如果根据以上公式,求出两轮差动速度(,)。由于差动轮式驱动属于非完整性约束问题,故智能循迹机器人逆运动学只有在特殊条件下求解,其解往往不唯一,根据系统的需求,本文对智能循迹机器人的运动学分析按照两种情况分别进行。直线运动当差动轮式智能循迹机器人左右两轮的速度大小相等且方向相同时,机器人的运动轨迹为直线,所图3.2所示。图2直线运动原理图设t=0时,机器人移动坐标系X0,Y0,P0与世界坐标系XW,YW,O重合,经过时间t后机器人运动到新的移动坐标系Xt,Yt,Pt,当机器人左右两轮的速度大小相等且方向相同(即=)时由公式(3)有:将其代入公式(1)、(2)得: (4) (5)由和公式(4)、(5)式可知:机器人左右两轮的速度大小相等而方向相同时机器人的运动轨迹为直线。圆弧运动 当差动智能循迹机器人左右两轮的运动方向相同速度大小保持不变且差速度固定不变时,机器人的运动轨迹为圆弧。设t=0时,机器人移动坐标系X0,Y0,P0与世界坐标系XW,YW,O重合,经过时间后机器人运动到新的移动坐标系Xt,Yt,Pt,如图:图3圆弧运动原理图当机器人左右两轮的速度差恒定,且方向保持不变时,由公式(3)有: (6)将和代入公式(1) 有:(7) 求定积分得: (8)将和代入公式(2) 有: (9)由公式(9)有: (10)由公式(10)有: (11) (12)由上可知,机器人的运动轨迹为一圆弧,将上式转化为圆的标准方程:由式(11)、(12)可知,当机器人左右两轮的运动方向相同、速度大小保持不变且速度固定不变时,机器人的运动轨迹为圆弧。圆心在世界坐标系YW的轴上。其圆心坐标为:(0,), 圆弧半径为:当机器人右轮速度大于左轮速度时,机器人的运动轨迹在世界坐标系的一、二象限;当机器人右轮速度小于左轮速度时,机器人的运动轨迹在世界坐标系的三、四象限。运动轨迹如图: a : b : 图4圆弧运动图电机模型的建立轮式机器人运动过程中,轮子受到的力包括电机牵引力,摩擦力、转弯引起的滚转阻力改变,轮式机器人加速度为,根据力矩平衡原理,可得: (13)轮式机器人动力为直流电动机,机械特性为: (14) (15)假设电池电压为U0,控制满肚为Xumax,电压为: (16)其中:U为电枢端的输入电压;Ra为电枢绕组电阻;Rj为串入电枢回路的调节电阻;CE为电动势常数;CT为转矩常数;T2为机械输出转矩,T0为空载转矩,为每极磁通量。 , (17) , (18)其中:,可见:,与电机本身,电池电压,轮式机器人质量、匀速行驶的阻力等有关,可通过实验获得;是轮式机器人转向的影响,与因转弯而增加的滚动摩擦阻力呈正比,因此,假设可表示为: (19)实验大致过程为:先假设偏转角为0,将,看作待定系数,理论上来说,如果有三组占空比与轮式机器人速度v、速度变化率的对应关系,就可以求出,实际上考虑实验误差和可靠性,应进行多次实验,采用最小二乘法估计,。然后将,带入,通过多次实验,得到大量与v的对应关系,确定。 3.3.1车体设计本次设计的机器人采用轮式结构,它共有四个车轮,前面两个车轮为舵轮,控制车体运动时的转角方向,前轮转动轮采用连杆式结构,由一个57式步进电机控制;后面两个为驱动轮,不可转向,分别由两个同步的步进电机控制,作为驱动的步进电机与后轮采取直连的方式,即不经过任何传动装置和减速器,电机转子的角速度即为后轮转动的角速度。车体采用长方体结构,车体牢固可靠,能够承载需要的载重重量。3.3.2电机驱动设计驱动模块目前,驱动智能循迹机器人行走或是机械转动所使用的动力装置有很多种,大部分采用以下几类驱动电机。1、直流伺服电机(DC Servo Motor)其特点是运行稳定性好、控制容易、响应速度快,调速范围宽,损耗小、启动转矩大,但制造成本高、结构复杂,会产生电磁干扰,容易受工作环境的影响。因此它可以用于成本敏感的普通工业和民用场合。2、交流伺服电机,主要由定子和转子构成,其工作原理是通电线圈在磁场中受到力的作用而发生转动。多用于需要高转速大力矩输出的条件要求。3、步进电机是一种将高频率电脉冲信号转变为转子的角位移或者线位移的电气设备。其转动速度速的大小、转动的圈数多少与接收到的脉冲控制信号的频率和脉冲数目相关,脉冲频率越大,步进电机转动的越快,反之越慢;脉冲数越多,转过的角度或走过的位移就越大,反之越小。步进电机驱动器每接收到一个驱动信号,它转过的角度是固定的,即电机步距角,步距角的大小与步进电机本身的特性有关。步进电机还可以简单地实现开环控制,这是步进电机另一个重要特性,不需要复杂的控制系统,因此,被广泛使用。方案一:采用四个直流电机驱动小车底盘,留两路电机接口,方便接舵机或控制机械臂,以及作为充电器接口。其优点是取物时平衡性好,行动稳定,速度快,动力强。其缺点是车体笨重,电路设计相对复杂,功耗大,编写程序也相对困难。方案二:采用四轮两驱车体,同样留两路电机接口。其优点是电路设计简单,功耗小,行动灵活。缺点是取物是平衡性不好。为设计及实现简单,故我认为取方案二合理。3.3.3循迹模块设计利用光电传感器实现循迹的基本原理3.3.3.1 光电传感器的工作原理 光电传感器是通过把光强度的变化转换成电信号的变化来实现控制的。光电传感器在一般情况下,有三部分构成,它们分为:发送器、接收器和检测电路。 发送器对准目标发射光束,发射的光束一般来源于半导体光源,发光二极管(LED)、激光二极管及红外发射二极管。光束不间断地发射,或者改变脉冲宽度。接收器有光电二极管、光电三极管、光电池组成。在接收器的前面,装有光学元件如透镜和光圈等。在其后面是检测电路,它能滤出有效信号和应用该信号。 此外,光电开关的结构元件中还有发射板和光导纤维。三角反射板是结构牢固的发射装置。它由很小的三角锥体反射材料组成,能够使光束准确地从反射板中返回,具有实用意义。它可以在与光轴0到25的范围改变发射角,使光束几乎是从一根发射线,经过反射后,还是从这根反射线返回。3.3.3.2 光电传感器的分类和工作方式这里的循迹是指智能循迹机器人在黑色地板上循白线行走,通常采取的方法是红外探测法。红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。单片机就是否收到反射回来的红外光3为依据来确定黑线的位置和小车的行走路线。红外探测器探测距离有限,一般最大不应超过3cm。常用室内机器人的定位传感器根据其定位与导航方式的不同分类较多,包括:采用航迹推算的光电编码器;采用路标方式的超声波测距仪、光电开关、光纤传感器;采用磁导航方式的电子罗盘;采用惯性导航方式的陀螺、加速度计;采用视觉导航方式的摄像头等5。3.3.3.3 光电传感器的选择方案1:用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化4。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。但是这种方案受光照影响很大,不能够稳定的工作。方案2:用红外发射管和接收管自己制作光电对管循迹传感器。红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。这样自己制作组装的循迹传感器基本能够满足要求,因此我们考虑这种方案。3.3.4控制系统模块设计 考虑选用一片CPLD(如EPM7128LC84-15)作为系统的核心部件,实现控制与处理的功能。CPLD具有速度快、编程容易、资源丰富、开发周期短等优点,可利用VHDL语言进行编写开发。但CPLD在控制上较单片机有较大的劣势。同时,CPLD的处理速度非常快,而小车的行进速度不可能太高,那么对系统处理信息的要求也就不会太高,在这一点上,MCU就已经可以胜任了。若采用该方案,必将在控制上遇到许许多多不必要增加的难题。为此,不采用该种方案,进而提出了其他设想。结合实际需求采用89C52作为主控制芯片,该芯片有足够的存储空间,可以方便的在线ISP下载程序,能够满足该系统软件的需要,对于本作品系统已经足够,采用该芯片可以比较灵活的选择各个模块控制芯片,能够准确的计算出时间,有很好的实时性。3.3.4.1 单片机的发展 1946年第一台电子计算机诞生至今,依靠微电子技术和半导体技术的进步,从电子管晶体管集成电路大规模集成电路,使得计算机体积更小,功能更强。特别是近20年时间里,计算机技术获得飞速的发展,计算机在工农业,科研,教育,国防和航空航天领域获得了广泛的应用,计算机技术已经是一个国家现代科技水平的重要标志。 单片机诞生于20世纪70年代,像Fairchild公司研制的F8单片微型计算机。所谓单片机是利用大规模集成电路技术把中央处理单元(Center Processing Unit,也即常称的CPU)和数据存储器(RAM)、程序存储器(ROM)及其他I/O通信口集成在一块芯片上,构成一个最小的计算机系统,而现代的单片机则加上了中断单元,定时单元及A/D转换等更复杂、更完善的电路,使得单片机的功能越来越强大,应用更广泛6。 20世纪70年代,微电子技术正处于发展阶段,集成电路属于中规模发展时期,各种新材料新工艺尚未成熟,单片机仍处在初级的发展阶段,元件集成规模还比较小,功能比较简单,一般均把CPU、RAM有的还包括了一些简单的I/O口集成到芯片上,像Fairchild公司就属于这一类型,它还需配上外围的其他处理电路方才构成完整的计算系统。类似的单片机还有Zilog公司的Z80微处理器。 1976年INTEL公司推出了MCS-48单片机,这个时期的单片机才是真正的8位单片微型计算机,并推向市场。它以体积小,功能全,价格低赢得了广泛的应用,为单片机的发展奠定了基础,成为单片机发展史上重要的里程碑20。 在MCS-48的带领下,其后,各大半导体公司相继研制和发展了自己的单片机,像Zilog公司的Z8系列。到了80年代初,单片机已发展到了高性能阶段,像INTEL公司的MCS-51系列,Motorola公司的6801和6802系列,Rokwell公司的6501及6502系列等等,此外,日本的著名电气公司NEC和HITACHI都相继开发了具有自己特色的专用单片机。80年代,世界各大公司均竞相研制出品种多功能强的单片机,约有几十个系列,300多个品种,此时的单片机均属于真正的单片化,大多集成了CPU、RAM、ROM、数目繁多的I/O接口、多种中断系统,甚至还有一些带A/D转换器的单片机,功能越来越强大,RAM和ROM的容量也越来越大,寻址空间甚至可达64kB,可以说,单片机发展到了一个新的平台7。 单片机经历了SCM、MCU、SOC三大阶段。 1.SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。 2.MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。 Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SOC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SOC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。3.3.4.2 AT89C52单片机的简单介绍 在众多的单片机系列中,AT89C52是一种低功耗,高性能CMOS8位微控制器,具有8K系列可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序储存器在系统可编程,也适应于常规编程。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C52为众多嵌入式控制应用系统提供高灵活、超高效的解决方案。 图5 稳压电路AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。方案一:所有器件采用单一电源(6节AA电池)。这样供电比较简单;但是由于电动机启动瞬间电流很大,而且PWM驱动的电动机电流波动较大,会造成电压不稳、有毛刺等干扰,严重时可能造成单片机系统掉电,缺点十分明显。方案二:双电源供电。将电动机驱动电源与单片机及其周边电路电源完全隔离,利用光电耦合器传输信号。这样做法虽然不如单电源方便灵活,但可将电动机驱动所造成的干扰完全消除,进一步提高系统稳定性。所以,我认为选择方案二来实现供电。3.4 硬件设计3.4.1智能循迹机器人总体概述 智能循迹机器人采用前轮驱动,前轮左右两边各用一个电机驱动,调制前面两个轮子的转速起停从而达到控制转向的目的,后轮是万象轮,起支撑的作用。将循迹光电对管分别装在车体下的左右。当车身下左边的传感器检测到黑线时,主控芯片控制左轮电机停止,车向左修正,当车身下右边传感器检测到黑线时,主控芯片控制右轮电机停止,车向右修正。 电路分为电源模块、单片机模块、电机驱动模块、循迹模块。3.4.2智能循迹机器人总体设计框图图6 循迹机器人总体设计图3.4.3电源模块设计方案一:采用交流电经直流稳压处理后供电。采用交流电提供直流稳压电源,电流驱动能力及电压稳定性最好,且负载对电源影响也最小。但由于需要电线对小车供电,极大影响了智能小车行动的灵活性及地形的适应能力。而且避障小车极易把拖在地上的电线识别为障碍物,人为增加了不必要的障碍,故放弃了这一方案。 方案二:采用蓄电池供电 。 蓄电池具有较强的电流驱动能力和较好的电压稳定性能,且成本低廉。可采用蓄电池经7812芯片稳压后给电机供电,再经过降压接7805芯片给单片机及其他逻辑单元供电。但蓄电池体积相对庞大,且重量过大,造成电机负载过大,故最终放弃了这一方案。 方案三:采用干聚合锂电池供电。 系统采用聚合锂电池供电,具有能量比大,质量轻等优点。供电电压为16.8V,电机额定电压为24V。综合以上考虑,我们采用方案三。 3.4.4驱动电路设计电机驱动采用H桥式驱动电路,L298N内部集成了H桥式驱动电路,从而采用L298N电路来驱动电机。通过单片机给予L298N电路PWM信号来控制小车的速度,起停。P2.5P2.4P2.3P2.2P2.1P2.0IN15IN27ENA6OUT12OUT23ENB11OUT313OUT414IN310IN412SENSA1SENSB15GND8VS4VCC9U2L298左轮右轮+6V图7 电机驱动电路图3.4.5循迹模块信号检测电路设计小车循迹原理是小车在画有黑线的白纸 “路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”黑线。在该模块中我采用了简单、应用也比较普遍的检测方法红外探测。图8 智能循迹小车系统控制框图红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号,再通过LM324作比较器来采集高低电平,从而实现信号的检测。图9 循迹传感器电路图3.4.6主控电路设计本模块主要是对采集信号进行分析,同时给出PWM波控制电机速度,起停。以及对数码管进行显示的作用。单片机最小系统设计 单片机是小车的控制中心,单片机最小系统的合理设计是小车平稳运行的前提。用AT89C52单片机构成最小应用系统时,只要将单片机接上晶振电路和复位电路再接上ISP下载接口即可。由于集成度的限制,最小应用系统只能用作一些小型的控制单元15。其应用的特点有: (1) 有可供用户使用的大量I/O接口 (2) 内部存储器容量有限 (3) 应用系统开发具有特殊性时钟电路 89C52虽然有内部振荡电路,但要形成时钟,必须外部附加电路。89C52单片机的时钟产生方法有两种。内部时钟方式和外部时钟方式。 本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHZ到12MHZ之间选择。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,C2、C5可取22pf。在设计印刷电路板时,晶体和电容应尽可能靠近单片机芯片安装,以减少寄生电容,更好的保证振荡器稳定和可靠地工作。为了提高温度稳定性,应采用NPO电容。图10 单片机晶振电路图复位电路 89C52的复位是由外部的复位电路来实现的。复位引脚RST通过一个斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。 复位电路通常采用上电自动复位和按钮复位两种方式。 最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。时钟频率用6MHZ时C取22uF,R取999欧。除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经电阻与电源Vcc接通而实现的。时钟频率选用6MHZ时,C取10uF,R3取1500欧,R4取200欧。图11 单片机复位电路图 ISP下载接口 ISP 下载接口,与常用的并口下载线,串口下载线和笔记本用的USBASP 下载线兼容,只需接上下接线接口就可以直接向单片机烧程序。图12 最小系统电路图 主控电路图图13 主控电路图如图所示的主控电路图为智能机器人的电路原理图,左侧为单片机的连接原理,右侧为双8位数码管,以及感应电路。3.5 小车CAD图1 主视图图14 主视图2 仰视图图15 仰视图3 俯视图图16 俯视图4 左视图图17 左视图5 3D视图图18 3D视图3.6 软件设计3.6.1开发环境Keil uVision4 IDE是基于Windows的开发平台,包含一个高效的编译器、一个项目管理器和一MAKE工具。uVision4支持所有的Keil C51工具,包括C编译器、宏汇编器、连接/定位器、目标代码到HEX的转换器。(1)Windows应用程序uVision4是一个集成开发环境,它把项目管理,源代 码编辑,程序调试等集成到一个功能强大的环境中。(2)C51美国标准优化C交叉编译器从C源代码产生可重定位的目标文件。(3)A51宏汇编器从8051汇编源代码产生可重定位的目标文件。(4)BL51连接/重定位器组合由C51和A51产生的可重定位的目标文件, 生成绝对目标文件。LIB51库管理器组合目标文件,生成可以被连接器使用的库文件。(5)OH51目标文件到HEX格式的转换器从绝对目标文件创建Intel HEX格式文件。(6)RTX-51实时操作系统简化了复杂和对时间要求敏感的软件项目。3.6.2调试方法(1).打开软件,菜单栏中选择“project-new project”,弹出“Create New Project”对话窗口,选择目标路径,输入项目名,保存。(2).上一步保存时会弹出“Select Device for Target”对话窗,在此选择cpu类型,确定。(3).在菜单栏选择“File-New”新建文档,再“File-Save”保存,写上文件名及扩展名“.asm先保存在写的好处是Keil会自动识别汇编语言的关键字,并以不同的颜色显示,减少输入代码的语法错误。(4).程序写完后,保存。在Keil中Project Workspace子窗口中双击“Target 1”,展开此目录。在“Source Group 1”文件夹上单击鼠标右键,选择“Add File to Group Source 1”,弹出“Add File to Group”对话窗口选择文件类型“Asm Source File”并找到刚才写的.asm文件,添加到Source Group 中。(5).在“Project Workspace”窗口中的“Target 1”文件夹上单击鼠标右键,选择“Option for Target”,则会弹出“Option for Target”对话窗口,选择“Output”选项卡,选择Create HEX File选项。 (6).在Keil菜单栏选择“Project-Build Target”命令,编译汇编源文件。Build窗口显示 0 Error(s)即可。3.6.3 程序介绍专心-专注-专业1 定义存储空间P0M0 = 0x00; P0M1 = 0x00; P1M0 = 0x00; P1M1 = 0x00; P2M0 = 0x00; P2M1 = 0x00; P3M0 = 0x00; P3M1 = 0x00; P4M0 = 0x00; P4M1 = 0x00; P5M0 = 0x00; P5M1 = 0x00; P6M0 = 0x00; P6M1 = 0x00; P7M0 = 0x00; P7M1 = 0x00;2 调用子程序SCI1_Init();PWM_Init();delay_ms(2000);Motor(0,0);InitADC();Motor(10,10); SendString(123);3 根据运行状态选择判断while(1)SendString(000);SendNum(GetADCResult(0);delay_ms(500);SendString(111);SendNum(GetADCResult(1);delay_ms(500);SendString(222);SendNum(GetADCResult(2);delay_ms(500);SendString(333);SendNum(GetADCResult(3);delay_ms(500);SendString(444);SendNum(GetADCResult(3);delay_ms(500);while(1)if(GetADCResult(2)200) Motor(30,30); delay_ms(00);else if(GetADCResult(1)220) Motor(15,30);delay_ms(500);else if(GetADCResult(3)200) Motor(30,15);delay_ms(500); else if(GetADCResult(4)200) Motor(35,15);delay_ms(500);else if(GetADCResult(0)200) Motor(15,35);delay_ms(500);e4 实验步骤设计4.1 系统模型图图19 系统模型图4.2 仿真结果P=200,I=10,D=50时的波形:图20 小车理论输入速度最初小车启动加速度非常大,但进过0.2s之后小车速度稳定在1.5m/s左右保持稳定。图21 小车理论输出速度当小车速度过大时,小车的速度会骤减,经过一定的时间之后速度稳定保持在1.5m/s左右。图22 小车内轮占空比当小车转向时,小车内轮的占空比会突然增大,但转向结束之后内轮的占空比会稳定在51.5%附近。图23 小车外轮占空比当小车转向时,小车内外轮的占空比会突然增大,但转向结束之后内轮的占空比会稳定在51.5%附近。图24 小车实际输入速度起初小车启动加速度非常大,但进过0.2s之后小车速度稳定在1.5m/s左右保持稳定。图25 小车实际输出速度最初小车启动加速度非常大,但进过0.2s之后小车速度稳定在1.5m/s左右保持稳定。图26 小车行驶时的偏差角度当小车未沿着直线运动时,小车内外会有一定的偏差,这就是偏差角度,小车会立即偏转调整,当调整结束之后小车的偏差角度则趋于0,并保持不变。图27 小车行驶时的偏转角度当小车转向时,小车内外会有一定的偏差,这就是偏差角度,当转向结束之后小车的偏差角度则趋于0,并保持不变。4.3检查元件按电路图清点元件后首先检查买回元件的好坏,按各元件的检测方法分别进行检测,一定要仔细认真。而且要认真核对原理图是否一致,在检查好后才可上件、焊件,防止出现错误焊件后不便改正。4.4放置、焊接各元件按原理图的位置放置各元件,在放置过程中要先放置、焊接较低的元件,后焊较高的和要求较高的元件。特别是容易损坏的元件要后焊,在焊集成芯片时连续焊接时间不要超过10s,注意芯片的安装方向。4.5电路调试首先烧入电机控制小程序,控制电机正反转,停止均正常。说明电机及驱动电路无误。然后加入避障子程序,小车运转正常时,光电开关模块灵敏度使达到理想效果。接下来测试红外循线模块的二极管是否有亮灯,有的话,代表有用不需更换,接着输入程序进行简单的循线活动,测试灵敏度是否达到要求。在调试程序时,发现有的指令用的不正确,特别测试红外循线模块的时候,一些比较急的弯,转弯不够灵活,非常容易走出跑道,对于这段程序调试了比较长的时间。4.6电机模块调试过程由于采用的电机供电电压是9V,而电机额定工作电压是6V,所以可使电机转动的PWM值范围可从5% 65%左右。由于电机的感性阻抗作用,随着PWM频率的升高,感抗增大,导致电流减小。尤其设计中所采用的电机是遥控车电机,额定电流较小,线圈匝数必然较多,感抗自然就较大。 PWM的原理,其实就是面积等效原理,在采样控制理论中有一个重要的结论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。所以可用等幅值的不同宽度的脉冲来等效一些想要的波形。4.7测试方法(1)开启电源开关,将智能电动车放于起跑线位置,智能电动小车在“直道区”行驶过程中,检查看其是否沿跑道运行,再检测是否能顺利转弯。(2)当小车穿过障碍物区时看小车是否碰到障碍物及小车能否顺利通过障碍物。附件:#include stc15w.h#include SCI.h#include PWM.h#include Motor.h#include ADC.hvoid delay_ms(int num);void main()P0M0 = 0x00; P0M1 = 0x00; P1M0 = 0x00; P1M1 = 0x00; P2M0 = 0x00; P2M1 = 0x00; P3M0 = 0x00; P3M1 = 0x00; P4M0 = 0x00; P4M1 = 0x00; P5M0 = 0x00; P5M1 = 0x00; P6M0 = 0x00; P6M1 = 0x00; P7M0 = 0x00; P7M1 = 0x00;SCI1_Init();PWM_Init();/delay_ms(2000);Motor(0,0);InitADC();Motor(10,10); SendString(123);while(1)SendString(000);SendNum(GetADCResult(0);delay_ms(500);SendString(111);SendNum(GetADCResult(1);delay_ms(500);SendString(222);SendNum(GetADCResult(2);delay_ms(500);SendString(333);SendNum(GetADCResult(3);delay_ms(500);SendString(444);SendNum(GetADCResult(3);delay_ms(500);while(1)if(GetADCResult(2)200) Motor(30,30); delay_ms(00);else if(GetADCResult(1)220) Motor(15,30);delay_ms(500);else if(GetADCResult(3)200) Motor(30,15);delay_ms(500); else if(GetADCResult(4)200) Motor(35,15);delay_ms(500);else if(GetADCResult(0)200) Motor(15,35);delay_ms(500);else if(GetADCResult(0)200)&(GetADCResult(1)220)&(GetADCResult(2)200)&(GetADCResult(3)200)&(GetADCResult(4)200) Motor(0,0); PWMCR = 0x00; void delay_ms(int num)/11.0592MHzunsigned char i, j;_nop_();_nop_();_nop_();i = 11;j = 190;while(num)dowhile (-j); while (-i);num-;i = 11;j = 190;参考文献1 崔佳超.无人驾驶智能车在动态环境中的避障方法D.西安工业大学,2015.2 逄伟.低速环境下的智能车无人驾驶技术研究D.浙江大学,2015.3高月华.基于红外光电传感器的智能车自动寻迹系统设计J.半导体光电,2009,01:134-145.4陈孟元,孙书诚,王虎.基于图像识别的寻迹智能车设计J.重庆理工大学学报(自然科学),2013,03:80-84+103.5李旭东,廖中浩,孟娇.基于CMOS摄像头的智能车控制系统设计及实现J.吉林大学学报(信息科学版),2013,04:414-418.6邬昌茂.基于HCS12单片机的智能车底层控制系统研究D.上海交通大学,2009.7黄凯龙.基于飞思卡尔单片机的智能车及其调试系统设计D.湖南大学,2014.
展开阅读全文