智能消防机器人.docx

上传人:小飞机 文档编号:1909534 上传时间:2022-12-25 格式:DOCX 页数:29 大小:573.69KB
返回 下载 相关 举报
智能消防机器人.docx_第1页
第1页 / 共29页
智能消防机器人.docx_第2页
第2页 / 共29页
智能消防机器人.docx_第3页
第3页 / 共29页
智能消防机器人.docx_第4页
第4页 / 共29页
智能消防机器人.docx_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《智能消防机器人.docx》由会员分享,可在线阅读,更多相关《智能消防机器人.docx(29页珍藏版)》请在三一办公上搜索。

1、智能消防机器人目录第一章 引言.21.1 课题背景2 1.2 Intelligent Design and manufacture of electric cars Fire.21.3 实现功能31.4 模拟房子介绍3第二章 系统整体方案设计.42.1 系统硬件设计.42.2 系统软件设计.4第三章 硬件设计.5 3.1 电源管理模块5 3.11稳压芯片LM7805、7806CV5 3.12电源模块电路原理图.5 3.2 电机驱动芯BTS7960.6 3.21 BTS7960的逻辑功能.6 3.22 外形及封装.6 3.23 BTS7960电路原理图.73.3地面灰度检测传感器 ST188.7

2、3.3.1 ST188特点.73.3.2 检测原理73.3.3 应用范围73.3.4 外形尺寸(单位mm)73.3.5 ST188原理图.83.4火焰传感器.83.4.1火焰传感器使用.8 3.5报警电路.8第四章 软件设计94.1 灭火机器人行进路线分析94.2 软件流程图114.3软件开发平台介绍.11第五章 调试记录及实验心得125.1 调试记录.12参考文献.13附录: 程序清单.13第一章 引言1.1课题背景如今国内外对消防设备的研究越来越重视,投入也越来越多。慢慢趋向于自动化、智能化。实现灭火、火场侦查、危险物品泄露探测、破拆等功能。本文设计主要完成的功能是扑火救人。本设计是基于S

3、TC89C52单片机对电动车进行控制的自动控制系统,研究的内容有:主要方案论证、硬件设计、软件设计、系统实物调试。硬件设计主要有电机驱动电路、热光源采集电路、声音采集电路、电风扇驱动电路、停车信号采集电路、LCD显示电路、电源电路及单片机最小系统。本系统以STC89C52单片机作为控制核心,通过接受到热光源采集电路传送的信号和声音采集电路传送的信号,对电动车电机进行控制,从而实现对电动车的转向控制。当两处着火,一处是物品,另一处是人着火;电动车通过声音识别,优先将人身上的火扑灭。其所实现的功能相当于简易消防机器人。【关键词】 消防车 热光源 STM32单片机 LM298 ST1781.2 In

4、telligent Design and manufacture of electric cars FireAbstract Today, fire-fighting equipment at home and abroad more and more emphasis on the study, input more and more. Slowly tends to automation and intelligence. To achieve fire fighting, fire detection, hazardous materials leak detection, ripper

5、 and other functions. This function is primarily designed to complete fire fighting to save people. The design is based STC89C52 microcontroller to control for electric vehicle control system to study the contents of the following: the main program feasibility studies, hardware design, software desi

6、gn, system debugging in kind. Hardware design, main motor drive circuit, thermal light source acquisition circuit, the sound collection circuit, fan drive circuit, stopping the signal acquisition circuit, LCD display circuit, power circuit and microcontroller minimum system. The system STC89C52 micr

7、ocomputer as the control core, through the acquisition circuit receives light transmitted thermal signal and voice signal acquisition circuit transmission of electric vehicle motors to be controlled in order to achieve steering control for electric vehicles. When the two fire, one is the items, anot

8、her is a human on fire; electric vehicle through voice recognition, give priority to the human body fire. They achieve the functional equivalent of simple fire-fighting robot.【Key words】: fire engine 、hot light、 STM32 MCU 、 LM298 ST1781.3 实现功能制造一个自主控制的机器人在一间平面结构房子模型里运动,找到一根蜡烛并尽快将它熄灭,这个工作受地面摩擦、机器人惯性、

9、机器人电机的转数差、齿轮箱与轮子的摩擦、电压变化等多个因素影响,它模拟了现实家庭中机器人处理火警的过程,蜡烛代表家里燃起的火源,机器人必须找到并熄灭它。1.4 模拟房子介绍模拟房子平面图单位:mm比赛场地的墙壁22cm高,由KT板做成。墙壁为白色。比赛场地的地板将是贴有导航黑线的KT板。所有的房间和走廊的地板上都是光滑的。场地中所有的门口并没有门,而是一个适当宽度的开口。第二章 系统整体方案设计2.1 系统硬件设计本次设计的目的是设计一个在规定区域能自主搜索火源并实施灭火的智能机器人小车,本次设计使用的主控芯片使用了STC89C52单片机,所以设计重点在传感器和电机驱动上。系统总体设计框图如图

