基于单片机的智能灭火小车设计

news2024/11/15 12:14:32

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式

文章目录

    • 概要
  • 一、整体设计方案
    • 1.1 整体设计任务
    • 1.2 整体设计要求
    • 1.3 系统整体方案设计
    • 1.3.1 整体模块设计
    • 1.3.2 整体设计方案选择
  • 二、系统的硬件设计
    • 2.1 系统硬件基本组成部分的设计方案
    • 2.1.1 控制器模块
    • 2.3系统检测部分的设计思想
    • 2.4系统各模块的最终方案
  • 三、软件设计
    • 3.1 系统的软件设计
    • 3.2主程序流程图
  • 四、结论
  • 五、 文章目录

概要

  当今社会,火灾在现实生活中普遍存在,被称为自然界三大灾害之一。当火灾发后,灭火工作坏境恶劣时,人工不能完成一些灭火任务,此时便可以使用智能灭火小车去完成相应的任务。本文设计了一个以单片机为核心的智能灭火小车。本设计是利用单片机作为灭火的控制中心,检测火源用火焰传感器,小车行驶由直流减速电机驱动行驶。电机驱动电路部分使用L293D芯片,小车行驶使用舵机控制方式。实现的功能是:从安全区出发,沿着路线前进,火焰传感器检测到火源之后,启动水泵进行灭火。
关键词:STC89C52;舵机控制;吹灭火源

一、整体设计方案

1.1 整体设计任务

本设计是制作一个智能灭火小车,使其能够沿着指定路线进行灭火工作。其工作原理如下图:
在这里插入图片描述

图1.1 灭火实验场地

1.2 整体设计要求

综合考虑实际工作的要去提出下列的设计目标:
(1)在启动以后能够自动探测火源的位置并且前往火源处
(2)在到达目的地以后停止前进,开始灭火装置扑灭火源。
(3)检测火源的存在状态,一直到被扑灭为止,扑灭之后探测下一个火源并前往灭火

1.3 系统整体方案设计

1.3.1 整体模块设计

本设计的整体设计方案:火源是通过火焰传感器来检测的,然后单片机STC89C52接收到火焰传感器输出的热源信号并进行处理。电机驱动方式采用舵机控制。本设计方案大致由6个部分组成,其系统构成如图1.2:
在这里插入图片描述

图1.2系统模块示意图
系统各个功能模块简介:
1.控制器模块:作为整个控制系统的核心器。
2.寻光模块:主要用来给灭火小车做导航作用。
3.电源模块:主要用来给整个控制进行供电。
4.火焰检测模块:主要用来对火焰进行检测。
5.电机驱动模块:主要用来驱动小车的行驶。
6.灭火模块:主要是用来控制水泵进行灭火。

1.3.2 整体设计方案选择

方案一:在智能灭火小车的两侧各安装两个轮子并由两个普通直流减速电机驱动,方便智能灭火小车行驶并起平衡支撑作用。用传感器来探测是否存在火源,可以将其安装位置选择在小车两侧,通过比较其来火焰距离小车的距离,在左侧的传感器上安装放大器,用来寻找远处的火源,右侧的传感器用来寻找近处的火源。为了能够精确的定位火源的位置,在小车的中部也安置两个传感器,两个之间的距离稍稍超过前后的两个传感器之间的距离。小车启动后,从安全区行驶出来,到达中线以后左转弯,然后通过左侧的传感器来寸照是否在一侧存在火源,如果存在火源的时候下一次转弯的时候向左转,如果在这个时候刚好前方不远有障碍物存在则沿着之前行走的路程往回行使,一直到前一个路口在向左转,无论是在左侧探测到存在火源还是在右侧探测到存在火源,就前往火源处将其扑灭。接下来继续回到中线上行使,在行使过程中随时监测火源,在行驶到了墙边的位置以后,通过一个一百八十度的转角探询另一侧的火情。此设计方案中,需要用的硬件并不复杂,在软件方面,也有很清晰的编写思路,然而实际上其未必能够达到足够的避障效果,目前的情况是,如果障碍物是静止不变的话,那么在探测到其位置可以实现良好的避障效果,但是如果障碍物会发生移动,则避障效果就难以保证,从而灭火任务也有可能无法完成。
方案二:比方案一相比,车身不变,在小车前方添加一个红外测距仪,用来探测障碍物的位置,在两侧安装火焰传感器,传感器发出信号,信号通过比较器的时候会被探测出距离大小。两侧的传感器都能够检测到何处存在火源。小车启动以后,出发到达中线处,然后想作转动,同时开启左侧的传感器探测火情,如果不存在火源的话,就继续前行,如果存在火源的话,就在下个转角处左转,前往货源出扑灭火源。接下来继续向前行驶一直到发现下一个火源。结合实际情况以及两种方案的特点综合考虑以后在这里选择方案二。

