火灾消防机器人设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于ATmega2560单片机的智能避障灭火小车
一、设计方案:
1、控制系统:
Arduino Mega2560是采用USB接口的核心电路板,具有54路数字输入输出,适合需要大量IO接口的设计。处理器核心是ATmega2560,同时具有54路数字输入/输出口(其中16路可作为PWM输出),16路模拟输入,4路UART接口,一个16MHz晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮。Arduino Mega2560也能兼容为Arduino UNO设计的扩展板。
该核心电路板能提供大量IO接口,因此为以后的传感器和功能拓展提供了便捷,同时搭配传感器拓展板,在使用和调试便捷性上优于其它单片机。
Arduino2560原理电路:
2、传感器:
方案一:光电循迹传感器+火焰传感器+红外线测距传感器
光电开关在一般情况下,由三部分构成,它们分为:发送器、接收器和检测电路。
它的检测头里也装有一个发光器和一个收光器,它的检测头里也装有一个发光器和一个收光器,但前方没有反光板。正常情况下发光器发出的光受光器是接收不到的,当有物体通过时挡住了光,并把光反射回来,受光器就接收到了光信号,输出一个开关信号。
当遇到黑色线格的时候,由于黑色吸收了大部分光线,因此光电开光就会输出电平变化,单片机接收到信号以后做出相应的动作。
火焰传感器的基本构成及原理:
火焰传感器由红外线接收管、电平比较电路、灵敏度调节电位器三部分组成。通过红外线接收管探测周围环境,当接收到较强的红外线的时候,由电平比较器反馈给单片机电平变化信号。可通过电位器调节火焰传感器的灵敏度。
红外测距传感器:
红外测距传感器由四部分构成,红外线二极管,红外线接收管,电平比较器,距离调节电位器。
通过红外线二极管发射出红外线,接收管收到物体反射的红外线,通过电平比较器后输出一个变化电平信号。通过电位器调节,可以控制接收管给电平比较器的信号,而达到控制探测距离的目的。但由于红外线测距模块对火焰比较敏感,因此用在消防机器人上面不是很合适。
方案二:光电循迹传感器+火焰传感器+超声波传感器
该方案使用了超声波测距模块,利用超声波发射和接收模组,通过一定频率的超声波并接收该频率的反射波,通过两者的时差进行计算,准确得出障碍距小车的距离,屏蔽了火焰对测距模块的影响,能有效应用于避障机构。
3、动力机构:
方案一、四线二相步进电机*2
该方案中,步进电机能够按照特定的步进角进行运转,设定好步数,电机则运行相应的角度以下图为例:
虽然步进电机能很准确的对小车进行控制,但是由于其功耗和控制电路的因素,该方案未采用。
方案二、直流减速电机*2
使用L298N驱动两个直流电机,L298N驱动电路如下图:
该驱动电路可两路直流电机或一路步进电机,控制直流电机时,IN1、IN2、IN3、IN4分别接单片机数字IO口,通过IO口控制电机的转动方向,ENA、ENB 接单片机PWM输出口,控制电机的转速。该方案电路简单,控制方便,故采用该方案。
4、灭火风扇:
方案一:采用模块化设计,在调试和安装上方便快捷。用两个直流小电机作为灭火装置,由单片机IO口控制,并通过三极管扩流,由L7805将12V锂电池电压稳压为5V,供全部系统使用,在测试过程中发现,当火焰传感器探测到火焰,电机转动时使得系统板电压骤降,导致单片机不断复位,达不到灭火的效果。
方案二:通过给单片机系统单独供电,用IO口控制两个继电器来间接控制灭火小电机,电机电源采用电机驱动板上的5V电源接口。该方案解决了单片机因电压不足而无限重启的现象,使得单片机系统能够稳定运作。因此我采用该方案。
5、电源模块:
现有2200mah航模锂电池一块,输出电压11.1V,最大放电能力30C,完全满足小车需要。采用两路L7805单独给单片机系统和电机驱动系统供电,传感器由单片机系统电源供电,灭火风扇由电机驱动系统供电。电源模块电路原理图如下:
6、数据交互模块:
传感器的数据除了传递给小车系统之外,还需要通过显示屏呈现出来,同样的,有两套方案,
方案一:系统接收到数据之后直接处理,然后显示到LCD1602。该方案使用到1602液晶,在arduino 上使用液晶来显示数据参数不是很困难,但是由于小车所使用到的单片机系统为8位单片机,虽然已经有很丰富的IO 接口,但数据处理能力着实一般,在使用液晶和单总线的DIS18B20温度传感器时,会使得系统的操作显得很慢,导致程序不能够正常运行。而且1602液晶只能显示两行、16个字符,对于该小车来说着实有点紧张。
方案二:单片机在处理传感器数据的同时,将数据通过串口转发给另一单片机,在另一单片机进行处理后,将参数显示到2004液晶上面,将控制信号反馈给主控单片机,最大限度的使主控单片机的速度不受影响。由于本系统采用集成串口的mega2560单片机与mega328p 单片机,只需要通过TXD 和RXD 两根线进行通信。而且能将部分控制指令直接分配给mega328p ,因此,提高了系统的稳定性和工作效率。因此我采用方案二。
二、 小车结构:
三、 程序设计:
小车从安全位置出发,无固定路线,在火焰传感器的引导下自行选择靠近火源的路线行走,距离火源一定距离时停下,进行灭火操作。灭火完成后继续前往下一个火源。途中遇到障碍物时能够自行避开障碍物,寻找离火源最近的路线前进。小车能够自行判断自己在场地中的位置,防止走出场地,其位置判断与火源计数以及报警部分由mega328p 进行。
部分程序:
//mega2560部分//
int Motor_L=4;
int Motor_R=5;
int Track_L=30; 灭火小车系统板 电源模块
电机驱动模块 四路循迹模块
火焰传感器模块 灭火模块 数据交互模块