基于单片机的扫地机器人设计
2022-08-15刘长虹
刘长虹
(甘肃畜牧工程职业技术学院 智能与信息学院,甘肃武威,733006)
0 引言
扫地机器人能够自动按照预先设置的信息,清扫保洁整个房间区域。由美国最先研发并且也是最早应用于生活的,欧洲国家随后开始研发扫地机器人,随着扫地机器人热销,中国也开始研究扫地机器人,但是由于起步比较晚,因此技术还是有待于提高。
设计扫地机器人的国际主流有iRobot,凯驰等比较著名的公司,国内研发也越来越多。目前,人们已经进入互联网家时代,智能家居逐渐进入了人们的生活,智能扫地已经逐渐的融入了人们的日常生活,扫地机器人已经和洗衣机和冰箱一样成为了人们生活必需品。扫地机器人从被研究出来,再到应用,已经有相当一段时间,虽然扫地机器人的技术不断革新,但是,还有很多问题没有办法解决,路径规划是移动机器人的核心技术。路径规划使得机器人,能够在有不同障碍物的环境里,安全的移动,并且进行遍历清扫,虽然目前市面的产品比较多,技术比较成熟,但是还有很多问题;清洁率比较低,清扫时间长。本文设计了一款扫地机器人,在前期研究成果的基础上,通过算法和电路设计,以期对设计扫地机器人及路径规划提供重要的参靠价值和应用前景。
1 扫地机器人结构设计和其工作原理
扫地机器人机械结构由机器人载体、外壳、行走机构、清扫机构、洒拖机构组成。扫地机器人载体包括底盘和碰撞防护板,小车底盘给其他机构提供安装位和载体,采用防护板防撞;行走机构包括两个独立驱动轮、一个从动万向轮组成,驱动轮由直流电机和减速机构组成。清扫机构包括滚刷、吸尘泵和吸尘盒、边角毛刷,洒拖机构由水箱,喷头,拖头组成。
在扫地机器人的左前和右前方,安装两个转方向相反侧刷,吸尘口前方装有滚刷。侧刷将灰尘和小的垃圾,清扫到吸尘口附近,便于垃圾的收集,再由真空泵将比较轻的垃圾收走,比较大的垃圾,由滚刷将垃圾清扫掉。
由于直流电机的转速远高于清扫的行走速度400r/min,因此要进行减速增力,减速器传动比为i=13000/400=32.5,传动比选用36,采用两级变速,两级传动比都为:i1=i2=6。
2 硬件电路设计
扫地机器人采用模块化扩展, 设计要求运行稳定,重量轻体积小,结实耐用。扫地机器人硬件设计采用2片STC80C51,一片负责状态检测和显示、任务分配和红外线遥控信号接收等任务,另一片负责环境检测、环境地图建立、路径规划等任务。
图1 机器人框架图
在底盘正前方和左右各安装一个超声波传感器;5个红外线传感器均匀安装在机器人前部,检测面积比较小时,来弥补超声波测距的不足;安装2个光电编码传感器在驱动轴上,用于里程计和测速传感器;1个电子罗盘,用来检测机器人的姿态;2个红外线避障模块,安装在机器人底盘上,用来防止机器跌落;1个LCD液晶显示模块,安装在机器人上部;红外线接收头安装在机器人顶部;2片单片机之间采用串口通信,由于路径规划需要存储大量环境信息,所以单片机本身的数据存储空间不能满足要求,需要通过并口P0和P2扩展外部数据存储器RAM(采用芯片RAM62256)。
智能清扫机器人的电源选用锂电池型号为CRD5705,容量为2000mAh,电压为 7V。由于单片机和直流电机需要5V电压,须由稳压模块将7V变为5V。
由于电池容量有限,在清扫过程中,需要机器人自己充电,充电方案一般有两种,接触式充电和非接触式充电。为安全考虑,采用非接触式无线充电,设计基于磁耦合式的无线能量传输系统对机器人实现非接触式充电,非接触式充电的关键是自动对接充电,自动对接充电主要采用红外信号在智能吸尘机器人的左、右侧和后、后面都装有红外接受传感器,红外线发射传感器安装在充电桩上,当检测到电量不足时清洁机器人将沿边界寻找充电桩,在扫地机器人上方有四个相互隔离红外线传感器,分别接受来自右前方、左前方、右后方和左后方的信号,通过四个传感器接受的信号对比可以判别红外信号来的方向,调整机器人的姿态,实现机器人自动对接充电。
扫地机器人有行走电机和清扫电机,行走电机采用LN298恒压恒流双桥集成电机芯片,可同时控制两个电机,且输出电流可达到2A。LN298的第IN1,IN2,IN3,IN4控制直流电机的方向和转速ENA,ENB控制起停。直流电机采用H桥驱动电路,可实现直流电机正转,反转和停止,可以完成机器人前进,倒车和转弯。
清扫、吸尘电机都是由继电器驱动的,控制信号由AT89C51端口来控制,信号经由三极管做开关经过电流放大,然后再驱动清扫电机工作。
传感器检测模块由超声波传感器、红外线传感器、光电编码器和电子罗盘这四种传感器组成。用前、左、右三个方向的超声波测距识别小车运动环境,提供运动信息。在小车的前面,左边和右边都安装一个超声波避障模块检测障碍物,选用HC-SR04超声波测距传感器,可实现2cm~450cm非接触测距功能。
图2 直流电机驱动电路
遥控方案选择红外遥控装置,由发射电路和接收电路组成,发射电路主要负责编码调制、红外线信号发送;接收电路负责信号接收、光电信号进行放大、信号解调,红外线接受头采用一体化红外接收头,然后编写软件对信号进行解码。
3 整体电路及控制系统的设计
机器人的硬件电路总体设计,主要包括单片机通信、直流电机驱动、数据存储器扩展、电源模块和LCD显示等电路的设计,显示模块采用液晶显示屏LCD1206。
本设计采用2片单片机构成控制系统,单片机A主要负责运动控制、状态检测、接受遥控信息和显示工作;单片机B负责环境地图的建立和运动导航。单片机A和B采用串口进行通信息交流,单片机A将自身的状态信息通过串口发送给单片机B,单片机B根据建立的地图信息来判别机器人的运动,再将运动信息通过串口发送给单片机A,单片机A分析命令,进行相应运动。
路径规划采用内螺旋覆盖,首先寻找到边界,然后以这一点开始,沿边界清扫,同时生成为下一轮要遍历的标记,边界遍历完成后,依次向中心遍历,然后依次生成新的下一轮的将要覆盖的标记,最后完成整个房间的遍历清扫。
本系统主要采用推算导航的定位方法,利用光电编码盘和磁罗盘定位系统,结合实际需要,采用了栅格法来建立栅格地图。环境地图信息的建立主要是沿边清扫建立初步全局地图的大小;然后采用内螺旋遍历的方式逐步建立环境地图信息,最后直至所有房间都清扫完成。机器人在清扫时,首先应该检查环境地图是否建立,有环境地图时,就需要按照已有环境地图进行清扫。自动充电首先要保存现在位置和方向信息设置断点,然后再利用地图信息建立路径,找到充电站,然后采用红外线自动对接,进行充电。
机器人控制系统主要接受命令来进行扫地任务,命令主要分为三大命令,首先是机器人的清扫状态,暂停、自动清扫;接下来是信息修改模块命令,主要用来进行参数设置;其次就是运动控制,比如说左转、右转、直行。
扫地机器人依靠增量式推算定位,因此机器对自身姿态要求严格,特别是机器在左右转后,机器要严格的走直线,不能走斜线,否则机器人定位不准确,清扫覆盖率低。
由于机械加工或安装误差,两轮直线纵向方向与机器人本体中轴线不平行;偶尔出现的打滑引起误差,由于机器人采取的是左右轮正反转,实现差速转弯,当电子罗盘检测到达到所要的角度时,停止驱动直流电机,由于机器人自身还有较大惯性,使机器人产生误差,准确率下降,因此引入一种新的算法—PID控制,PID是一个闭环控制算法,有反馈环节,因此要速度反馈和绝对角度的反馈。PID算法是对偏差的比例、积分和微分控制,来进行脉宽调节控制(PWM)进行调速,然后驱动电机运动,调整自身姿态。
图3 机器人整体电路设计
图4 机器人姿态调整框图
机器人探测到墙壁后,就开始进行沿边学习。沿边学习的目的是为了获取房间的大小和轮廓信息。沿边学习,是让机器人沿着边界移动,移动过程,保持机器人左侧传感器接触边界来调整机器人所走方向,可以通过事物对机器人当前位置进行调整。
STEP1:初始化机器人位置和运动方向;
STEP2:首先要找到障碍物边界;
STEP3:机器人使左侧传感器始终靠近障碍物,然后进行绕行;
STEP4:如果机器人完成了对房间的一周绕行,回到绕行的起始点,则任务结束;否则继续绕行;
障碍物沿边绕行程序主要用于沿边界清扫和遍历过程中遇到障碍物的绕行,沿边清扫程序主要是用来确定整个房间的大小,因此机器人始终要使左边靠近房间,进行绕行,当遇到障碍物时,调用避障程序,最后回到边界起点,完成绕行。
超声波测距程序主要用来测距,主要利用超声波模块发射超声波后,接受反射的超声波,主要是获得从发射超声波到接受超声波的时间,然后利用时间来计算距离。
机器人的遍历学习采用本文提出的基于栅格的内螺旋覆盖方式,按照这样的方式进行覆盖,同时将覆盖过程中所形成的栅格轨迹按顺序存储起来。学习完成之后,需要清扫的区域就全部呈现出来,剩下的就是障碍物了,同时由于保留了清扫的栅格轨迹 在以后的过程中,在环境信息没有变动或者只是发生了没有影响轨迹变动的情况下,可以直接调用原轨迹进行清扫,就可以大大的提高清扫的效率。
行走电机转速PID控制算法,扫地机器人在很多场合需要用到不同的速度,比如说转弯时,速度小一点,而清扫时,速度高一点,而且对机器人姿态调整时,也要需要不同速度,因此就要进行直流电机的调速,而直流电机的调速一般采用脉宽调速,也就是PWM。
脉宽调速主要利用定时器实现,定时器0每1ms中断一次,中断10次后,就是10ms为一个循环,输出脉冲频率固定,通过设置PWM值来改变输出占空比。
图5 脉宽调速流程图
4 程序仿真
本文程序的仿真主要以proteus软件为主,但是由于proteus软件中不能仿真传感器,以单片机开发试验板为辅,两者交互使用。
4.1 超声波测距程序仿真
超声波测距的仿真采用单片机开发板,通过数码管来显示测量距离,在超声波检查头前方7cm处放一个笔盒,数码管也显示7cm,仿真成功。
4.2 直流电机的PWM脉宽调速仿真
直流电机采用脉冲调速,通过Proteus进行仿真,电路采用2个直流电机,左边采用脉宽调速,右边不调速,进行对比,电机速度 分为十级,以满足要求。电路设计如图6所示。
图6 脉宽调速电路图
4.3 红外线遥控仿真
红外线遥控采用单片机开发板仿真,程序设计主要采用定时中断和外部中断,外部中断接受信号,定时器来计算信号的时间。
图7 红外线遥控测试图
5 结论
基于单片机的扫地机器人中,使用了多种不同功能的传感器,它们影响了扫地机器人清扫的效率、线路方式和房间覆盖率,在现有传感器的基础上,合理的路径规划又可以进一步优化扫地机器人的使用感受,因此,要以实际需求为导向,合理选用传感器,规划路径,在提升使用感的同时,控制成本。