二、系统的硬件设计

2.1 系统硬件基本组成部分的设计方案

2.1.1 控制器模块

本设计中,系统的控制中心是STC89C52单片机。STC89C52是宏晶科技生产的低能耗、高速可靠、低抗干扰、价格低的8位微处理器。
STC89C52具有的优点:
(1)高抗静电(ESD保护);
(2)32位I/O口线;
(3)内置2KB EEPOM;
(4)4个外部中断;
(5)3个16位定时器;
(6)最高运作频率35MHZ,6T/12T可选;
(7)晶振频率为11.0592MHZ;
(8)内部集成A/D、D/A转换;
(9)可直接进行串口下载。
STC89C52单片机引脚图如图2.1所示:
在这里插入图片描述

图2.1 STC89C52单片机引脚图

2.3系统检测部分的设计思想

小车移动和灭火操作都是以这个模块的成功为前提的,传感器将采集到的信息传送到单片机,单片机处理过后发出控制信号,电机根据控制信号来转动,从而控制智能灭火小车行驶,基本原理可用如图2.7来表示:

在这里插入图片描述

图2.7 检测部分基本原理图
(1)细分又可以分为两个部分,其一是红外火焰传感器检测,外界温度的变化会影响传感器的电流大小,同时距离也有一定的影响,将变化的电压与参考电压对比,便能够判断出火源在哪个位置以及两者间的距离,这是火焰传感器的工作机理;红外传感器用于检查周围行驶路线上是否存在障碍物,直接使用集成模块,如果障碍物和小车的距离接近到10厘米以内,电平便会升高。其二是光电寻线传感器检测。依靠路径和周围区域颜色灰度的不同来探测行驶路线,受到外界光源的影响较大。
(2)此外,避障和路程测量是通过软件来自动进行的,可以在一定程度上降低硬件技术在实现上的困难。

2.4系统各模块的最终方案

经过分析和论证,设计的原器件清单如附录D所示,实物图如附录E。系统6个模块的最终方案如下:
(1)控制器模块:采用STC89C52单片机作为智能灭火小车系统的控制中心。
(2)火源探测模块:用了两个火焰传感器来准确的检测火源的位置所在。
(3)寻光电路模块:用了两个光敏电阻来调整小车的行为使其能够按照既定的路线行驶。
(4)智能灭火小车电机驱动模块:电机类型为普通直流减速电机,双驱动、四接口、PWM脉宽调速。
(5)灭火模块:以水泵作为灭火装置通过单片机控制来灭火。
(6)电源模块:直接采用6V电池盒。

三、软件设计

3.1 系统的软件设计

对于整个系统进行编程时,选择使用C语言来实现单片机的各项功能。具体代码可以附录A中查找。
 对于整个系统进行原理图设计时,决定采用较为熟悉的Altium Designer16软件来将所设计的整个控制系统的工作原理图绘制出来。原理图见附录B。
根据设计工作中做选择的各项方案此次设计的设计目标,在进行软件设计的时候,应该使其能够实现下面的功能。
1.寻迹模块主程序:传感器收集路况信息,单片机进行处理,处理过后发出控制信号控制电机转动。
2.机驱动模块主程序:通过此模块开控制电机转动,从而控制小车行驶。
3.火焰检测模块主程序:其作用在于将有段温度的一些执行模块传递给单片机。
4.水泵模块程序:其作用在于控制水泵的启动或者关闭,从而实现灭火功能。

3.2主程序流程图

主程序主是整个设计的重要部分,能够确定小车的运动状态。小车的各项具体功能主要是通过其他子程序来实现的。绘制出主程序的流程图如下图3.1所示:

在这里插入图片描述

