毕业设计-基于ATmega8单片机寻迹小车设计.doc_第1页
毕业设计-基于ATmega8单片机寻迹小车设计.doc_第2页
毕业设计-基于ATmega8单片机寻迹小车设计.doc_第3页
毕业设计-基于ATmega8单片机寻迹小车设计.doc_第4页
毕业设计-基于ATmega8单片机寻迹小车设计.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

JIUJIANG UNIVERSITY毕 业 设 计 题 目 基于ATmega8单片机寻迹小车设计英文题目 The Design of Tracking Car Based onThe ATmega8 Single-Chip 院 系 机械与材料工程学院 专 业 机械设计制造及其自动化 姓 名 张发俊 年 级 2009(机材A0916) 指导教师 张为 二零一三 年 六 月 摘要本设计是基于ATmega8单片机控制的简易自动寻迹小车系统。设计旨在设计出一款可以自主按照预设的轨迹行走的小车。从设计的功能要求出发,小车硬件系统由ATmega8微控制器、红外传感器、和直流驱动电机组成。控制系统以ATmega8为控制核心, 用单片机产生PWM波,控制电机速度继而改变小车方向。用红外光电传感器对路面黑色轨迹进行检测,并确定小车当前的位置状态,再将路面检测信号反馈给单片机。单片机对采集到的信号予以分析判断,及时控制驱动电机以调整小车转向,使小车能够沿着黑色轨迹自动行驶,实现小车能够自主识别黑色引导线并根据黑色引导实现快速稳定的寻线行驶。【关键词】Atmega8;寻迹小车;红外传感器;PWMAbstractThis design is based on ATmega8 Single-Chip control system of simple automatic tracing car. Design aims to trancing car can walk independently according to the preset trajectory. Starting from the functional requirement of the design, car hardware system consists of ATmega8 Single-Chip, infrared sensors, and the dc motor drive. Control system based on ATmega8 control core, using single-chip microcomputer to produce PWM wave to control motor speed, in turn, change the direction of the car. With infrared electric sensor to test the pavement black trajectory, and determine the cars current location, and will feedback the pavement detection signal to the microcontroller. Microcontroller, and analyzing the collected signal shall be timely control drive motor to adjust the car turned, enables the car along the black track automatically, achieve the car able to independently identify black guide line and according to the black guide line for fast stability.【key words】Atmega8; Tracing the car; light electricity detector; PWM目 录前言1第一章 绪 论21.1 智能小车的背景21.2 课题研究的目的和意义3第二章系统总设计方案52.1 任务要求52.2 理论及设计方案52.3 系统总体框架6第三章 主要元件说明与硬件设计73.1 寻迹传感器模块73.1.1 ITR8307介绍73.1.2 传感器电路图83.1.3 传感器的安装93.2 控制器模块103.2.1 ATmega8介绍103.2.2 ATmega8 单片机硬件结构及主要性能113.2.3 主要I/O口分配123.2.4 时钟电路123.2.5 下载电路123.2.6 复位电路133.2.7 电机驱动模块14第四章 信息处理与程序设计154.1 直流电机调速154.1.1 脉宽调制PWM工作原理154.1.2 PWM调速应用154.2 PID跟踪控制174.2.1 关于PID的使用174.2.2 模拟PID控制原理184.3 ATmega8模数转化器194.3.1 ADC介绍194.3.2 ADC 多工选择寄存器ADMUX194.3.4 ADC 转换结果224.4 软件程序设计234.4.1 程序总流程图234.4.2 ADC 源程序244.4.3 PWM调速源程序254.4.4 PID 算法源程序26第五章 ICCAVR与Proteus仿真275.1 ICC AVR与Proteus说明275.2 模拟光电检测电路275.3 Proteus仿真过程以及结果28结 论30参考文献31谢 辞32附录133附录239附录340V前言随着科技的发展,人们的生活出现了各种新型的寻迹机器人,例如:清扫机器人、安放机器人。他们的诞生使我们的生活变得更快速、充实。本设计,主要是将单片机应用到寻迹机小车进行的设计。单片机应用技术日益更新。单片微型计算机简称单片机。由于它的结构及功能均按工业控制要求设计,因此其确切的名称应是单片微控制器(SingleChipMicro-controller)。单片机是把微型计算机的各个功能部件,即中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、I/O接口、定时器/计数器以及串行通信接口等集成在一块芯片上,构成一个完整的微型计算机,故它又称为单片微型计算机(SingleChipMicro-computer)。红外检测应用领域也比较广泛。人们对它的研究从来没有停止过,目前已经开发出了众多的应用产品,从医疗、检测、航空到军事等领域,几乎处处都能看到红外的身影。但人们对她的研究仍然延续,时不时出现的新发明新应用,带给我们惊讶与感叹,人类对这座宝藏的开发还远远不够,红外产业还有广阔的空间。第一章 绪 论1.1 智能小车的背景随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。可见其研究意义很大。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。而近几十年来中国在航天领域的发展越来越快,世界各国也从没停止过探索外星的脚步。在外星球恶劣的环境下探索全由人去完成是不可能的。那么可以自动驾驶的小车就发挥了它的作用了。美国和前苏联是从20世纪60年代末期开始进行月球表面探测任务的。美国曾在1966-1968年间向月球成功发射了两次无人巡游探测器。1997年由美国JPL(全称JetPropulsion Laboratory美国太空总署喷气推进实验室)研制的Sojourner号探测车登上了火星。它验证了小型火星车的性能并完成了一系列技术试验。2004年1月美国的“勇气号”和“机遇号”火星探测车再度登陆火星。前苏联在1959-1976年间总共成功发射了两个月球探测车。智能小车不仅仅在科研上有发挥之地,其主要应用领域包括以下几个方面: (1) 军事侦察与环境探测现代战争对军事侦察提出了更高的要求世界各国普遍重视对军事侦察的建设采取各种有效措施预防敌方的突然袭击并广泛应用先进科学技术不断研制多用途的侦察器材和探测设备在车上装备摄像机、安全激光测距仪、夜视装置和卫星全球定位仪等设备通过光缆操纵完成侦察和监视敌情、情报收集、目标搜索和自主巡逻等任务进一步扩大侦察的范围提高侦察的时效性和准确性。 (2) 探测危险与排除险情 在战场上或工程中常常会遇到各种各样的意外。这时智能化探测小车就会发挥很好的作用。战场上可以使用智能车辆扫除路边炸弹、寻找和销毁地雷。民用方面可以探测化学泄漏物质可以进行地铁灭火以及在强烈地震发生后到废墟中寻找被埋人员等。(3) 安全检测受损评估 在工程建设领域可对高速公路自动寻迹进行道路质量检测和破坏分析检测;对水库堤坝、海岸护岸堤、江河大坝进行质量和安全性检测。在制造领域可用于工业管道中机械损伤裂纹等缺陷的探寻对输油和输气管线的泄漏和破损点的查找和定位等。 (4) 智能家居 在家庭中可以用智能小车进行家具、远程控制家中的家用电器控制室温等。1.2课题研究的目的和意义智能小车作为机器人的典型代表。它可以分为三大组成部分:传感器检测部分、执行部分、CPU。其中最基本的寻迹功能的实现就必须要感知导引线,感知导引线相当给机器人一个视觉功能。使用传感器感知线路使小车实现自动识别路线,快速到达指定地点。本设计的寻迹小车利用ATmega8单片机为控制核心,通过传感器对路面黑色轨迹进行检测,并将路面检测信号通过ADC转换为数字信号。单片机对采集到的信号予以分析判断,及时控制直流电机不同的转动状态,通过小车的前进、左转、右转以调整小车的转向,使小车达到沿着既定轨道行驶。本设计用到的ATmega8单片机。它是一款比较先进的控制核心。ATmega8 是一款采用低功耗CMOS工艺生产的基于AVR RISC结构的8位单片机。AVR单片机的核心是将32个工作寄存器和丰富的指令集联结在一起,所有的工作寄存器都与ALU(算术逻辑单元)直接相连,实 现了在一个时钟周期内执行的一条指令同时访问(读写)两个独立寄存器的操作。这种结构提高了代码效率,使得大部分指令的执行时间仅为一个时钟周期。因此,ATmega8可以达到接近1MIPS/MHz的性能,运行速度比普通CISC单片机高出10倍。这里的寻迹是指小车在黑色地板上循白线行走,通常采取的方法是红外探测法。红外探测法即利用红外线在不同颜色的物体表面具有不同的反射性质的特点在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射反射光被装在小车上的接收管接收,如果遇到黑线则红外光被吸收小车上的接收管接收不到红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。红外探测器探测距离有限,一般不应超过3cm。通过构建智能小车系统培养设计并实现自动控制系统的能力。在实践过程中熟悉以单片机为核心控制芯片设计小车的检测、驱动和显示等外围电路采用智能控制算法实现小车的智能循迹。灵活应用机电等相关学科的理论知识联系实际电路设计的具体实现方法达到理论与实践的统一。在此过程中加深对控制理论的理解和认识。第二章系统总设计方案2.1 任务要求基于ATmega8单片机设计一智能寻迹小车。要求小车能按给定的黑线自动寻找轨迹并按照轨迹平稳的行驶。实现小车自动辨别黑线行驶功能。系统方案方框图如图2-1所示。光电检测信息处理软件控制驱动电机控制小车图2-1 系统方案方框图根据上述要求,本论文的主要工作内容:1.实物电路图(1)路面检测模块设计及实物传感器的安装(2)ATmega8主控芯片最小系统和下载电路设计(3)直流电机的调速及PID跟踪控制理论设计2.仿真电路图和软件设计 (1)根据实物电路图完成仿真电路图设计 (2)软件的总体设计及ICC AVR编程(3)Proteus仿真测试2.2 理论及设计方案驱动方面:寻迹小车采用后轮驱动,后轮左右两边各用一个直流电机驱动。控制左右两电机的转速以达到控制小车转向的目的。为了让小车能平稳通过角度极端的弯道,在降低左电机速度,同时会给右电机加速。这种方式能更有效的控制小车转向。路面检测方面:本设计以白底黑线做为小车检测基础,小车由红外线对管的检测,按黑线循环行驶。由于不同颜色的物体表面具有不同的反射性质,红外探测发射极向地面发射红外线,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;当黑线则红外光被吸收,小车上的接收管接收不到红外光。根据这种特点就可以检测出小车的行驶轨迹。但由于红外探测器探测距离有限和环境光线干扰会导致小车在检测上带来误差。红外探测距离可经多次实验得到最佳距离。环境光线带来误差可以靠软件来避免。2.3 系统总体框架自动寻迹小车控制系统由主控制电路模块、红外检测模块、电机驱动模块等部分组成,控制系统的结构框图如图2-2所示。其工作原理是:红外检测模块不断检测黑线,检测到的红外信号送到ADC转换电路,ADC转化电路将转换完的数字信号送到单片机,单片机做出判断并驱动电机,来使寻线机器人可以自主的寻线行驶,自由转弯。红外检测模块主控芯片ATmega8MUC电机驱动模块图2-2 控制系统的结构第三章 主要元件说明与硬件设计3.1 寻迹传感器模块寻迹是指小车在白色地板上循黑线行走,由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强弱来判断“道路”。通常采取的方法是红外探测法。即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光过,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。由此过程可以判断黑线的位置,从而单片机控制左右电机的转速,以达到寻迹行驶。3.1.1 ITR8307介绍ITR8307是一种光反射开关,其结构包括一个材料为GaAs(砷化镓)的红外LED发射机和一个NPN晶体管的高敏红外接收器。这个两个组件并排封装。可用于接收进行短距离、大范围的红外线。:阴极:阳极:集电极:发射极尺寸单位:mm图3-1 外观及内部电路图ITR8307的输入输出及反应速度参数如3-1表所示参数符号基本值最大值单位条件输入25标准大气压下的功率Pd75-mW-正向电压VF1.21.6VIF=20mA反向电流IR-10mAVR=5V峰值波长P940-nm-输出暗电流ICEO-100nAVCE=10VCE饱和电压VCE(sat)-0.4VIC=2mA IB=0.2mA速度上升速度tr20-secVCE=2VIC=100A RL=1K下降速度tf20-sec工作温度Topr-2580-焊接温度Tsol260-表3-1 ITR8307参数表如下3.1.2 传感器电路图传感器ITR8307是寻线的主要元件,PD0接单片机。单片机控制PD0高低电平,从而控制红外发射LED是否发射红外光。ADC0接单片机。些端口的信号传入单片机,经A/D转换后,得到电压值。根据电压值判断是否检测到黑线。电路图如图3-2所示:图3-2传感器ITR8307电路图3.1.3 传感器的安装查阅ITR8307传感器规格书,图3-3主要说明传感器发射极电流与反射板距离关系。实验采用铝板为反射板。从图中可知传感在距离0.7mm处,发射极电流比上集电极电流达到最高。但考虑到距离太过贴近,设计传感器安装距地面 23 mm。发射极电流相对集电极电流百分比(%)IF=4mA VCE=2V Ta=25发射极电流与距离d (mm)关系传感器距离铝板d (mm)图3-3 发射极电流与距离d 关系图3.2 控制器模块3.2.1 ATmega8介绍ATmega8 是ATMEL公司在2002年第一季度推出的一款新型AVR高档单片机。在AVR家族中,ATmega8是一种非常特殊的单片机,它的芯片内部集成了较大 容量的存储器和丰富强大的硬件接口电路,具备AVR高档单片机MEGE系列的全部性能和特点。但由于采用了小引脚封装(为PDIP 28和TQFP/MLF32),所以其价格仅与低档单片机相当,再加上AVR单片机的系统内可编程特性,使得无需购买昂贵的仿真器和编程器也可进行单片机 嵌入式系统的设计和开发,同时也为单片机的初学者提供了非常方便和简捷的学习开发环境。ATmega8引脚如图3-4所示。图3-4 ATmega8 PDIP封装引脚图3.2.2 ATmega8 单片机硬件结构及主要性能(1)高性能、低功耗的8位AVR微控制器,先进的RISC精简指令集结构130条功能强大的指令,大多数为单时钟周期指令32个8位通用工作寄存器片内集成硬件乘法器(执行速度为2个时钟周期)(2)片内集成了较大容量的非易失性程序和数据存储器以及工作存储器8K字节的Flash程序存储器,擦写次数:10000次支持可在线编程(ISP)512个字节的E2PROM,擦写次数:100000次可编程的程序加密位(3)丰富强大的外部接口(Peripheral)性能2个具有比较模式的带预分频器( Separate Prescale)的 8位定时/计数器1个带预分频器 (SeParat Prescale)具有比较和捕获模式的 16位定时计数器2个PWM通道,可实现任意相位和频率可调的PWM脉宽调制输出6通道 A/D转换( PDIP封装),4路10位A/D+2路8位A/D 带片内RC振荡器的可编程看门狗定时器片内模拟比较器(4)特殊的微控制器性能 可控制的上电复位延时电路和可编程的欠电压检测电路 内部集成了可选择频率(l/2/4/8MHZ)、可校准的RC振荡器外部和内部的中断源18个(5)I/O口和封装最多23个可编程I/O口,可任意定义I/O的输入/输出方向输出时为推挽输出,驱动能力强,可直接驱动LED等大电流负载输入口可定义为三态输入,可以设定带内部上拉电阻,省去外接上拉电阻(6)宽工作电压4.5V-5.5V(ATmega8)3.2.3 主要I/O口分配表3-2 单片机的主要I/O分配如PC0 PC1 PC2 PC3 PC4 PC5接收由传感器的信号PD0 PD1 PD2 PD3 PD4 PD5控制传感器红外发射器的通断电PB1 PB2输出PWM波控制左右电机转速PC6单片机复位3.2.4 时钟电路时钟电路一般由晶振和电容组成。单片机必须在周期性的时钟信号的作用下工作,如果没有时钟信号的限制,那单片机的工作就乱套。对于ATmega8单片机来说,它内部有经过校正的内部RC振荡器,所以在对时钟精度要求不高的场合,我们可以省去时钟电路。3.2.5 下载电路这里选用现在普遍的ISP下载线路。ISP接口使用ATmega8四个接口:MOSI RST SCK MISO 。连接单片机电路如图3-5所示。图3-5 ISP下载电路3.2.6 复位电路复位电路的作用:单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。与传统的51单片机相比,AVR单片机内置复位电路,并且在熔丝位里,可以控制复位时间,所以,AVR单片机可以不设外部上电复位电路,依然可以正常复位,稳定工作。但要注意,AVR单片机是低电平复位。复位电路设计很简单:直接拉一只10K的电阻到VCC即可(R1)。为了可靠,再加上一只0.1uF的电容(C0)以消除干扰、杂波。二极管D1(1N4148)的作用有两个:作用一是将复位输入的最高电压钳在Vcc+0.5V左右,另一作用是系统断电时,将R0(10K)电阻短路,让C0快速放电,让下一次来电时,能产生有效的复位。总的复位电路如图3-6所示:图3-6 复位电路图3.2.7 电机驱动模块本设计使用小型直流电机。直流电机由脉宽调制(PWM)调速,其工作原理是:通过改变“接通脉冲”的宽度,使直流电机电枢上的电压的“占空比”改变,从而改变电枢电压的平均值,控制电机的转速。因此,我们可以通过单片机,生成固定频率的脉冲信号,通过改变脉冲信号中的“占空比”来控制电机的转速。图3-7中Q1和Q2为大功率三极管,直接控制直流电机的通断电。D7和D8二极管为续流二极管,其作用是在电机断电时,由于电感的存在,电动机的电枢电流可通过续流二极管形成回路而继续流动,因此尽管电压呈脉动状,而电流还是连续的。电机脉宽调制(PWM)调速控制图,如图3-7图3-7 PWM控制电路图第四章 信息处理与程序设计4.1 直流电机调速4.1.1 脉宽调制PWM工作原理脉宽调制的全称为:PulseWidth Modulator,简称PWM,由于它的特殊性能,常被用于直流负载回路中、灯具调光或直流电动机调速。脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(1),要么完全无(0)。电压或电流源是以一种通(1)或断(0)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。脉宽调制(PWM),控制方式就是采用脉冲宽度调制技术,其工作原理是:通过改变“接通脉冲”的宽度,使直流电机电枢上的电压的“占空比”改变,从而改变电枢电压的平均值,控制电机的转速。因此,我们可以通过单片机,生成固定频率的脉冲信号,通过改变脉冲信号中的“占空比”来控制电机的转速。4.1.2 PWM调速应用改变占空比的方法有3种:(1)定宽调频法,这种方法是保持t1不变,只改变t2,这相也使周期T(或频率)也随之改变。(2)调宽调频法,保持t2不变,而改变t1,这样也会使周期T(或频率)改变。(3)定频调宽法,这种方法是使周期T(或频率)不变,面同时改变t1和t2。这里使用第三种调宽方法。图4-1 PWM控制波形图电机两端的电压波形图如图4-1所示,其中平均电压可用下面公式表达:其中ton为每次开关接通时间T开关通断的时间周期占空比:电机通电时间与周期T的比值本设计使用“相位修正PWM模式”。通过改变OCR1寄存器的值可以改变TOP值,即周期T。改变OCR1A/B两个寄存器的值,从而可以实现PB1和PB2输出口输出不同占空比的脉冲波形。定时计数器T1数值累加第一次与OCR1A/B匹配时,PB1或PB2输出高电平或低电平;定时计数器T1累加到TOP值后,开始递减直到再次与OCR1A/B匹配,PB1或PB2输出低电平或高电平。以此往复运作。相位修正PWM时序图如图4-2所示。图4-2 相位修正PWM时序图4.2 PID跟踪控制4.2.1 关于PID的使用PID数字控制器是按偏差(Proportional)、积分(Inergral)和微分(Differentia)的比例进行控制的调节器(简称PID调节器),是连续系统中技术成熟、应用最为广泛的一种调节器。它的结构简单,参数易于调节。实际运行经验及理论分析证明,运用PID调节器在对相当多的工业对象进行控制时能够取得满意的效果。随着计算机技术的发展,采用计算机系统来实现PID控制时,其软件系统灵活、易修改的优点得以发挥,所以PID数字控制器被越来越广泛地应用。比例(P)控制:比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-stateerror)。积分(I)控制:在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(SystemwithSteady-stateError)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。微分(D)控制:在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。4.2.2模拟PID控制原理常规的模拟PID控制系统原理框图如图4-3所示。积分比例微分被控对象-+r(t)y(t)e(t)u(t)图4-3 模拟PID控制系统原理图在模拟系统中,PID算法的表达式为:式中: 调节器的输出信号; 调节器的偏差信号,它等于测量值与给定值这差; 调节器的比例系数; 调节器的积分时间。4.3 ATmega8模数转化器4.3.1 ADC介绍由于单片机只能处理数字信号,所以外部的模拟信号量需要转变成数字量才能进一步的由单片机进行处理。ATmega8内部集成有一个10位逐次比较(successiveapproximation)ADC电路。因此使用AVR可以非常方便的处理输入的模拟信号量。ATmega8的ADC与一个8通道的模拟多路选择器连接,能够对以PC0PC5口作为ADC输入引脚的6路单端模拟输入电压进行采样,单端电压输入以0V(GND)为基准。AVR的ADC功能单元由独立的专用模拟电源引脚AVcc供电。AVcc和Vcc的电压差别不能大于0.3V。ADC转换的参考电源可采用芯片内部的2.56V参考电源,或采用AVcc,也可使用外部参考电源。使用外部参考电源时,外部参考电源由引脚ARFE接入。使用内部电压参考源时,可以通过在AREF引脚外部并接一个电容来提高ADC的抗噪性能。4.3.2 ADC 多工选择寄存器ADMUXADMUX寄存器如图4-5所示:Bit76543210REFS1REFS0ADLAR-MUX3MUX2MUX1MUX0ADMUX读/写R/WR/WR/WR/WR/WR/WR/WR/W初值00000000图4-5 ADMUX 寄存器Bit 7:6 REFS1:0: 参考电压选择如4-5 所示,通过修改ADMUX寄存器中REFS1和REFS0两位来选择参考电压源。如果在转换过程中改变了它们的设置,只有等到当前转换结束(ADCSRA 寄存器的ADIF 置位) 之后改变才会起作用。如果在AREF 引脚上施加了外部参考电压,内部参考电压就不能被选用了。表4-1 ADC 参考电压选择REFS1REFS0参考电压选择00AREF,内部Vref关闭01AVCC,AREF引脚外加滤波电容10保留112.56V的片内基准电压源,AREF引脚外加滤波电容Bit 5 ADLAR: ADC 转换结果左对齐ADC将10位的转换结果放在ADC数据寄存器中(ADCH和ADCL)。默认情况下,转换结果为右端对齐(RIGHT ADJUSTED)的。但可以通过设置ADMUX寄存器中ADLAR位,调整为左端对齐(LEFT ADJUSTED)。如果转换结果是左端对齐,并且只需要8位的精度,那么只需读取ADCH寄存器的数据作为转换结果就达到要求了。否则,必须先读取ADCL寄存器,然后再读取ADCH寄存器,以保证数据寄存器中的内容是同一次转换的结果。Bits 3:0 MUX3:0: 模拟通道选择位通过这几位的设置,可以对连接到ADC 的模拟输入进行选择,详见表4。如果在转换过程中改变这几位的值,那么只有到转换结束(ADCSRA 寄存器的ADIF 置位) 后新的设置才有效。表4-2 MUX3-0 ADC通道选择表MUX3.0单端输入0ADC01ADC110ADC211ADC3续表42MUX3.0单端输入100ADC4101ADC5110ADC6111ADC710001001101010111100110111101.23V(VBG)11110V(GND)4.3.3 ADC 控制和状态寄存器ADCSRAADCSRA寄存器如图4-5所示Bit76543210ADEN ADSCADFRADIFADIEADPS2ADPS1ADPS0ADCSRA读/写R/WR/WR/WR/WR/WR/WR/WR/W初值00000000图4-5 ADCSRA 寄存器Bit 7 ADEN: ADC 使能ADEN置位即启动ADC,否则ADC功能关闭。在转换过程中关闭ADC将立即终止正在进行的转换。Bit 6 ADSC: ADC 开始转换在单次转换模式下,ADSC 置位将启动一次ADC 转换。在连续转换模式下,ADSC 置位将启动首次转换。第一次转换( 在ADC 启动之后置位ADSC,或者在使能ADC 的同时置位ADSC) 需要25 个ADC 时钟周期,而不是正常情况下的13 个。第一次转换执行ADC初始化的工作。在转换进行过程中读取ADSC 的返回值为“1”,直到转换结束。ADSC 清零不产生任何动作。Bit 5 ADFR: ADC 连续转换选择该位置位时,运行在连续转换模式。该模式下,ADC 不断对数据寄存器进行采样与更新。该位清零,终止连续转换模式。Bit 4 ADIF: ADC 中断标志在ADC 转换结束,且数据寄存器被更新后, ADIF 置位。如果ADIE 及SREG 中的全局中断使能位I 也置位,ADC 转换结束中断服务程序即得以执行,同时ADIF 硬件清零。此外,还可以通过向此标志写1 来清ADIF。要注意的是,如果对ADCSRA 进行读修改写操作,那么待处理的中断会被禁止。这也适用于SBI及CBI指令。Bit 3 ADIE: ADC 中断使能若ADIE 及SREG 的位I 置位, ADC 转换结束中断即被使能。Bits 2:0 ADPS2:0: ADC 预分频器选择位由这几位来确定XTAL 与ADC 输入时钟之间的分频因子。4.3.4 ADC 转换结果转换结束后(ADIF 为高),转换结果被存入ADC 结果寄存器(ADCL, ADCH)。单次转换的结果如下:其中:式中 为被选中引脚的输入电压。 为参考电压。4.4 软件程序设计4.4.1 程序总流程图小车进入寻迹模式后,即开始不停地扫描与探测器连接的单片I/O 口,并经过ADC将模数转换成数字信号。一旦检测到某个I/O 口有信号变化,就执行相应的判断程序,把相应的信号发送给电动机从而纠正小车的状态。软件的主程序流程图如图4-6所示:Y开始系统初始化是否完成全部任务?循迹子函数是否完成本次任务?结束NNY图4-6主程序流程图4.4.2 ADC 源程序ADC源程序组分初始化和转换程序。由于ATmega8只有一个ADC转换内核,所以通用六次调用 adc_get()可以得到PC0PC5六个端口电压,判断线的位确定小车的偏向。ADC初始化源程序:void adc_init() / adc初始化 ACSR=0x80; /关掉模拟比较器的电源(禁用模拟比较器) ADMUX=(1REFS0); /选择外部5V参考电压 ADCSRA=(1ADEN);/这里选择的是连续模式SFIOR=0x00; /adc高速模式选择ADC转换程序:unsigned char adc_get(int q) / q 为要ADMUX值,可以选择ADC通道 unsigned int temp; ADMUX=q; ADCSRA|=(1ADSC); /开始转换 while(!(ADCSR&(1ADIF);/等待转换完成 ADCSR|=(1ADIF); /清标志 temp=ADC; /读数 temp=temp*50/0x03ff; /转换成0-50(表示0-5.0) return (unsigned char)(temp); /返回ADC值4.4.3 PWM调速源程序PWM调速程序分为初始化和调节占空比两部分。主程序首先调用init_time1_PWM() 初始化计数器1的初始值、端口模式和OCR1A、OCR1B寄存器内的初始值。后续可直接调用timer1_PWM( )来调节占空比。PWM初始化程序:void init_timer1_PWM(unsigned int x,unsigned int y) DDRB|=(1PB1)|(1PB2); /设置PB1和PB2为输出模式 TCCR1B=0x0; /先停止TC1 TCNT1=0; /设置TCNT1的初值 OCR1A=x; /设置OC1A的初值 OCR1B=y; /设置OC1B的初值 ICR1= countertop; /设置ICR的初值,即周期T。TCCR1A|=(1COM1A1)|(1COM1B1)|(1WGM11);/工作模式,输出模式 TCCR1B|=(1WGM13)|(1CS11)|(1=countertop) x=countertop; /避免PWM值超过计数器的最大值;if (y=countertop) y=countertop; /避免PWM值超过计数器的最大值; OCR1A=x; OCR1B=y;4.4.4 PID 算法源程序在小车实际应用中,只选用了P(积分)和D(微分)算法。微分参数的三次误差镶嵌在速度选择程序段中。电机的主要速度由速度等级程序选择。PID计算出左右电机的速度差。程序详细见参照附录1 。#define Kp 600 /定义比例系数#define Kd 1200 /定义差分系数char err3=0; /定义三次的误差值char err_D=0,err_P=0; /定义偏差,利用比例,差分int PidSet()err_P=err0;err_D=err0-err1;return(Kp*err_P+Kd*err_D);第五章 ICCAVR与Proteus仿真前面,已经完成了系统硬件连接与软件设计,在接下了的这章,就要进行系统的仿真验证整个系统的可行性,本次仿真系统采用的是ICC AVR和Proteus搭建的系统仿真调适平台。5.1 ICC AVR与Proteus说明ICCAVR是一款非常好用的AVR编译软件。它综合了编辑器和工程管理器的集成工作环境,使用符合 ANSI 标准的 C 语言来开发微控制器 MCU程序的一个工具。Proteus是当前EDA(Electronic Design Auromation)市场上性价比最高和性能最强的一款单片机软件仿真系统,它由ISIS原理图设计、仿真系统和ARES印制电路板设计系统组成。其中,ISIS能够完成模拟电路仿真、数字电路仿真以及单片机实验仿真。5.2 模拟光电检测电路在Proteus仿真中,以电阻、LED灯和开关串联接入电源来以模拟光电开关检测黑线的过程。电路图如图5-1所示。PC0PC5开关5开关4开关3开关2开关1开关0图5-1 光电开关模拟电路手动闭合“开关0”“开关5”中一个,则相应PC端口输出高电平。以此模拟光电开关检测到黑线。表5-1 开关闭合模拟黑线位置开关0开关1开关2开关3开关4开关5模拟黑线位置闭合开开开开开最右端开闭合开开开开偏右开开闭合开开开中心开开开闭合开开中心开开开开闭合开偏左开开开开开闭合最左端5.3 Proteus仿真过程以及结果巡线小车程序使用ICC AVR软件编写源代码,并编译生成.hex文件,导入Proteus中模拟运行。在仿真过程中为了便于观察左右两侧电机电压的占空比,在Proteus中调入示波器A,示波器B。分别输出右电机电压波形图和左电机电压波形图。如图示波器A、示波器B的接法。图5-2 示波器的接线及对应电机Proteus仿真步骤及结论:(1)点击Proteus左下角运行程序,开始模拟小车的运行过程。此时左右电机都已相同速度转动,左右示波器输出相同占空比波形。(2)当闭合开关2或开关3(黑线在中心)左右电机转速任然相同。(3)断开所有开关,闭合开关4(黑线偏左)。右电机转速稍微比左电机快,观察示波器,示波器A高电平持续时间比示波器B更长。(4)断开所有开关,闭合开关5(黑线最左)。右电机转速明显比左电机快,观察示波器,示波器A高电平持续时间比示波器B更长。(5)黑线在偏右模拟同上。结论:模拟小车巡线运行成功。结 论本论文设计以ATmega8单片机为基础设计了一套能自动巡线并行驶的小车电路及程序。其中电路图包括实物电路图和仿真电路图两套电路。不同之处在于仿真电路图以按键开关模拟光电开关并省去了程序下载电路。程序中ADC子程序,PWM调速子程序,PID控制子程序,电机速度选择程序都含有,并都能按预期的执行。在Proteus仿真中也得到了验证,仿真很成功。但是仿真依然是处于理论的基础,只是验证的电路图及程序的可行性。在实际的小车运行中人需要要考虑很多问题,比如光电开关的误差;实际小车的运行速度是否会影响检测黑线;小车经过不同角度的弯道速度应该取多少;还有PID控制中、取值。都这些问题实际制作小车过程中都需要一一考虑并调试修改。参考文献1章政,吴怀宇,程磊.大学生智能汽车设计基础与实践.电子工业出社.2008,72张建民,机电一体化系统设计(第三版),高等教育出版社2007,73熊和金. 智能汽车系统研究的若干问题,2001,2:37404姜培刚,盖玉先.机电一体化系统设计.北京:机械工业出版社,2003.95马潮,詹卫前,狄德根.ATmega8原理与应用.2003,36唐一平,机械工程专业英语,电子工业出版社,2009,107杨路明,郭浩志.C言语程序设计教程.北京邮电大学出版社,2005,58郁有文,常建,程继红.传感器原理及工程应用(第二版).西安:西安电子科技大学出版社,20039黄智伟,全国大学生电子设计竞赛训练教程.北京:电子工业出版社,200710邹逢兴,微机计算机原理与接口技术.北京:清华大学出版

温馨提示

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

评论

0/150

提交评论