APP下载

基于C52单片机的智能灭火小车设计与实现

2021-07-15姜英豪耿祺龙杨金山毛乐乐杨丹

河南科技 2021年6期
关键词:单片机

姜英豪 耿祺龙 杨金山 毛乐乐 杨丹

摘 要:针对突发火灾问题,本文设计了一款基于单片机的智能灭火小车。小车软硬件均采用了模块化设计,系统以STC89C52单片机作为主控模块,应用循迹传感器、避障传感器、超声波传感器和火焰传感器等作为感知层,实现了小车的自动循迹行驶、自动避障、检测火焰、自动灭火和报警等功能。经调试,系统运行良好,具有良好的应用前景。

关键词:单片机;循迹行驶;自动避障;自动灭火

中图分类号:F224-39;TP249;TP212.9 文献标识码:A 文章编号:1003-5168(2021)06-0010-04

Design and Implementation of Intelligent Fire Car Based

on C52 Single-chip Microcomputer

JIANG Yinghao GENG Qilong YANG Jinshan MAO Lele YANG Dan

(School of Mathematics and Computer, Hengshui University,Hengshui Hebei 053000)

Abstract: Aiming at the sudden fire problem, in this paper,an intelligent fire car is designed based on single-chip microcomputer. Both software and hardware of the car adopt a modular design, the system takgs STC89C52 single-chip microcomputer as the main control, and uses tracking sensors, obstacle avoidance sensors, ultrasonic sensors and flame sensors as the sensing layer to realize the functions of the car, such as automatic tracking, automatic obstacle avoidance, flame detection, automatic fire extinguishing and alarm. After debugging, the system is running well and has good application prospects.

Keywords: single-chip microcomputer;travel along tracks;automatic obstacle avoidance;automatic fire extinguishing

在各種灾害中,火灾是最危险、最常发、最难以解决的,火灾问题已是当今社会最关心、急需解决的问题。因此,针对突发火灾问题,为了避免消防人员陷于危险,设计一种智能灭火小车实施灭火任务是不错的选择。智能小车能够自动感知火焰并开启灭火装置,在行进过程中可以自动循迹、避障,精准到达预设目标,然后实施灭火任务。

1 系统总体设计

智能小车工作环境恶劣,设计上务必保证小车工作稳定可靠、鲁棒性强,如有故障,则可以快速更换部件,为此智能小车整车系统采取模块化设计。按照应用场合和应用目标,智能小车需要配备报警系统、动力驱动系统、灭火系统、避障系统、循迹系统和人机交互系统。系统的逻辑原理框图如图1所示。

当检测到火焰存在时,小车发出报警;系统采用蓄电池供电、直流电机驱动;灭火系统包括火焰检测和灭火器自动控制;避障系统包括障碍物识别、距离探测、驱动命令生成;循迹系统能够自动识别规划的行动轨迹和自动生成驱动命令;常规下,小车是自主运行的,人机交互系统提供手动控制和信息反馈功能,以便必要时对智能小车进行人工操作。

2 小车硬件系统设计

2.1 主控模块的硬件设计

本设计选择STC89C52单片机作为系统主控模块,STC89C52单片机是一款低功耗、高性能的微控制器,具有8K系统可编程Flash存储器,拥有32个通用I/O口和3个16位定时器T0、T1、T2[1]。相较于STM32单片机,C52单片机不仅具有造价便宜的优势,也满足控制小车驱动和感知层各种传感器的基本需求。主控模块引脚连接原理如图2所示。

2.2 动力驱动硬件原理设计

L293D是直流电机的驱动器,是小车系统的“动力芯片”。人们可以通过软件程序设计[PWM](脉冲宽度调制)值的大小,改变L293D芯片的驱动频率,从而实现[PWM]调速功能。单片机P1.0~P1.3口与L293D的输入引脚连接,单片机P1.4和P1.5口与L293D的两个使能端连接,两个直流电机与驱动芯片的4个OUT输出口相连,从而驱动直流电机转动。L293D驱动芯片连接原理如图3所示。

2.3 循迹系统硬件原理设计

