文档详情

智能寻迹灭火小车

工****
实名认证
店铺
DOC
96KB
约16页
文档ID:414733502
智能寻迹灭火小车_第1页
1/16

智能寻迹灭火小车摘要: 本设计为使小车在轨道上按要求准确运行采用了单片机AT89C51最小系统作为电动车的检测和控制系统通过红外发射接收一体探头检测路面黑色寻迹线,使小车按预定轨道行驶,通过步进电机进行扫描,根据火焰传感器检测火焰再加上基于AT89C51单片机的键盘,构成了整个系统的硬件总电路最后通过软件设计,实现了按预定轨道行驶、蔽障、检测火焰、灭火等功能关键词:寻迹线 蔽障 火焰传感器 红外发射接收一体探头 灭火1·系统方案设计、比较与论证根据题目的基本要求,设计任务主要完成小车在规定的时间内按规定路径进行扫描,寻迹,蔽障,灭火等功能为完成相应的功能,系统可以分为以下几个基本模块:电机驱动模块,电机扫描模块,风扇驱动模块,寻迹线探测模块,蔽障模块,火焰检测模块,电源模块,风扇模块图一 CPU驱动电机模块循迹模块电源模块风扇模块火焰传感器1.1 寻迹线探测模块 探测路面黑色寻迹线的原理:光线照射到路面并反射,由于黑线和白纸的反射系数不同,可根据接受到反射光强弱由传感器产生高低电平并最终通过单片机判断是否到达黑线偏离跑道方案一:由可见光发光二极管与光敏二极管组成的发射-接收电路。

该方案成本较低,易于制作,但其缺点在于周围环境光源会对光敏二极管的工作产生很大干扰,一旦外界光亮条件改变,很可能造成误判和漏判;如果采用超高亮发光管和高灵敏度光敏管可以降低一定的干扰,但又将增加额外的功率损耗方案二:自制红外探头电路此种方法简单,价格便宜,灵敏度可调,但易受到周围环境影响,特别是较强光照对检测信号的影响,会造成系统不稳定再加上时间有限,制作分立电路较繁琐方案三:集成式红外探头可以采用集成断续式光电开关探测器,它具有集成度高、工作性能可靠的优点,只须调节探头上的一个旋钮即可以控制探头的灵敏度此种探头还能有效地防止普通光源(如日光灯等)的干扰基于上述考虑,为了提高系统信号采集检测的精度,我们采用方案三 1.2电动机及其驱动模块的选择在选用驱动模块方面由以下两种方案:采用专用驱动芯片该芯片集成度高,占用空间小,主要应用于电机调速场合采用分立三极管驱动电路经分析此电动车所要求的功能比较简单,不需复杂的调速,用电动机专用集成驱动电路可以达到预期的目标故我们最后决定用后方案1.3 电源选择 方案一:所有器件采用单一电源(5节五号电池)这样供电比较简单,但是由于电动机启动瞬间电流很大,会造成电压不稳、有毛刺等干扰,严重时可能会造成单片机系统掉电,使之不能完成预定行程。

方案二:双电源供电电动机驱动电源采用5节五号电池,单片机及其外围电路电源采用5V钮扣电池供电,两路电源完全分开,这样做虽然不如单电源方便灵活,但可以将电动机驱动所造成的干扰彻底消除,提高了系统稳定性 我们认为本设计的稳定可靠性更为重要,故拟采用方案二1.4灭火装置模块可燃物的燃烧的条件有两个:一是有助燃物,二是可燃物的温度达到着火点以上因此灭火也就有两种方案:一是将助燃物与可燃物隔离开,二是降低可燃物的温度至着火点以下我们小车采用第二种方案,即降低温度至着火点以下方案1:干冰灭火 干冰升华时,吸收大量的热,降低可燃物温度,同时二氧化碳气体会覆盖在可燃物上,将助燃物和可燃物隔离开对于我们的课题此方案的劣势太多方案2:喷水灭火 利用微型水泵喷出适量的水来灭掉火源喷水灭火是现实生活中灭火的最主要的方式,但是对于我们的只能灭火小车,有两个致命的缺点:一是几乎买不到小型可控的喷水装置,二是装上大量水后,小车的负载过大方案3:风扇灭火 利用一个不减速的直流小电机带动一个小扇叶进行简单的灭火这种方案有三个子方案;(1) 电源直接供电 这种方案是最简单的,但是小车驱动电机和各种芯片的额定工作电流和电压都受到很大的限制,且干电池的输出电压和电流也不可能达到很大,所以灭火电机的电压和电流较小无法达到预期效果。

2) 芯片控制 灭火风扇电机的转速和转向都不需要控制,只要在一定范围内转的越开越好因此采用这种方案有点麻烦,而且还会浪费时间和精力3) 三极管放大电路 直接利用三极管驱动将电机放在三极管的射极,然后在基极加上一个限流电阻即可驱动电机正常工作,这种方案不仅电路简单、易实现,会减少很多电路上不必要的麻烦,而且驱动效率也大大提高,不仅如此其维修性也很强,出现故障能及时快速维修同时为了保证电路稳定性,我们采用多个三极管并联供电的方式鉴于以上各种方案的比较,我们选择方案3中子方案(3)1.5 探测装置模块在进行这个项目之前,我们三个就从未接触过类似的项目课题,一时真的不知该如何着手解决这个棘手的问题不过有一点我们几个都清楚地知道我们的检测方法肯定是得利用火源发出的光和温度的性质来将这一特殊的“目标物”与周围环境物区别开来考虑到实际情况即蜡烛发出的光中不仅仅只有可见光,红外和紫外都占有一定比例,蜡烛发光的过程中肯定还伴随着烟雾等附带物的释放,而且周围环境的温度也会发生不同程度的变化,但是这种变化较小以上这些都可以作为检测蜡烛位置的依据,所以我们常见的有红外传感器、紫外传感器、火焰传感器、烟雾传感器,温度传感器等。

