基于STC89C52的智能消防电动小车设计
通信工程 201210019 常兴
指导老师 杨桂芹(教授)
摘 要:文章研究了基于STC89C52单片机作为主控制芯片,以L298N作为直流电机驱动芯片,通过PWM控制智能消防车驱动电机的设计方案,设计可实现智能消防车循迹进入场地,绕过障碍物,检测火焰,灭火后可发出语音报警并返回仓库,以及在此过程中通过液晶屏显示提示信息等功能。整个系统在设计中注意低功耗处理,同时力求高性价比等,电路结构简单,可靠性能高,在结构和技术上具有一定参考价值。
关键词:STC89C52;火焰传感器;循迹;液晶显示
Design of intelligent fire control electric car based on STC89C52
Communication engineering 201210019 CHANG Xing
Guidance teacher YANG Gui-qin(professor)
Abstract:The paper research design proposal based on STC89C52 microcontroller as the main control chip, L298N as DC motor driver chip, through the PWM control of the intelligent fire-fighting car driving,design implementation of the intelligent fire-fighting vehicle tracking to enter the venue and steer clear of obstacles, fire detection and fire can give voice alarm and returned to the warehouse, as well as in the process of the LCD screen displays a prompt information, and other functions. The whole system in the design pay attention to deal with low power consumption, and strive to high price, the circuit has the advantages of simple structure, high reliability, on the structure and technology has a certain reference value.
Key Word:STC89C52,flame sensor,tracking,liquid crystal display
1 系统方案设计
系统由硬件和软件两部分组成。硬件主要有采用STC89C52单片机作为控制核心。完成信号的采集、转换、指令的识别,电路的输出、驱动及各种指示等功能;软件部分主要是算法的处理、信号变换、指令控制及调节等功能。系统结构图如图1所示。

图1.1 系统设计框图
Fig.1.1 System design block diagram
图1中电源模块为各模块供电,寻迹传感器模块、火焰检传感器模块、红外避障模块将接收到的信号传输给主控制器进行及时处理,处理后的信号发送至电机驱动、风扇驱动、语音模块等来指示小车的前进后退及转向、灭火、语音播报等。若小车在进行的过程中检测到障碍物则避障模块发送信号至中央控制器,经处理后将信号反馈给驱动电机来实现小车转向避开障碍物继续寻找火源,若火焰传感器检测到火源,通过超声波传感器测量出距离,小车到相应距离停下来,控制器发送指令至风扇驱动模块启动风扇扑灭火源。电源模块采用高容量可充电电池,通过串联达至12V为电机供电,降压为5V后为各模块、单片机供电。需经传感器收集外部环境的各种信息传输给控制系统做出相应措施,通过指令的发布来实现灭火功能。整体设计可归纳为以下几点:
1)通过改装小车底盘来制作合适的车体;
2)以STC89C52单片机为主控芯片;
3)以L298N驱动直流电机控制小车移动;
4)以ST188红外反射管为基础设计循迹模块;
5)用红外接收管检测红外线实现火焰探测;
6)采用12864液晶屏显示信息;
7)以CK9561实现报警声;
8)基于N20微型直流电机设计灭火系统。
2 系统硬件设计
2.1 供电系统
电机启动瞬间电流很大,为确保电源有足够驱动力,采用可充电电池串联构成电池组进行供电,经LM7805稳压给单片机和外围电路供电。自行设计电源,交流电经电源变压器隔离降压再经桥式整流滤波后,加到LM2576-ADJ输入端1脚,稳压器控制端4脚接与电位器W和电阻R组成的分压电路上,改变W即可改变分压比,就能调节其输出电压大小。VO=UREF(1+W/R),其中UREF为稳压器取样电路基准电压,为1.23V。C1为输入端滤波电容,C2、C3为输出端滤波电容。电源电路如图2.1所示。

