张健 蒙靓
摘 要自主移动机器人是经过内外部传感器分析外部环境与自身情况,在障碍物环境中实现对目标的自主移动,进而实现相关操作的机器人系统。其含有单片机、传感器、通信接口以及人工智能等领域的相关技术,本文将研究的为基于STM32轮式移动机器人。
【关键词】移动机器人 传感器 人工智能
STM32为系列微控制器,是ST公司推出的基于Cortex-M3内核处理器,其可以实现高速的运算,同时外设的配置可以带来极为优异的控制与连接能力。具有先进的内核结构、优异的功耗控制以及性能出众的高度集成,可以作为智能移动机器人的控制芯片系统。
1 轮式移动机器人的硬件设计
1.1 系统的总体方案
对于轮式移动机器人的总体设计,控制系统极为重要,其是整个系统的核心。本文设计的智能轮式移动机器人,含有障碍物检测、自主定位以及避障等功能。依赖于这些功能,研究的控制系统含有:电源模块、微控制器模块、电机驱动模块、通讯扩展模块等。系统的结构如图1所示。
1.2 电源系统的设计
主控器的电压为+3.3V,电机驱动所需要的电源为+12V,为此选择+12V作为系统的主电源,+3.3V经过电路内部添加电源转换芯片获取。转换芯片为LM1117进行,在输入与输出两侧添加电容,降低了电源扰动的干扰,使得系统的可靠性大幅度提升。
1.3 微控制器模块的设计
本系统采用的为ST公司半导体生产的STM32芯片作为移动机器人的中央控制器,工作的频率可以达到72MHz,实现高速的運转。内含有高速储存器,丰富的增强型I/O端口与连接两条APB总线外设,实现了对于外设备的控制与联通。处理器含有多种低功耗模式与灵活的时钟控制模式,可以依赖于设计的需要开展合理的配置。
基于主控器STM32的最小系统硬件电路含有电源控制、复位电路、晶振电路以及JTAG接口电路等。对于电源控制电路,为提升转换的精确度,ADC使用的是独立电源,自动屏蔽来自印刷电路板上面的毛刺干扰。在复位电路模块,复位操作主要是对于系统开展新的初始化,除了开展正常的开启之外,在程序运行出错或者是系统锁死的情况下,都是可以通过复位开展系统的初始化,本文采用的按钮复位的模式。
对于晶振电路,STM32上电复位之后默认使用其内部的晶振,如果外部连接的为8MHz晶振,可以自动的切换到外部的8MHz晶振,并最终PLL倍频率到72MHz,本系统设计的为8MHz外部晶振,同时连接的32KHz是为RTC提供时钟信号。向主控制器下载程序采用的为JTAG接口,其为国际标准的测试协议,其应用于实现ISP,也就是对于控制器所含有的FLASH等器件进行编程操作。
1.4 障碍物的检测
本文采用的为红外光电传感器,其通过物体对红外光电辐射出的红外线产生的有无强弱而检测物体的有无。光电开关会将输入的电流 转变为光信号输出,接收模块通过判定接收的光线强弱与有无对于目标进行探测。
本文选择的红外开关性能参数如下所示:电压为5VDC,电流为100mA,测量的范围是3-50cm。本文选择的红外开关为数字型传感器,正常情况下没有检测到障碍物时传感器输出为高电平,在检测到障碍物的时候传感器输出的为低电平。实际测量的死后,将光电开关连接的I/O口设置为下降沿触发中断,如果主控器检测是障碍物引起的中断后,就可以判断到底为哪一路光电开关检测到的障碍物,进而判定障碍物的确切位置,进而采取相关的措施来规避。
1.5 电机驱动模块
轮式移动机器人使用的为直流电机实现其行走功能,行走的时候为前后两个方向,避开障碍物的时候需要调速电机调节速度实现转向。转动方向的变换通过改变所加载的电压极性实现,电机的驱动芯片为L293D,不仅使得硬件的电路极为简化,同时输出功率大幅度增加,有利于电机转速的稳定。
L293D电机驱动芯片服从的为TTL接口的标准,其直接的用来驱动一些功率较大的负载,通过对于芯片的控制信号输入端开展逻辑的编辑就可以实现电机驱动电压的极性变化,也就是形式方向的调整。同时因为L293D芯片在工作的时候发热量较低,体积小等特色,芯片可以独立的控制两个电机,为此十分适合于本文的需求。
2 系统的程序设计
轮式移动机器人控制的程序主要任务是实现系统的初始化,处理红外传感器测距、电机驱动以及转速检测、外部无线通信指令接收等。在接收得到外部指令的时候,会执行相关的程序,假如没有接收指令,则运算的是障碍物的检测程序,假如检测前方没有障碍物出现,移动机器人向目标行走。如果传感器检测到前方具有障碍物,则进入到避障处理的子程序,移动机器人实施其含有的避障操作,最后通过CAN实现数据的收发。如图2所示。
3 结束语
本文设计的轮式移动机器人,不管是在科学探索领域还是工业领域都具有十分重要的应用,其是基于STM32为主控器,系统完成的工作含有以下几个层面:
首先在充分考虑智能轮式移动机器人结构的技术上,通过STM32作为移动机器人的控制核心,实现各个功能为电源模块、微控制模块、障碍物检测模块以及电机驱动模块等。通过Keil MDK开展软件的编写,为后续的维护以及代码升级等提供了便利。
参考文献
[1]徐鼎新,符秀辉.基于STM32芯片的移动机器人的避障研究[J].电子技术与软件工程,2016(20):132-133.
[2]万军,吕值敏,文方国.基于STM32平衡两轮移动机器人的设计与实现[J].电子世界,2016(07):145-147.
[3]沈友建,黄孝鹏,肖建东等.基于STM32的机器人自主移动控制系统设计[J].微型机与应用,2016,35(18):58-61.
[4]边明明.基于STM32F103的移动智能车硬件设计[J].煤炭技术,2014,33(08):183-185.
作者单位
长沙理工大学物理与电子科学学院 湖南省长沙市 410114