1、摘要本文论述了基于一氧化碳检测模块的智能检测机器人的实现过程。一氧化碳检测机器人是基于自动引导机器人系统,用以实现机器人自动识别路线,以及选择正确的路线,并能检测一氧化碳浓度。一氧化碳检测机器人是一个运用传感器、单片机、电机驱动及自动控制等技术来实现按照预先设定的模式下,不受人为管理时能够自动实现循迹导航的高新科技。本设计采用STC89C52单片机作为小车的控制核心;采用红外反射式开关传感器作为小车的循迹模块来识别白色路面中央的黑色引导线,采用一氧化碳检测模块检测一氧化碳浓度,采集信号并将信号转换为能被单片机识别的数字信号;采用驱动芯片L298N构成双H桥控制直流电机,其中软件系统采用C程序,
2、本设计的电路结构简单,容易实现,可靠性高。关键字:STC89C52;单片机;L298N;MQ-7AbstractThis paper discusses the robot for detecting Carbon monoxide electric trolley realise process. Robot for detecting Carbon monoxide is used to make the robot indentify route automatically , choosing the right route, detecting Carbon monoxide, ba
3、sed on the automatic guide robot system. Intelligent robot is an advanced technology to realize automatic tracing navigation. It is out of human management but under the designed mode that use of the use of a transducer, single chip, motor drive and automatic control .This technology has been applie
4、d in unmanned vehicle, unmanned factory, warehouse, service robot and many other fields.During the design of robot for detecting Carbon monoxide, STC89C52 single clip is used as the control core; at the same time with reflective infrared transducer switch to identify the black guide line at the cent
5、ral of the white road, which used as the car tracing module, and detecting the density of Carbon monoxide, it can gather the signal and transfer it into digital signal that can be recognized by single chip. And the driving chip L298N constitute the double H bridge constitute of driving chip L298N ca
6、n control direct current motor. Among which the software system is using C program. In a nutshell, the design of the circuit has the advantages of simple structure, easy implementation, and high reliability.Keywords: STC89C52 ;microcontroller;L298N;MQ-7;目录摘要IAbstractII第一章 绪论11.1智能移动探测装置的意义及作用11.2 智能
7、移动探测装置的前景11.3 本设计工作简介2第二章 一氧化碳检测机器人硬件设计32.1 系统总体设计32.2 一氧化碳检测模块实现42.2.1 气敏传感器的原理42.4.2 MQ-7一氧化碳传感器介绍52.3 核心控制模块实现72.3.1 单片机的功能特性描述72.3.2 晶振电路82.3.3 复位电路82.4 红外巡迹模块实现92.4.1 红外巡迹原理92.4.2 传感器分布102.5 L298驱动模块实现112.5.1 电机驱动原理112.5.2小车运动逻辑13第三章 一氧化碳检测机器人软件设计143.1 软件设计主程序流程图143.1.1 一氧化碳检测机器人主流程图143.1.2 系统中
8、断流程图153.2 开发环境简介163.3 软件设计子程序模块及流程图173.3.1 小车驱动模块173.3.2 一氧化碳检测模块19第四章 系统调试23结论24致谢25参考文献26附录A:主原理图27附录B:源程序清单28IV湖南科技大学本科生毕业设计(论文)第一章 绪论1.1智能移动探测装置的意义及作用自从第一个机器人的诞生,便标志着人类在智能方面的探索将是一个新的开始,是人类探索智能方面的伟大突破,也是人类新思想的呈现之作。人类将会不断探索,研究,以制造出更为理想的,并能为人类提供更多服务、帮助的智能机器。这个目标也是人类的一个长期的目标。随着机器人在智能方面的迅速发展,机器人所实现的功
9、能也越发的强大,这些功能的实现离不开其自身的传感器。现如今,较为先进的机器人会携带各种类型的传感器,其中视觉传感器更为突出,它的携带让机器人如同有了人类的眼睛。促使智能机器人的表现更为灵活,能为人类提供更多的现场的信息。而这些信息的传递将会为人类探索机器人所在环境提供方便。当然这样的传感器的出现也是比较难的,它是需要许多复杂的电路和程序运作才能实现的,它的核心是摄像管具有自动聚焦功能的,是仿照人类眼睛的,所以在市场上这样的传感器价格是比较贵的。机器人要代替人类就必须完成最基本的两个功能自动行走和避障的功能,这两个功能的实现将会是机器人完成其他功能的前提。避障控制方面可以以小车为载体,让小车实现
10、避障功能以完成它的顺利行走进而去探测更多的现场环境的数据。1.2 智能移动探测装置的前景随着现代科技和工业以及各行业发展的需求,智能探测装置的发展迫在眉睫,尤其在石油,煤炭开采,海洋探索,太空探索等高压危险环境这种智能探测装置更是尤为重要的。至此产生了许多的探测装置,比如鱼群声纳探测装置,红外成像探测装置,地下管道涂层破损点及与金属体接触点的探测装置,脉冲编码体制的探测装置,电气化铁道故障点探测装置等等。智能探测移动装置可以运用于事故现场,有毒有害现场等,人短时间无法进入或无法判断现场是否存在对人体有害的物质。使用智能小车进入现场对现场环境进行检测以及搜索现场是否有幸存者。然后将现场环境检测的
11、数据和现场的图像资料传回到安全位置的指挥员手中,方便指挥员评估风险以及实施救援。智能探测移动装置在科学领域探测也有较好的前景。特别在一些恶劣的环境中,如在南北极极地环境。还有一些人类短时间无法涉足的地方,如在地外星体地表上。科学家都不适宜长期冒着高风险工作,就可以使用类似的智能移动探测装置,带着相关探测的传感器工作,将有价值的信息通过无线通信传回便可。1.3 本设计工作简介该智能移动探测装置可以作为机器人的典型代表以实现机器人的功能,在限定的可行路线上,寻找到一氧化碳浓度最高的点,并报警。本智能移动探测机器人采用四轮小车为主体,为了控制方便,左方前后两轮用同一PWM波控制,右方前后两轮用另一路
12、PWM波控制。本系统的避障采用四个个红外传感器模块完成,分别安装在小车最前方的左中右,中间的红外检测前方是否有黑线,左右红外检测两边是否有黑线。一氧化碳检测一氧化碳模块完成。最后一氧化碳浓度,当一氧化碳浓度时将会出现报警。智能移动探测装置的动力系统,是由直流电机充当,主要控制小车的行驶速度。单片机驱动直流电机一般有两种方案:传统方案是由软件模拟PWM输出调制,此方案难以精确调速并且浪费很多单片机的资源,但可供选择单片机的型号较多。本设计选择直接拥有PWM功能的STC89C52单片机,不但不需占用单片机资源,而且可以实现精确调速。 第二章 一氧化碳检测机器人硬件设计2.1 系统总体设计单片机负责
13、检测车身周围的环境。首先在系统初始化打开STC89C52单片机自带的8通道,10位精度的AD和内置的两项独立可调的PWM。将AD用于采集MQ-7一氧化碳检测模块输出的电压。然后,驱动超声波检测小车到周围障碍物的距离,将数据处理后,通过驱动L298芯片和调制PWM控制小车的动作和车速。最后将以上测得数据存储单片机。基于系统的可靠性设计,我们将红外避障模块和接近开关添加到单片机的外部扩展中断中。当中断触发后,通过检测触发的引脚,判断小车的状态,从而决定小车下一步动作。单片机接收到的数据整理后,驱动人机交互设备LCD12864液晶显示屏,显示小车所处环境的温度,一氧化碳的浓度和小车到周围黑线的情况。
14、并对温度值和CO浓度值与设定值进行比较,如果超过预定值,驱动蜂鸣器进行声音报警。DS18B20模块报警模块MQ-7模块红外巡迹模块单片机内部PWM调速 模块STC89C52 单片机L298驱动模块图2-1 系统框图智能移动探测装置采用四轮小车为主体,为了控制方便,左方前后两轮用同一PWM波控制,右方前后两轮用同一PWM波控制。本系统的避障采用三个红外传感器模块完成,分别安装在小车最前方的左中右,中间的红外检测前方障碍物,左右红外检测两边的障碍物,三个超声测距模块分别配合红外显示与障碍物的距离,并有效避障。小车的右上方安装一接近开关,防止红外失灵不能避开障碍物时以进行的保护措施。一氧化碳检测,温
15、度检测分别通过一氧化碳模块,DS18B20模块完成。当一氧化碳浓度,温度超过设定值时将会出现报警。所以,本设计分为x子模块:一氧化碳检测模块(MQ-7模块)、核心控制模块(STC89C52单片机模块)、报警模块、红外巡迹模块、L298驱动模块、PWM调速模块。由于PWM调速模块直接集成在单片机内部的,和报警模块实现得相对简单,下面详细介绍一下几个模块的实现。2.2 一氧化碳检测模块实现2.2.1 气敏传感器的原理1、气敏传感器是一种将检测到的气体成分和浓度转换为电信号的传感器。在检测和自动控制系统中,传感器处于研究对象与测控系统的接口位置,是感知、获取与检测信息的窗口,对系统的功能起了决定性的
16、作用。因此,只有根据系统要求,选择合适的传感器,才能得到精确可靠的信号处理和控制电路。2、气敏传感器的工作原理半导体气敏传感器是利用半导体气敏元件同气体接触,造成半导体性质变化来检测特定气体浓度的。设计中选用 N 型半导体气敏传感器 MQ-7 对一氧化碳浓度进行检测。平时,气敏元件的 A、B 两极间电阻很大,当有气体泄漏时,其两极间的电阻值随接触的气体浓度的不同而发生变化,气敏传感器的特性曲线如图2-2所示。气体浓度越高极间电阻值越小,而气敏元件负载两端的电压则会增大。如此,气敏元件就将气体的浓度转化成了电压信号。为了加快气敏管的反应速度,需通过热丝对敏感元件进行加热。 图2-2 气敏传感器的
17、特性曲线3、气敏元件主要性能参数 电阻R0和Rs固有电阻R0表示气敏元件在正常空气条件下的阻值;而工作电阻Rs代表气敏元件在一定浓度的检测气体中的阻值。实验发现,工作电阻与各种检测气体浓度C都具有如下关系: ( 2-1 )式中,m、n是由传感器元件、测量气体种类等因素决定的常数,且m=1 。 灵敏度:气敏元件的灵敏度 k 通常用气敏元件在一定浓度的检测气体中的电阻与正常空气中的电阻值之比来表示: ( 2-2 ) 响应时间tres:把从元件接触一定浓度的被测气体开始到其阻值达到该浓度下稳定阻值的时间定义为响应时间。 恢复时间trsc:把气敏元件从脱离检测气体开始,到其阻值恢复到正常空气中阻值的时
18、间定义为恢复时间4。2.4.2 MQ-7一氧化碳传感器介绍选择一氧化碳传感器主要考虑以下的性能指标:(1)输入和输出之间成比例,直线性好、灵敏度高、分辨力强、测量范围宽。 (2)滞后、漂移误差小 (3)动态特性好 (4)功耗小 (5)时间老化特性优良 (6)与被测体匹配良好,既不因接入传感器而使得被测对象受到影响,受被测量之外的影响小。(7)体积小、重量轻、价格低廉。(8)故障率低,易于校准和维护。(9)由于传感元件的输出信号一边比较小,为了便于能够驱动控制电路,在传感器电路中还应该包括放大器。2鉴于以上选择要点,本文中用到的传感器必须具备良好的测量效果、功耗小、动态特性良好和体积小、重量轻、
19、价格低廉等几个主要特性。为此我们选择了MQ-7系列传感器。半导体一氧化碳传感器MQ-7所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。采用高低温循环检测方式低温(1.5V加热)检测一氧化碳,传感器的电导率随空气中一氧化碳气体浓度增加而增大,高温(5.0V加热)清洗低温时吸附的杂散气体。使用简单的电路即可将电导率的变化,转换为与该气体浓度相对应的输出信号。MQ-7气体传感器对一氧化碳的灵敏度高,这种传感器可检测多种含一氧化碳的气体,是一款适合多种应用的低成本传感器。主要特点及应用:对一氧化碳的高灵敏度。长寿命,低成本。简单的驱动电路即可家用气体泄漏报警器工业用一氧化碳报警器便携式
20、气体检测器MQ-7气敏元件的结构和外形如图2-7所示,由微型Al2O3陶瓷管、SnO2敏感层,测量电极和加热器构成的敏感元件固定在塑料或不锈钢制成的腔体内,为了改善传感器的选择性,传感器气室用活性炭过滤层与外界隔开。加热器为气敏元件提供了必要的工作条件。封装好的气敏元件有只针状管脚,其中个用于信号取出,个用于提供加热电流。 图2-3 MQ-7 实物图MQ-7型气敏元件的主要性能参数见表2-1表2-1 MQ-7主要性能表灵敏度分辨率响应时 间(s)恢复时 间(s) 测 试 条 件极间电压UAB热丝电压负载电阻k3S51060010V5V 2K ABH136452QM-N10VCCVCCVCCR3
21、LEDC1VCC23418U1AR11234P1RpR2+5VDOUTAOUTGND图2-4 气敏传感器的测量电路MQ-7型气敏元件在应用中大多采用单电源供电,其电路如图2-4。2.3 核心控制模块实现本设计采用的处理器是我们学习中触手可及的51系列的单片机。2.3.1 单片机的功能特性描述单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜。单片机内部也有和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件。单片机是一种集成电路芯片,采用超大规模集成电路技术把具
22、有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。本设计选择了STC公司的生产的STC89C52单片机。STC89C52是一种低功耗、高性能CMOS8位微控制器,是带8K字节闪烁可编程可檫除只读存储器。一个芯片上拥有8位CPU,并且在系统可编程Flash。STC89C52提供给为众多嵌入式控制应用系统高灵活、超有效的解决方案。 STC89C52具有以下标准功能:8k字节Flash,512字节RAM,32位I/O
23、口线,看门狗定时器,内置4KB EEPROM,两个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。此外,空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。表2.2 STC89C52单片机和AT89S52单片机的对比STC89C52单片机AT89S52单片机序存储空间8K字节8K字节数据存储空间512字节256字节EEPROM存储空间内带4K字节无是否可以直接使用串口下载可以不可以2.3.2 晶振电路在STC89S52单片机上内部有一个用于构成振荡器的高增益反
24、相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。在1和XTAL2引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。从XTAL1接入,如图2-5所示。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有要求。本设计选用的是12MHZ无源晶振、2个22pF电容,使得一个机器周期是1s。晶振的作用是为系统提供基本的时钟信号,而两个电容则是起到并联谐振的作用,如果没电容,振荡电路会因为没有回路而停振,电路不能正常工作。图2-5 单片机晶振电路图2.3.3 复位电路复
25、位电路的作用是在上电或复位过程中,控制CPU的复位状态:这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。施密特触发电路是一种波形整形电路,当任何波形的信号进入电路时,输出在正、负饱和之间跳动,产生方波或脉波输出。不同于比较器,施密特触发电路有两个临界电压且形成一个滞后区,可以防止在滞后范围内之噪声干扰电路的正常工作。如遥控接收线路,传感器输入电路都会用到它整形。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周
26、期(24个振荡周期)以上,则CPU就可以响应并将系统复位。本设计采用的电容值为10F的电容和电阻采用1.5K和200的电阻。如图2-6所示上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。图2-6 单片机复位电路图2.4 红外巡迹模块实现2.4.1 红外巡迹原理红外巡迹原理,就是利用黑线对红外线不同的反射能力通过光敏二极管或光敏三极管,接收反射回的不同光强信号,把不同光强转换为电流信号,最后通过电阻,转换为单片机可识别的高低电平。光电传感器实现巡迹的基本电路如图2-7所示。图2-7 巡迹传感器电路
27、图巡迹传感器工作原理:TC端是传感器工作控制端,为高电平时,发光二极管不工作,传感器休眠,为低电平时,传感器启动。Signal端为检测信号输出,当遇到黑线,黑线吸收大量的红外线,反射的红外线很弱,光敏三极管不导通,Signal输出高电平;当遇到白线,与黑线相反,反射的红外线很强,使光敏三极管导通,Signal输出低电平。这种探测方法,即利用红外线在不同颜色的表面特征,具有不同的反射性能,汽车行驶过程中接收地面的红外光。当红外光遇到白色路线,地板发生漫反射,安装在小型车的反射光接收器接收;如果是遇到黑色路线,红外光将被黑线吸收,安装在小车上的接收管没有收到红外光。控制器会根据是否收到反射的红外光
28、为判断依据来确定的黑线的位置和小车的路线。红外探测器距离通常是不应超过15厘米的。红外发射和接收红外线感应器,可以使自己或直接使用集成红外探头。调整左右传感器之间的距离,两探头距离约等于黑线宽度最合适,选择宽度为3 5厘米的黑线。该传感器的灵敏度是可调的,传感器有时遇到黑线却不能送出相应的信号,通过调节传感器上的可调电阻,适当的增大或减小可改变灵敏度。另外,巡迹传感器的放置也是有讲究的,有两种方法,一种是两个都是放置在黑线内侧紧贴黑线边缘,第二种是都放置在黑线的外侧,同样紧贴黑线边缘。本设计采用第二种方法。单片机烧录程序后,就可以执行巡迹指令了。如果小车向前行驶时向左偏离了黑线,那么右边传感器
29、会产生一个高电平,单片机判断这个信号,然后向右拐回到黑线。两传感器输出信号为低电平时,小车前进。如果小车向右偏离黑线,左边传感器产生一个高电平,单片机判断这个信号,然后向左拐。这样,小车一定不会偏离黑线。若两个光电传感器同时输出的信号为高电平,即单片机判断的都为高电平时,小车向前直走。2.4.2 传感器分布传感器通过信号采集,向单片机提供信息。因此传感器合理的布局很重要,传感器布局需要考虑小车行驶过程中信息检测的准确度和前瞻性,能使在相同数量的传感器下,获得更多的数据。传感器的布局一般有以下三种:一字型布局,M型布局和活动型布局。一字型布局即所有传感器在同一直线上。一字型布局分为等距排布型和非
30、等距排布型。等距排布型不利于采集准确的弯道信息。考虑到弧度信息采集的连贯性,非等距排布采用等角原则,即在垂直平分线上方处某点,以等角的引射线与直线的交点就是传感器的分布点,此种方法检测连贯简单,更容易控制小车。M型布局即传感器的布局成M型,M型布局最适合检测多弯道的轨迹。由于传感器不在同一直线上,故小车转弯时,左右两边后部的传感器有较大的采样空间,两边前端的传感器则对采集的信号有更好的前瞻性,M型中间底部的传感器择更好的确定小车的位置。整个布局有利于在弯道处提高小车速度。但相对一字型布局,M型布局容易产生不稳定信号,从而产生信号震荡,影响小车行驶的稳定性。活动型布局采用矩阵模式,将传感器排布成
31、矩阵形状,通过对不同位置传感器采集到信息的选择来适应各种不同的跑道。这样对不同路况有更强的适应性。 此种方案可调性大,但此种方法需要较多传感器,冗余较大,比较笨重,增加小车的重量,不利于小车的加减速。最终决定采用M型布局方法来对4个传感器进行布局,这种布局方法的前瞻性最好。2.5 L298驱动模块实现表3.3 L298N引脚编号与功能引脚编号名称功能1电流传感器A在该引脚和地之间接小阻值电阻可用来检测电流2输出引脚1内置驱动器A的输出端1,接至电机A3输出引脚2内置驱动器A的输出端2,接至电机A4电机电源端电机供电输入端,电压可达46V5输入引脚1内置驱动器A的逻辑控制输入端16使能端A内置驱
32、动器A的使能端7输入引脚2内置驱动器A的逻辑控制输入端28逻辑地逻辑地9逻辑电源端逻辑控制电路的电源输入端为5V10输入引脚3内置驱动器B的逻辑控制输入端111使能端B内置驱动器B的使能端12输入引脚4内置驱动器B的逻辑控制输入端213输出引脚3内置驱动器B的输出端1,接至电机B14输出引脚4内置驱动器B的输出端2,接至电机B15电流传感器B在该引脚和地之间接小阻值电阻可用来检测电流2.5.1 电机驱动原理电路的形状很像字母H。四个三极管就是H桥的四条垂直线,而电机就是H中的横线。图2.7 L298N内部H桥驱动电路图2-8为一个典型的直流电机的控制电路。被命名为“H桥驱动电路”主要是因为电路
33、的形状很像字母H。四个三极管就是H桥的四条垂直线,而电机就是H中的横线。如图所示,H桥电机驱动电路包含四个三极管和一个电机。电机运转,必须遵循导通对角线上的一对三极管。基于不同三极管对的导通情况可以控制电机的转向,电流可可以从左至右流过电机,也可以从右至左流过电机。如图2-8所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右流过电机,然后再经Q4回到电源负极,该流向的电流将驱动电机顺时针转动。下面分析另一对三极管Q2和Q3,当两个三极管同时导通的情况下,电流将从右至左流过电机。从而驱动电机沿逆时针方向转动。驱动电机时,保证H桥上两个同侧的三极管不会同时导通非常重要。如果三极管Q1和Q
34、2同时导通,那么电流就会从正极穿过两个三极管直接回到负极。此时,电路中除了三极管外没有其他任何负载,因此电路上的电流就可能达到最大值,该电流仅受电源性能限制,可能烧坏三极管。基于上述原因,在实际驱动电路中通常要用硬件电路方便地控制三极管的开关。图2-9 所示就是基于这种考虑的改进电路,它在基本H桥电路的基础上增加了四个二极管来保护电路。四个与门同一个“使能”导通信号相接,这样,用这一个信号就能控制整个电路的开关。采用以上方法,电机的运转就只需要用三个信号控制:两个方向信号和一个使能信号。如果DIRL信号为“0”,DIRR信号为“1”,并且使能信号是“1”,那么三极管Q1和Q4导通,电流从左至右
35、流经电机;如果DIRL信号变为:“1”,而DIRR信号变为“0”,那么Q2和Q3将导通,电流则反向流过电机。图2-9 L298N驱动芯片和直流电机接线图2.5.2小车运动逻辑表3.4 小车运动逻辑使能A使能B左电机右电机左电机运行状态右电机运行状态小车运行状态IN1IN2IN3IN4111010正转正转前行111001正转反转右转111011正转停止以右电机为中心原地右转110110反转正转左转110101反转反转后退111110停止正转以左电机为中心原地左转电机控制逻辑如下:以电机A为例,当使能端EN A为高电平时,如果输入引脚IN1为低电平而输入引脚IN2为高电平,电机A反转;如果输入引脚
36、IN1为高电平而输入引脚IN2为低电平,电机A正转。第三章 一氧化碳检测机器人软件设计3.1 软件设计主程序流程图3.1.1 一氧化碳检测机器人主流程图图3-1车载系统主流程图图3-1系统主流程图:单片机上电后,先进行系统初始化。其中包括AD功能寄存器配置,PWM寄存器配置,无线通信模块初始化,最后打开外部中断0和外部中断1及总中断。进入主循环后,开始读取AD的采样值,红外传感器测得的黑线状态。将前方超声波模块测得值,与设定值进行比较,看属于哪个区间范围,从而控制小车的速度,以及下一步是否前进。将左方和右方红外模块测得值进行比较,决定小车转向。最后将测得的所有数据装在单片机中,进行保存。3.1
37、.2 系统中断流程图图3-2 车载系统中断流程图 图3-2车载系中断流程图:扩展外部中断1的流程图,其中左中右三个红外避障模块以及接近开关触发后都为低电平,他们任意一个为低电平都会触发外部中断1。当外部中断触发后,单片机会检测与之引脚相连的的电平。如果是接近开关触发,说明已经撞车,直接开始倒车。如果是红外避障模块触发的中断,判断其三个的组合。与预设的7种情况相匹配,执行其预定的动作。3.2 开发环境简介在本设计中,由于采用是C语言编程,所以本设计软件开发环境选择了美国Keil SOFTWARE公司出品的兼容51系列单片机的Keil4。KEIL VISION可以方便的使用并且利用其强大的仿真功能
38、进行软硬件的调试工作。目前最新版的KEIL系统提供了包括于C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的一整套完善的开发方案,并可以通过一个集成开发环境(UVISION)将这些部分严密的组合在一起共同工作。WIN98、NT、WIN2000、WINXP等操作系统都可以有效的运行KEIL软件进行编程。 实际使用KEIL 51时,该集成环境既可用于C语言开发也可用于汇编语言开发。它内部集成了文件编辑、项目管理、编译链接和仿真调试等多种功能。用户可以在这里用文件编辑器编写自己的程序,用多种方法来调试和修改程序。编译程序也能帮助用户检查错误,提示用户修改错误,直至程序无误。 Keil
39、操作页面如下图3-3开发环境页面所示:菜单栏输出信息窗口工程管理窗口编辑窗口图3-3开发环境页面3.3 软件设计子程序模块及流程图3.3.1 小车驱动模块小车动力装置直流电机的驱动,使用了ST公司生产的L298芯片。L298驱动芯片是一种可以承受高电压和大电流电机的驱动芯片。此驱动芯片主要有以下几个特点:a该芯片使用标准TTL逻辑电平信号作为控制信号;b该芯片拥有两个使能端,使其可以在不受输入信号变化的情况下就允许或禁止器件工作;c该芯片有一个逻辑电源输入端,容许其内部部分逻辑电路可以在低电压环境下工作。L298芯片的引脚功能见表3-1。表3-1 L298引脚功能表引脚符号功能115SENSI
40、NG ASENSING B此两端与地连接电流检测电阻,并向驱动芯片反馈检测到的信号23OUT1OUT2此两脚是连接负载的全桥式驱动器A的两个输出端4Vs电机驱动电源输入端57IN 1IN 2全桥式驱动器A开关的输入控制端,采用标准的TTL逻辑电平信号。611ENABLE AENABLE B使能控制端.输入标准TTL逻辑电平信号;低电平时全桥式驱动器禁止工作。8GND接地端,芯片本身的散热片与8脚相通9Vss逻辑控制部分的电源输人端口1012IN 3IN 4全桥式驱动器B开关的输入控制端,采用标准的TTL逻辑电平信号。1314OUT 3OUT 4此两脚是连接负载的全桥式驱动器B的两个输出端见表3
41、-2电机转动状态编码我们将单片机P2口接在L298输入口,由于驱动四个直流电机,我们使用两个L298芯片,刚好用完一组I/O(P2)口。通过控制P2口的输出值与编码值相匹配,控制四个电机的运动状态,从而控制小车的运动状态。表3-2 电机转动状态编码右A电机右B电机左C电机左D电机右A电机右B电机左C电机左D电机小车运行状态INA1INA2INB1INB2INC1INC2IND1IND210101010正转正转正转正转直行01001010反转停正转正转右急转00001010停停正转正转右转10100100正转正转反转停左急转续表3-2电机转动状态编码INA1INA2INB1INB2INC1INC
42、2IND1IND2右A电机右B电机左C电机左D电机小车运行状态10100000正转正转停停左转01010101反转反转反转反转倒车01010000反转反转停停左后倒00000101停停反转反转右后倒对于电机的调速,本设计使用STC89C52单片机内部PWM特殊寄存器生成的两路PWM进行调速,其中一路控制左边两个电机,另一路控制右边两个电机。PWM控制小车车速的基本原理如下:通过调节PWM波的占空比来调节直流电两端的平均电压,两端的平均电压越高则车速越快。其中的占空比为高电平所持续的时间t占整个周期T的比值。图3-4小车动作及调速图3-4小车动作及调速流程图:首先开始对与单片机相连的P2口进行I
43、/O口定义,方便后面的操作。之后配置单片机自身的PWM特殊寄存器,使其与L298使能端相连的引脚可以输出可控的PWM波,方便对车速的控制。然后,对小车可能用到的动作做进行预先的判断,并按表3-2电机转动编码将这些会出现的动作编成相对应的子函数,方便之后调用。当小车周围出现障碍时,就可以与预设的情况进行匹配。通过更改PWM特殊寄存器的初值调整单片机的输出PWM的占空比,从而达到改变车速,再调用相应的动作子函数,使小车实现躲避障碍物的功能。3.3.2 一氧化碳检测模块本设计一氧化碳检测模块,选用由二氧化锡气敏材料组成的MQ-7传感器。该模块主要有以下特点:a该模块内部气敏材料,在洁净空气中电导率较
44、低;b可以使用高低温循环检测的方法。当使用高温加热方式时,即加热电压为5v。主要用于清除吸附在传感器上的杂乱气体。当选用低温加热方式时,即加热电压为1.5v。主要用于检测一氧化碳的浓度。此时二氧化锡电导率与一氧化碳的浓度成比例。我们只需检测输出电压的变化即可测得一氧气体的浓度。本模块的接口说明:VCC5V工作电压GND外接GNDDO小板数字开关输出接口(0和1)AO小板模拟量输出接口将单片机STC89C52中P1.1口与CO模块AO引脚相连接,使用其自带的10位AD采集CO模块AO引脚输出的模拟量(电压)。通过数学计算将采集到的电压转化为CO的浓度。表3-3 STC89C52系列单片机A/D转换的寄存器见表3-3 A/D转换寄存器列表,由于本次AD采集程序中不需要打开AD中断,故在配置STC89C52单片机AD相关寄存器时可以直接将中断允许寄存器IE,中断优先级寄存器IP和IPH忽略。我们只需要配置P1模拟模拟功能控制寄存器P1ASF,ADC控制寄存器ADC_CONTR,AD转化结果寄存器即可。AUXR1的ADRJ为AD转化结果寄存器数据格式调整控制位。我们选择其默认格式AD
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922