《2022年黑龙江大学生电子设计方案竞赛消防车优秀论文》由会员分享,可在线阅读,更多相关《2022年黑龙江大学生电子设计方案竞赛消防车优秀论文(16页珍藏版)》请在金锄头文库上搜索。
1、个人资料整理仅限学习使用- 学校编号: JMSU-A-1-004学校名称:佳木斯大学队长姓名: xxx 队员姓名: xxxxxx 指导教师姓名: xxx 2018年 8 月 3 日精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 16 页个人资料整理仅限学习使用摘要本设计为采用STC12C5A60S2单片机为核心控制的智能消防车。设计分为自制光电开关模块、电机驱动模块、火焰传感器模块、灭火驱动模块、报警电路模块、开关电源模块六部分。地面检测采用自制反射式红外开关来检测黑线循迹并完成计数,通过使用180 度的舵机灭火云台,继电器控制风扇进行
2、灭火;声音提示采用三极管驱动无源蜂鸣器;电机转弯控制采用 PWM 技术,最后使用探测器检测信号经单片机综合分析处理,最后达到识别蜡烛完成灭火。关键词: 单片机检测模块灭火云台一、设计任务11 任务该设计制作一个电动消防车,能在消防场地的任意地点进行灭火作业。以蜡烛模拟火源,火源随机分布在场地中,消防场地如图1 所示。图 1 消防场地示意图1.2要求1.2.1基本要求1)在场地中随机放置一只蜡烛。消防车从车库启动,计时开始,消防车同时发出出库声音提示。消防车从车库出口驶出车库,自动行走到距离火源10cm 以内区域,发出火警声音提示,停车3 秒钟。2)消防车执行灭火工作,灭火完毕后,发出火灭声音提
3、示。3)消防车经由车库出口自动返回到车库,停稳后,发出返库声音提示,计时结束。4)上述过程用时尽可能少。1.2.2 发挥部分1)在场地中随机放置三只蜡烛。消防车从车库启动,计时开始,消防车同时发出出障碍物黑色线条蜡烛车库出口180cm 120cm 30cm 30cm 车库车库精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 16 页个人资料整理仅限学习使用库声音提示。消防车从车库出口驶出车库。2)消防车能够找到一个火源,并自动行走到距离火源10cm 以内区域,发出火警声音提示,停车3 秒钟。然后消防车执行灭火工作,灭火完毕后,发出火灭声音
4、提示。3)再寻找下一个火源,重复过程2),直到三个火源都被扑灭。4)扑灭三个火源后,消防车经由车库出口自动返回到车库,停稳后,发出返库声音提示,计时结束。5)上述过程用时尽可能少。6)其他。二、方案论证与比较2.1系统方案2.1.1整体方案比较本题的核心问题是寻找随机放置的蜡烛并且进行返回车库的一系列操作实现,可以通过数线的方式建立坐标,确定消防车的位置信息,为顺利地回库做准备;也可以通过数线的方式设定一条遍历式路线,使得消防车能全面检测火源位置并能顺利回库;还有一种是用步进电机做消防车动力,能精确地控制小车所转角度和所要走的距离,因此能很精确判断消防车所在位子并进行一系列消防操作。用数黑线建
5、立坐标式寻找火源的方法能有效的进行查询、灭火、回库等操作,然而所面临的情况较多,程序量大且复杂;遍历式规定路线查询方式也能有效地查询火源且代码量很少,且适用于多个火源的查询并实施灭火,回库也较容易,但是有可能会碰倒已灭掉蜡烛;步进电机为动力方案,也能完成题设要求,但对程控的依赖较大,且速度较慢。根据题目要求,结合多方面因素,本设计采用遍历式查询火源的方案。因为遍历式查询法能用最小的代码量适用于多个火源情况。系统分为6 个基本模块,包括电源模块、驱动模块、火焰检测模块、灭火驱动模块、循迹模块、报警电路。由于STC12C5A60S2 单片机的功能对于本工程的要求基本上够用,出于成本考虑选用该芯片作
6、为系统主控芯片。2.1.2系统控制方案用两个最小系统板,STC12C5A60S2 单片机最小系统板作为主控模块,STC89C51 单片机最小系统作为报警控制模块。其控制方案如图2 所示。图 2 控制方案的系统方框图2.2方案的具体设计与论证主单片机从单片机电源报警模块循迹模块火焰传感器电机驱动云台驱动灭火驱动模块精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 16 页个人资料整理仅限学习使用2.2.1车体及驱动的选择与论证车体采用普通的履带式坦克车体。车体稳定,大小适合,且其动力源为直流电机,具有优良的调速特性,可实现频繁地无极快速启动
7、、制动和反转。能满足各种不同的特殊运行要求。性价比高,驱动电路相对简单。驱动使用专用电机驱动芯片L298N。2.2.2路面位置识别的方案选择与论证主要是经由光电开关模块来实现路径的识别与位置判断。分前后两组检测,前组6 个,后组 4 个,分布如图3 所示。其中前组为循迹功能,检测黑线,检测白色,这样可以有效保证循迹的准确性,为外部中断计数输入端,用来检测经过的黑线数目,辅助消防车位置识别,为转弯控制计数端;后组的检测黑线,检测白色,为外部中断计数输入端。车前一组用来引导前进行驶,车后一组用来引导回库行驶。图 3 路面识别功能示意图2.2.3语音提示部分的选择与论证题设要求消防车出库、发现火源、
8、灭火完毕、入库要有相应的声音提示。实现这些要求可以用专用的语音芯片进行四种声音模拟;也可以用最简单的发声器件蜂鸣器进行声音提示。介于蜂鸣器的驱动电路简单且使用简单,且能达到题设要求,本设计采用蜂鸣器电路进行声音提示。声音驱动流程如图4 所示: 前后黑色引导线检测黑线,检测白色黑线计数器转弯控制计数器精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 16 页个人资料整理仅限学习使用图 4 提示音驱动图2.2.5电源方案的选择与论证方案一:采用两个电源供电。将电动机驱动电源与单片机以及其周边电路电源完全隔离,利用光电耦合器传输信号。这样做可以
9、将电动机驱动所造成的干扰彻底消除,提高了系统的稳定性,但是多一组电池,增加了车身重量,增大了小车惯性。方案二:采用单一电源供电。这样供电电路比较简单;但是由于电动机启动瞬间电流较大,而且PWM 驱动的电动机电流波动很大,会造成电压不稳。为避免这一缺点,采用开关电源模块。 LM2596 系列开关稳压集成电路具有可靠的工作性能、较高的工作效率和较强的输出电流驱动能力从而可以为单片机的稳定、可靠工作提供强有力的保证。分析:开关电源调节器件以完全导通或关断的方式工作。因此,工作时要么是大电路流过低导通电压的开关管,要么完全截止无电流流过。开关稳压电源的功耗极低,其平均工作效率可达70%90%;而且开关
10、管的高频通断特性以及串联滤波电感的使用对来自于电源的高频干扰具有较强的抑制作用。经过综合考虑本设计采用方案二。三、单元电路设计3.1光电开关模块的的设计将 TR5000传感器采集的电平信号经过LM358 比较放大,通过调节电位器可以调节灵敏度,电路中加有LED 指示灯,能很直观地观察模块的工作状态,给调试带来了极大方便。工作电压 3.3V-5V,数字开关量输出 0 和 1)。该电路具有功耗低、所用外界元件少,调整简便等优点。其工作原理图如5 所示:光电开关火 焰 传 感器主单片机从单片机声音驱动电路出库声音发现火情灭火完毕回库声音精选学习资料 - - - - - - - - - 名师归纳总结
11、- - - - - - -第 5 页,共 16 页个人资料整理仅限学习使用图 5 光电开关原理图3.2电机驱动模块的设计电机驱动的设计采用传统电机专用芯片L298N。为了避免电机启动、停止等状态对单片机 I/O 端口造成干扰,在驱动电路的输入级加了光电耦合器,且驱动的四个输出端分别对应有 LED 指示灯,能很方便地观察电机驱动的运行状态,为调试带来了方便。这种电路通过占空比来调节电机转速。原理图如下图6 所示:图 6 电机驱动原理图3.3灭火模块的设计本设计采用电脑散热器作为灭火动力。因为普通的直流电机在高速运转时会产生很大干扰信号,会对单片机的正常工作带来很严重的干扰如:会导致单片机的外部中
12、断失效),而电脑散热器的电机为无刷直流电机,用三极管驱动继电器来控制风扇的运转能轻松进行灭火。本模块搭载在一个用舵机驱动的云台上,云台上分布有5 个火焰传感器,通过这5 个火焰传感器检测消防车前方视角180度距离 30 厘 M 范围内的火源位置,然后驱动舵机转过相应角度使灭火风扇对准火源进行灭火。工作框图如图7 所示:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 16 页个人资料整理仅限学习使用图 7 灭火模块工作框图四、系统软件的设计本设计程序使用C 语言编写。程序上使用外部中断来记录消防车的位置及其识别,通过定时器中断来进行PWM
13、 占空比调速和舵机调角度。软件上设置了一个状态寄存器,来记录消防车运行的状态,将运行状态分为黑线循迹行驶状态,发现火源状态,灭火状态,灭火完毕循迹回库状态,回到车库状态等。下车控制部分主程序流程图如图8 所示:五、理论分析与简单计算5.1单片机定时器初值的计算STC12C5A60S2 单片机比 51 单片机性能优越很多,其中之一就是速度比51 快 812 倍,其一个时钟周期即为一个机器周期,而51 单片机十二个时钟周期为一个机器周期。12 单片机的机器周期为 11/晶振频率)0.09s/256和 TLX=(65536-N%256 。要计算计算机器周期cyT ,需要知道系统时钟频率,也就是单片机
14、晶振频率。12 单片机的机器周期为11/ 晶振频率)0.09s if(Xunhuo1=0 tingche(。 /停车P0_3=0。 /发出火警声P0_4=P0_5=P0_6=1 。delayms(5000。 /火警声为 3500 P0_3=P0_4=P0_5=P0_6=1 。Dwidth=58。 / 舵 机 转 角 度 为55PWM Fengshan=1 。 /吹风delayms(9000。 /吹 5000 Fengshan=0 。/停止 吹风P0_5=0。 /灭火提示声P0_4=P0_3=P0_6=0 。delayms(3500。/灭火提示声为3500 P0_3=P0_4=P0_5=P0_6
15、=1 。 if(Xunhuo2=0 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 16 页个人资料整理仅限学习使用 tingche(。P0_3=0。P0_4=P0_5=P0_6=1 。delayms(5000。P0_3=P0_4=P0_5=P0_6=1 。Dwidth=80。Fengshan=1 。delayms(9000。Fengshan=0 。P0_5=0。P0_4=P0_3=P0_6=0 。delayms(3500。P0_3=P0_4=P0_6=P0_5=1 。 if(Xunhuo3=0 tingche(。P0_3=0。P0_
16、4=P0_5=P0_6=1 。delayms(5000。P0_3=P0_4=P0_5=P0_6=1 。Dwidth=100。Fengshan=1 。delayms(9000。Fengshan=0 。P0_5=0。P0_4=P0_3=P0_6=0 。delayms(3500。P0_3=P0_4=P0_6=P0_5=1 。 if(Xunhuo4=0 tingche(。P0_3=0。P0_4=P0_5=P0_6=1 。delayms(5000。P0_3=P0_4=P0_5=P0_6=1 。Dwidth=113。Fengshan=1 。delayms(9000。Fengshan=0 。P0_5=0。P
17、0_4=P0_3=P0_6=0 。delayms(3500。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 16 页个人资料整理仅限学习使用P0_3=P0_4=P0_6=P0_5=1 。 if(Xunhuo5=0 tingche(。P0_3=0。P0_4=P0_5=P0_6=1 。delayms(5000。P0_3=P0_4=P0_5=P0_6=1 。Dwidth=125。Fengshan=1 。delayms(9000。Fengshan=0 。P0_5=0。P0_4=P0_3=P0_6=0 。delayms(3500。P0_3=P0
18、_4=P0_6=P0_5=1 。 if(Xunhuo1=1&(Xunhuo2=1&(Xunhuo3=1&(Xunhuo4=1&(Xunhuo5=1 Fengshan=0 。Dwidth=100。 (2) 回库子函数void huiku( while(1 if(Hount=2 /后方传感器检测到第2 条黑线右转 do delayms(180。Hyouzhuan(。 while(Duan1=1。 else if(Hount=6 /后方传感器检测到第 6 条黑线右转 do 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 16 页个人资料整理
19、仅限学习使用delayms(180。Hyouzhuan(。 while(Duan1=1。 /后方传感器测到第9 跟黑线 else if(Hount=9 do Hqianjin(。while(Duan=0。 /继续后退知道前方传感器测到出库黑线delayms(400。 /继续后退 300 tingche(。 /停车P0_6=0。 /开唱入库音乐P0_3=P0_4=P0_5=1 。delayms(2000。P0_3=P0_4=P0_5=P0_6=1 。while(1。 /程序最后停在这 /*回库时的循迹判定 */else if(Sxun2=1|(Sxun3=1 Hzuozhuan(。 else i
20、f(Sxun1=0&(Sxun2=0&(Sxun3=0 Hyouzhuan(。 else if(Sxun1=1&(Sxun2=0&(Sxun3=0 Hqianjin(。 (3主函数void main(void Init(。 /初始化精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 16 页个人资料整理仅限学习使用 P0_4=0。 /放出库音乐 P0_3=P0_5=P0_6=1 。 delayms(3500 。 /音乐响 3500 P0_3=P0_4=P0_5=P0_6=1 。 while(1 if(Count=4 / 前 方 传 感 器
21、 计 数 到4,9,12,15,17,19时左转 if(Guai=1 do zuoguai(。duoji(。 while(Duan=0。qianjin(。delayms(5。 else if(Count=9 if(Guai=1 do zuoguai(。duoji(。 while(Duan=0。qianjin(。delayms(5。 else if(Count=12 if(Guai=1 do zuoguai(。duoji(。 while(Duan=0。qianjin(。delayms(5。 else if(Count=15 精选学习资料 - - - - - - - - - 名师归纳总结 - -
22、- - - - -第 14 页,共 16 页个人资料整理仅限学习使用if(Guai=1 do zuoguai(。duoji(。 while(Duan=0。qianjin(。delayms(5。 else if(Count=17 if(Guai=1 do zuoguai(。duoji(。 while(Duan=0。qianjin(。delayms(5。 else if(Count=19 if(Guai=1 do zuoguai(。duoji(。 while(Duan=0。qianjin(。delayms(5。 /*倒车回库 */else if(Count=21 /前方传感器加到21执行回库动作
23、tingche(。delayms(1000。Hount=0。EX0=0。huiku(。while(1。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 16 页个人资料整理仅限学习使用 /*正常走时的循迹判定 */ else if(Hxun1=0&(Hxun2=0&(Hxun3=0&(Hxun4=0 zuozhuan(。 else if(Hxun2=1|(Hxun3=1|(Hxun4=1 youzhuan(。 else if(Hxun1=1&(Hxun2=0&(Hxun3=0&(Hxun4=0 qianjin(。 duoji(。/舵机子函数 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 16 页