图3.1 智能灭火小车主程序流程图
主程序的意义在于引导或者是决策,在整个设计内容中都有着重要地位,小车在什么时候调用哪个模块,进行哪个操作,往哪个方向转,是移动还是开启水泵,这些都是由主程序来进行控制的。

四、结论

  本设计采用STC89C52单片机作为整个控制系统的核心,其具有低能耗、高速可靠高
速可靠、低抗干扰、价格低等特点,以火焰传感器来监测周围的火情,并且实时的将其所采集到的数据传送给单片机,在单片机中经过A/D转换便可以确定火源在何处,单片机发出控制信号,电机接收到信号信号开始转动,小车向火源方向运动,在运动过程中通过红外传感器实时检测周围的障碍物,到达火源处以后停在一个适当的位置开始启动灭火装置来灭火,单片机发出控制信号,水泵在接收到信号以后开启,保持开启状态一直到火被扑灭,然后小车再次进入实施检测状态寻找下一个火源。

五、 文章目录

目 录
摘要 I
Abstract II
引言 3
第一章 智能灭火小车整体设计 4
1.1 整体设计任务 4
1.2 整体设计要求 4
1.3 智能灭火小车系统整体方案设计 4
1.3.1 智能灭火小车整体模块设计 4
1.3.2 智能灭火小车整体设计方案选择 5
第二章 智能灭火小车的硬件设计 7
2.1 智能灭火小车系统硬件基本组成部分的设计方案 7
2.1.1 控制器模块 7
2.1.2 火源检测模块 8
2.1.3寻光电路模块 9
2.1.4电机驱动模块 10
2.1.5灭火模块 12
2.1.6电源模块 12
2.2智能灭火小车系统控制部分的设计思想 12
2.2.1 控制部分 12
2.2.2控制部分单元电路图 13
2.3智能灭火小车系统检测部分的设计思想 13
2.4系统各模块的最终方案 14
第三章 智能灭火小车的软件设计 15
3.1 智能灭火小车系统的软件设计 15
3.2智能灭火小车主程序流程图 15
3.3火焰探测子程序流程图 16
结 论 19
致 谢 20
参 考 文 献 21
附录 A 22
附录 B 26
附录 C 27
附录 D 28

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1164147.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

55个Java毕设项目推荐【源码好优多】

55个Java毕设项目推荐,实践出真知,现在要想知道自己的到底技术达不达标,项目就是检验的唯一标准。 下面是我整理准备的55个Java毕设项目合集: 1、网上订购管理系统 2、健康管理系统 3、项目辅导视频 4、医院在线挂号 5、在线花店…

什么是云安全?

关于云技术有一些模棱两可的术语,因此值得花一些时间来定义一些常见术语。当我们谈论“云”、“云服务”或“云计算”时,我们的意思是: “一种按需、大规模可扩展的服务,托管在共享基础设施上,可通过互联网访问。典型的…

【C语言】备战校赛Day2

日期:11.2 星期三 L1-004 计算摄氏温度 题目描述 给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:C5(F−32)/9。题目保证输入与输出均在整型范围内。 输入描述 输入在一行中给出一个华氏温度。 输出描述 在一行中按照格…

C++构造函数和析构函数详解

一、构造函数 1、概念 构造函数是特殊的成员函数,需要注意的是,构造函数虽然名叫做构造,但是构造函数的主要任务并不是开空间创建对象,而是初始化对象。 2、特征 函数名与类名相同。无返回值对象实例化时编译器自动调用对应的…

探索Allure Report:提升自动化测试效率的秘密武器

一.使用 Allure2 运行方式-Python # --alluredir 参数生成测试报告。 # 在测试执行期间收集结果 pytest [测试用例/模块/包] --alluredir./result/ (—alluredir这个选项 用于指定存储测试结果的路径)# 生成在线的测试报告 allure serve ./result二.使用 Allure2 运行方式-Ja…

ChineseChess.2023.11.01.03

1 红【马三进四】吃黑车,红方没有将军,黑方进攻 黑方 【 卒4平5】, 将 红帅 红【炮五退七】吃黑【卒5】,解将,不用看,你没棋走 黑【炮4进7】,将红帅,绝杀,位置都被自己卡…

Android四大组件总结

从事安卓开发也有两年多的时间了,从头开始整理下所学的东西,坚持!!! 一、Activity 活动 Activity 用于显示用户界面,用户通过 Activity 交互完成相关操作; 一个 App 允许有多个Activity Activi…

