灭火机器人Word文档格式.docx

上传人:b****6 文档编号:17903833 上传时间:2022-12-12 格式:DOCX 页数:27 大小:1,012.70KB
下载 相关 举报
灭火机器人Word文档格式.docx_第1页
第1页 / 共27页
灭火机器人Word文档格式.docx_第2页
第2页 / 共27页
灭火机器人Word文档格式.docx_第3页
第3页 / 共27页
灭火机器人Word文档格式.docx_第4页
第4页 / 共27页
灭火机器人Word文档格式.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

灭火机器人Word文档格式.docx

《灭火机器人Word文档格式.docx》由会员分享,可在线阅读,更多相关《灭火机器人Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。

灭火机器人Word文档格式.docx

驱动模块采用L298芯片与两个直流电机,该芯片能够接收单片机发出的控制信号,同时驱动两个直流电机运动。

传感器模块

传感器模块采用红外传感器和火焰传感器两种传感器,红外传感器探测行进路面,火焰传感器探测前方火焰,并将探测到的数据传到ADC0804进行模数转换。

3.灭火模块

灭火模块采用12V直流风扇,用5V电磁继电器作为控制开关控制风扇的停转。

4.A/D转换模块

A/D转换模块由四个ADC0804组成,用来接收传感器传回的模拟信号,转换成数字信号,然后传给单片机进行后续处理。

5.电源模块

用一个4节5号电池夹和一个6节5号电池夹,来提供6V和9V电源。

6V提供单片机和L298芯片的工作电源,9V提供电机和风扇的工作电源。

2.2系统的构成

2.3主要设备及元器件选型

1、远红外火焰传感器:

灵敏度高、响应速度快、输出信号大、寿命长、工作稳定可靠。

2、红外光电传感器:

灵敏度高、响应速度快、检测距离可调、寿命长、工作稳定可靠。

3、Atmel89S52单片机:

一种低功耗高性能的CMOS8位微控制器,内置8KB可在线编程闪存。

4、ADC0804模数转换芯片:

实现数模转换,功耗低,使用方便,控制简单。

5、L298电机驱动芯片:

可驱动两个直流电机,驱动能力强,电路简单,使用比较方便。

6、电磁继电器:

弱电控制强电,隔离控制。

7、风扇:

12V额定电压,功率小。

8、UM2003芯片:

是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成,采用集电极开路输出,输出电流大,故可直接驱动继电器。

2.4系统核心处理策略

红外传感器检测小车行进的道路是否有障碍物,火焰传感器检测周围环境是否有火源,单片机以扫描的形式逐一扫描每个传感器,判断是否有信号传入,并判断是哪个传感器探测到的信号。

若是由红外传感器探测到的信号,则单片机根据探测到信号的不同控制电机做相应的运动,以躲避障碍物;

若是由火焰传感器探测到的信号,则单片机根据探测到的信号,判断火焰的方向及距火源距离,并控制电机向火源方向运动,当到达灭火范围内,单片机控制风扇灭火,直到火源熄灭。

3.作品的详细设计

3.1硬件设计

图3-1功能模块划分图

3.1.1传感器与A/D转换

远红外火焰传感器可以用来探测火源或其它一些波长在760纳米~1100纳米范围内的热源;

远红外火焰传感器能够探测到波长在760纳米~1100纳米范围内的红外光,探测角度为60,其中红外光波长在940纳米附近时,其灵敏度达到最大;

远红外火焰探头的工作温度为-25摄氏度~85摄氏度;

火焰传感器模组(JNHB2004)是组合好的模组,能将探测到的火焰信号转为0-5V的电压信号,红色线接DC5V,黑色线接GND 

绿色线信号输出,可直接输入IC。

红外光电传感器是一种红外光漫反射式光电传感器,它是一种集发射器和接收器于一体的传感器,当前面有被检测物体时,物体将发射器发出的红外光线反射回接收器,于是光电传感器就“感知”了物体的存在,产生输出信号。

采用正5V电压供电;

检测距离为50cm左右;

抗干扰强,不受可见光影响,可在太阳光底下使用。

A/D部分采用ADC0804芯片进行模数转换,将实际的距离转换成电压的变化(模拟量)转换为数字量,供单片机处理。

ADC0804原理如下图所示,其中1管脚是片选使能端,2、3管脚是AD转换控制,6管脚是信号的输入,11~18管脚是转换完输出的数字量,通过P1口返回的数字量来判断距离和火焰的位置;

下图为ADC0804和单片机间的连接原理图

图3-2ADC0804原理图

图3-3ADC0804和单片机间的连接原理图

3.1.2电机驱动

电机驱动采用恒压恒流桥式2A驱动芯片L298,内部包含4通道逻辑驱动电路。

可以方便的驱动两个直流电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;

可以直接用单片机的IO口提供信号,而且电路简单,使用比较方便。

L298可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。