图2.1 高效率输出连续可调稳定电源
Fig.2.1 High efficiency output continuously adjustable stable power supply
焊接完成12V电源实物如图2.2a所示,5V电源实物图如图2.2b所示。
图2.2a 12V电源 图2.2b 5V电源
Fig.2.2a 12V power supply Fig.2.b 5V power supply
2.2 传感器与单片机接口电路
1)控制器模块
该部分为小车核心部件,需对传感器进行信息处理,控制小车完成各种动作,同时驱动各个模块协同工作。考虑到电机的驱动问题,至少需要两路PWM控制两个电机,同时考虑到51内核单片机具有价格低廉,简单易用,资料丰富等特点,决定采用STC89C52单片机。其最小系统电路图如图2.3所示。
图2.3 单片机最小系统
Fig.2.3 The minimum system of single chip microcomputer
2)电机驱动模块
由于单片机不能直接驱动直流电机,需要电机驱动模块。可采用分立元件焊接电机驱动模块。此方案成本较低,但是稳定性不高,一旦出现故障,分立元件电路的检测和修理会极为繁琐。采用集成驱动芯片L298N。成本较高,但芯片外围电路焊接简单,性能较好,稳定性较高。其电路图如图2.4所示。
图2.4 电机驱动电路
Fig.2.4 Motor drive circuit
小车前进后退或转向受到电机驱动,对于单向电机,采用大功率三极管很方便解决;设计中使用双向电机,需搭建H桥解决,实际的制作中,元件较多,电路搭建较为麻烦,该设计直接选用专用的芯片L298N。每种芯片都有自己的优势。根据芯片驱动效率转化、允许通过电流及芯片价格综合考虑最终确定了该方案。在图2.4中有两个电源,一路为L298N工作所需要的5V电源,一路为驱动电机用的电池电源;1脚和15脚有的电路在中间串接了大功率的电阻,可以不加;八个续流二极管是为了消除电机转动时的尖峰电压保护电机而设置,简化电路可以不加;6脚和11脚为两路电机通道的使能开关,高电平使能可直接接高电平也可接单片机控制;由于工作时L298N的功率较大,可加装散热片。5、7、10、12端口为单片机I/O引脚,实现对两个直流电机控制做出正反转动作。逻辑关系如表2.1所示。
表2.1 电机驱动的逻辑关系
ENA(B) |
IN1(IN3) |
IN2(IN4) |
电机运行情况 |
H |
H |
L |
正转 |
H |
L |
H |
反转 |
H |
同IN2(IN4) |
同IN1(IN3) |
快速停止 |
L |
/ |
/ |
停止 |
3)循迹传感器模块
可采用“光敏电阻+发光二极管”的组合,但是自然光很容易对这样的组合造成干扰,影响效果。于是此模块决定采用较为常用的红外反射式光传感器ST188。
ST188光电传感器的工作原理是传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,光敏三极管一直处于关断状态,此时模块的输出端为低电平,指示二极管一直处于熄灭状态;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,光敏三极管饱和,此时模块的输出端为高电平,指示二极管被点亮。循迹迹电路图如图2.5所示。
图2.5 循迹基本电路
Fig.2.5 Basic tracking circuit
图2.5电路中,VCC接5V电源,GND接单片机逻辑地,I/O口接单片机的引脚,其中LM324为四路运算放大器。当遇到白色的时候,基本上会把光全部反射到接收端,此时接收端导通,接收端输出为0,通过比较器负端,比较器输出为1,反之,如果遇到黑色,基本不反射,接收端截至,输出为1,通过比较器负端,比较器输出为0,再传递给单片机进行处理。
4)火焰传感器模块
根据火焰处的红外线强度比较高,此模块采用5mm红外接收管,通过检测红外线强度,来确定火焰位置。火焰传感器实物图如图2.6所示,电路图如图2.7所示。
图2.6 火焰传感器实图
Fig.2.6 Flame sensor real map
图2.7 火焰传感器电路图
Fig.2.7 Circuit diagram of flame sensor
火焰传感器可以用来探测波长在760nm ~ 1100nm范围内的红外线,探测角度为60度;对火焰光谱特别灵敏,灵敏度可调,性能稳定工作电压5V,数字量模拟量双输出。其中红外线波长在880nm附近时,其灵敏度达到最大。红外火焰探头将外界红外光的强弱变化转化为电流的变化,通过A/D转换器反映为0~255范围内数值的变化。外界红外光越强,数值越小;红外光越弱,数值越大。在机器人设计中,红外火焰探头起着非常重要的作用,它可以用作机器人的眼睛来寻找火源或其他物体。
5)火焰探测器分布
本设计考虑到火焰探测器的探测范围,选用了一个火焰火焰探测器(边上两个也可以作为火焰探测器),其布置如图2.8所示。

