摘 要: 介绍了一种自行研发与制作的比赛用灭火机器人。该机器人采用STC80C52单片机为主控芯片,结合使用步进电机和温度传感器来判断火源位置,利用红外测距传感器与直流电机完成机器人的行走和自动避障等功能。在控制算法上,采用“左右手定则”和无火不入房的策略,提高了寻找火源的效率。
关键词: 灭火机器人;STC80C52;红外测距传感器
随着机器人技术的飞速发展,工业机器人已广泛应用于各个领域的工业现场,成为了先进制造技术和自动化装备的典型代表。机器人技术涉及多个技术领域,如电子、机械、自动控制、传感器、计算机等。随着国民经济的持续发展,近年来国内许多企业为应对人力资源紧张的局势,积极与各大高校联合,对机器人技术进行开发,这使得对机器人技术的研究达到了空前的高潮。本文所介绍的机器人装备了信息处理系统、各种传感器、运动装置和灭火装置,可以独立实施火源的搜索和灭火任务[1]。
1 总体设计思想
通过对比赛规则的分析(用蜡烛模拟火源,随机分布在场地中,要求在最短的时间内找到火源并将其扑灭),为在最短的时间内完成比赛所规定的任务,对机器人完成整个动作要求做如下设计:机器人在直流电机的驱动下完成前后及转弯等动作;在运动的过程中利用红外传感器和循迹模块实现自动避障和房间定位功能;当机器人定位火源的房间后,由直流电机和循迹模块共同工作,驱动机器人运动至灭火位置,随后通过驱动强力风扇实现灭火任务;灭火完成后返回出发区域。
2 硬件及电路设计
机器人的控制芯片采用MCS-51系列的80C52单片机,它内置8位中央处理单元,32个双向输入输出口,是80C51的增强版本,工作电压为3.3 V~5 V[2]。机器人硬件部分主要包括驱动模块、传感器模块、灭火模块和电源模块,总体框图如图1所示。
2.1 驱动模块
驱动模块主要包括直流电机驱动和步进电机驱动两部分。
直流电机驱动模块[3]主要用于控制直流电机运动,完成机器人向前向后及转弯等功能。控制芯片采用L298N双H桥直流电机驱动芯片,其逻辑供电电压为5 V,与单片机工作电压相匹配,驱动供电电压为5 V~46 V,在此采用12 V的电压输入。控制原理图如图2所示,其中VS和VSS分别为驱动控制电压和逻辑控制电压,ENA、ENB分别为直流电机1、2的使能端,OUT1、OUT2、OUT3、OUT4输出PWM方波控制直流电机1、2的转速。
步进电机驱动主要用于带动火焰传感器旋转进行火焰的定位。控制芯片采用A3955SB,该芯片是美国Allegro公司生产的,其工作电压可达50 V,电流可达1.5 A。同时A3955SB芯片还提供过温保护、过流保护及欠压保护等功能[4]。A3955SB芯片为16引脚的芯片,其输入为DAC的3个输入端D0、D1、D2,通过设置REF端口的电压和采样电阻R0,可确定通过步进电机的最大电流Imax,其关系式为Imax=VREF/3R0;RC端口用来控制PWM的波形;输出为OUTA和OUTB,用于控制步进电机的某一相,同时PHASE端口决定步进脉冲的方向。两相步进电机的控制电路图如图3所示。
2.2 传感器模块
传感器相当于人类的各种感官系统,帮助机器人识别路线、障碍、火源等一系列事物,是机器人完成特定任务的关键。该机器人所用传感器主要包括红外测距传感器、循迹模块和火焰传感器。
红外测距传感器可以精确地检测距离,其测量范围为0.2 m~1.5 m,测量信号可以模拟输出。该机器人所使用的是Sharp公司生产的GP2Y0A02YK0F型红外测距传感器,它是基于三角测量原理,传感器按照某一角度发射红外光束,光束遇到障碍物后被反射,当CCD检测器检测到有红外光束被反射后,会产生一个距离为L的偏移,运用三角形的原理,结合必要的数据(如发射角a,焦距f等)可以计算出物体到传感器的距离,如图4所示。当测量出距离后,传感器会将距离转换成电压值输出,如图5所示。
循迹模块主要由碰撞开关和灰度传感器组成,用来检测碰撞和灰度,其工作原理比较简单,在此不做过多介绍。
火焰传感器R2868可以检测到波长在700 nm~1 000 nm范围内的红外光,检测距离为0.8 m,当检测到火焰信号后,输出低电压信号。
2.3 灭火模块
灭火模块主要依靠风扇产生强劲的风力将火源扑灭,由于其功率较大,需要采用继电器对其进行辅助控制。在实际的灭火环境下,可将灭火装置改为干粉灭火器火喷水装置来完成。
2.4 电源模块
机器人采用12 V的锂电池供电,由于单片机及部分传感器工作电压为5 V,需要设计降压电路。降压电路的芯片采用LM7805,它具有体积小、使用方便的特点,控制电路如图6所示。
3 系统软件设计
根据对比赛规则的分析,决定采用“左右手定则”来实现对机器人路径的规划。所谓左右手定则,就是根据比赛场地的实际地形分布,在某段时间内遇到岔路口向左(右)运动,以后都向右(左)运动的方式。在比赛中采用先右后左的策略,在每个房间的门口检测,如果发现火源,则进入房间灭火,灭火后再次利用火焰传感器对火源检测以确定是否将火源扑灭,否则不进入该房间,继续搜寻下一个房间。此外在机器人前进的过程中,由于某些原因(如控制电路的延时性、摩擦阻力不同、电机性能不同等)会导致左右两侧的直流电机不同步,致使机器人的运动路线产生偏移。在此需要设计前进位置偏移检测程序来纠正机器人的位置偏差,主要原理是在前进过程中每隔很短的时间,利用红外测距传感器对两侧距离进行检测,若发现两次检测的距离不同,则对偏离方向进行计算,并反馈给处理器对机器人的位置进行调整。机器人控制流程如图7所示。
主程序框架如下:
#include<REG51.h>
#include<absacc.h>
#include<math.h>
#include<intrins.h>
void main(void)
{
TMOD=0x02;//设定T0的工作模式为2
TH0=0x9B;
TL0=0x9B;//装入定时器的初值
EA=1;
ET0=1;
TR0=1;
init(); //程序初始化
Walk();//开始运动
While(num<=4||mh=0)
{
If (left==1)
{
Check_left();//左手定则
left=0;
}
Else
Check_right();//右手定则
num=num+1;//房间数加1
}
huijia();//搜寻结束或灭火后回家
}
本机器人的设计目的是快速找到火源并将其扑灭之后安全回家,完成任务用时最短者获胜。其中直线运动时位置调整次数、撞墙次数、房间搜寻安排、能否准确定位火源位置等制约着比赛时间。
通过实际测验,该机器人性能稳定,运行速度较快,能较好完成灭火任务并安全回家,具有一定的实用性。
参考文献
[1] 关为民,陈帝伊,马孝义.智能灭火机器人硬件电路的设计与实现[J].微型机与应用,2010,29(4):21-24.
[2] 陆彬.21天学通51单片机开发[M].北京:电子工业出版社,2011.
[3] 刘雄,林茂松,梁艳阳.特种机器人的低电压大功率电机驱动系统设计[J].电子技术应用,2013,39(10):49-53.
[4] 韩英桃,胡亚山.A3955SB步进电机驱动芯片及其应用[J].国外电子元器件,2003(2):58-60.