基于STC15W4K32S4灭火智能车的设计
2018-09-07冯国文王籽涵刘世运黄健俊徐天如郭海港山东科技大学山东青岛266590
冯国文,王 彬,王籽涵,刘世运,黄健俊,徐天如,郭海港(山东科技大学 山东 青岛 266590)
1 总体方案设计
(1)数据采集模块,主要由火焰采集模块和避障模块构成,实现了灭火机器人的对各类参数的采集,是控制器核心部分。
(2)信息处理单元,用单片机作为信息处理单元,实现对数据的采样及数据分析运算,并发出控制指令。
(3)人机交互单元,由按键及显示单元组成。按键实现人机交互;显示采用LCD1602 液晶模块,可以提供丰富、直观、友好的信息界面。
(4)控制模块,控制模块主要由电机驱动电路、灭火模块等组成,实现对驱动电机运转及开启风扇灭火。
图1 灭火机器人系统框图
图1 中,数据采集模块对障碍物方位、火焰数据进行采集,并将数据送给MCU进行数据处理。MCU根据接收的信息发出控制指令控制电机或风扇工作,显示单元可显示当前灭火的次数和行进状态。按键用于用户启动灭火机器人。
2 系统硬件电路设计
2.1 控制电路
由于我们在智能车灭火时所经过的路径是不确定的但同时又要求小车精准的到达目的地,所以我们选用了直流减速电机。直流减速电机转动时机械扭矩比较大,而且体积小,重量轻,使用也方便。我们经过对比后选择的直流电机减速比为1:78,电机在减速后速度可达为350r/min。灭火智能车车轮我们采用的直径为8cm,因此最大速度V=2r·v=2*3.14*0.04*300/60=0.942m/s,这个速度在测试时已经足够快;实现灭火工作的是采用3.3V空心杯电机驱动风扇,试验所采用的火源为小蜡烛产生的火焰,火势较小,空心杯电机产生的风力足够在几秒内灭火。
2.2 火焰测量电路
火焰测量电路是用来控制二极管检测火源点的,该电路设计时采用红外接收二极管,它的探测角度足够大,为60度,能探测到光波长度在750纳米~1000纳米内的红外光,当红外光波长在880纳米左右时,其灵敏度达到最大值。红外接收二极管能够将外界检测到的红外光的强弱变化转化为电流的变化再通过测试电阻两端的电压数值的变化。外界红外光越强,数值越小;红外光越弱,数值越大。
2.3 避障模块
本设计对障碍物的检测采用E18-D50NK型号的红外传感器。E18-D50NK传感器是一种红外线反射式接近开关传感器,用于物体的反射式检测,该传感器具有体积小,功耗低,应用方便,稳定可靠等优点。该传感器输出信号为数字量,所以我们不需要进行A/D转换,便可直接与stc15w4k系列芯片的I/O口相连,当单片机检测到障碍物时信号线输出为低电平,正常时为高电平。
2.4 单片机系统
我们在这里选用STC15W4K32S4单片机为核心,配合直流微型电机、电机接口电路,电压调整电路,八路信号收发器,调试接口等电路组成系统板电路。
3 软件设计
3.1 系统主程序设计
程序设计语言有三种:机器语言、汇编语言和高级语言。本系统就选用了C语言来编制本设计的程序。使用C语言,大大减少程序的指令,可以快速地完成本设计的程序。灭火机器人的软件部分可以分成主程序设计、寻火模块、避障模块、控制模块等。
本设计软件方框图如图2所示,小车初始化后主程序开始判断是否有火源,若没有火,小车直线行驶,进行避障,继续寻找火源;若有火就调用寻火程序模块,找到火源并灭火。
图2 灭火小车系统流程图
3.2 寻火模块的设计
单片机不断读火焰传感器的信号,当有火时,单片机判断火源位置。当左边的两个传感器有信号时,单片机控制电机左转;当右边的两个传感器有信号时,单片机控制直流电机右转;当中间的远红外接收二极管有信号时,单片机控制电机直行;当中间的近红外接收二极管有信号时,主程序调用灭火模块熄灭火焰。
3.3 避障模块的设计
单片机采集红外光电对管的信号,判断障碍的位置。没有障碍,小车就直行寻光。有障碍时,首先判断前面有无火源,如果有火源就进行避障,会影响灭火。在判定没有火源时,(1)两个传感器都有信号,小车停止,后退之后右转90°;(2)右边传感器有信号时,就停下来再左转45°;(3)当左边传感器有信号时,小车停下并右转45°。
4 结语
我们在电路板焊接完进行上电测试时,发现电源指示灯没有亮,然后闻到了烧焦味,稳压芯片用手一摸很烫,我们赶紧关掉电源。最后发现稳压芯片接反了。还有在避障传感器调试的时候,发现只安装一个避障传感器时无法准确判断遇到的障碍物的方向,我用程序无法调试,所以就无法控制小车,后来经过调试发现在小车车头左右各装一个传感器就可以准确的解决问题了。同时,在于各个高校的同学一块比赛的过程中,我们也看到了与别人的差距,也更加激励我们不要墨守成规,拘泥于课本的知识和方法,要积极开发创新能力,更大的进步。