图2.8 传感器分布
Fig.2.8 Sensor distribution
采用这样分布方式避免了盲区出现,能够全方位检测到火焰,使得小车可以方便检测整个白色区域。
6)风扇控制系统电路设计
风扇的控制使用三极管和接地电阻来实现,经整流二极管整流,继电器驱动电机,为了确保稳定性,电路增加了一个三级稳压管和两级降压电路,起到保护作用。当检测到火源时,单片机的I/O口送出高电平,使得风扇的一路开发闭合,风扇开始旋转。如下图2.9所示,途中1、2两引脚接风扇的两端。
图2.9 风扇控制电路
Fig.2.9 Fan control circuit
7)报警系统电路设计
经测试CK9561在通电情况下不能停止发声,故通过一个三极管控制CK9561的电源通断来控制声音的开关,电路图如图2.10所示。
图2.10 报警声音电路图
Fig.2.10 Alarm sound circuit diagram
焊接完成后的模块正面如图2.11所示:
图2.11 报警系统焊接图
Fig.2.11 Welding diagram of alarm system
3 系统软件设计
对于一个完整控制系统来说,除了要有一个完整的硬件控制以外,还应该有一个能充分发挥硬件功能的软件系统来支持它,本节将详细介绍避障模块、电机驱动、火焰检测模块、风扇驱动的软件实现方法。
3.1 软件思路设计
系统的控制软件采用 C 语言编写,其主要功能包括时间显示与播报;时间设置与调整;火源的测量与播报;小车沿黑线的自动寻迹;小车行驶距离的测量等。控制软件通过对键盘输入识别,进行不同的控制程序实现传感器信号采集,语音识别,自动寻迹,测距,温度检测,电机 PWM 控制等功能。根据总体设计的思想及本系统实现的功能,在软件设计中完成灭火、循迹、避障等功能。软件设计思路如图3.1所示。

图3.1 系统软件图
Fig.3.1 System software diagram
1)避障模块主程序是指遇到障碍物产生信号的操作,信号传回到单片机,再通过单片机来实现相应的功能。
2)电机驱动模块主程序主要用来控制两个直流减速电机,实现前进、后退、前左转、前右转、后左转、后右转、停车等功能。
3)火焰检测模块主程序主要通过火焰传感器探测是否有火源。
4)风扇模块程序主要用来控制一个报警器和风扇,实现报警、灭火等功能。
3.2 软件设计流程图
系统软件分为主程序、初始化子程序、中断服务程序、LCD 液晶显示屏子程序、语音子程序及各种功能子程序。系统软件流程如图 4.1所示。在 Keil vision 环境下开发编译链接。在软件设计过程中采取了指令冗余、软件陷阱、容错设计,以防止干扰。限于篇幅的原因,源程序省略。
图3.2 系统整体流程图
Fig.3.2 Flow chart of system
软件整体设计指本系统自供电开始至扑灭货源的整个运行过程。主要的工作过程是:初始化完成后小车开始寻迹避障寻找火源,用超声波模块判断车体前端与物体间的距离是否小于10cm。若距离小于10cm,用火焰传感器判断是否有火焰,左边有火焰小车左转,中间有停车打开风扇再次判断中间是否有火源,如有扑灭火源,若无返回进一步判断,右边有小车右转,三个方向都没有小车左转;若距离大于10cm,用火焰传感器判断是否有火焰,左边有火焰小车左转,中间有直走,右边有右转,三个方向都没有小车左转。
3.3 灭火设计流程图
当机器人检测到火焰时,由于有障碍物的存在,需要对不同坐标上的火焰分别进行判断。由于设计中使用一个风扇,安装在机器人的正前方,没有使用舵机的方案,风扇只能朝前方吹风。为了提高灭火的准确度,我们要让机器人正面对准火焰,否则,可能会出现长时间灭不了火的现象。对火时让机器人走到火焰附近,判断左右两边火焰强度,左边火焰强,左转一点,右边火焰强,右转一点,每对一次火,前进一点。灭火子程序的流程图如图3.3所示。

