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为控制核心,小型直流电机作为驱动元件,设计出一种价格低廉、简单实用的灭火机器人。通过简单的修改,可以将此机器人用于其它的竞赛项目。