10、2.1:MCU小车电机驱动传感器模块传感器模块电源部分水枪电机图2.1 系统总体设计框图2.2 系统软件设计转弯子程序软件设计方案是以上述硬件电路为基础的,包括电机控制模块、传感器模块的程序设计与实现。程序设计采用C语言编写,编程环境是集成Keil STM32编译器的集成编译环境。灭火机器人设计的软件设计结构框图如图2.2所示。灭火机器人系统软件电机控制模块传感器模块前进子程序停止子程序灰度子程序壁障子程序火焰子程序火焰子程序转弯子程序转弯子程序 图2.2 系统软件设计框图 第三章 硬件设计3.1电源管理模块电源是任何一个系统稳定运行的前提条件,为了使机器人运行稳定,单片机和电机的供电系统采用

11、独立供电的方法。3.1.1稳压芯片LM7805CV、LM7806CVLM7805CV的技术指标如下表:表3-1 稳压芯片7805参数LM7806CV的技术指标如下表:表3-2 稳压芯片7806参数3.1.2电源模块电路原理图由于单片机及所有的传感器系统供电采用的是5V和6V的电源,所以在电源的处理上采用了稳压芯片7805CV和7806CV。火焰子程序3.2电机驱动芯片 BTS7960BTS7960是NovalithIC家族三个独立的芯片的一部分:一是p型通道的高电位场效应晶体管,二是一个n型通道的低电位场效应晶体管,结合一个驱动晶片,形成一个完全整合的高电流半桥。所有三个芯片是安装在一个共同的

12、引线框,利用芯片对芯片和芯片芯片技术。电源开关应用垂直场效应管技术来确保最佳的阻态。由于p型通道的高电位开关,需要一个电荷泵消除电磁干扰。通过驱动集成技术,逻辑电平输入、电流取样诊断、转换速率调整器,失效发生时间、防止欠电压、过电流、短路结构轻易地连接到一个微处理器上。BTS7960可结合其他的BTS7960形成全桥和三相驱动结构。3.2.2外形及引脚结构:3.2.3 BTS7960电路原理图:3.3地面灰度检测传感器ST1783.3.1 ST178简介: ST178H红外光电传感器模块是基于ST178H传感器设计的一款红外反射式光电开关。传感器采用高发射功率红外光电二极管和高灵敏度光电晶体管

13、组成,输出信号经施密特电路整形,稳定可靠。3.3.2 ST178特点:1、采用高发射功率红外光电二极管和高灵敏度光电晶体管组成。2、检测距离可调整范围大,4-10mm可用。3、采用非接触检测方式。3.3.3 检测原理: 传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,光敏三极管一直处于关断状态,此时模块的输出端为低电平,指示二极管一直处于熄灭状态;被检测物体出现在检测范围内是,红外线被反射回来且强度足够大,光敏三极管饱和,此时模块的输出端为高电平,指示二极管被点亮。3.3.4 外形尺寸(单位mm):图3.5 ST188实物图3.3.5 ST178

14、与单片机连接原理图: 图3.4 ST178电路图3.4火焰传感器:此传感器本品可广泛应用于灭火机器人比赛中测量火焰值、足球比赛时,用于确定足球的方向。下图为火焰传感器实物图。图3.8 火焰传感器实物图3.5报警电路:当单片机的P1.0 I/O口输出一个高电平时,通过非门后使三极管基级为低电平,此时三极管处于截止状态,蜂鸣器不工作;当单片机的P1.0 I/O口输出一个低电平,通过非门后使三极管基级变为高电平,三极管处于放大工作状态,驱动蜂鸣器发出报警声音。声音报警电路如图3.11所示。 第四章 软件设计 4.1 灭火机器人行进路线分析结合我们小车的特点和前面分析,我们选择3214的遍历顺序。开始

15、时,小车处于3号和4号房间中间,由图可知,沿着右走的方案比较好,因此我们采用是右手规则,首先搜索的是3号房间,如图。当在3号房间发现火源时,小车进入房间并灭火,灭火后按原路返回;如没有发现火源,小车继续按右手规则搜索房间,直到搜索4号房间,不管有没有搜索到火源,从4号房间出来都绕着4号房间返回起点,因为回家过程中的时间不记入总时间,而绕行比较安全,小车比较好控制。4.2 软件流程图图4.2 灭火小车软件设计流程图4.3 软件开发平台介绍本次设计软件的开发主要采用Keil uVision4软件编写。使用Keil uVision4工具时,项目开发流程和其它软件开发项目的流程极其相似:1、创建一个项

