1 引言
比赛规则为模仿生活中消防员灭火,机器人从H点出发,在四个房间内寻找任意摆放的蜡烛,并且设法将其灭掉。比赛场地的墙壁高33cm,材质为木板,颜色为黑色。尺寸如图1所示。对于比赛,得的分越低成绩越好。另外根据选择的模式不同,计分时要乘上相应的系数。
2 系统硬件设计
2.1 系统总体设计
系统以ATmega32单片机为核心,它是一种基于增强RISC结构的、低功耗的8位单片机。其特点为:①片内具有32K字节的可编程Flash;2K字节的片内SRAM数据存储器;1024个字节片内在线可编程EEPROM数据存储器。②片内含JTAG接口。③外围接口。两个带有分别独立、可设置预分频器的8位定时器/计数器;一个16位定时器/计数器;四个通道的PWM输出;8路10位ADC;32个可编程的I/O口。④低功耗,最高工作频率为16MHz。
根据灭火比赛的规则要求,配以碰撞传感器、灰度传感器、火焰传感器和红外传感器。通过两路PWM控制两只电机以驱动灭火机器人,另外一路灭火电机由I/O口通过光电耦合器直接驱动。
2.2 系统电源部分
系统采用单电源供电电路时比较简单,但是考虑到电动机起动瞬间电流很大,会造成电源电压不稳,影响单片机和输入电路工作的稳定性和可靠性,因此采用双电源供电方案。将电机电源和单片机电源完全隔离。单片机以及传感器电路使用8V供电,电动机使用12V供电。提高电动机的供电电压,可以提高机器人的运行速度,从而可以提高灭火的成绩。
2.3 电机驱动部分
机器人需要控制在一个合适的速度行驶,在灭火的过程中既要以较快的速度找到火源,又要防止因为碰撞而影响比赛的成绩。小车的速度是由两只直流电机控制。L298驱动芯片是性能优越的小型直流电机驱动芯片之一。它可被用来驱动两个直流电机或者是双极性步进电机。在6-46V的电压下,可以提供2A的额定电流。L298还有过热自动关断功能,并有反馈电流检测功能。为保证L298正常工作,建议加装片外续流二极管。由ATmega32单片机直接输出两路 PWM驱动L298N。改变PWM调制脉冲占空比,可以实现精确调速。脉冲频率对电机转速有影响,脉冲频率高连续性好,但带负载能力差;脉冲频率低则反之。通过PD2和PD3两根I/O口线来控制电机的转动方向。
2.4 传感器部分
灭火比赛需要机器人在尽量不碰撞墙壁的基础上尽可能快地找到蜡烛并将火灭掉。在完成任务的过程中首先需要不碰撞墙壁,然后需要判断前方是否有火焰。在找到火焰后需要判断蜡烛旁边的白线。如果碰撞墙壁的话,需要机器人能检测出来并进行处理,不然就会发生机器人卡死的情况,那就不能完成任何任务。
图5所示为红外传感器的发射和接收电路。红外射管采用脉宽调制(PWM)驱动,工作在38KHz的频率下,减少发射电路的功耗。脉冲发生器由NE555构成,通过外部的电位器R1来调节占空比和脉冲频率,由于红外肉眼不可见,所以电路中加入一个LED指示灯来指示红外发射管是否在工作。该LED和红外发射管串联,当红外发射管正常工作时,该LED灯会点亮。接收电路采用西门子公司生产的红外专用集成接收芯片SFH506-38,它只有接收到38KHZ的脉冲波时才会作用。它内部集成了选项、滤波、放大电路,对外只有3个引脚:①脚为信号输出端;②脚为接地端;③脚为电源端,所以使用起来非常方便,效果比较理想。
灰度传感器是模拟传感器,有一只发光二极管和一只光敏电阻,安装在同一面上。灰度传感器利用不同颜色的检测面对光的反射程度不同,光敏电阻对不同检测面返回的光其阻值也不同的原理进行颜色深浅检测。
火焰传感器是模拟传感器。它利用红外敏感型元件对红外信号强度的检测并将其转换为机器人可以识别的信号,从而来检测火焰信号。火焰传感器可以用来探测波长在700nm~1000nm范围内的红外线,探测角度为60º;,其中红外线波长在880nm附近时,其灵敏度达到最大。
碰撞传感器使用碰撞开关,通过I/O口可直接作为数字量输入。
2.5 LCD显示及其它电路
液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。这里采用2行16个字的DM-162液晶模块,通过与单片机连接、编程,完成显示功能。
3 灭火机器人软件设计
场地的四个房间内的任何地方都有可能摆放蜡烛,所以机器人必须能够实现搜索所有的房间,而且在行走的过程中不允许碰撞墙壁。找到火源后,通过灭火装置迅速将火灭掉。根据以上的要求设计机器人的灭火逻辑如图8所示。
机器人采用左手走规则,左手走规则是指机器人始终沿着左面的墙壁行走,一直走完全程。在行走的过程中按照起点、一号房间、二号房间、三号房间、四号房间的顺序搜索火源并灭火。机器人首先读取传感器信息,然后对传感器的信息进行判断。如果发现火源,则进入灭火子程序,该子程序完成趋光、灭火等功能。
4 结论
本文根据灭火比赛规则的要求,基于单片机及传感器原理,以AVR单片机ATmega32为控制核心,小型直流电机作为驱动元件,设计出一种价格低廉、简单实用的灭火机器人。通过简单的修改,可以将此机器人用于其它的竞赛项目。
电机驱动模块为清洁机器人的行驶提供动力,机器人启动、行驶和刹车时电机都会需要较大的驱动电流,该模块必须能够提供足够的电流并保证发热量不会太大。本系统选用了驱动芯片L298N.
L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W.内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。
引脚J1可用于输入PWM脉宽调制信号对电机进行调速控制。(如果无须调速可将两引脚接5V,使电机工作在最高速状态。)实现电机正反转也很容易,输入信号端IN1接高电平输入端IN2接低电平,电机M1正转。(如果信号端IN1接低电平,IN2接高电平,电机M1反转)控制另一台电机是同样的方式,输入信号端IN3接高电平,输入端IN4接低电平,电机M2正转。(反之则反转),PWM信号端A控制M1调速,PWM信号端B控制M2调速。可参考表2-2:
表2-2驱动模块控制表
清洁机器人必须知道自身位置,在特定位置或区域进行特定的动作,完成对房间的吸尘任务。它需要通过传感器进行障碍检测,并将障碍物信息传送给MCU,进行决策,最终完成全区域路径覆。障碍探测是指由各种传感器组成的传感器阵列对周围未知环境进行探测。整个传感器阵列就像是清洁机器人的“眼睛”,收集周围未知环境的某些信息。清洁机器人中的传感器数量比较多,相关的有用于环境感知的传感器、自身定位传感器,种类繁多,将这些传感器的信息有效融合是一个重要问题。
方案l:避障用激光传感器,激光传感器是一种利用激光技术进行测量的新型传感器。它由激光器、激光检测器和测量电路组成,具有能实现无接触远距离测量、速度快、精度高、量程大、抗光、电干扰能力强等优点。缺点是激光传感器价格昂贵,外接电路设计十分复杂,不适合小车的需要,因此放弃该方案。
方案2:避障用超声波传感器,超声波传感器是一种利用超声波的特性研究的测量传感器。它主要由压电晶片组成,用来发射和接收超声波。超声波在空气里传播时,会因不同介质的声阻抗不同而产生反射,因此测量发射接收信号间的时间差,可以得到障碍物的距离,该信号经过运算放大器,传送给控制芯片LPC2132,LPC2132发出控制信号改变小车的转向,作出对障碍物的正确判断。超声波传感器的优点是反应速度灵敏,可测距离远,收到外界的干扰小,缺点是超声波在小空间不同方向里会进行多次反射,当和障碍物形成一定角度时,会发生镜面反射,产生幻影,从而动作混乱。
方案3:避障用红外光电开关。红外发射器发出红外线,遇到障碍物后,光线反射回来,接受的光感三极管导通,单片机接受到相应的电平信号。其优点是对近距离的障碍物反应速度灵敏,信号之间抗干扰能力强,缺点是距离要求近,容易受自然光的影响。经过传感器性价比和课题实际要求的综合分析,超声避障实现方便,技术成熟,是移动机器人常用的避障方法,因此我们选择超声波传感器作为机器人的眼睛[5]。
本系统中采用了US-100超声波测距模块,可实现2cm~4.5m的非接触测距功能,拥有2.4~5.5V的宽电压输入范围,静态功耗低于2mA,自带温度传感器对测距结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。
遥控可以使机器人的操作更加方便,本系统中要通过智能手机遥控机器人,而智能手机的信号正是通过蓝牙发出,因此只需在机器人上安装蓝牙模块。由于机器人只接受数据,不发送数据,所以只需蓝牙的从机模块即可。
本系统中采用了型号为HC-06的蓝牙模块,其中编号06就表示其为从机模块,在蓝牙模块的命名规则中偶数命名的型号出厂时就确定了从机,并无法更改。用户不可以自己切换主机或者从机,用户可以空过AT指令集对蓝牙模块进行配置,AT指令集较少,包括修改蓝牙名(限于从机),修改密码,修改波特率,询问版本号等几个基本功能。