贝锐向日葵亮相阿里云“云栖大会”:独创专利算法赋能全新云桌面

2023年10月31日-11月2日,一年一度的云栖大会如期举办,国产远程连接服务创领者贝锐受邀参与。活动现场,贝锐CTO张小峰进行了分享,宣布贝锐旗下国民级远程控制品牌“贝锐向日葵”与无影展开合作,同时全新的“云桌面”将于…

1360. 日期之间隔几天

1360. 日期之间隔几天 Java代码: 【DateFormat】DateFormat用于实现日期的格式化 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; // 好像已过时class Solution {public int daysBet…

RHCE---shell脚本编程之awk

文章目录 目录 文章目录 前言 一.awk概念 二.工作流程 三.awk执行方式 四.awk 语法结构及案例 纯命令执行脚本 awk命令调用脚本执行 直接awk纯脚本执行 五.记录和域 概念: 六.awk的变量 总结 前言 前文已详细了介绍了文本三剑客的其中两种grep 和 sed 命…

C++查看Class类结构

cl指令 cl test.cpp /d1reportSingleClassLayout 类名 注意。上面指令是d1,1是数字1 , 不是字母l;

深度解析concrt140.dll丢失的5个解决方法,快速搞定dll问题

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“concrt140.dll丢失”。这个问题通常会导致某些应用程序无法正常运行,给用户带来困扰。本文将介绍一种有效的解决方法,帮助用户解决concrt140.dll丢失的问题。 一、原…

时序分解 | Matlab实现NGO-VMD北方苍鹰算法优化变分模态分解时间序列信号分解

时序分解 | Matlab实现NGO-VMD北方苍鹰算法优化变分模态分解时间序列信号分解 目录 时序分解 | Matlab实现NGO-VMD北方苍鹰算法优化变分模态分解时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 北方苍鹰算法NGO优化VMD,对其分解层数&#xff…

【Algorithm】最容易理解的蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS)算法

看了不少解读和笔记,本文把最容易理解的解读做个总结。 1. 蒙特卡洛方法 蒙特卡洛方法(Monte Carlo method),是一种“统计模拟方法”。20世纪40年代,为建造核武器,冯.诺伊曼 等人发明了该算法。因赌城蒙特卡洛而得名&#xff0c…

【HSPICE仿真】输入网表文件(6)用户自定义分析输出(.measure)

.measure语句的基本用法 1. 语句顺序2. 测量参数类型3. Rise, Fall, Delay, and Power Measurements4. FIND 和 WHEN 函数5. Equation Evaluation/Arithmetic Expression6. AVG, EM_AVG, INTEG, MIN, MAX, PP, and RMS基本语法示例 7. 输出文件格式MEASFORMMEASOUTMEASFILEMEAS…

程序员想要网上接单却看花了眼?那这几个平台你可得收藏好了!

现在经济压力这么大,但是生活成本还在上升,相信大家都知道“四脚吞金兽”的威力了吧!话虽如此,但是生活总得继续,为了家庭的和谐幸福,为了孩子的未来,不少人选择多干几份工作,赚点外…

多态与虚函数、虚函数表、对象的内存模型的思考

我在这就不详细说多态、虚函数是什么了,简单理解为: 1.基类定义虚函数 2.派生类重定义/重写(override)基类的虚函数 3.基类指针(引用)指向(绑定)到派生类对象 4.基类指针&#xff08…

大数据Doris(十五):Doris表的字段类型

文章目录 Doris表的字段类型 一、TINYINT数据类型 二、SMALLINT数据类型 三、INT数据类型

以太网【FPGA】

1物理: 2接线: 信号名 信号类型 对应引脚 备注 sys_clk Input B5 系统晶振输入时钟,频率 50MHz sys_rst_n Input E8 系统复位信号,低有效 eth_rxc Input E17 PHY 输入时钟,频率 125MHz eth_rx_ctl Inpu…

傅里叶分析和小波分析

从傅里叶变换到小波变换,并不是一个完全抽象的东西,可以讲得很形象。小波变换有着明确的物理意义,如果我们从它的提出时所面对的问题看起,可以整理出非常清晰的思路。 下面我就按照傅里叶-->短时傅里叶变换-->小波变换的顺…