基于单片机智能小车系统设计毕业设计.doc_第1页
基于单片机智能小车系统设计毕业设计.doc_第2页
基于单片机智能小车系统设计毕业设计.doc_第3页
基于单片机智能小车系统设计毕业设计.doc_第4页
基于单片机智能小车系统设计毕业设计.doc_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

湖南人文科技学院毕业设计基于单片机智能小车系统设计毕业设计目 录第1章 绪 论11.1 选题的依据和课题的意义11.2 国内外研究概况11.3 课题研究方法21.4 设计构成及研究内容2第2章 系统的工作原理与结构52.1 工作原理和结构框图52.2 模块论证52.2.1 主控系统52.2.2 电机驱动模块62.2.3 循迹模块72.2.4 里程、速度测量模块72.2.5 金属块检测模块72.2.6 里程、时间显示模块82.2.7 声光报警模块82.2.8 电源模块82.3 方案论证总结8第3章 系统硬件设计113.1 单片机的介绍113.2 最小应用系统设计123.2.1 时钟电路123.2.2 复位电路133.3 电机驱动电路设计133.4 循迹模块设计163.5 测速模块的设计183.6 金属探测模块的设计193.7 声光报警模块的设计203.8 显示模块的设计213.9 电源模块的设计23第4章 系统软件设计254.1 单片机编程软件KEIL254.2 单片机软件部分254.2.1 系统控制流程图264.2.2 初始化程序设计274.2.3 寻线程序设计274.2.4 检测铁片程序设计284.2.5 测速程序设计294.2.6 声光报警程序设计29第5章 系统调试315.1 循迹功能调试315.2 测速功能调试315.3 铁块检测功能调试325.4 LED显示调试325.5 整体功能调试325.6 测试总结33第6章 总 结35致 谢37参考文献39附录A 整体原理图及实物图41附录B 相关程序42III湖南人文科技学院毕业设计 第1章 绪 论1.1 选题的依据和课题的意义智能小车的研究、开发和应用涉及传感技术、电气控制工程、智能控制等学科,智能控制技术是一门跨学科的综合性技术,当代研究十分活跃,应用日益广泛的领域。本课题所设计的智能小车,既具有操作机机械本体、控制器、伺服驱动系统和检测传感装置,是一种仿人操作、自动控制、可重复编程、能在三维空间完成灵活运动的自动化生产设备。随着工业自动化的不断发展工业机器人被广泛应用于工业生产的各个部门如采掘、喷涂、焊接、医疗等各大领域。由于工业机器人的出现它不断替代了人们的繁重劳动大大提高了劳动生产率减轻了人们的劳动强度此外它能在高温、低温、深水、宇宙、放射性和其他有毒、污染环境条件下进行操作日益体现出它的优越性。因此,智能小车系统的研究具有十分广阔的实际应用价值和潜在的市场要求。1.2 国内外研究概况随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。世界各国在智能微型车领域进行了很多研究,己经应用于各个领域,在探测和军事领域使用特别多。近年来,我国也开展了很多研究工作,以满足不同用途的需要。世界各国开发、研制星球探测车系统己经有了多年的历史。美国和前苏联是从20世纪60年代末期开始进行月球表面探测任务的。美国曾1966-1968年间,向月球成功发射了两次无人巡游探测器。1997 年,由美国JPL全称 Jet Propulsion Laboratory,美国太空总署喷气推进实验室研制的Sojourner号探测车登上了火星。它验证了小型火星车的性能,并完成了一系列技术试验。2004年1月,美国的“勇气号”和“机遇号”火星探测车再度登陆火星。前苏联在1959-1976年间,总共成功发射了两个月球探测车。单片机的应用领域越来越广泛,无论是在生活,生产上,单片机无处不在。Intel公司的STC89C52单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。STC89C52可以说是单片机领域的主流产品,其应用如此广泛,所以有必要去学习和应用该单片机,以满足实际产品开发的需要,也是适应社会智能化、自动化的趋势。1.3 课题研究方法1、文献索引法:利用学校图书馆资料和文献及通过网络查询相关资料对本设计足够的了解,为设计好本设计的具体模块电路做理论准备。2、调查法:与身边的同学和老师进行交流,充分考虑本设计实现的功能,尽可能完善该设计的功能。3、对比分析法:与目前全国电子设计大赛的作品进行比较,发现该智能小车系统存在的不足以及可以优化的部分,加以改进。1.4 设计构成及研究内容本设计是基于51系列单片机的智能小车系统的总体方案,主要是循迹检测模块、金属片检测模块、速度测量模块、声光报警模块、LED显示模块、单片机控制模块的设计。研究要求:1、任务设计并制作一个能自动循迹往返于起跑线与终点线间的小汽车。允许用玩具汽车改装,但不能用人工遥控(包括有线和无线遥控)。图1.1 跑道示意图轨迹为2cm宽的黑线,A为起点,D为终点。在跑道的A、B、C、D各点处有宽为15cm、长度不等的薄铁块,如图1.1所示。2、基本要求(1)车辆从起跑线出发(出发前,车体不得超出起跑线),到达终点线后停留10秒,然后自动返回起跑线(允许倒车返回)。(2)BC间为加速区,车辆往返均要求以高速通过,通过时间不得超过8秒。(3)电动车在行驶过程中检测到薄铁片时需立即发出声光指示信息并存储。(4)电动车完成上述任务后应立即停车,但全程行驶时间不能大于60秒,行驶时间达到60秒时必须立即自动停车。(5)自动记录、显示一次往返时间(记录显示装置要求安装在车上)。(6)自动记录、显示行驶距离(记录显示装置要求安装在车上)。47第2章 系统的工作原理与结构2.1 工作原理和结构框图根据要求,确定如下方案:在现有小车的基础上,加装检测黑线传感器和金属探测器,实现对小车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对小车的智能控制。这种方案能实现对小车的运动状态进行实时控制,控制灵活、可靠、精度高,可满足对系统的各项要求。硬件系统结构框图如下图2.1所示。图2.1 系统结构框图2.2 模块论证2.2.1 主控系统根据设计要求,此设计属于多输入量的复杂程序控制问题。据此,拟定了以下两种方案并进行了综合的比较论证,具体如下:方案一:选用一片CPLD(如EPM7128LC84-15)作为系统的核心部件,实现控制与处理的功能。CPLD具有速度快、编程容易、资源丰富、开发周期短等优点,可利用VHDL语言进行编写开发。但CPLD在控制上较单片机有较大的劣势。同时,CPLD的处理速度非常快,而小车的行进速度不可能太高,那么对系统处理信息的要求也就不会太高,在这一点上,MCU就已经可以胜任了。若采用该方案,必将在控制上遇到许许多多不必要增加的难题。为此,我们不采用该种方案,进而提出了第二种设想。方案二:采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。因此,这种方案是一种较为理想的方案。针对本设计特点多开关量输入的复杂程序控制系统,需要擅长处理多开关量的标准单片机,而不能用精简I/O口和程序存储器的小体积单片机,D/A、A/D功能也不必选用。根据这些分析我选定了C51系列单片机作为本设计的主控装置,51单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K,对于本设计也绰绰有余,更可贵的是51单片机价格非常低廉。综合考虑了传感器、两部电机的驱动等诸多因素后,我们决定采用一片单片机,充分利用单片机的资源。2.2.2 电机驱动模块方案一:采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般的电动机电阻很小,但电流很大,分压不仅回降低效率,而且实现很困难。方案二:采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的H型桥式电路。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的PWM调速技术。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。因此决定采用方案二使用功率三极管作为功率放大器的输出控制直流电机。2.2.3 循迹模块探测路面黑线的原理:光线照射到路面并反射,由于黑线和白线的反射系数不同,可根据接收到的反射光的强弱来判断传感器和黑线相对位置。方案一:采用普通可见光发光管和光敏管组成的发射接收电路。其缺点在于易受到环境光源的影响。即便提高发光管亮度也难以抵抗外界光的干扰。方案二:采用反射式红外发射接收器。直接用直流电压对发射管进行供电,其优点是实现简单,对环境光源的抗干扰能力强,在要求不高时可以使用。根据本题目中对探测地面的要求,由于传感器可以在车体的下部,发射、接收距地面都很近,外界光对其的干扰都很小。在基本不影响效果的前提下,为了简便起见,我们选用了方案二。2.2.4 里程、速度测量模块方案一:磁感应式。用霍尔元器件(霍尔元器件应用霍尔效应,输出量与磁场的大小有关)并在车轮上安装磁片,利用位置固定的开关型霍尔元器件来检测车轮的转动,通过单位时间内的脉冲数进行车速测量。方案二:光反射式。采用反射式红外器件,在车轮辐面板上均匀画出黑底白线或白底黑线,通过对线条的反射式红外器件,产生脉冲。通过对脉冲的计数测速。以上两种都是比较可行的转速测量方案。在本题中,小车的车轮较小,方案一的磁片密集安装十分困难,容易产生相互干扰。相反方案二适用于精度较高的场合,可以车轮上加较多的遮光条来满足脉冲计数的精度要求,因此采用方案二。2.2.5 金属块检测模块方案一:使用探测线圈和探测仪构成的金属探测器。此类金属探测器利用探测线圈产生的交变磁场在接近金属材料时产生微弱变化这一原理,将变化信号放大处理进而实现探测金属的目的。由于该探测器结构复杂,在短期内不可能完成制作,为节省时间,我们放弃了该方案。方案二:用近开关代替金属探测器。电感式接近开关本身就是理想的传感器。当金属物体接近开关的感应区域,开关就能无接触,无压力、无火花、迅速作出反应。用它作为本次小车的金属传感器,简单易行、准确且抗干扰性能优越。综上所述,本系统中采用方案二。2.2.6 里程、时间显示模块方案一:使用液晶屏显示。晶屏具有显示质量高,数字式接口,体积小,质量轻,功耗功率小的特点,但是其价格较高,在远距离显示效果较差,不适合我们使用。方案二:使用LED数码管显示。数码管具备数字接口,显示清晰,价格较低,性价比非常高,方便易行基本满足本题目的要求。综上所述,决定本系统采用方案二。2.2.7 声光报警模块采用蜂鸣器报警,当检测到金属块时及时报警,提高检测的准确性。2.2.8 电源模块方案一:单电源供电。优点是供电电路简单;缺点是由于电机的特性,电压波动较大,严重时可能造成单片机系统掉电。方案二:双电源供电。将电机驱动电源其它电路电源分离,利用光电耦合器传输信号。优点是减少耦合,提高系统稳定性;缺点为电路较复杂,电池占空间较大。由于耗电量较大,用2节锂电池(每节4.5V)串联供电,可以满足电量要求,为了节省有限的空间,使用方案一单电源供电。电流分两路,一路通过7805稳压管稳压后向控制系统和传感器供电,另一路加到电机驱动电路,这样利用了双电源减少耦合的优点,提高了系统的稳定性,有提高了空间的利用率。2.3 方案论证总结综上可得,本系统主要模块设计方案为(如图2.2):检验识别部分:采用红外线接收对管传感器实现循迹识别。金属块检测部分:采用金属块传感器接近开关检测。动力和转向部分:采用L298电机驱动芯片实现对小车方向控制。声光报警模块:采用蜂鸣器报警。显示部分:LED动态交替显示时间、里程。单片机控制部分:Intel公司的STC89C52。图2.2 基于单片机智能小车系统模块划分图第3章 系统硬件设计一个单片机应用系统的硬件电路设计包含有两部分内容:一是系统扩展,即单片机内部的功能单元,如ROMRAMI/O口定时/记数器中断系统等能量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统配置,既按照系统功能要求配置外围设备,如键盘显示器打印机A/DD/A转换器等,要设计合适的接口电路。3.1 单片机的介绍MCS-52单片机是美国Intel公司于1980年推出的一款相当成功的产品,该系列或其兼容的单片机仍是应用的主流产品之一,该系列单片机主要包括8032、8052、8752和89C52等通用产品。本系统选用的是52系列的STC89C52芯片作为控制核心,STC89C52是低功耗、高性能的CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用宏晶高密度非易失性存储器技术制造。片上Flash允许程序存储器在系统上可编程,亦适于常规编器。STC89C52具有以下标准功能:8字节的Flash,256字节的RAM,32位的I/O口线,看门狗定时器,2个数据指针,3个16位定时器/计数器,1个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。除此,STC89C52支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,内容被保存,振荡器被冻结。其I/O口控制图如下图3.1所示。图3.1 STC89C52的接口控制图3.2 最小应用系统设计STC89C52是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单可靠。用STC89C52单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图3.2 STC89C52单片机最小系统所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点:(1)有可供用户使用的大量I/O口线。(2)内部存储器容量有限。(3)应用系统开发具有特殊性。图3.2 STC89C52单片机最小系统3.2.1 时钟电路STC89C52虽然有内部振荡电路,但要形成时钟,必须外部附加电路。STC89C52单片机的时钟产生方法有两种。内部时钟方式和外部时钟方式。本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHZ到12MHZ之间选择。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,CX1、CX2可在20pF到100pF之间取值,所以本设计中,振荡晶体选择12HZ,电容选择22。在设计印刷电路板时,晶体和电容应尽可能靠近单片机芯片安装,以减少寄生电容,更好的保证振荡器稳定和可靠地工作。为了提高温度稳定性,应采用NPO电容。3.2.2 复位电路STC89C52的复位是由外部的复位电路来实现的。复位引脚RST通过一个斯密特触发器用来抑制噪声,在每个机器周期的斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以时间自动上电复位。时钟频率用12HZ时C取22uF,R取8.2K。按键手动复位见图3.3所示,按下按键S2,电源对C充电,使RST端快速到达高电平;松开按键,C向芯片的内阻放电,恢复为低电平,从而使单片机可靠复位。本设计就是用的按键手动复位,时钟频率选用12HZ时,C1取22uF,R2取1K。图3.3 STC89C52复位电路3.3 电机驱动电路设计本电路采用的是基于PWM原理的H型驱动电路。采用H桥电路可以增加驱动能力,同时保证了完整的电流回路。具体电路如图3.4所示。图3.4 H型驱动模块的设计当U1为高电平,U2为低电平时,Q3、Q6管导通,Q4、Q5管截止,电动机正转。当U1为低电平,U2为高电平时,Q3、Q6管截止,Q4、Q5管导通,电动机反转。电机工作状态切换时线圈会产生反向电流,通过四个保护二极管D1、D2、D3、D4接入回路,防止电子开关被反向击穿。采用PWM方法调整马达的速度,首先应确定合理的脉冲频率。脉冲宽度一定时,频率对电机运行的平稳性有较大影响,脉冲频率高马达运行的连续性好,但带负载能力差;脉冲频率低则反之。经试验发现,脉冲频率在50Hz以上,电机转动平稳,但智能车行驶时,由于摩擦力使电机转速降低,甚至停转。当脉冲频率在10Hz以下时,电机转动有明显的跳动现象,经反复试验,本车在脉冲频率为1520Hz时控制效果最佳。为方便测量及控制,在实际中我们采用了20Hz的脉冲。脉宽调速实质上是调节加在电机两端的平均功率,其表达式为: (3-1)式中P为电机两端的平均功率;为电机全速运转的功率;K为脉宽。当K=1时,相当于加入直流电压,这时电机全速运转,;当K=0时,相当于电机两端不加电压,电机靠惯性运转。当电机稳定开动后,有 (f为摩擦力) (3-2)则 (3-3)所以 (3-4)由上式可知智能车的速度与脉宽成正比。由上述分析,U1、U2这对控制电压采用了20Hz的周期信号控制,通过对其占空比的调整,对车速进行调节。同时,可以通过U1、U2的切换来控制电动机的正转与反转。在实际调试中,我们发现由于桥式电路中四个三极管的参数不一致,使控制难度加大,因此我们用专用的电机驱动管L298构成。电机驱动芯片L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。其引脚排列如图3.5所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信号。L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。也利用单片机产生PWM信号接到ENA,ENB端子,对电机的转速进行调节。L298N的逻辑功能:表3.1 L298N的逻辑功能表ENA(ENB)IN1(IN3)IN2(IN4)电机运行情况HHL正传HLH反转H同IN2(IN4)同IN1(IN3)快速停止LXX停止L298N的外形及封装:图3.5 L298N实物图电机驱动L298N原理图: 图3.6 电机驱动电路图3.6中硬件包括一个L298N芯片、4个二极管、2个0.1uF的电解电容、2个100uF的电解电容。工作时,单片机向L298N的ENA、ENB两口发送PWM波来控制左右两电机的转速。而IN1IN4四个接口则用来选择电机的旋转方向。如当IN1为高电平,IN2为低电平时,OUT输出稳定的5V电压,OUT2输出0V电压,使电机A正向旋转,控制小车前进。3.4 循迹模块设计本系统采用的是反射式红外发射接收器方案检测黑线,其原理是光线照射到路面并反射,由于黑线和白线的反射系数不同,可根据接收到的反射光的强弱来判断传感器和黑线相对位置。为了检测路面黑线,在车底的前部安装了三只反射式红外传感器。一只置于轨道中间,两只置于轨道外侧。因为若采用中部的一个传感器的接法,有可能出现当驶出拐角时将无法探测到转弯方向。若有两旁的传感器,则可以提前探测到哪一边有轨迹,方便程序的判断。其工作原理是当小车脱离轨道时,即当置于中间的一只光电开关脱离轨道时,等待外面任一只检测到黑线后,做出相应的转向调整,直到中间的光电开关重新检测到黑线(即回到轨道)再恢复正向行驶。每个寻迹传感器由一个ST188反射式红外光电传感器组成,内部由高发射功率红外光电二极管和高灵敏度光电晶体管组成。ST188的外形及内部结构如下图:图3.7 ST188的外形及内部结构图具体电路如图3.8。图3.8 黑线检测电路探测到黑色时输出为高,输出电压随探测物体表面颜色深度的减小而降低。其外形尺寸为6.5mm*5mm,为了防止光束照射范围超出轨迹线,将探测器的接收管集中在中部。图中电阻R3用于调整发射管的功率和接收管的灵敏度。为了防止环境光的影响,将其安装在靠近地面约10mm高度的位置上。在此条件下测得对白色地面的输出值约为0.8V,对黑色地面的输出值约为4.1V,保证差值为2V以上。3.5 测速模块的设计对于小车的车速检测及距离确定的一般原理是这样的:小车的行驶过程是一个连续的时间过程,它的时间、路程、速度都是连续的。我们用t表示时间,S表示路程,表示瞬时速度,那么它们的数学定义为:,小车的平均速度为:。将上面的式子离散化,假设在一个很短的时间t内小车行驶了S的路程,则小车的即时速度。直接得到小车的速度的传感器很难实现,但是小车行驶的距离是容易测量的,因为车轮在行驶的过程中一直在旋转。假设车轮的周长为L,在时间t内转动了N圈,则小车行驶的距离为:S=NL。在实际过程中,我们需要把车轮的转动信息转换成电信号,就是使用速度传感器得到脉冲信号。如果小车转动一周得到一个信号,则很显然的,距离测量的最大误差就是车轮的周长。因此,我们有必要在车轮转动一周的过程中得到尽可能多的计数脉冲。假设在车轮转动一周的过程中均匀地得到M个脉冲信号,那么距离测量的最大误差就变为L/M,如果在时间t内得到的计数脉冲为N个,那么小车行驶的距离为:。因此,在小车的速度和距离的检测过程中最需要知道的就是车轮旋转时产生的脉冲个数。速度传感器有多种,本系统采用的是反射式光电传感器。原理如下:图3.9 反射式光电传感器原理图由发射管TX发射的红外线经被检测物表面反射,反射光被接收管RX接收,接收管将接收的红外线信号转换成电信号。被检测物表面的光滑程度和表面颜色影响反射光的强弱,反射面越不光滑,颜色越暗,则反射光越弱。本系统在就是要利用它对颜色敏感的特点,当检测物表面为黑色时,反射光很弱,接收端检测到的光线可以忽略,使接收端呈现一种状态,例如开关管截止;当被检测物表面为白色时,反射光强烈,发射端发射的红外线被接收端全部接收,使接收端呈现另一种相反的状态,例如开关管开通。这两种相反的状态表现在电路中,就是高低电平组成的脉冲信号。此系统中,在每个轮子外表面涂上了黑白相间的条纹,每个反射式光电传感器由一个IO口来得到脉冲信号。通过前面叙述的原理,就可以算出小车的速度和行走的距离。当然这个速度和距离存在着误差,这个误差在本系统中是允许的。车轮轮辐面板如图3.10所示。图3.10 测速车轮面板本模块的硬件电路如图3.8所示,智能车的车轮直径,周长。3.6 金属探测模块的设计本系统使用电感型接近开关探测金属片。其工作原理为:利用外界的金属性物体对传感器的高频震荡产生的阻尼效应从而识别金属物体的存在。震荡器即是由缠绕在铁氧体磁芯上的线圈构成的LC震荡电路。震荡器通过传感器的感应面,在其前方产生一个高频交变的电磁场。当外界的金属性导电物体接近这一磁场,并到达感应区时,在金属物体内产生涡流效应,从而导致LC震荡电路震荡减弱,振幅变小,即称之为阻尼现象。这一震荡的变化,即被开关的后置电路放大处理并转换为一确定的输出信号,触发开关并驱动控制器件,从而做非接触式目标检测。图3.11 在阻尼和非阻尼状态时的磁场 图3.12 电感式传感器的工作原理其特点为:没有磨损,使用寿命长;不会产生误动作;无接触,因而可免于保养;输出为开关量,方便MCU处理。为了防止路面不平及车体晃动对探测的影响,我们使用了有效距离为15mm的接近开关作为探测器。使用时,我们将其固定在智能车的正前端,将探测面固定在与地面距离10mm左右的位置。将它的信号输出端接到INT0口,通过中断方式进行探测。3.7 声光报警模块的设计本设计采用蜂鸣器报警电路,当检测到金属块时,单片机给一个脉冲信号给蜂鸣器,及时报警,提高检测的准确性。由于蜂鸣器需要很大的电流才能驱动,所以必须在前级接一个三极管,起到电流放大作用。当P3.5为低电平时,三极管Q1导通,蜂鸣器LS1响,指示灯DS1亮,为高电平时,Q1截止,蜂鸣器LS1和指示灯DS1不工作。因为当单片机复位时P0、P1、P2、P3都会置高,所以选用PNP型三极管,如果选用NPN型三极管,在复位时会让三极管导通,必须进行软件调整,这样增大系统的复杂性和不可靠性,尽管如此还是不能完全避免这种现象,所以这用PNP型三极管9015,具体电路如图3.13所示。图3.13 声光报警电路3.8 显示模块的设计显示部分采用数码管动态扫描显示的方法实现。为了减少IO口的占用,合理分配IO口,我们采用P0口为数据口,并配合P2口使能段选和位选。动态扫描过程通过控制锁存器74HC573与译码器74HC138的所存控制,减少了IO口的占用。本设计中采用的锁存器芯片74HC573作为数码管段选显示驱动器,它的管脚如图3.14所示,用单片机的并行口控制,一个数码显示电路用8个口线,用专用驱动芯片控制可以减少对CPU的利用时间,单片机将有更多的时间去完成其他功能。图3.14 74HC573管脚该芯片共有20个管脚,管脚D0D7接单片机并行口,通过对单片机对芯片进行控制,管脚O0O7分别与4位八段数码管中的a、b、c、d、e、f、g、dp八个段位选择端相连,这八个段位选择端用来产生LED显示信号。本设计中采用的译码器芯片74HC138作为数码管位选显示驱动器,它的管脚如图3.15所示。图3.15 74HC138管脚74HC138译码器可接受3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。74HC138特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高,其真值表如表3-1所示。管脚A0A2接单片机并行口,通过对单片机对芯片进行控制,管脚Y0Y3分别与4位八段数码管中的a1a2a3a4四个数位选择端相连,这四个数位选择端用来产生LED选通信号。表3.2 74HC138集成译码器真值表数据显示过程如下:选通位选,送位选数据,锁存位选;选通段选,送出数码管段选数据,锁存数据。并要合理的设计其段选和位选的选通时间,实现动态扫描显示。具体电路图3.16所示。图3.16 数码管显示电路3.9 电源模块的设计本系统采用的供电模块是单电源供电,用2节锂电池(每节4.5V)电池串联供电。电流分为两路,一路通过7805稳压后向单片机控制系统和传感器供电,另一路直接加到电机驱动电路,这样即利用了双电源减少耦合的优点,提高了系统的稳定,又提高了空间的利用率。具体稳压电路如图3.17所示。图3.17 7805稳压电路第4章 系统软件设计软件在一个智能系统中扮演着举足轻重的角色,软件设计的好坏直接影响着整个系统的性能。目前已经有很多种嵌入式实时多任务操作系统,如:Linux、RTX51及UC/OS等,可以更有效的利用系统的各种资源,简化编程,缩短开发周期。鉴于本系统采用STC89C52单片机为控制器,本身的各种资源都很有限,引入一个操作系统代价太大,所以考虑直接来优化系统的软件结构,同样可以达到“多任务”、“实时”等要求。4.1 单片机编程软件KEILKeil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。C51工具包中的uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器,如EPROM中。4.2 单片机软件部分单片机软件主要分为三大部分,单机的控制,传感器信号的接收和处理,LED数码管的反馈显示。三者相互关联,密不可分。4.2.1 系统控制流程图智能小车系统的整体软件控制流程图见图4.1所示。图4.1 整体软件控制流程图该系统中小车的启停加减速运行状态的改变是由传感器检测到铁片时给单片机发送信号确定的。当传感器检测到铁片时,记录铁片的片数,并声光报警,单片机控制电机,调整速度。当检测到第二块铁片时小车加速运行,当检测到第三块时减速运行,为停车做好准备,当检测到第四块铁片时小车停止。10S后小车倒退行驶,当检测到第5块铁片时小车加速,当检测到第6块时减速运行,当检测到第7块铁片时小车停止,并交替显示往返总行驶时间和往返总行驶路程。4.2.2 初始化程序设计在程序中负责初始化单片机系统、电机和中断/定时器等属性。程序流程图如图4.2所示。图4.2 初始化程序设计流程图初始化函数中,对电机的初始状态设定为停止状态;打开中断0,扫描路程检测模块的脉冲;对定时器0设定初始值,设定电机转速;设定定时器1初始值,设定行驶时间记录的周期。具体程序见附录B相关程序中初始化函数init()。4.2.3 寻线程序设计 寻线是系统的主要组成部分之一,寻线程序设计的好坏直接影响到系统的效率和稳定性。其中P1.4,P1.5,P1.6引脚分别接寻线传感器输入。检测到三口信号之后进行反应选择,流程图如图4.3所示。具体程序见附录B相关程序中循迹函数IR_direction()。 图4.3 循迹模块流程图当小车行驶时,进入循迹模块控制,首先检测三路循迹模块是否检测到黑线,当检测到黑线时,判断是那路循迹模块检测到黑线。如是中间传感器检测到黑线,小车前进;如是左边传感器检测到黑线时,右转,当中间循迹模块检测到黑线时前进;如是右边传感器检测到黑线时,左转,当中间循迹模块检测到黑线时前进。4.2.4 检测铁片程序设计铁块检测模块是系统的另一个重要组成部分,此模块的设计直接与小车行驶过程加减速及停止功能相关。传感器的的信号线接单片机的P1.7,通过查询的方式检测铁块,其流程图如下:图4.4 金属检测流程图如图4.4流程图所示,小车行驶时,单片机查询P1.7电平信号,判断金属片传感器接近开关检测到金属片时,P1.7为低电平,金属片计数变量加一,同时给声光报警模块一个电平信号,命令报警提示,返回继续查询P1.7信号,等待命令。具体程序见附录B相关程序中铁块检测函数det_metal()。4.2.5 测速程序设计测速模块的设计是通过测量整个行驶的总路程,然后除行驶总时间,即得整个形式的过程的平均速度,所以整个模块的程序设计关键在于测路程。当车轮转动时,安装在轮胎上的圆形遮光板转动,每通过一个黑白条时便产生一个脉冲,由累计脉冲的总数便可得到行驶的路程。本设计中,车轮周长20cm, 圆周上黑白条数各为6个,故一个脉冲对应3.3cm路程,即路程测量精度为3.3cm。其流程图如下:图4.5 测速流程图小车行驶时,测速模块检测到贴在车轮上的圆形遮光板黑白线交替时产生的脉冲变化,进入中断0,脉冲数记录变量加一,如此反复扫描中断0,记录总脉冲数。当小车停止时,通过智能算法计算小车行驶平均速度。具体程序见附录B相关程序中函数display_length()。4.2.6 声光报警程序设计为了达到设定的要求,当小车检测到铁片时,由单片机控制实现声光报警功能,给单片机的P3.5口一个低电平,蜂鸣器就会响,灯会亮。以下是相应的模块流程图。图4.6 声光报警模块程序流程图进入声光报警模块时,先判断金属片检测模块是否检测到金属片,当接近开关检测到金属片时,单片机给P3.5一个低电平,声光报警模块报警,给予提示,否则返回继续等待判断,当此次扫描完毕时,返回等待下次命令。第5章 系统调试5.1 循迹功能调试将寻迹模块的程序烧录到小车中,把小车放到轨道上,上电复位后查看小车的循迹模块是否能正常工作,即小车能否循线行走,并在偏向后自动校正。表5.1 循迹模块测试状态表次数是否按照黑线行驶是否偏离跑道1是无2是无3是无4是无经测试:小车能够进行寻线行驶且自动校正方向,但有时也偏离跑道,转动停止,推断是速度过快,当两旁传感器检测到黑线时,小车无法及时调整转速而偏离跑道,后调低速度,小车能按照黑线行驶,即寻线功能没有问题。5.2 测速功能调试此模块的检测主要是检测传感器对黑影部分的感应度。将测速模块的程序下载到小车中,把小车放到赛道上,上电复位后查看测速模块是否正常工作,即当小车行驶时,测速传感器是否对测速板的黑、白影部分产生不同反应,主要看此模块的指示灯是否闪烁不停。并在固定时间内实测行驶路程,检测是否有漏测脉冲数。表5.2 测速模块参数表次数行驶总路程(m)行驶总时间(s)脉冲数18.0543s24128.1345s24438.0743s24348.2246s246经测试:此模块在测速板转动时,能良好的感应到黑影部分,并产生脉冲。但刚开始有较大误差,推断是行驶过程中有漏测脉冲数,后调低速度,能符合设计要求。5.3 铁块检测功能调试铁片检测功能的测试与声光报警模块相结合的。把铁片检测模块和声光报警模块的程序下载到小车上,当小车在行驶中,当小车经过铁片时,铁片检测模块是否能及时检测到铁片,当检测到铁片时,声光报警模块应立即报警提醒。表5.3 铁片检测状态表次数是否往返铁片数目是否按程序加减速有无声光提示1是4是有2是4是有3是4是有4是4是有经测试:当小车经过铁片时,声光报警模块能立即报警,说明铁片检测功能正常。5.4 LED显示调试LED显示的测试是通过两部分完成的,第一部分是通过测试显示制作人那一段程序来看显示的是否正常而且稳定的。第二部分是结合寻迹子程序,在寻迹过程中检测看是否可以准确的在按照黑线精准运行的同时显示行程的总时间。经测试:LED个别点不稳定,这一定最终通过修改显示的延时并且一并修改PAUSE的延时最终得以改进。而第二部分测试在前面的问题解决之后变的轻松了很多,在调整了几次延时的数据以后基本可以完美的按照黑线精确而且全速前进。5.5 整体功能调试将编写好的程序下载到芯片里,然后将车体放好,首先连接串口线两端于单片机和PC机,打开串口下载软件,把小车整体程序下载在单片机,然后将小车放在跑道上,打开电源,让小车按照程序的设定在轨道上运行,相关参数指标见表5.4。表5.4 系统调试参数表项目/次数123显示时间45.544.246.3显示路程(m)3声光报警次数888出线次数000倒车返回是是是经测试:从整个结果来看,小车系统运行正常平稳,完成良好。5.6 测试总结本车经测试完成了题目全部要求。但在刚开始测试时遇到一些小问题,如跑离轨道,测速模块漏加脉冲数,金属检测模块检测不到铁片,经过反复测试,发现这些小问题主要是由于小车速度过快和传感器距离地面太远,造成传感器无法及时采集数据,做出准确动作,经过反复多次调整,小车能按照程序要求完美完成题目全部功能要求。 第6章 总 结本毕业设计是用单片机对机器人(小车)的控制系统设计。整个设计知识面比较广泛,最关键的是应用性强。以传感器技术为基础的信息采集手段在现在的社会中已经具有非常广泛的应用而且前景无限。本设计虽然只是运用了简单的小车作为控制的对象,实际上是远程控制机器人的缩影。无论是在危险环境下机器人的探索作业(深地下、太空),高自动化生产车间的生产作业,还有生活中机器人的辅助应用,实际上都以此技术为基础。研究此次毕业设计,我认为让我有了对当今技术的最基础的理解,也坚定了我继续努力走好这条路的决心。可以以自身为例,以本系统为最简单的模型。总之,虽然在这过程当中遇到过很多阻碍,在硬件布板上遇到过原理图中有些元件因为封装问题导致生成的PCB出现错误,软件调试遇到过显示乱码的问题,通过发现问题然后想办法去解决问题这一过程中让自己对知识有了更深一层的了解,领会到了如何为了做好一个设计而进行全面考虑,同时还培养了自己独立思考问题、解决问题的能力,养成了良好的程序设计风格。致 谢整个毕业设计终于比较成功的完成了,为我大学单片机的学习画上了比较完美的句号。的确,实践是检验理论的唯一途径。自认为理论知识扎实的我到实践的时候,最开始还是手足无措。通过几个月的实践,我已对单片机设计有了更加深入的了解,对单片技术也建立的更加深厚的感情。在这里我想说的是,我能顺利的完成我的毕设,有三个必要的条件。第一,我认为是我自己建立的坚定做下去的决心,给了我无限的动力。说实话,在实践的整个过程中,我遇到了很多次的失败,好几次都想放弃一些东西,将系统简化。但是每次有这种想法的时候,我心里总会有个声音提醒我不能就这么放弃,应该努力的拼一拼。正是这种毅力,让我完成了基本任务,并对基础系统进行了扩展。第二,我要感谢的是我的指导老师,谭周文老师。谭周文老师虽然不会一直在我身边督促我,但是他每次的出现都是在关键的时候。每次我遇到难点的时候,往往就是他的一句话为了指明前进的方向。而且每当我提出问题的时候,谭老师总是悉心解答,从不吝啬自己的资源,这一点让我非常感动。第三,我要感谢跟我在实验室一起战斗的战友们,很多时候是他们给了我第一时间的帮助。电路不好焊,两只手不够,我就会有四只手;轨道不好制作,我便有好几个人帮忙;程序有问题,大家就一起讨论,提出自己的想法。短暂的毕业设计结束了,虽然做出了成果,但是由于自身水平有限,设计中一定存在不足之处,所以请各位老师指正,为的是取得更大的进步。参考文献1张鑫.单片机原理及应用(M).北京:电子工业出版社,2005:105-242.2赵家贵.新编传感器电路设计手册(M).北京:中国计量学出版社,2002:23-26.3赵志刚.Protel DXP使用教程(M).北京:清华大学出版社,2007:10-333.4黄智伟.全国大学生电子设计竞赛电路设计(M).北京:北京航空航天大学出版社,2006:127-140.5康华光.电子技术基础数字部分(第五版(M)).北京:高等教育出版社,2006:10-256.6韩广兴.电子元器件与实用电路基础(修订版(M)). 北京:电子工业出版社,2005:340-35

温馨提示

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

评论

0/150

提交评论