方案1:以两个热敏电阻为核心的传感器 实验中发现在一定距离范围内,空气温度变化非常小,热敏电阻几乎不发生任何变化方案2:以两个光敏电阻为核心的传感器 利用光敏电阻对不同距离及不同强度的光照均有较好的光敏特性来将外界光信号转换成电信号,提供给单片机进行相关判断操作实验中我们发现这种方案有很大的缺点,抗干扰能力极差,而且误差偏大,不能准确测定火源位置方案3:为了更准确的保证小车能够在距离火源3—5cm的范围内停下来,我们在方案2的基础上增加了光电对管进行短距离测距但是实验中发现光电对管是不起任何作用的原因是蜡烛是圆柱形,对广电对管发射的光信号是漫反射的不是镜面反射,光电对管几乎接收不到反射回来的信号光电对管几乎起不到任何作用方案4:用缠有黑色胶布的塑料管将光敏电阻四周包围起来这样只有垂直于光敏电阻表明的光才能作用到光敏电阻,改变光敏电阻的阻值,进而改变电流和电压值,通过判断电压和电流的变化就可以准确测定光源的方向,然后小车水平直线前进通过实验我们发现这种方案较好,他抗干扰能力强,探测距离远(可达3米左右),探测火源位置准确方案5: 以方案2为基础,采用多个光敏电阻共同探测火源位置。

他们的信号通过或门传递给mega16单片机但是在实际情况中我们发现这种方案实际效果不大,而且电路较为麻烦鉴于以上5种方案的比较,我们选择方案4小结:经过一番仔细的论证与比较,我们决定了系统各个主要模块的最终方案如下:1、小车基本模型模块 用电路板为底座自己动手做一个小车,采用两轮驱动,一个万向轮支撑来保证小车的平稳和转向灵活快捷2、电机驱动模块 利用L298芯片控制两个驱动电机的旋转时间、方向和快慢,进而控制小车的前进和转向3、灭火装置模块 多个三极管放大电路供电控制灭火风扇电机,进行风扇灭火4、探测装置模块 用缠有黑色胶布的塑料管将光敏电阻四周包围起来,绕后通过两只光敏电阻来探测火源的位置当火源位于小车正前方的时候,蜡烛与小车中线在同一直线上,即蜡烛在两只光敏电阻连线的垂直平分线上,这样两只光敏电阻所受光照条件大致相同,因而其阻值也相差不大,从而使两个电路电压电流之差在一个很小的范围内这一性质来确定火源位置5,电源:双电源供电二 系统的具体设计与实循迹(0、8cm)现 火焰检测灭火回终点路面检测整行电路89S52整行电路黑线计数方波信号方波信号方波信号系统的组成及其原理图如下所示。

以下分为硬件与软件两个方面进行具体分析1 系统的硬件设计 电动机的驱动设计与实现用L298N作为电机驱动芯片L298N是一个具有高压大电流的全桥驱动芯片,他相应频率高,一片L298N可以控制两个直流电机,而且还有控制使能端驱动电路的设计原理图路面黑线检测模块电路的设计与实现2.1寻迹线探测电路 采用型号为红外线传感器,该探头输出端只有三根线(电源线、地线、信号线),只要将信号线接在单片机的I/O口,然后不停地对该I/O口进行扫描检测,当其为高电平时则检测到白纸,当为低电平时则检测到黑线区域小车前进(倒退)时,始终保持黑线在车头(车尾)两个传感器之间,当小车偏离黑线时,探测器一旦探测到有黑线,单片机就会按照预先编定的程序发送指令给小车的控制系统,控制系统再对小车路径予以纠正当小车回到了轨道上时,车头(车尾)两个探测器都只检测到白纸,则小车继续直线行走,否则小车会持续进行方向调整操作,直到小车恢复正常系统的软件设计 三 实际测试1 测试设备模拟跑道:2 测试结果附录软件程序#include#include#define uchar unsigned char#define uint unsigned intunsigned char temp;unsigned char signal;unsigned int s;unsigned char j;unsigned char k;unsigned char l;unsigned char m;sbit f=P1^5;sbit in4=P3^3;sbit in3=P3^2;sbit in2=P3^1;sbit in1=P3^0;sbit y=P1^3;void delay300(void) // 300ms{ unsigned char a,b,c; for(c=123;c>0;c--) for(b=116;b>0;b--) for(a=9;a>0;a--);}void delay200(void) //误差 0us{ unsigned char a,b,c; for(c=4;c>0;c--) for(b=116;b>0;b--) for(a=214;a>0;a--); _nop_(); //if Keil,require use intrins.h}void delay(){ unsigned int i,j; for(i=30;i>0;i--) for(j=30;j>0;j--);}void delay1(){ unsigned int i,j; for(i=20;i>0;i--) for(j=20;j>0;j--);}void delay2() //误差 0us{ unsigned char a,b,c; for(c=189;c>0;c--) for(b=230;b>0;b--) for(a=33;a>0;a--);}void delay3(uchar t) //误差 0us{ unsigned char a,b,c; while(t--) for(c=1;c>。

下载提示
相似文档
正为您匹配相似的精品文档