机器人避障功能毕业论文.docx
《机器人避障功能毕业论文.docx》由会员分享,可在线阅读,更多相关《机器人避障功能毕业论文.docx(77页珍藏版)》请在冰豆网上搜索。
机器人避障功能毕业论文
摘要
80C52单片机是一款八位单片机,它的易用性和多功能性受到了广大使用者的好评。
这里介绍的是如何使用80C52单片机来实现智能小车的设计,该设计是结合科研项目而确定的设计类课题。
本系统以设计题目的要求为目的,采用80C52单片机作为控制核心,采用红外传感器检测道路面上的障碍,控制智能小车的自动避障,快慢速行驶,按键开车停车,并可以实现自动记录行驶时间,自动避障,自动寻线功能。
最终完成智能车设计需要综合单片机编程、模数电、Protel设计、电路焊接、自动控制算法设计等多方面内容。
整个系统的电路结构简单,可靠性能高。
实验测试结果满足要求,本文着重介绍了该系统的硬件设计方法及测试结果分析。
采用的技术主要有:
(1)通过编程来控制小车的速度;
(2)传感器的有效应用;
(3)显示译码管的使用。
关键词:
80C52单片机;光电检测器;PWM调速;智能小车
Designandcreateanintelligenceelectricitymotivesmallcar
Abstract
80C52isa8bitsinglechipcomputer.Itseasilyusingandmulti-functionbenefitlargeusers.ThisarticleintroducestheUESTCgraduationdesignwiththe80C52singlechipcomputer.Thisdesigncombineswithscientificresearchobject.Thissystemregardstherequestofthetopic,adopting80C52forcontrollingcore,infraredreflectionsensorfortestthehinder.Itcanruninahighandalowspeedorstopautomatically.Italsocanrecordthetime,distanceandthespeedorsearchinglightandmarkautomaticallytheelectriccircuitconstructionofwholesystemissimple,thefunctionisdependable.Experimenttestresultsatisfytherequest,thistextemphasizesintroducedthehardwaresystemdesignsandtheresultanalyze.
Theadoptionoftechniqueas:
(1)Speedcontrolbyprogramtheengine;
(2)Efficientapplicationofthesensor;
(3)Theadoptionofthenewdisplaychip.
Keywords80C52singlechipcomputer;lightelectricitydetector;PWMspeedadjusting;Electricitymotivesmallcar
第一章引言
随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。
全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究,可见其研究意义重大,但是,各大智能车比赛项目或活动大都是在预先设计好的赛道上进行的,在实现智能避障时,却显得乏力。
本设计就是在这样的背景下提出的,本题目是结合科研项目而确定的设计类题目。
设计的智能电动小车要求能够实时显示行驶时间、速度、里程,具有自动寻迹、避障功能,可程控行驶速度、精确定位停车。
根据题目的要求,确定如下方案:
在现有玩具电动车的基础上,外加光电、红外传感器,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动小车的智能控制。
这种方案能实现对电动小车的运动状态进行实时控制,控制灵活、可靠、精度高、易于调试和维护,可以根据不同环境,不同参数更改程序代码,调整硬件结构,使小车满足要求的指标。
本设计采用MCS-51系列中的80C52单片机。
以80C52为控制核心,利用红外传感器检测道路上的障碍,控制电动小车自动避障,快慢速行驶,并可以自动记录时间、行驶里程,即时显示速度,自动循迹和寻光功能。
80C52是一片8位的微控制器,作为第三代微控制器,它的易用性和多功能性能满足大多数场合的要求。
第三代单片机包括了Intel公司发展MCS-51系列的新一代产品,如8xC152、80C51FA/FB、80C51GA/GB、8xC451、8xC452,还包括了Philips、Siemens、ADM、OKI、Harria-Metra、Atmel等公司以80C51为核心推出的各具特色、与80C51兼容的单片机。
新一代的单片机的最主要的技术特点是向外部接口电路扩展,向更完善的控制功能扩展,能与常用的外部接口功能单元如A/D、PWM、PCA(可编程计数器阵列)、WDT(看门狗监视定时器)、高速I/O口、计数器的捕获/比较逻辑等兼容。
第三代微控制器中,在总线方面最重要的进展是为单片机配置了芯片间的串行总线,为单片机应用系统设计提供了更加灵活的方式。
Philips公司还为80C51系列的8xC592单片机引入了具有较强功能的设备间网络系统总线CAN(ControllerAreaNetworkBUS)。
这些完善的总线结构,为系统的扩展与配置打下了良好的基础。
单片机发展到这一阶段,表明单片机已成为工业控制领域中普遍采用的智能化控制工具,小到玩具、家电行业,大到车载、舰船电子系统,遍及计量测试、工业过程控制、机械电子、金融电子、商用电子、办公自动化、工业机器人、军事和航空航天等领域。
为满足不同的要求,出现了高速、大寻址范围、强运算能力和多机通信能力的8位、16位、32位通用型单片机,小型廉价型、外围系统集成的专用型单片机,以及形形色色各具特色的现代单片机。
本设计采用80C52RC芯片作为控制单元,80C52采用CMOS工艺,功耗很低。
该设计具有实际意义,其无人驾驶的特性可以应用于考古、地震救援、医疗器械、自动搬运等许多方面,尤其是在足球机器人研究方面具有很好的发展前景;在考古方面应用到的超声波传感器进行检测,所以本设计与实际结合,应用性较强。
第二章方案设计与论证
智能车制作是一个涵盖电子、电气、机械、控制等多个领域和学科的科技创新活动。
简单点来说可以将其分为硬件电路(包括电源、MCU控制部分、电机驱动、传感器)、机械、算法三方面的设计。
根据题目的要求,确定如下方案:
在现有玩具小车的基础上,加装光电传感器,实现对电动小车的速度、位置、运行状况的实时测量,并将测量数据传动通过信号流的方式传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动小车的智能控制。
这种方案能实现对电动小车的运动状态进行实时控制,控制简单、灵活、可靠、精度高,测量障碍的距离可调整,其整体模块均可以通过软件或硬件的调整来满足各种场合的需求。
2.1微处理器(MCU)和场可编程逻辑门阵列(FPGA)的选择
方案一:
场可编程逻辑门阵列作为控制核心
方案二:
微处理器作为控制核心
场可编程逻辑门阵列的优缺点:
·高速性。
作为信号高速处理的标准模块,拥有比MCU高出三个量级的频率,这意味着FPGA可以拥有高速的信号处理能力,速度高到可以实现将信号进行FFT变换,实现数字滤波,最后再进行FFT变换还原信号,这样大量的数据处理需要高速的数字器件完成。
所以目前FPGA在通讯领域发挥着其不可替代的作用。
·稳步发展的技术。
FPGA作为更新的技术,在几年之内会变得更加快速、更加便宜,此技术的发展空间和发展潜力巨大。
·大量的端口。
相对于MCU的32个IO口,FPGA拥有高出MCU一个量级的端口数目,这为以后更好的技术的出现提供了硬件扩展支持,设计者在进行系统的初始设计期间,就能够考虑到并适应预期的技术发展,并提供额外的扩展端口为技术升级做准备。
FPGA拥有的端口数为256、512、1024或者更多。
·严谨。
作为严谨的语言,FPGA中变量和信号有所区分,不同进制之间区分,这样虽然降低了潜在的错误风险,但是,这会使设计变得更加复杂。
·大量的警告和错误。
以xilinx的ISE为例,即时程序设计正确,在综合的时候,也至少有十处警告,这说明了技术的不成熟,有待改进和发展。
·支持的语言模块太少。
数字设计中,VHDL工具甚至不能很好地综合for循环(可能造成无效或不可综合),将for循环的每一次循环用单独的器件实现,每个i值生成一组器件,以此来解开for循环并实现电路,这样会造成器件的大量浪费,这将是以一个极其昂贵的解决方式。
不能运用mod操作符求余,因为这个操作需要除法,多数VHDL工具不能综合出触发电路,除了二位除法(一次右移操作)等简单除法。
与之相比,微处理器拥有成熟的技术,设计完善,编程实现时可以做到零错误零警告,支持比硬件描述语言(VHDL)更好的C语言。
设计简单,设计程序简洁有效,出错率大大降低。
由寄存器组实现数据存储记忆,与寄存器和触发器存储数据相比更加有效,支持自动数据转换,设计更加简单。
比如clk时钟信号,在FPGA中,需要为时钟信号专门写进程,需要专门分配端口,再使用分频得到想要的频率,在MCU中,时钟信号是所有器件的驱动时钟,对于计时,仅仅需要打开寄存器让寄存器计数即可。
并且在数字设计中对MCU程序的设计是逻辑的,不需要特别的数学技能。
而不像对电容器、晶体管或其他的元器件那样,要求对模型进行计算才能了解和认识他们的内部特性和工作过程。
事实上,微处理器有很多的优点:
·易于设计。
MCU支持各种进制之间的自动转换,设计时不用考虑具体信号进制,在硬件实现时,MCU自动将数值进制转换成为所赋值的信号的进制,所以,设计时可以灵活写十六进制数据,对硬件更有效的控制。
而不像FPGA那样,需要对进制转换单独写进程或者调用函数实现。
能使用各种高级语言,比如,使用mod函数实现取余操作。
·灵活性和功能性。
C语言本身支持直接对硬件进行操作,例如对内存地址的操作、位操作等。
C语言作为一种高级语言,对硬件的支持并不差于汇编语言,这个特性能在设计单片机程序时带来很大便利,在稍后的设计部分中可见,单片机对C语言的兼容性将C语言的优点继承了下来。
在这方面,VHDL相对薄弱。
单片机中更高层的功能,如微处理器、存储器和输入输出控制器,在使用这些器件时,数字设计者不用对最复杂而关键的片上组件及其互连技术进行设计,因为这已经由器件制造商设计出来并测试过了。
这些都体现了微处理器的灵活和高效。
·可编程性。
如今大多数数字设计都是采用语言进行编程来完成的。
这些语言可以将数字电路的功能进行规格化或者模型化。
在构建任何真实硬件之前,要使用编译器和模拟器来测试硬件模型的运行状况,然后才将模型用特别的组件技术实现电路。
这就使得电路的设计具有相同性,对于同样的电路,只用改变E2PROM的程序就可以实现功能的改变,从而带来了极大的便利。
微控制器这种集成电路在它们出厂后具有逻辑功能的编程能力。
这些器件能够通过重新编程来设置其功能,这就意味着,如果发现了设计中的差错,不需要在物理上替换器件或重新接线,就可以排除错误。
也意味着,设计者可以自行设计出自己所想要的芯片。
用同样的电路,写入不同的程序,系统就可以完成不同的功能,加上E2PROM电可擦除芯片的诞生,设计者们就不用专门为一种功能去设计一种电路,不用自己动手搭建电路,就像在三十年前他们的教授所做过的那样。
·快捷性。
如今,MCU的处理速度很快,对于时钟为11.0592MHZ的微处理器而言,12个时钟周期为一个机器周期,所以该MCU的频率大约为1MHZ,也就是说,一秒钟执行10^6条指令,执行一条指令的时间为1微妙。
对于F22战斗机而言,开加力时时速大约为M2.00,也就是680米每秒,单片机执行一次指令时,F22大约能飞行0.68毫米,所以,对于普通的智能小车而言,用单片机作为控制核心是完全可以胜任的。
·经济性。
单片机能够在一片芯片里提供大量的功能。
能够重复使用的电路可以被集成到单个芯片里,以很低的成本进行大量的生产,这样就可以将那些计算器、数字手表、音乐生日卡之类的不同功能的器件集成在一起了。
本设计因为需要直接对硬件进行操作,需要简易灵活的程序编写,所以笔者选择单片机作为控制核心。
2.2直流电机和步进电机的选择
直流电机的工作原理:
直流电机的转子为三组呈60°的漆包线圈,在线端口焊接六个60°圆弧铜
片。
这些铜片构成换向片,两个弹性铜片靠在换向片两侧,作为供电电刷。
当电源通过电刷向漆包线圈供电时,线框中就会有电流流过。
直流电机的定子为一对磁极,由导磁良好的钢铁制成,磁极的磁力由一个U型永久磁铁产生,将磁极放置在漆包线圈两侧,形成磁场,漆包线圈处于磁场中。
当线圈通过电流时,三个线圈就会受到磁场的洛伦兹力,受力方向依照左手定理判断。
受到磁场的作用力的线圈会旋转,当旋转了60°后,原通电线圈断电,下一组通电线圈通电,使整个转子继续受到相同旋转方向的力,这就是直流电机的工作原理。
直流电机的优点和缺点:
·控制简单。
直流电机的控制相对于步进电机要简单,直流电机的两个接口加正电压时电机正转,加负电压时电机反转,易于控制。
·转速快。
直流电机的转速不受控制,所以外加电压时,直流电机一直处于最佳工作状态,无保留地发挥出其最大转速。
·成本低。
相对于步进电机,直流电机的成本更低,价格易于接受。
更重要的是,两个直流电机仅需要一片L298N芯片即可完成控制,所以,选择直流电机能使得电路更简单。
·无法控制转过角度。
所以对于速度的测试需要和外部传感器配合使用,增加了硬件的设计难度。
同时因为无法控制转过角度,所以无法通过软件精确控制直流电机的行驶距离。
步进电机的工作原理:
步进电机是一种将电脉冲转化为角位移的器件。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为步距角,它的旋转是以固定的角度一步一步运行的。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。
步进电机的优点和缺点:
·角度、转速可控。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,使得步进电机只有周期性的误差而无累积误差。
所以在速度、位置等控制领域用步进电机来控制变的非常简单。
·控制较为复杂。
需要四个接口输入,所以如果使用步进电机,智能小车需要两个驱动轮,也就是八个接口,这就使得需要两片L298N芯片,使成本增加。
这样设计就需要额外增加步进电机的费用和另一片L298N芯片的费用。
·无法实现较高的速度。
步进电机的精确控制性决定了其扭矩较大,这样也使得步进电机趋向于驱动力而不是旋转速度,使得步进电机速度有所限制。
本设计中使用控制简单的直流电机,因为设计中创新的光线反射式避障不需要精确控制行驶距离,这样可以节约出步进电机和一片L298N芯片及其外部电路的成本。
2.3舵机和万向轮的选择
根据控制方式,舵机应该称为微型伺服马达。
舵机能够利用简单的输入信号转动到一个比较精确的角度,所以非常适合机器小车使用。
舵机简单的说就是集成了直流电机、电机控制器和减速器,并封装在一个便于安装的外壳里的伺服单元。
舵机内安装了一个电位器检测输出轴转动角度,控制板能根据电位器的信息能比较精确的控制和保持输出轴的角度。
这样的直流电机控制方式叫闭环控制。
舵机的工作原理是:
控制信号由接收机的通道进入信号调制芯片,获得直
流偏置电压。
它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。
最后,电压差的正负输出到电机驱动芯片决定电机的正反转。
当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。
总而言之,控制电路接收信号源的控制脉冲,并驱动电机转动;齿轮组将电机的速度成倍数缩小,并将电机的输出扭矩放大响应倍数,然后输出。
电位器和齿轮组的末级一起转动,测量舵机轴转动角度;电路板检测并根据电位器判断舵机转动角度,然后控制舵机转动到目标角度或保持目标角度。
舵机的控制信号为周期20ms,脉宽0.5ms-2.5ms之间的PWM信号,在20ms的周期中,输入脉冲宽度与舵机输出角度之间的关系:
0.5ms-90°
1.0ms-45°
1.5ms0°
2.0ms45°
2.5ms90°
可见,使用舵机可以获得精确的转角,这样的方式能提高机器小车的行驶
速度,但是,精确转角的方式使得机器小车要想转弯必须以要有一个固定的转角,要求小车的转弯路线为圆弧,小车不能原地转弯,且因为舵机需要用到定时器,而定时器本身在程序较复杂时中断时间不准确,所以舵机有控制不准的风险。
使用万向轮的优点在于转弯不需要转角,可以原地转弯,因为其不需要圆弧转向,所以万向轮可以精确控制小车的行进路线,缺点是无法精确控制转角。
本设计中采用万向轮的方式转向,因为万向轮是从动轮,两个主动轮和一个从动轮呈三角形分布,所以在平面上从动轮那个点的受力完全由两个主动轮给予,其转动方向和转动速度完全依靠于两个主动轮,使用简单有效,而且,使用万向轮的方式可以为单片机省下一个定时器。
2.4最终元器件选择
元器件选择:
E18-D80NK型光电反射式传感器3个、STC89C52RC型单片机1块、RS232芯片1块、11.0592M系统晶振1个、LED发光二级管2个、共阳七段数码管4个、蜂鸣器1个、L298N芯片1块、直流电机2个、电容电阻若干。
电容选择1uF和30pF,电阻选择1K和10K两种。
第三章硬件设计
3.1课题的方案论证
3.1.1主要任务
设计一台具有避障功能的智能小车。
该智能小车利用红外传感器检测周围障碍情况,用控制电机驱动电路来控制机器人的前进方向,以躲避障碍物。
用单片机作为控制核心,完成硬件和软件的设计。
3.1.2功能要求
(1)小车能够实现自动躲避在车前方,左方,右方的障碍物,达到智能的效果。
(2)状态和时间显示功能:
第一个数码管可以显示小车当前状态,第三个和第四个数码管可以显示小车实际行驶时间。
(3)按键转换功能:
小车在上电复位后,由独立按键1控制,按键1按下后,小车行驶,再次按下时,小车停止。
(4)报警功能:
小车在遇到障碍物时候进行蜂鸣器报警。
(5)障碍灯:
两个LED灯用于显示小车周围障碍物的状况。
3.1.3性能指标
(1)红外传感器的探测距离为10cm以上。
(2)红外传感器的响应时间小于1毫秒。
(3)智能小车遇到障碍物到做出反应的时间小于2毫秒。
(4)智能小车能够在直线,弯道,S型弯道,发卡弯道等完成无碰撞行驶。
(5)智能小车能够在放置零散障碍物的平面空间内行驶无碰撞。
3.2课题工作
一个单片机应用系统的硬件电路设计包含两部分内容:
一是最小系统设计,即设计微控制器能工作的最精简的电路,该设计方法固定,可以参考大多数单片机系统设计,设计完成后,单片机可以使用其内部的基本功能单元,如ROM、RAM、I/O端口、定时/计数器、中断寄存器等,单片机能正常工作,能按照程序控制其I/O端口。
二是扩展设计,在单片机内部系统无法完成需求工作时,选择适当的芯片,设计对应的外部电路,添加外围设备,如独立按键,LED灯、七段译码管、蜂鸣器、AD/DA转换器等,来完成需求功能。
3.3系统整体框图
图3-1系统整体框图
3.4电源模块设计
电源是整个系统稳定工作的前提,因此必须有一个合理的电源设计,对于小车电机部分的工作电源,要求在电池耗损时电压降低的情况下也能正常驱动电机,所以给电机供6V直流电压,使用四节五号电池串联供电,这样,即使存在电池耗损,整个电池盒的供电大于3V,这样的电压也足以驱动电机正常工作。
同时考虑到大电流器件可能会对单片机造成干扰,影响单片机的稳定运行,所以,本设计为单片机和电机控制芯片L298N这两块芯片单独供电,均采用四节五号电池串联供电。
3.5单片机最小系统设计
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K可编程Flash存储器。
拥有8位CPU和可编程Flash,具有以下功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,最高运行频率35Mhz,6T/12T可选。
具体使用到的模块包括:
ADC模拟数字转换模块、定时器模块、PWM脉冲宽度调制模块、中断模块、I/O端口和实时时钟模块。
单片机是小车的控制中心,单片机最小系统的设计是小车正常行驶的前提,最小系统指的是能够保证单片机正常运行的最精简的硬件设计,如图3-2所示,为STC89C52RC单片机的最小系统参考电路图。
图3-2STC89C52RC单片机最小系统参考图
图3-2中的STC89C52RC单片机最小系统由以下几个部分组成:
1.晶振电路:
单片机要能正常工作必须设计一个外部的时钟源,这个时钟源由晶振电路产生,具体电路为图中的Y1、C2、C3部分,电容典型值为30pF,晶振典型值为12Mhz。
2.复位电路:
STC89C52RC单片机为高电平复位,也就是说RST(9)脚上只要有持续两个机器周期以上的高电平就能使单片机复位,上电复位的原理是利用电容充电的一段时间将复位脚拉至高电平,使单片机完成复位,C1可以选用1uF的瓷片电容,R1在电容充电结束后将复位脚拉至低电平,保证单片机的正常工作。
其中,单片机的十二个晶振周期为一个机器周期,微处理器在一个机器周期内能执行一条指令,所以,机器周期也称为指令周期。
3.ISP下载部分:
如图中的Header5X2部分就是下载接口,电路是根据标准的ISP下载线来设计的,与常用的并口下载线,串口下载线和笔记本用的USBASP下载线兼容,只需将下载线接口插到本接口上就可以向单片机烧写程序。
同时,ISP的下载接口在设计时应注意以下两点,否则会造成程序下载的失败。
1.下载线接口中的电源和单片机共用一个电源。
2.下载线接口中用到的P1.5到P1.7脚不能连接外部器件,如果要连接外部器件可以设计为可插拔的方式,防止影响程序的下载。
在本设计中,笔者将这三个端口用于传递三个光电传感器的反馈信号,所以在下载程序的时候,需要将这三个光电传感器停用,即将它们断电,否则,下载器会提示无法正常下载。
4.电源和地:
如图所示,单片机的二十管脚为GND,接地,四十管脚为VCC,接电源,同时注意将第三十一管脚拉高,三十一脚即EA脚为内外存储器的选择脚,由于本设计只使用内部存储器,因此需要将此脚连至高电平,否则单片机无法正常工作。
5.上拉电阻:
P0口与其他三组I/O口不同,P0口没有内部上拉电阻,因此如果需要驱动LED等外部器件时需要在P0口加上10K的上拉电阻,并且加外部上拉电阻的方式有助于增强端口的驱动能力。