循迹系统采用红外循迹法,即利用黑、白色对红外线的吸收作用不同的原理。红外发射管发射红外线,黑色跑道吸收红外线,红外型传感器接收不到返回的数据,经变电电路比较器后输出低电平。白色场地反射红外线,传感器可以接收返回的数据,经变电电路比较器后输出高电平,单片机处理循迹模块传输的高低电平实现循迹功能。红外型传感器检测原理示意图如图4所示。

循迹系统使用两个循迹传感器模块,其分别安装于小车车头左右两侧。其作用是判断黑色跑道是否在小车车头的左右侧,及时调整小车方向,以保证黑色跑道一直在小车正中间,从而实现自动循迹行驶功能。

2.4 避障系统硬件原理设计

避障系统采用超声波避障法和红外避障法,小车车头正前方安装超声波传感器,精确计算小车与障碍物的垂直距离,驱动小车后退以保持合适距离。小车车头左右两侧安装超强稳定性的HJ-IR2红外避障模块,当左边模块检测到物体时,小车右转,当右边模块检测到物体时,小车左转。

避障模块使用红外光电传感器,检测到障碍物时输出低电平,单片机处理避障模块传输的高低电平完成避障功能[2]。

超声波传感器使用HC-SR04型号传感器,传感器采用I/0口触发测距方式,模块自动发送方波,检测信号返回时令I/O口输出高电平,高电平持续时间即为发送到返回的时间,测试距离=(高电平时间×声速)/2[3]。

2.5 灭火系统硬件原理设计

灭火系统由火焰检测传感器和灭火装置组成,火焰传感器利用红外线对火焰敏感的特点,使用特制的红外线接收管来检测火焰,然后把火焰的亮度转化为高低电平信号[4]。当检测到火焰时,火焰传感器向单片机传入低电平,单片机驱动灭火装置打开。

2.6 报警系统与人机交互系统设计

报警系统使用PNP型三极管驱动蜂鸣器,单片机P2.6输出低电平,三极管导通驱动蜂鸣器发声。

人机交互系统使用单片机按键与LCD1602显示屏显示,使用按键对小车进行手动控制,LCD1602显示屏显示小车行驶信息。

报警系统与人机交互系统的电路原理图如图5所示。

3 小车软件系统设计

软件主程序设计流程如图6所示。

3.1 动力驱动软件设计

3.1.1 小车方向转动设计。定义小车驱动模块输入I/O口,I/O口连接如图3所示。要想实现小车左转弯,就得令左电机向前转而右电机向后转,小车右转弯同理。左、右电机转动代码如下:

#define Left_go  {IN1=0,IN2=1;}//左电机前转

#define Left_back {IN1=1,IN2=0;}//左电机后转

#define Left_Stop {EN2=0;}//左电机停转

#define Right_go {IN3=1,IN4=0;//右电机向前转

#define Right_back{IN3=0,IN4=1;}//右电机后转

#define Right_Stop {EN1=0;}//右电机停转

3.1.2 小车调速设计。本设计利用延时函数和循环程序,令I/O口交替输出高低电平,延时不同,得到的PWM占空比就不同。T0定时器中断时,令I/O口输出高电平,并在中断中启动定时器T1,定时器T1令I/O口输出低电平,频率取决于定时器T0初值,占空比取决于定时器T1初值,改变定时器T0、T1初值即可改变频率和占空比,从而实现[PWM]调节电机转速功能[5]。

3.2 循迹系统软件设计

首先定义循迹模块与单片机连接的I/O口,然后程序根据模块向单片机传输的高低电平进行逻辑处理。当左循迹模块向单片机传输低电平时,小车向左转弯;当右循迹模块向单片机传输低电平时,小车向右转弯;当两个循迹模块向单片机传输低电平时,小车停止。循迹系统软件设计流程如图7所示。

3.3 避障系统软件设计

3.3.1 避障模块避障設计。本设计定义好避障模块与单片机连接的I/O口,当左循迹模块向单片机传输低电平时,小车右转;当右循迹模块向单片机传输低电平时,小车左转;两模块同时向单片机传输低电平时,小车停止。避障模程序设计流程如图8所示。

3.3.2 超声波模块避障设计。超声波传感器测距程序首先启动测距信号,关闭触发端,再给10 μs的高电平触发信号,当接收端为0时等待,当接收端为1时开启计数并等待计数完成后关闭计数,读取脉冲长度并计算距离。

