张 强 陈奕梅
(天津工业大学电气工程与自动化学院,天津 300387)
随着人们生活水平的日益提高,我国人口的老龄化问题也越来越明显,清洁机器人作为智能移动机器人的一个特殊应用,能够代替人们进行清扫房间、车间、墙壁等一些简单劳动,这些都为人们的日常生活提供了许多方便,使服务机器人有了广阔的市场前景。从技术方面讲,清洁机器人体现了移动机器人的多项关键技术,包括路径规划、自主避障、信号处理等。目前市场上的清洁机器人大多由于通用性差、结构不合理导致成本高、操作复杂,不利于其普及[1]。在研究总结市场上相对成熟产品的基础上,基于ARM处理器s3c2440A设计一款具备自我导航能力的家用清洁机器人,其具有结构简单、外形紧凑、运行稳定、噪音小的特征,并且价格低,操作方便,还具有可扩展接口,用户能够根据实际需要对其功能做进一步开发[2]。
清洁机器人本体硬件系统如图 1所示。系统主要由以下几部分组成:主控制器模块、驱动模块、清扫模块、器模块、人机交互模块、电源及欠压检测模块等,这几个模块在主控制器的控制下,相互协调工作,保证了清洁机器人各种功能的实现,清理机器人各模块间关系。
清洁机器人以s3c2440A控制芯片作为控制核心,主要完成以下的任务:接收各个传感器采集的外界环境信息进行综合规划;通过2路PWM信号控制左右轮的速度和方向,从而控制机器人的行驶路径;通过 I/O口信号控制三极管进而控制继电器驱动清扫模块对地面进行清洁;通过多个 I/O口控制 LCD显示机器人的当前状态,如电池剩余电量、外界环境温度等[3]。
清洁机器人的环境信息采集传感器包括五个红外避障传感器、五个碰撞传感器和三个红外防跌落传感器,其结构如图 2所示,图中圆代表红外避障传感器,长方形代表红外碰撞传感器,三角形代表红外防跌落传感器。机器人通过红外避障传感器和碰撞传感器的结合使用实现清洁机器人的避障,红外防跌落传感器对机器人的行驶路径上可能跌落的区域进行检测,防止机器人跌落[4]。
清洁机器人通过红外避障传感器检测障碍物,通过红外防跌落传感器检测台阶,但台阶检测和障碍物检测需要选用距离不同的反射式红外光电开关。反射式光电开关是由 LED光源和光敏二极管或光敏晶体管等光敏元件组成,当有障碍物阻拦时光线能够反射回来,输出为低电平信号,当没有障碍物阻拦时,光线不能反射回来,输出为高电平信号[4]。
本文所设计的红外传感器如图 3所示。电路中使用了LM567芯片,它在电路中的作用是选频,即只有当输入信号的频率与电路自身的振荡频率一致时,电路输出低电平,但是红外避障传感器和防跌落传感器的作用是不同的,当红外避障传感器输出低电平时,清洁机器人进行避障,当红外防跌落传感器输出高电平时,清洁机器人进行防跌落操作。清洁机器人在行驶过程中由于红外避障传感器的局限性是不能完成对于桌腿、椅腿等较细的障碍物的检测的,这时就需要碰撞传感器对其障碍物检测的缺陷进行补足[5],其与 s3c2440A的连接如图4所示,图中只给出一个碰撞传感器与s3c2440A的接线图。当机器人碰到障碍物时,碰撞开关闭合,1、3引脚导通,引脚 3输出由低电平变为高电平,机器人进行避障操作。
清洁机器人在运行过程中至少六个电机同时运转,其中驱动模块包括两个小型直流电机,清扫模块包括四个直流电机:一个电机用于产生真空,两个电机用于控制边刷,一个电机用于控制滚刷。本文将驱动机构设计成一个闭环控制,主要包括L298N驱动电路和光电编码器电路,L298N驱动电路如图5所示。
处理器的J5和J6与ENA和ENB相连,产生PWM波控制电机的速率,管脚D12、C12、E11、F10分别和IN1、IN2、IN3、IN4相连,用于控制电机的转向(J5、J6、D12、C12、E11、F10均为ARM的管脚),处理器通过编码器反馈的脉冲数量和相位而得到当前的电机速度和转向,对电机实现闭环控制。清扫模块控制电路如图 6所示,由于清扫模块中的四个电机的控制方式相同,所以图中只给出一个电机的控制电路,三级管导通,电机开始转动。由三极管做开关驱动继电器,当F10作为I/O口输出高电平时,线圈通电,常开端口闭合,电机转动。
人机交互模块包括 LCD液晶显示屏、按键和红外遥控模块。考虑系统需求,本文选用了SYB12864K-ZK液晶显示屏,它具有并行/串行两种接口方式,内部含有中文字库,其显示分辨率为 128x64,接口方式灵活简单、方便操作[6]。同时,采用 4个独立式按键作为输入,分别为设置键、递增键、递减键和确认键,用于工作时间和路径规划方式的选择。本文设计的红外遥控模块如图 7所示,该设计使机器人的使用更加方便简单,发射距离超过10m,能够满足需要。
清洁机器人的电源消耗主要有清扫模块、控制电路和驱动电路。综合考虑各个方面的因素,本文采用14.4v/3500mA的可充电电池,具体的电路连接如图8所示,其中VDD作为清扫机构正极,VCC作为控制电路和驱动电路的正极。
本设计采用AX301作为欠压检测芯片,其连接电路如图9所示。当电源电压高于上行阈值60ms后,LBO输出高电平,当电源电压低于下行阈值后LBO输出低电平。
整个系统基本上可以分成以下几个部分的任务:a.控制机器人的清扫模块。当清洁机器人开始或停止工作时,清扫模块中四个电机同时启动或停止。b.防止机器人从台阶跌落。如果机器人底部的任意一个红外防跌落传感器检测到台阶都要强行后退并向右转弯,这部分实时性要求高,所以采用中断来实现。c.探测机器人周围的障碍物情况。当机器人的红外避障传感器或碰撞传感器探测到障碍物时,传感器将信号反馈给 s3c2440A,机器人初步判断障碍物的位置,然后采取相应的处理。d.控制机器人的驱动模块。s3c2440A通过两路PWM波和光电编码器对驱动模块实现闭环控制,从而实现机器人的路径规划。e.LCD显示屏和按键的设置。在程序中需要对LCD显示屏的参数进行设置使之显示机器人的运行状态,而且按键进行软件去抖动。g.电源欠压检测及充电控制。通过AX301检测电池电压,当电池电压低于一定值时,启动寻找充电站子程序,电池充上电后,监测电压防止过充电。
以上的每个任务都对应几个子程序或中断程序,整个系统的主程序流程如图 10所示.其中障碍检测、按键和电压检测等都采用了分时查询的方式,台阶检测和大部分延时程序采用了中断的方式。这样合理利用资源的同时也提高了机器人的响应时间当定时时间到或检测到台阶时,进入中断程序,具体流程如图10所示。
实验证明,控制系统满具备智能清洁能力,运行平稳可靠,抗干扰能力强,性能良好,可以实现完全遍历和自主避障等路径规划任务,替代了传统的人工清洁工作。
[1] 高学山,徐殿国.全方位地面移动清扫机器人[J].机械工程学报,2008,44(3):28-33.
[2] 邢敏,蒙梅,刘任平.JP-cleaner型清洁机器人控制系统设计[J].机械与电子,2006,(10):55-57.
[3] 王磊,杨杰.全自主清扫机器人运动分析与路径规划[J].机电一体化,2007,(2):70-73.
[4] Yong-Joo,Watanabe-Y.Development of small robot for home floor cleaning[A].SICE 2002.Proceedings of the 4lst SICE Annual Conferenee[C].2002,(5):222-223.
[5] 刘瑜.自主吸尘机器人的研究[D].杭州:浙江大学, 2006.
[6] 曹建树,曾林春,靳志杰.室内智能清洁机器人控制系统[J].机械与电子,2009,(6):60-63.