4脚VS接电源电压,VS电压范围VIH为+2.5~46V。

输出电流可达2.5A,可驱动电感性负载。

1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。

L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。

5,7,10,12脚接输入控制电平,控制电机的正反转。

ENA,ENB接控制使能端,控制电机的停转。

图3-4L298封装图

下面是L298与直流电机的电路连接图:

图3-5驱动电路图

其中D1~D2为1n4007二极管。

通过单片机发出电平信号,可以很容易控制电机正转、反转。

3.1.3灭火

灭火部分风扇驱动主要采用5V电磁继电器作为电源控制开关,当单片机接收到火焰传感器检测到有火焰信号时,发出指令给电磁继电器来控制电磁继电器闭合,接通风扇驱动部分电路,使风扇转动来实现灭火功能。

电磁继电器主要一般由控制线圈、铁芯、衔铁、触点簧片等组成,控制线圈和接点组之间是相互绝缘的,因此,能够为控制电路起到良好的电气隔离作用。

当我们在继电器的线圈两头加上其线圈的额定的电压时,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。

当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)吸合。

这样吸合、释放,从而达到了在电路中的接通、切断的开关目的

下面是电磁继电器控制风扇驱动部分电路连接图:

图3-6继电器电路图

其中UM2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。

采用集电极开路输出,输出电流大,故可直接驱动继电器。

当单片机发送0/1指令给P10的8端口时经过in1输入UM2003,再经过UM2003处理,从out1输出信号控制继电器的闭合与断开。

3.1.4控制系统

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

下面为AT89S52所组成的一个最小系统电路图:

图3-7最小系统电路图

3.1.5电源

Atmel89C52和L298都需要5V工作电源,用4节5号电池夹装4节电池提供芯片正常工作电压。

而直流电机和风扇都采用6节5号电池夹装6节电池供电。

100uF、0.1uF电容能够实现输入输出电压的滤波。

这样,芯片与电机、风扇都能在正常电压范围内工作。

3.1.6系统原理图及元器件

1.系统电路原理图

图3-8系统电路原理图

2.元器件清单

序号

名称

型号

规格

数量

单位

01

红外火焰传感器

/

5.5*1.4

2

02

红外光电传感器

4*2

4

03

AD芯片

ADC0804

2*0.3

6

04

单片机

Atmel89S52

3

05

驱动芯片

L298

06

电磁继电器

SRD-05VDC-SL-C

1

07

发光二极管

8

08

二极管

1n4007

09

碳膜电阻

1k

10

10k

11

陶瓷电容

pF

12

UM2003芯片

13

电路板

14*8

14

小车模型

21.85*20.44

3.1.7PCB设计

制作气体监控器电路板的PCB图,流程如下:

1.根据该器件所能实现功能进行电路图的设计,画出电路图。

2.对该电路图进行检测查看是否有错误。

3.检查无误后,利用Protel软件对该电路图的设计生成PCB图。

4.根据所需PCB器件对PCB板进行划分大小,分层。

5、考虑到对该报警器外壳的设计需要进行PCB各器件的排板。

6.排好板后,根据原理图对PCB图进行布线,先从电源正极开始画电源线+12V,绕PCB板到一定的角度,然后将各个需要+12V电源的器件与之连接。

7.用同样的方法对VCC进行布线。

8.进行自动布线。

9.检查无误后,对该PCB图进行敷铜。

PCB图即完成。

注:

在布线后,一定要仔细检查各元件的接法是否与原理图一致。

适时要对原理图以及PCB进行保存,以防改动丢失。

图3-9系统PCB设计图

3.1.8系统硬件资源清单

本系统的硬件包括直流电机小车、PCB电路板,其规格如下:

小车模型框架

PCB

18.53*8.68

3.2软件设计

3.2.1程序流程图

图3-10程序流程图

3.2.2传感器及A/D转换程序设计

在传感器检测的时候,主要分为两部分,火焰传感器和红外光电传感器。

单片机P1口的八个发光二极管发光个数分别来标志是否有障碍物和火源远近的程度。

那火焰传感器来说,在这里就需要将采集到的模拟信号转化为数字信号,这样才能让单片机处理。

在采集到模拟信号后将它转化为数字信号后,返回一个转换值(Temp)进行判断,将此信号分为8个区段,对应区段表示随着火源远近的程度,当LED仅有小于四个亮时,表示没有火源;

LED=1变化为LED=0的个数依次增加,当LED全部亮时说明灭火小车距离火源最近。

红外光电传感器的实现原理与火焰传感器原理相同。

用基本相同的子程序控制,共同组成传感器模块,分别实现火焰检测功能和实时避障功能。

当检测出火焰或前方有障碍物时即让蜂鸣器报警的数字信号由song=1变为song=0单片机接受处理控制。

主代码设计如下:

/*红外避障程序开始*/

//第一组传感器红外

init1();