3.4 灭火系统软件设计

本设计定义好火焰传感器、灭火装置与单片机连接的I/O口,当I/O口向单片机传输低电平时判断有火焰产生,单片机发出命令驱动报警系统与灭火装置,灭火系统软件代码如下:

if(Fire==0){//检测到存在火焰

stop();//调用小车停止函数

delay(200);//延时200 ms

Device=0;//打开灭火装置

}else{

Device=1;//关闭灭火装置

}

3.5 报警与人机交互系统设计

本设计定义好蜂鸣器与单片机连接的I/O口,当单片机I/O口向蜂鸣器发出低电平信号时,蜂鸣器发声。定义按键与单片机连接的I/O口,经按键扫描程序处理后判断按键是否按下,然后根据判断结果按下调用报警系统、小车停止等程序的按键。

LCD1206显示屏经LcdInit()函数初始化后,调用LcdWriteData()函数显示相应内容,显示代码如下:

u8 Disp[]="Warning";//Disp字符数组存放字符串

for(i=0;i<7;i++)//通过循环将字符串显示

LcdWriteData(Disp[i]);

4 试验过程与现象

试验需要准备的材料包括亚克力底板、直流电机、小车车轮、万向轮、L293D芯片、C52开发板、循迹传感器、两个避障传感器、火焰传感器、超声波传感器、灭火装置、电池盒以及若干螺丝铜柱杜邦线。

亚克力底板是支撑小车的框架,使用传感器作为小车的感知层,直流电机作为车轮驱动,STC89C52单片机作为小车的主控单元,按照提前构思的电路图连接单片机与传感器等外设,设计人员成功组装好智能灭火小车。其间使用黑色电工胶带在白纸上铺设小车“轨道”,并拧动滑动变阻器调节红外型传感器灵敏度。

设计人员按照设计好的思路对C52单片机进行程序设计,在程序无报错的前提下生成.hex文件。其间使用ST官方烧录软件将.hex文件下载至C52开发板,下载成功后观察试验现象:检测黑线在左侧循迹传感器下方时,小车左转;检测黑线在右侧循迹传感器下方时,小车右转;检测黑线在两侧循迹传感器中间时,小车直行;检测黑线在两个循迹传感器下面时,小车停止;当避障传感器前方有障碍物时,小车停止;当小车前方有直行运动物体时,小车后退;当小车前方有火焰时,小车停止并启动灭火装置和报警装置。

5 结论

智能小车的试验装置设计完成后,经调试运行,各功能系统运行状态良好,其很好地完成了轨迹巡行、障碍物的识别与绕行、火焰检测与灭火设备的开启控制等功能。经研发团队成员讨论,本研究认为,智能小车在未来的实际应用中在外界干扰、感知层范围等方面可能存在潜在问题,例如,红外型传感器容易受到太阳光的干扰、单个传感器感应范围比较容易受到局限等,这是后续研究和试验要解决的问题。

参考文献:

[1]郑岚,郑杨.基于单片机控制的灭火机器人[J].科教导刊,2011(10):243-244.

[2]傅海军,段少飞,李炫君.复杂路况下智能小车的设计[J].电子产品世界,2018(10):36-38.

[3]施超,陈爱华,杨本全,等.基于C8051F020的高精度超声波测距系统设计[J].现代电子技术,2012(16):15-16.

[4]孟祥荔.基于智能灭火机器人硬件电路的设计探讨[J].科技经济导刊,2018(14):11-12.

[5]陈荣坤.基于STC12C5A60S2单片机的智能家居环境监控系统的设计与实现[J].智能计算机与应用,2015(3):105-107.

猜你喜欢

单片机
基于单片机MCU的IPMI健康管理系统设计与实现
浅析51单片机的特点与应用
单片机在智能控制中的应用
C8051F020与80C51单片机的异同点
MCS—51单片机多串口通讯技术应用分析
一种单片机虚拟实验室的建立方法
点阵式液晶显示器lMl2864与51单片机的接口设计
单片机I/O口模拟串行通讯的C51实现方法
单片机调试方法的探讨
用PIC单片机制作的时间继电器