图3.3 灭火子程序流程图
Fig.3.3 Flow chart of fire extinguishing subroutine
3.4 避障设计流程图
本设计了智能小车的自动避障系统,该系统设计简单、成本低、实时性好,在现实环境中取得了预期的实验结果,使智能小车无碰撞地避开障碍物。本采用的是渡越时间法,就是通过检测发射的超声波与其遇到障碍物后产生回波之间的时间差Δt,求出障碍物的距离d。计算公式为d=c3Δt/2,其中c=3311431+T/273为超声波波速,T为环境摄氏温度。避障系统软件设计流程图如图3.4所示。

图3.4 避障系统软件设计流程图
Fig.3.4 Flow chart of software design for obstacle avoidance system
4 系统功能测试
测试一:小车循迹
测试场地:自制胶条跑道
测试结果:小车基本可以循迹,但是左右摇摆严重,且转弯处容易冲出跑道。
问题分析:经仔细观察发现前动力轮,后万向轮的车体结构比较不稳定,同时高、低速差异过大,容易造成左右摇摆。
解决方案及结果:改良车体结构,对调减速电机与万向轮的前后位置,同时调整PWM方案,使小车行进更加平稳。
测试二:直角处转弯
测试场地:自制黑色区域
测试结果:小车可以及时产生转弯动作,但会冲出跑道黑色区域
问题分析:由于黑色区域边角是直角,较常规转弯不能及时完成角度调整,导致冲出黑色区域。
5 结束语
本文起始介绍了现代机器人的发展情况,分析了智能消防电动小车在现实生活中的重要作用。然后阐述了智能消防电动小车的系统结构,简要的对比分析了核心控制器、电机驱动模块、火焰传感器等模块的主要特征,说明了选购元器件在设计制作过程的重要性,通过设计智能电动小车的硬件器件,证明其的可操作性,利用单片机仿真器对源程序的编辑和调试,验证其的可行性。最后通过制作消防电动小车模型,进行实践论证,并与的固定循迹小车进行对比,试验证明,智能消防电动小车用于火灾场合特别是小型火灾场合是可行的,有一定的创新性,并且具有可靠性高、实时性强的特性,可以较为广泛的普及。
参考文献
[1] 张毅刚,彭喜元,姜守达,乔立岩.新编MCS-51单片机应用设计[M].黑龙江:哈尔滨工业大学出版社,2009.
[2] 吴怀宇,程磊,章政.大学生智能汽车设计基础与实践[M].北京:电子工业出版社出版.
[3] 卓晴,黄开胜,邵贝贝.学做智能车[M].北京:北京航空航天大学出版社.
[4] 陈华伟,熊慧.智能循迹小车硬件设计及路径识别算法[J].单片机与嵌入式系统应用,2010 年12期.
[5] Ahmed Elsham li.Shaky Arabic Genetic algorithm for dynamic path planning[J]. Electrical and computer Engineering 2004.
Canadian conference on volume 2,2-5 May 2004.