
基于STM32的职场清洁机器人设计
本系统由STM32F103C8T6单片机核心板、2路红外避障模块、2路按键、风扇驱动、电机驱动、升压模块、锂电池充电模块及电池盒供电组成。按下启动按键后,小车启动,同时,风扇转动吸尘;按下停止按键后,小车停止转动,同时,风扇停止转动。小车在运行过程中,当一侧的检测障碍的红外传感检测到有障碍的时候,系统立刻接受到数据然后将其向另一侧转动,如果两侧同时感觉到障碍物的存在的时候(小车可能走不动了),则小
摘 要
为了促进科技与生活的结合,以及结合我的工作环境,我对目前市场上已有的扫地机器人进行了一个简单的调查。
近几年来,安杰公司基于“人机结合&整体运营&品质提升&成本降低”的服务理念,先后推出人机整体运营服务,各行各业各种代表着不同领域的机器人,通过不同方式的提供的服务,满足物业管理行业多样化的应用和部署要求,加速物业服务企业服务创新升级。这些智能机器人不论是哪一种都离不开低速SLAM技术,移动系统、感知系统、控制系统和吸尘系统,集合了传感检测、信息处理、运动控制、电源等多学科研究。
针对我的工作环境,我设计了一款可以适用于多种大型的人员密集的职场使用的清洁机器人。主要是利用STM32单片机对其整体进行控制,并加入两路红外传感器和一个风扇系统,以及利用Keil进行软件的程序编写。
经实验后,将硬件部分与软件程序结合起来,整个系统在工作时能够彻底脱离人工控制,在室内工作遇到墙壁,桌子椅子等障碍物时能够自动检测出来,然后能够自动进行躲避,做出左转、右转或后退的反应按下开关后电机启动,可完全脱离人工控制,达到自动清洁的效果。
关键词:扫地机器人;STM32;路径规划;嵌入式系统
1 主控系统方案设计
1.1 整体方案设计
本次研究的产品基于结构和系统的设计。对于前者来讲,主要是运用Solidwords3D制图软件来绘制零件,后者主要是电路的焊接以及之后对于程序的设计和调试,对于硬件的角度电路,指示灯,光耦电路等等;大量数据采集的应用来处理电动机的转速,具体的框架以及思路如图2.1所示:
图2.1 系统方案框图
专业课中接触最多的单片机就是AT89C51和STM32,所以在两种单片机中的选择上,我做出了以下比较:
方案一:用C51单片机为核心的主要机器人,基于红外线功能和声波的模块的构成,使扫地机器人具有避障,和可以遥控的这两个核心和功能,通过各个功能的配合,可以使小车通过系统内部的计算来实现精准的避开大部分障碍,使其沿着设定好的轨道工作,即设计小车按照预设黑线循环打扫,LCD实时显示了离障碍距离和运行状态。
方案二:根据各种模块传感的集中交互来完成高效率情节以及保持正确路径的机器人,提高底盘稳定性,在此基础上增加数据之间的计算,这样得以使传感器得到的数据能够更加高效的计算给动力系统,减少对于路面以及障碍物的凹凸不平的表面等带来的误差[4],保证这些,在清洁能力上要有稳定的执行,根据需要清扫的对象的大小形态做出正确的判断之后然后做出相应的对策来完成高成效的对策。同时也在耗能和成本两个关键部分得到舒缓。
对此情况来看的话,STM32其外设更加多样化,也就可以满足各项功能的实施,相比其他单片机而言,增加了更多的定时系统以及多个外部链接的中断功能、PWM模式等一些输入相关的模式[5],使作用范围大大提高,但是C51这种比较传统的老牌单片机,相对比只能控制高低电平而言就更加局限了。
所以,方案二,采用STM32单片机是更好的选择。
1.2 整体模块及功能介绍
本系统由STM32F103C8T6单片机核心板、2路红外避障模块、2路按键、风扇驱动、电机驱动、升压模块、锂电池充电模块及电池盒供电组成。
按下启动按键后,小车启动,同时,风扇转动吸尘;按下停止按键后,小车停止转动,同时,风扇停止转动。
小车在运行过程中,当一侧的检测障碍的红外传感检测到有障碍的时候,系统立刻接受到数据然后将其向另一侧转动,如果两侧同时感觉到障碍物的存在的时候(小车可能走不动了),则小车后退然后旋转调头。
2 硬件设计
2.1 STM32单片机核心电路设计
基于成本和耗能的双向成本的前提,选用STM32这一类核心处理器,这种处理器是源于ST这家意法半导体公司的一种产品仿真且具有控制的微型设备[6],在实现原有的功能的前提,又为设备增加了更多的外设连接的功能,这样就能设计其他项目所用的其他辅助电路的配合,这种芯片,上手非常容易就能完成单片机所有课程的研修,此外,在其他领域也有很多作用,比如:医疗等,非常值得深入探索和专研。
STM32的主要优点:
(1)先进的架构,处理数据宽度为32位[7];
(2)丰富的外设,多达14到17个定时器;
(3)出色的能量节控,工作时间跟更长;
(4)浮点运算功能,计算更加精准;
(5)更大整合和调控;
(6)市场前景可观,性价比更加高。
STM32单片机平台精选:
对于集中开发共平台的角度而言,STM32单片机无疑是首选。
(1)从简单单一的定时到多个定时器和PWM功能的强化[9];
(2)从解决需求到实现需求的同时提高精度;
(3)从低成本的开发再到高层次的应用;
(4)高性能脚对脚,添加外设以及超高的兼容,将单片机的灵活性提高了不只一个层次,如果客户想要更多的需求如:提高内部储存等,在不改变核心框架的基础上,就可以完成对功能的添加。
STM32单片机核心板接口电路图及实物图如图3.1所示:
(a)原理图 (b)实物图
图3.1 STM32单片机核心板接口原理图及核心板实物图
3 软件设计
3.1系统工作流程图
图4.1 系统工作流程图
3.2Keil软件概述
Keil是一个兼容单片机,C语言软件开发的一个综合性能系统,由美国的Keil software公司推出,其功能比较全面,提供了比较多的库数据供给人们使用和查阅,包括调试器、宏汇编器、ANSIC编译器等,固定部件和实时的编写系统内核。生成的代码的效率之高速度之快,更容易理解,这种单片机已经超过十万余人的工作相关人员使用和认可,目前已经成为这个行业的标准,从1988年开始引入市场以来,能支持甚至超过500多种8051单片机开发中核心的微控制器和变异。
Keil软件界面如图4.2所示:
图4.2 KeiluVision5开发界面图
4 编程语言选择
程序的主体采用C语言进行编写,C语言是一种比较高级的编程性语言,其中的过程相对来说比较难懂,在计算方面主要是浮点型的数据[19],计算量非常大。当然对于单片机本身而言,根本无需考虑这些,也不需要考虑他的内部是什么结构等,其中的寄存器是由编译器来管理和分配的。之中也提供了大量的库文件,大大的降低的工作难度,提高了效率,C语言更是试用大部分目标的系统,在语言的功能和编程的环境以其他语言相比而言,这几个结构看来,或在可读性、可移植性和可维护性,具有明显的优势,是第一选择的编程语言。
4.1 CH340串口程序烧写模块介绍
这个模块是实现对单片机的代码进行烧写,模块的接口采用全国统一的USB接口,这样就极大的增加更多设备进行单片机的程序修改和烧写的问题,再加上这个下载器性能非常高,价格相对还便宜,必然是开发的不二选择。
CH340串口烧写模块特点:
(1)支持USB1.1或USB2.0通信;
(2)全面支持WIN98、WINME、WIN2000、WINXP、VISTA、WIN7 等操作系统;
(3)通过USB 口供电,支持3.3V和 5V的电源电压;
(4)在硬件全双工串口,内置收发的缓冲区;
(5)程序运行独立性;
(6)支持MODEM联络信号:RTS、DTR等等;
(7)软件兼容CH341[20],可以直接使用其驱动;
(8)用笔记本电脑的客户也可以使用,速度和稳定都有所提高;
(9)进口原装,可靠性强,可以放心使用和实验;
如图4.4所示:
图4.4 CH340串口模块
5系统调试
5.1硬件调试
在组装好各个模块以后,我先尝试着用STM32来控制小车的正常运动,并观察地步吸尘模块是否转动,结果实验成功,证明单片机运转正常。然后尝试避障,在小车运转过程中分别用纸片遮住左前方的红外传感器和右前方红外传感器,看小车是否能够正确避障转弯,首次实验小车的转向刚好相反,通过修改源代码,能够让小车正常的躲避,达到了检验的之前我的预想的机械性能。
通过对核心主板的测试的过程里,因原理图中有一处错误连接,引起了小车的芯片的热量过高,随后修改了它的原理图之后,解决了这一错误,小车又能够正常运作。
图5.1 整机装配效果图
5.2软件调试
Keil最大也是最实用的优点就在于它能够通过编译功能在撰写完程序以后的第一时间发现其中存在的问题,在出现错误警告的同时还不会影响程序运行,所以我可以直接在编写程序的同时发现错误,及时改正,并通过仿真来预测运行结果,这样可以大大降低损坏元器件的风险。在仿真后确保程序没问题,导入芯片,打开电源,指示灯亮,按下启动键,测试运行状态及避障功能。
6 结 论
通过以上分析,可以看出,完善的导航系统对于室内清洁机器人来说是十分重要的,目前市场上多数清洁机器人都仅仅针对于家庭中的使用,但随着经济和时代的发展,此类的先进技术并不该仅仅拘泥于家庭,一些人员密集,人工清洁不便的职场也应该被关注。显然,被应用到职场中的清洁机器人在要求上是一定比应用于家庭中要求更为严格的。
本设计中主要包括面板部分,避障模块,行走机构以及清扫机构等。结构设计思路:为了实现自动避障功能,在机器前端安装2个红外传感器进行距离检测;为实现机器灵活行走功能,利用前端一个万向轮与左右两个驱动轮差速来完成行走功能;为了实现清扫功能,在底板中部偏后的位置安放清扫机构;为了减小接触的冲击力,在充电触点后面增加两个减震弹簧,为了准确方便的接触触点,充电触点安置在正前方。其中:机器的行走机构包括左右两个驱动轮和前端万向轮,机器的转弯是通过两个驱动轮的差速来实现。轮子采用的是橡胶材料,可以让机器在运行过程中减少噪声;机器的清扫机通过电机带动风叶旋转形成低压气流来实现吸尘功能。
本课题研究中我选择的是微声电机,避免了影响员工工作的问题;应用了STM32单片机,能够简单轻松的实现清洁功能;此外,自行清洁避障又能够节省大量人力物力。从功能上来说,大体实现了我最初的设想,如果有机会,我将进一步对其进行改造,让该机器人能够在清洁的同时起到一个加湿器的作用,能够保持室内空气的湿度,创造一台全能的清洁环保机器人,实现“一机多用”。
更多推荐
所有评论(0)