16、目,从器件库中选择目标器件,配置工具设置;2、用C语言或汇编语言创建源程序;3、用项目管理器生成你的应用;4、修改源程序中的错误;5、测试,连接应用。编程语言选用C语言。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,并且C语言以其结构化,容易维护,编写不依赖计算机硬件的应用程序,容易移植的优势满足开发的需要。而汇编语言作为传统的嵌入式系统的编程语言,具有执行效率高的优点,但其本身是低级语言,编程效率较低,可移植性和可读性差,维护极不方便。而Keil STM32编译器完全遵照ANSI C语言标准,支持C语言的所有标准特性。另外,直接支持STM32结构的几个特性被添加到

17、里面。Keil宏汇编器支持STM32及其派生系列的全部指令集。 第五章 调试记录5.1 调试记录n 地面灰度传感器:测试距离2.5cm,黑地面输出电压1.3-1.5V;白纸输出3.8-4.5V;n 前方火焰传感器最远测试距离2.5m,此次使用有效距离0.8m,输出电压0.6V,探测角度+30。n 热光源信号采集电路调试:热光源采集电路分为四路,对四个方向的光强进行采集。根据光强电压转换原理:光越强,则电压越高;光强越弱,电压越低。将热光源信号采集模块中的灵敏度调节到最佳状态。将蜡烛火焰靠近红外接收二极管,调节对应的参考电压的可调电位器,使对应输出指示灯变亮(即接收到了热光源信号,输出低电平)。

18、再不断改变蜡烛与红外接收二极管之间的距离,将检测距离调节到最远时,达2.1米。此时灵敏度也最佳。但是在外界环境光比较强的地方,热光源信号采集电路常出现错误判断。数据记录如下表1:测量输出左路中左路中右路右路正确输出左路中左路中右路右路测量101110111测量210011011测量31011101测量401101110表一根据分析,外界光也有近红外,当红外接收二极管暴露在外时,受外界红外光的影响,产生错误判断。解决的办法是,将红外接收二极管用直纸筒卷起来,防止外界环境影响。其它模块电路出现的小问题比较容易解决,因为电路相对来说简单,方便调试。整体电路连接调试后,比较成功,系统工作稳定。 从实验

19、调试结果分析可得,系统基本实现了热光源信号的采集和电动车运动方向的控制。参考文献1 国际赛制机器人灭火比赛规则.PDF2 李全利、迟荣强. 单片机原理及接口技术. 北京:高等教育出版社,2004.13 谭浩强. C程序设计(第二版). 北京:清华大学出版社,1999.124 童诗白、华成英. 模拟电子技术基础(第三版). 北京:高等教育出版社,2003.12 5 康华光. 电子技术基础 数字部分(第四版). 北京: 高等教育出版社,1900.16 黄智伟. 全国大学生电子设计竞赛电路设计. 北京:北京航空航天大学出版社,2006.127 黄智伟. 全国大学生电子设计竞赛系统设计. 北京:北京航

20、空航天大学出版社,2006.12 8 文艳、谭鸿. Protel 99 SE电子电路设计. 北京:机械工业出版社,2006.8程序请单附录1: #include stm32f10x_lib.h#include public.hu8 time_3ms = 0;u8 depart=0;u8 restart=0;u8 room=0;u8 gangway=0;u8 white=0;u8 room0=0;u8 room1=0;u8 room2=0;u8 gangway3=0;u8 gangway4=0;u8 sensor_temp_ahead=0;u8 sensor_temp_ahead0=0;u8 s

21、ensor_temp_back=0;u8 sensor_temp_back0=0;u8 proceed=0;s8 memory=0; int main(void) system_init(); while(1) if(time_3ms = 3) time_3ms = 0; /smokecheck(); if(depart=0) Encoder_Total=0; handle(-10); motor_speed(AHEAD_TURN,2); memory=2; while(Encoder_Total1050); memory=0; Encoder_Total=0; handle(-17); mo

22、tor_speed(AHEAD_TURN,2); memory=2; while(Encoder_Total3600); memory=0; room=1; depart=1; if(room=1) sensor_temp_ahead = sensor_ahead(); if(sensor_temp_ahead!=sensor_temp_ahead0|proceed=1) proceed=0; sensor_temp_ahead0=sensor_temp_ahead;switch(sensor_temp_ahead) case 1: handle(-10); motor_speed(AHEAD

23、_TURN,2); break; case 2: handle(-5); motor_speed(AHEAD,1); break; case 3: handle(0); motor_speed(AHEAD,1); break; case 4: handle(5); motor_speed(AHEAD,1); break; case 5: handle(10); motor_speed(AHEAD_TURN,2); break; case 0: if(white=0) white=1; Encoder_Total=0; handle(19); motor_speed(AHEAD_TURN,2);