start();

delay(50);

rd=0;

delay(10);

temp1=P1;

rd=1;

//读入将它集到模拟信号转化后的数字信号

if(temp1>

0x0f)song=0;

//判断是否有障碍物若有,报警

elsesong=1;

delay(10);

stop1();

//第二组传感器

init2();

start();

delay(50);

temp2=P1;

if(temp2>

stop2();

/*火焰检测程序开始*/

//第三组传感器火焰

init3();

rd=0;

temp3=P1;

;

if(temp3>

0x8f)song=1;

//判断是否有火源若有,报警

elsesong=0;

delay(10);

stop3();

//第四组传感器

init4();

rd=0;

delay(10);

temp4=P1;

if(temp4>

elsesong=0;

stop4();

3.2.3电机驱动程序设计

在电机驱动部分主要是通过单片机对传感器采集模拟信号反馈回的数字信号进行处理后,来发送指令控制灭火小车运动。

主要在voidorder(uchara)函数中当接收到a=0时,小车停止转动;

a=1时,小车向前转动;

a=2时,小车向后转动;

a=3时,小车向左转动;

a=4时,小车向右转动;

a为其他值时时,小车停止转动。

voidorder(uchara)

{

//电机驱动开始

switch(a)

{

case0:

//小车停止转动

IN1=0;

IN2=0;

IN3=0;

IN4=0;

break;

case1:

//小车向前转动

IN1=1;

IN3=1;

case2:

//小车向后转动

IN2=1;

IN4=1;

case3:

//小车向左转动

case4:

//小车向右转动

default:

//

}//电机驱动结束

}

3.2.4完整程序代码

#include<

reg52.h>

#defineuintunsignedint

#defineucharunsignedchar

//管脚声明

//传感器测试

sbitP3_2=P3^2;

sbitP3_3=P3^3;

sbitP3_4=P3^4;

sbitP3_5=P3^5;

sbitwr=P3^6;

//开始转换

sbitrd=P3^7;

//数据转换完毕

sbitsong=P2^7;

//警报信号

//电机驱动测试

sbitIN1=P2^0;

sbitIN2=P2^1;

sbitIN3=P2^2;

sbitIN4=P2^3;

sbitENA=P2^4;

sbitENB=P2^5;

//风扇驱动测试

sbitfan_relay=P3^0;

//变量声明

uinttemp1,temp2,temp3,temp4;

ucharIs_fire=0;

ucharreceive=0;

//行进变量

ucharright1=4;

ucharleft1=3;

ucharcount=0;

//函数声明

voidinit1();

voidstop1();

voidinit2();

voidstop2();

voidinit3();

voidstop3();

voidinit4();

voidstop4();

voidstart();

voidturnleft();

voidturnright();

voidturnup();

voidturndown();

voidturnstop();

voidorder(uchara);

//公共函数

voiddelay(uintz);

//***********************主程序开始***********************//

voidmain()

ENA=1;

ENB=1;

fan_relay=1;

while

(1)

if(Is_fire==0)

{

/*红外避障程序开始*/

 

if(temp1>

0x0f&

&

temp2>

0x0f)//两个传感器同时检测到

{

turndown();

//小车向后转动

}

elseif(temp1>

0x0f)//左传感器检测到

{

turnright();

//小车向右转动

elseif(temp2>

0x0f)//右传感器检测到

turnleft();

//小车向左转动

elseturnup();

}

/*火焰检测程序开始*/

//第三组传感器火焰

0x8f||temp4>

0x8f)//其中一个传感器检测到火源

fan_relay=0;

Is_fire=1;

turnup();

turnstop();

//风扇打开,小车慢慢逼近火源进行灭火

if(temp3<

0x8f&

temp4<

0x8f)//传感器都没检测到火源

fan_relay=1;

Is_fire=0;

//风扇关闭

}

//***********************主程序结束***********************//

//延时函数

voiddelay(uintz)

inti,j;

for(i=z;

i>

0;

i--)

for(j=110;

j>

j--);

//***********************传感器部分程序开始***********************//

voidinit1()

{P3_2=0;

voidstop1()

{P3_2=1;

voidinit2()

{P3_3=0;

voidstop2()

{P3_3=1;

voidinit3()

{P3_4=0;

voidstop3()

{P3_4=1;

voidinit4()

{P3_5=0;

voidstop4()

{P3_5=1;

voidstart()

wr=1;

wr=0;

wr=1;

}//***********************传感器部分程序结束***********************//

//***********************电机驱动部分程序开始***********************//

//主要包含驱动部分的子函数

voidturnleft()

if(receive!

=3)

{receive=3;

order(receive);

voidturnright()

=4)

{receive=4;

voidturnup()

=1)

{receive=1;

order(receive);

voidturndown()

=2)

{receive=2;

voidturnstop()

=0)

{receive=0;

I

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 城乡园林规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1