《模拟简易自动驾驶系统的设计-正文.doc》由会员分享,可在线阅读,更多相关《模拟简易自动驾驶系统的设计-正文.doc(72页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本科生毕业设计(论文)中文题目: 模拟简易自动驾驶系统的设计 英文题目: DESIGN OF IMIITATE SIMPLE AUTOMATIC DRIVING SYSTEM 摘 要课题是研究模拟简易自动驾驶系统,当汽车智能化后,其最大的功用在于能尽可能地提高安全性,同时可轻减轻人类驾驶员的驾驶强度,减少驾驶疲劳。本系统以ATmega16单片机为核心控制器件,超声波传感器为障碍物距离采集器件,直流电机为执行器件。小车和障碍物的距离如果在一定的距离范围之内,小车就会自动避开障碍物,然后继续前进。无线模块nrf24l01是用来对小车的无线控制。整个调节的过程是超声波传感器不断的捕获障碍物的距离,反
2、馈给单片机,用1602显示距离,再由单片机控制直流电机,使小车自动避开障碍物,反复此过程。同时无线可以控制小车到达目的地,这样就完成了一个一个既能自动壁障,又可以无线控制的智能小车的设计。关键词:智能化ATmega16单片机 超声波传感器 直流电机 无线模块nrf24l01 ABSTRACTThe subject is about design of imitate simple automatic driving system,When the car have the automatic system,The most function is not only can improve th
3、e safity,But also can fall of the drivers driving intensity and driving tired。The system to control ATmega16 microcontroller as the core device, ultrasonic sensors for distance acquisition devices, Direct-current motor for the implementation of the device,within distance of the hand car and the obst
4、acle, the hand car can automatic avoid the obstacle , And then continue to go ahead , The wireless module nrf24l01 is used to control the hand car,The process of regulating the use of ultrasonic sensors continuously capture the distance of the obstacle, feedback to the microcontroller, by the distan
5、ce on the 1602 liquid crystal ,And then the microcontroller control the Direct-current motor, Make the hand car can automatic avoid the obstacle , repeated this process .At the same time , The wireless can control the hand car driect to the destination,So,It completed the design of the intelligent c
6、ar that not only can automatic avoid the obstacle,But also can be controlled by the wireless.KEYWORDS:Intelligent atmega16 MCU ultrasonic sensor Direct-current motor wireless module nrf24l01目录1 引言62 所承担的任务82.1 系统功能及技术指标82.1.1系统功能82.1.2技术指标83 总体设计方案的实现及器件的选择93.1 总体设计方案方框图93.2 总体设计方案实现方法93.3 器件的选择93.3
7、.1 单片机的选择93.3.2 小车主体的选择103.3.3 小车的驱动电机的选择103.3.4 小车驱动及调速模块电路的选择103.3.5 壁障方法的选择113.3.6 无线通讯方式的选择113.3.7 显示的选择124 系统硬件设计分析144.1 主控电路部分设计144.1.1 ATmega16单片机简介144.1.2 显示电路设计204.1.3 晶振和复位电路214.2 小车超声波测距模块的设计214.3 电机驱动电路模块的设计234.4 显示模块的设计244.5 小车测速模块的设计254.6 无线NRF24L01模块的设计265 系统软件设计部分275.1 系统总体程序设计流程图275
8、.2 系统子程序285.2.1 小车壁障程序流程285.2.2 无线发射和接收程序流程296 控制方法与理论计算306.1 直流电机控制方法计算306.2 壁障物距离的计算:316.3 小车速度的计算:316.4 小车转弯的计算:327 硬件和软件调试347.1 硬件调试347.1.1 总体原理图的设计347.1.2 硬件调试小结357.2 软件设计367.2.1 开发工具-软件367.2.2 开发工具-硬件377.2.3 开发语言397.2.4 部分程序详解397.2.5 软件设计小结498设计总结519 实际测量539.1 测试设备539.2 测试数据及结果539.3 结果分析5310 经
9、济分析报告54致 谢55参 考 文 献56附件1 总电路图57附件2 原件清单58附件359主程序593.1 无线发射命令程序633.2 小车无线接收实现智能壁障和到达目的程序631 引言随着汽车工业的发展,汽车本身的安全性和智能性日益得到重视。目前,国内外已经有了很多有关汽车自适应驾驶的理论和实验。汽车的紧急避障是由计算机模拟驾驶员的主动控制过程,以汽车为控制对象进行实时信号采集、分析和处理,在紧急情况下可代替驾驶员的驾驶操作。现介绍模型小车自适应行驶和避障的一个实例,通过超声波传感器感知车辆行驶环境,实现小车的自适应巡航、避障等功能。 据奔驰汽车研究所使用模拟系统进行的调查结果,有85%的
10、 用户希望轿车具有有自动巡航的功能,有80%的用户希望轿车具有自动道路跟踪的功能,有95%的用户希望轿车具有自动起步、自动停车的功能,仍然有80% 的用户希望轿车具有高速公路自协驾驶的功能。就安全性而言,汽车驾驶自动化上的自动驾驶仪一方面替代了汽车驾驶的大部分基本操作,使得驾驶员有更多的时间去思考、反应甚至是修正其自或自动驾驶仪的错误。另一方面,在自动驾驶仪控制下的车辆其运行轨迹更加精确,也就是说人类很容易判断一个自动驾驶仪的驾驶行为是否正常,而反过来一个自动驾驶仪却很难判断一个驾驶员的驾驶行为是否正常。汽车驾驶自动化所带来的经济效益来自两方面:一方面,道路的利用率大大提高,减少了对车辆运行之
11、间的安全距离的要求,而且仿真结果表明,编队行驶的自动驾驶汽车能够大副度提高公路的占用率;另一方面,自动驾驶货车中使用的电子拖杆技术,不仅减少了驾驶员的数量,而且降低了货车的制造成本和燃油消耗,其经济效益是十分明显的。另外,自动驾驶能最大程度地减少驾驶员生理及心理因素造成的安全隐患。自动转向灯开关已经广泛地应用于各种现代汽车上了。另外,发现以及克服瞬间睡眠现象已经成为现代高档汽车的辅助驾驶系统的必需的设备。我国汽车驾驶自动化的研究应该结合我国的道路状况实际以及我国的用户需求实际,而不能盲目地追随发达国家的研究内容和研究过程。就目前而言将汽车驾驶自动化研究的方方面应用于公路交通运输的实际之中是不成
12、熟的。但是,通过引入现代的电子技术以及计算机技术,将汽车驾驶自动化研究中切实可行的部分成熟技术应用于交通运输中,可以大大改善我国道路交通现状和减少交通事故。 追尾相撞是现代道路交通的主要事故形式之一。解决这个问题,一是借助有关电子器件,及时获得车辆的减速信息,并使之为后续车辆得到。二是借助计算机的高速特性,减少采取驾驶动作之中的反应延迟。据测,人类驾驶员的反射弧反应延迟为0.2-0.3秒,而在CITAVT-型自动驾驶汽车中相同的反应延迟为0.02秒以内。 汽车驾驶自动化目前所实现的功能集中在基本操作方面,如何让自动驾驶仪与人类驾驶员友好地相处是一个关键问题。就理论上而言,汽车驾驶自动化给人类驾
13、驶员带来了安全舒适等等,但自动驾驶仪毕竟是有一定的决策能力的,它不可能时刻与驾驶员的想法保持一致。何时打开自动驾驶仪工作,何时增大闭自动驾驶仪?在特殊情况下,如何及时方便地由自动驾驶仪切换到人工驾驶状态或者相反?相关的研究正在进行之中。在距离很近的城市之间建立专用自动化车路系统,也是汽车驾驶自动化的一个很有前景的发展方向。在城市之间建设仅供自动驾驶汽车使用专用的自动化公路,可以实现灵活高速的城市之间的交通运输。其建设成本显然较地铁、轻思交通要小得多,而运营管理又较铁路方便得多。 随着我国工业水平和综合国力的提高,汽车驾驶自动化必将成为公路交通运输的发展方向。目前基于小车的壁障技术,大部分是采用
14、超声波和红外壁障,它们的原理就是测量车体到障碍物的距离然后控制小车避开障碍物,现在也只是模糊的控制小车壁障。2 所承担的任务 制作一部小车装置,该小车具有以下功能:1 能实现自动避障功能,即可以自动绕开障碍物。2 实现无线方式控制器,可以对小车的目的地进行设置。(以小车为坐标原点的相对坐标)3 小车可根据设定目标到达目的地,误差越小越好。基本要求:1 按照要求编制设计说明书。2 查阅34篇英文文献。3 毕业论文应有中英文摘要。4 硬件和软件图若干。5 按照要求编写课题的经济分析报告。2.1 系统功能及技术指标2.1.1系统功能a 实现无线方式控制器,可以对小车的目的地进行设置。b 具有超声波自
15、动壁障功能。c 具有小车速度显示和障碍物距离显示。2.1.2技术指标a 小车外形尺寸规定为:长180mm,宽120mm。b 小车采用三轮车,前面两个为驱动轮,后面的为一个万向轮,可以实现小车的随意转动。c 超声波测距模块的探测距离为2cm-500cm,精度高d 无线模块的传输距离大于40m,数据传输稳定。e 测试过程中不允许人为控制小车车运动,让小车实现自动壁障。3 总体设计方案的实现及器件的选择总体设计方案是设计的第一步,主要说明本课题的设计方案和方法,简要的讲述了设计的内容,通过本部分可以对设计方案有一个初步的掌握和整体思路的了解,然后设计者可以从总到分的模式完成各个部分的内容。3.1 总
16、体设计方案方框图Atmega16单片机PWM输出正反转控制小车的位置超声波探测控制左右轮实现拐弯无线接收小车的目标液晶显示无线发射Atmega16单片机单片机总框图3.2 总体设计方案实现方法本设计是以ATmega16单片机为核心控制器件,超声波传感器为障碍物距离采集器件,直流电机为执行器件,用来实现智能小车的自动壁障。小车和障碍物的距离如果在一定的距离范围之内,小车就会自动避开障碍物,然后继续前进。无线模块nrf24l01是用来对小车的无线控制。整个调节的过程是超声波传感器不断的捕获障碍物的距离,反馈给单片机,用1602显示距离,再由单片机控制直流电机,使小车自动避开障碍物,反复此过程。同时
17、无线可以控制小车到达目的地,又可以无线控制的智能小车的设计。3.3 器件的选择3.3.1 单片机的选择方案一:采用传统51单片机作为系统的控制核心。51单片机具有价格低廉,使用简单等特点。但运算速度较低,功能比较单一,方案二:采用AVR系列单片机ATmega16作为系统的控制核心。ATmega16的资源丰富,速度快,且内部集成了spi通信方式,而且AVR系列内部有三个定时器,并且内部集成了分频器,容易实现频率控制。通过以上两种方案的综合比较,顾Atmega16内部有硬件资源,优势明显。而且内部硬件资源多,便于操作。方案二优势明显,故采用方案二。3.3.2 小车主体的选择方案一:采用市面上销售的
18、电动玩具车(如图1)。这类车子容易得到,前轮是方向轮,用单片机控制,后轮是驱动轮,对电路起驱动作用,改装也不是太复杂,减少了制作的工作。方案二:采用差动运动结构的电动车(如图2)。前轮采用万向轮,前轮属于被动轮;后轮采用电机,依靠轮子的速度差进行转向,是车的整体驱动轮。这种电车最为灵活,转弯灵敏,控制性能好!比较两个方案,随然方案二制作较为复杂,但是考虑到电动车的转弯、速度、稳定等方面,方案二具有明显的优势,所以采用方案二。 图1 图23.3.3 小车驱动电机的选择方案一:采用直流电机。直流电机的质量轻、价格低廉、且容易得到,响应速度快。方案二:采用步进电机。步进电机是将电脉冲信号转换为相应的
19、角位移的电磁机械装置,在精确度上可以实现角度步进,而且速度较慢,容易控制。虽然步进电机的速度较慢,容易控制。但价格比较高,本设计用直流电机就可以实现功能,因此采用方案一。3.3.4 小车驱动及调速模块电路的选择方案一:采用由达林顿管组成的H型PWM电路。用单片机控制达林顿管,不过此方案控制电机的调速及正反转比较麻烦,而且程序比较繁琐。方案二:利用专门的电机驱动集成芯片,使用L298N芯片驱动电机,L298N芯片可以驱动两个二相电机也可以驱动一个四相电机,输出电压最高可达46V,输出电流可达4A,可以直接通过电源来调节输出电压;可以直接用单片机的I/O口提供信号;而且电路简单,使用比较方便。控制
20、电机使用达林顿管虽然可以实现,但达林顿管的数量要达到8个以上,电路太复杂,调试的工作量较大,而且给编程带来很多的麻烦。采用专用的集成电机控制集成芯片可以简化电路和程序,并且芯片的多种使能端可以更好的控制电机,驱动力也可以满足实际需要。因此采用方案二。3.3.5 壁障方法的选择方案一:采用超声波测距,特点:1 超声波对色彩、光照度不敏感,可适用于识别透明、半透明及漫反射性差的物体(如玻璃,抛光体)。2 超声波对外界光线和电磁场不敏感,可用于黑暗、有灰尘或烟雾、电磁干扰强、有毒等恶劣环境中3 超声波传感器结构简单,体积小,费用低,信息处理简单可靠,易于实现。方案二:采用红外测距,一个发射红外线,一
21、个接收红外线,如果发射出去的红外线遇到障碍物就会反射回来,然后测量回波时间,光速乘以时间再除以2就得到距离。但是测量精度不高,容易受光照的影响。 由于超声波对外界光线和电磁场不敏感,可用于黑暗、有灰尘或烟雾、电磁干扰强、有毒等恶劣环境中,比红外线抗干扰能力强,由于小车需要在外面跑,所以选择方案一3.3.6 无线通讯方式的选择方案一:使用无线模块nrf24l01。NRF24L01 是NORDIC 公司最近生产的一款无线通信通信芯片,采用FSK 调制,内部集成NORDIC 自己的Enhanced Short Burst 协议。可以实现点对点或是1 对6 的无线通信。无线通信速度可以达到2M(bps
22、)。NORDIC 公司提供通信模块的GERBER 文件,可以直接加工生产。嵌入式工程师或是单片机爱好者只需要为单片机系统预留5 个GPIO,1 个中断输入引脚,就可以很容易实现无线通信的功能,非常适合用来为MCU 系统构建无线通信功能。 nRF24L01 主要特性如下:GFSK 调制:硬件集成 OSI 链路层;具有自动应答和自动再发射功能;片内自动生成报头和 CRC 校验码;数据传输率为 l Mb/s 或2Mb/s;SPI 速率为0 Mb/s10 Mb/s;125 个频道:与其他 nRF24 系列射频器件相兼容;QFN20 引脚4 mm4 mm 封装;供电电压为 1.9 V3.6 V。 综上可
23、知它是一款低功耗、低电压工作,具有传输距离远、数据传输稳定等特点。方案二:使用无线芯片PTR2000。PTR2000 是一种新型的单片无线收发数传MODEM 模块,该器件为超小型模块器件,具有超低功耗、高速率(19.2Kbps)无线收发数传功能,且性能优异,使用方便,可广泛应用于无线数传产品的设计领域。文中介绍了PTR2000的主要特点、引脚功能、软件设计、硬件连接及具体的应用电路。PTR2000 的主要特征如下:该器件将接收和发射合接为一体;工作频率为国际通用的数传频段433MHZ;采用FSK 调制/解调,可直接进入数据输入/输出,抗干扰能力强,特别适合工业控制场合;采用DDS(直接数据合成
24、)+PLL 频率合成技术,因而频率稳定性极好;灵敏度高达105bBm;工作电压低(2.7V),功耗小,接受待机状态电流仅为8A;具有两个频道,可满足需要多信道工作的场合;工作数率最高达20kbit/s(也可在较抵速率下工作,如9600bps);超小体积,约40275mm3;可直接与CPU 串口进行连接(如8031),也可以用RS232 与计算机接口,软件编程非常方便;标准的DIR 引脚间距更适合于趼、嵌入式设备;由于采用了低发射功率、高接收灵敏的设计,因此使用时无需申请许可证,开阔地时的使用距离最远可达1000 米。比较nrf24l01可知,nrf24l01采用射频技术,直接给数据打包,然后发
25、射出去,接收的话,直接去掉校验,接收数据,中间不需要自己编码和解码,而ptr2000,它需要编码解码芯片PT2262/PT2272芯片,软件编程比较麻烦,因此采用方案一。3.3.7 显示的选择方案一:采用数码管。 LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图1是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两
26、类,但一个数码管只显示一位数字,如果显示位数多的话,就需数码管多。方案二:采用1602液晶显示。 这里介绍的字符型液晶是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,而且功耗低。由于我们要显示的数字位数比较多,所以我们采用1602液晶显示,因此我怕们选择方案二。4 系统硬件设计硬件设计部分是本设计的核心内容,主要讲述了各个部分的具体实现电路。包括微控制部分即单片机、显示电路部分以及无线模块nrf24l01部分、超声波部分、电机驱动模块电路、以及其他的控制电路部分。4.1 主控电路部分设计图3 微控制电路部分主控制电路部分如图3所
27、示。电路主要ATmega16单片机简介、显示电路、晶振以及复位电路组成。单片机时系统的核心,外围电路都是由它来调动的,以达到控制的效果。单片机是程序的存储地,1602液晶显示显示、无线模块以及超声波都是由它来驱动的;单片机还是电动机的控制脉冲和控制方向的控制者;还有就是壁障系统的检测也是由单片机控制的。4.1.1 atmega16单片机简介ATmega16是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。 AVR内核具有丰富的指令集和 32
28、 个通用工作寄存器。所有的寄存器都直接与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的RISC微控制器最高至10倍的数据吞吐率。ATmega16有如下特点:16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器 / 计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增
29、益(TQFP封装)的ADC ,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。工作于空闲模式时CPU停止工作,而USART、两线接口、A/D 转换器、SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU 和除了异步定时器与ADC以外所有I/O模块的工作,以降低 ADC 转换时的开关噪声;Standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使
30、得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby模式下则允许振荡器和异步定时器继续工作。本芯片是以Atmel高密度非易失性存储器技术生产的。片内ISP Flash允许程序存储器通过ISP串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区(Application Flash Memory)。在更新应用Flash存储区时引导Flash区(Boot Flash Memory)的程序继续运行,实现了RWW操作。通过将8位RISC CPU与系统内可编程的Flash 集成在一个芯片内,ATmega
31、16成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。ATmega16具有一整套的编程与系统开发工具,包括:C 语言、编译器、宏汇编、程序调试器/软件仿真器、仿真器及评估板。图4.1.1 ATmega 16 引脚图引脚使用简介:端口A (PA7.PA0)端口 A 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。本毕业设计中将端口A作为外部四位数码管的8位数字信号的驱动引脚。每个I/O引脚采用推挽输出可以直接驱动LED发光,使电路非常简洁。端口
32、B (PB7.PB0)端口 B 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。PB0PB2为发光二极管的驱动引脚。二极管为阶段发光管。PB4为报警输出端。PB3为电机1的CTC输出控制引脚。PB7、PB6为步进电机的方向控制引脚,当为高电平时是前进,低电平为后退。端口C (PC7.PC0)端口 C 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出
33、电流。PC7PC4为数码显示的位控制引脚,吸收电流也很大,大约20MA。PC1、PC2为I2C的时钟和数据引脚,用来采集角度信号使用。端口D (PD7.PD0)端口 D 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。PD7为电机2的CTC输出控制引脚。PD6为基础部分和发挥部分的切换键判断引脚。PD4PD0为红外检测电路的输入引脚。ATmega16单片机内部资源非常丰富,以下为本设计应用的资源:1 具有CTC功能的8位定时器/计数器T/C0T/C0是一个通用的单通
34、道8位定时器/计数器模块。其主要特点如下:单通道计数器定时器/计时器0;比较匹配发生时清除定时器(自动加载);无干扰脉冲;相位正确的PWM;频率发生器;外部事件计数器;10位的时钟预分频器;溢出和比较匹配中断源(TOV0和OCF0)。2 具有PWM和异步操作的8位定时器/计数器T/C2T/C2是一个通用单通道8 位定时/计数器,其主要特点如下:单通道计数器;比较匹配时清零定时器(自动重载);无干扰脉冲, 相位正确的脉宽调制器(PWM);频率发生器;10 位时钟预分频器;溢出与比较匹配中断源(TOV2与OCF2);允许使用外部的32 kHz手表晶振作为独立的 I/O 时钟源。因为T/C0和T/C
35、2在本电路中使用的功能是相同的,并且使用方式也基本相同,所以下面仅仅介绍其中一种:在CTC模式(WGM01:0 = 2)下OCR0寄存器用于调节计数器的分辨率。当计数器的数值TCNT0等于OCR0时计数器清零。OCR0定义了计数器的TOP值,亦即计数器的分辨率。这个模式使得用户可以很容易地控制比较匹配输出的频率,也简化了外部事件计数的操作。为了在 CTC 模式下得到波形输出,可以设置 OC0 在每次比较匹配发生时改变逻辑电平。这可以通过设置 COM01:0 = 1 来完成。在期望获得 OC0 输出之前,首先要将其端口设置为输出。波形发生器能够产生的最大频率为 fOC0 = fclk_I/O/2
36、 (OCR0 = 0x00)。频率由如下公式确定: fOC0= = fclk_I/O/2/N/(1+OCRn)变量N代表预分频因子(1、 8、 64、或 1024)。本电路主要应用T/C0和T/C2作为电动机CTC输出以驱动步进电机。并利用T/C0和T/C2输出不同的频率的脉冲,实现转弯。他们分别有4种分频因子,为了降低速度我选择了64分频,并且也可以改变OCRn的值以增加或减少CTC的频率。3 16 位定时器/计数器 16位的T/C可以实现精确的程序定时(事件管理)、波形产生和信号测量。其主要特点如下:真正的16位设计(即允许16位的PWM);2个独立的输出比较单元;双缓冲的输出比较寄存器;
37、一个输入捕捉单元;输入捕捉噪声抑制器;比较匹配发生时清除寄存器(自动重载);无干扰脉冲,相位正确的PWM;可变的PWM周期;频率发生器;外部事件计数器;4个独立的中断源(TOV1、OCF1A、OCF1B与ICF1)。T/C1的预分频器:T/C0与T/C1共用一个预分频模块,但它们可以有不同的分频设置。下述内容适用于T/C0与T/C1。内部时钟源:内部时钟源当 CSn2:0 = 1时,系统内部时钟直接作为T/C的时钟源,这也是T/C最高频率的时钟源fCLK_I/O,与系统时钟频率相同。预分频器可以输出4个不同的时钟信号fCLK_I/O/8、fCLK_I/O/64、fCLK_I/O/256或fCL
38、K_I/O/1024。分频器复位:预分频器是独立运行的。也就是说,其操作独立于T/C 的时钟选择逻辑,且它由T/C1与T/C0共享。由于预分频器不受T/C时钟选择的影响,预分频器的状态需要包含预分频时钟被用到何处这样的信息。一个典型的例子发生在定时器使能并由预分频器驱动 (6 CSn2:0 1)的时候:从计时器使能到第一次开始计数可能花费1 到N+1个系统时钟周期,其中 N 等于预分频因子(8、64、256或1024)。通过复位预分频器来同步T/C 与程序运行是可能的。但是必须注意另一个T/C是否也在使用这一预分频器,因为预分频器复位将会影响所有与其连接的T/C。外部时钟源:由T1/T0引脚提
39、供的外部时钟源可以用作T/C时钟 clkT1/clkT0。引脚同步逻辑在每个系统时钟周期对引脚 T1/T0 进行采样。然后将同步(采样)信号送到边沿检测器。图5.2.3给出了T1/T0同步采样与边沿检测逻辑的功能等效方框图。寄存器由内部系统时钟clkI/O的上跳沿驱动。当内部时钟为高时,锁存器可以看作时透明的。CSn2:0 = 7时边沿检测器检测到一个正跳变产生一个clkT1脉冲;CSn2:0 = 6时一个负跳变就产生一个clkT0 脉冲。图4.1.2 T1/T0引脚采样由于引脚上同步与边沿监测电路的存在,引脚 T1/T0上的电平变化需要延时2.5到 3.5个系统时钟周期才能使计数器进行更新。
40、禁止或使能时钟输入必须在T1/T0保持稳定至少一个系统时钟周期后才能进行,否则有产生错误T/C时钟脉冲的危险。为保证正确的采样,外部时钟脉冲宽度必须大于一个系统时钟周期。在占空比为50%时外部时钟频率必须小于系统时钟频率的一半(fExtClk fclk_I/O/2)。由于边沿检测器使用的是采样这一方法,它能检测到的外部时钟最多是其采样频率的一半(Nyquist采样定理 )。然而,由于振荡器(晶体、谐振器与电容)本身误差带来的系统时钟频率及占空比的差异,建议外部时钟的最高频率不要大于fclk_I/O/2.5。本设计中,T1主要用于计时,因为T1是16位的,因此使用非常方便。利用计数器计时,采用中
41、断,中断时间为1秒。系统晶振是8M,采用256分频,开始计数为十六位85ED,总数值为FFFF,顾技术个数为7A12,变换为十进制为31250,刚好为1秒钟。4 两线串行接口TWI两线串行接口总线很适合于典型的处理器应用。TWI协议允许系统设计者只用两根双向传输线就可以将128个不同的设备互连到一起。这两根线一是时钟 SCL,一是数据 SDA。外部硬件只需要两个上拉电阻,每根线上一个。所有连接到总线上的设备都有自己的地址。TWI协议解决了总线仲裁的问题。特点如下:简单,但是强大而灵活的通讯接口,只需要两根线;支持主机和从机操作;器件可以工作于发送器模式或接收器模式;7 位地址空间允许有128个
42、从机;支持多主机仲裁;高达400 kHz 的数据传输率;斜率受控的输出驱动器;可以抑制总线尖峰的噪声抑制器;完全可编程的从机地址以及公共地址;睡眠时地址匹配可以唤醒AVR。本电路主要采用主控发送模式。控制方式如下:4.1.2 显示电路的设计图4 1602液晶显示电路显示电路如图4所示,它是用1602液晶显示的,这个字符型液晶是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,而且功耗低。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文
43、假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A。 读的时候,先读上面那列,再读左边那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。通过AVR单片机可以对1602液晶进行写数据和命令等,从而达到我们想要显示的数据。4.1.3 晶振和复位电路 晶振电路:电容大小没有固定值.一般二三十p,晶振是给单片机提供工作信号
44、脉冲的.这个脉冲就是单片机的工作速度.比如 12M晶振.单片机工作速度就是每秒 12M.和电脑的 CPU概念一样.当然.单片机的工作频率是有范围的.不能太大.一般 24M就不上去了.不然不稳定. 接地的话数字电路弄的来乱一点也无所谓.看板子上有没有模拟电路.接地方式也是不固定的.一般串联式接地.从小信号到大信号依次接.然后小信号连到电源处.有变压器就连到变压器旁. 数模地分开.分别拉到电源处. 复位电路:为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V5%,即4.755.25V。由于微机电路是时序数字电路,它需要
45、稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。4.2 小车超声波测距模块的设计图五用超声波检测障碍物的距离,因为超声波具有以下一些特点1 超声波对色彩、光照度不敏感,可适用于识别透明、半透明及漫反射性差的物体(如玻璃,抛光体),2 超声波对外界光线和电磁场不敏感,可用于黑暗、有灰尘或烟雾、电磁干扰强、有毒等恶劣环境中,3 超声波传感器结构简单,体积小,费用低,信息处理简单可靠,易于实现,把测得的障碍物信息反馈给单片机,单片机发出命令,控制小车左转或者右转,从而绕开障碍物,以达到自动壁障的功能。本设计采
46、用的是TCT40 - 10R /T接收分体式压电陶瓷超声传感器模块,如图五所示这个是超声波模块的硬件电路图。以下是这个模块工作原理:(1)采用IO触发测距,给至少10us的高电平信号;(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;(3)有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间测试距离=(高电平时间*声速(340M/S)/2; 本模块使用方法简单,一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,就可以达到你移动测量的值了。下面是这个模块的实物图,4.3 电机驱动电路模块的设计采用了直流电机驱动,使用专用直流电机控制芯片L298N,一个L298N电机驱动芯片可对两个电机的驱动控制。此外L298N还有电流保护功能,可以防止电机因电流过大而烧坏,具有功耗低,精度高,使用灵活等优点。电路图 如图6所示。系统通过单片机发送电机正反转控制信号,L298N接收信号后输出信号来实现L298驱动步进电机前进和正反转。图六如图六所示,这个是直流电机的控制电路,IN1、I