24、 memory=2; while(Encoder_Total3000); memory=0; Encoder_Total=0; handle(20); motor_speed(AHEAD_TURN,2); memory=2; while(Encoder_Total2500); memory=0; secure=0; dispose(); proceed=1; else handle(-18); motor_speed(AHEAD_TURN,2); break; case 6: /全黑 handle(0); motor_speed(0,0); secure=0; dispose(); gangw

25、ay=1; room=0; break; if(gangway=1) sensor_temp_back = sensor_back(); if(sensor_temp_back!=sensor_temp_back0|proceed=1) proceed=0; sensor_temp_back0=sensor_temp_back;switch(sensor_temp_back) case 1: handle(16); motor_speed(BACK,-1); break; case 2: handle(13); motor_speed(BACK,-1); break; case 3: hand

26、le(10); motor_speed(BACK,-1); break; case 4: handle(7); motor_speed(BACK,-1); break; case 5: handle(0); motor_speed(BACK,-1); break; case 6: handle(-5); motor_speed(BACK,-1); break; case 7: handle(-10); motor_speed(BACK,-1); break; case 8: handle(-15); motor_speed(BACK,-1); break; case 9:/全黑 handle(

27、0); motor_speed(0,0); room=2; gangway=0; Encoder_Total=0; break; case 0: /全白 handle(17); motor_speed(BACK_TURN,-1); break; if(room=2) sensor_temp_ahead = sensor_ahead(); if(sensor_temp_ahead!=sensor_temp_ahead0|proceed=1) proceed=0; sensor_temp_ahead0=sensor_temp_ahead;switch(sensor_temp_ahead) case

28、 1: handle(-15); motor_speed(AHEAD_TURN,2); break; case 2: handle(-8); motor_speed(AHEAD,1); break; case 3: handle(0); motor_speed(AHEAD,1); break; case 4: handle(8); motor_speed(AHEAD,1); break; case 5: handle(15); motor_speed(AHEAD_TURN,2); break; case 0: /全白 if(room1=0&Encoder_Total=1400) handle(

29、-1); motor_speed(AHEAD,1); room1=1; else handle(18); motor_speed(AHEAD,1); break; case 6: /全黑 secure=0; dispose(); room=0; gangway=2; break; if(gangway=2) sensor_temp_back = sensor_back(); if(sensor_temp_back!=sensor_temp_back0|proceed=1) proceed=0; sensor_temp_back0=sensor_temp_back;switch(sensor_t

30、emp_back) case 1: handle(18); motor_speed(BACK_TURN,-2); break; case 2: handle(15); motor_speed(BACK_TURN,-2); break; case 3: handle(10); motor_speed(BACK,-1); break; case 4: handle(8); motor_speed(BACK,-1); break; case 5: handle(0); motor_speed(BACK,-1); break; case 6: handle(-10); motor_speed(BACK

31、,-1); break; case 7: handle(-16); motor_speed(BACK_TURN,-1); break; case 8: handle(-19); motor_speed(BACK_TURN,-2); break; case 9:/全黑 Encoder_Total=0; handle(-2); motor_speed(AHEAD,1); memory=1; while(Encoder_Total2200); memory=0; gangway=0; room=3; break; case 0: /全白 if(room2=0) Encoder_Total=0; ha

32、ndle(0); motor_speed(BACK,-1); memory=-1; while(Encoder_Total100); memory=0; Encoder_Total=0; room2=1; else if(Encoder_Total8000&Encoder_Total=18000) handle(-20); motor_speed(BACK_TURN,-2); else handle(20); motor_speed(BACK,-1); break; if(room=3) sensor_temp_ahead = sensor_ahead(); if(sensor_temp_ah

33、ead!=sensor_temp_ahead0|proceed=1) proceed=0; sensor_temp_ahead0=sensor_temp_ahead;switch(sensor_temp_ahead) case 1: handle(-10); motor_speed(AHEAD_TURN,2); break; case 2: handle(-3); motor_speed(AHEAD,1); break; case 3: handle(0); motor_speed(AHEAD,1); break; case 4: handle(3); motor_speed(AHEAD,1); break; case 5: handle(10); motor_speed(AHEAD_TURN,2); break; case 0: /全白 handle(18); motor_speed(AHEAD_TURN,2); break; case 6: room=0; gangway=3; break;

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号