最近几年机器人的发展越来越快,因此市面上产生了很多各种各样的机器人教学平台。同时在国内有Robocon和RoboMaster这两个比较热门的机器人大赛,国内许多的高校也会以这两个比赛为主题,开展相应的竞技与教学。在大多数参赛高校中,绝大多数高校都选用的Arduino、STM32作为机器人的控制平台,其中STM32是意法半导体旗下的一个系列的微控制器,该芯片系列众多,芯片资源丰富,适用于各个领域。因其工具及库的普及与完善,越来越受到开发者的喜欢。同时STM32相对于Arduino而言,其性能强大,外设丰富,易于开发等等越来越受到大家的重视。市面上的STM32教学平台,没有针对机器人这领域,对开发板进行量体裁衣,导致性价比不高。同时新手在把普通的开发板用于项目时,常常因缺乏保护会导致各种损坏。因此,那些学习机器人技术的对于教学平台的稳定性、可靠性、可拓展性的要求会越来越高。接下来重点介绍此次设计的机器人基础教学平台的硬件设计与其搭建测试。
在设计整个教学平台时需要考虑到整个硬件平台的整体尺寸、外设功能和硬件平台具备一定保护功能。因此,这个教学平台的硬件设计分为主控核心板和控制器转接板。该硬件平台具有如下的特点:①主控核心板与控制器转接板分离后可单独使用;②接线方便,只需要一根micro-usb数据线就可以实现程序的烧录以及仿真;③教学平台硬件电路中带有保护电路,在接错线的情况下不易于烧毁;④教学平台具有很好的通用性与可扩展性,以实现比较多的功能;⑤教学平台的尺寸与树莓派的尺寸相差不大,并且在外接12V电源的情况下可以给树莓派供电。
教学平台的硬件设计方案主要分为主控核心板的设计和控制器转接板的设计。主控核心板是基于STM32F103RCT6芯片为核心,在这基础上与其他的外围电路进行配合而设计,同时根据此次教学平台的设计要求,设计相应的电源电路、保护电路、SD卡接口电路、程序仿真电路、按键电路、主控核心板通信电路、OLED接口电路。同时让主控核心板可以实现与转接板对接,将相应的IO口引出来。
控制器转接板的设计是以主控核心板为基础,扩展教学平台的功能。根据此次教学平台的设计要求,设计相应的电源电路、保护电路、MPU6050电路、转接板通信电路。同时,为了让主控核心板安装在控制器转接板上时可以保持原本主控核心板的通用性,转接板上大部分的功能可以使用拨码开关选择需要使用的功能。
主控核心板上控制芯片的选择将决定教学平台的性能和成本。本次设计所选用的控制芯片为STM32 F103RCT6,该芯片从的尺寸不大,但又拥有39个可用的IO引脚,可以满足这次设计的需求。
3.1.1 主控核心板电源电路设计
在核心板上,输入的电源为5 V,而核心板上的其它芯片全部都是3.3 V,所以需要进行稳压才能给板上的芯片供电。此次设计中,核心板上用了两个3.3 V的稳压,一个用于给ST-LINK电路供电,另一个是给Zigbee、STM32F103RCT6以及它的外围电路供电。图1中,VBUS和5V-IN这两个个网络标号分别表示从micro-usb接入的5 V电源和从外部接入的5 V电源。VCC3.3和3.3 V这两个网络标号分别表示给ST-LINK供电的3.3 V电源和给Zigbee、STM32F103RCT6以及它的外围电路供电的3.3 V电源。这样的设计可以在使用外部电源供电的时候ST-LINK不会启动,而使用micro-usb供电时ST-LINK才会启动。这样在既方便电路的调试,又可以减少在不需调试时的功耗。
图1 主控核心板电源电路
3.1.2 主控核心板调试及通信电路设计
在仅仅使用主控核心板的情况下,调试电路只能够通过micro-usb与电脑连接进行ST-LINK仿真调试。通信的部分可以采用硬件SPI、IIC通信以及串口通信。其中,串口通信可以使用ST-LINK电路中自带的虚拟串口进行与电脑通信,或是开启给Zigbee供电的拨码开关,用Zigbee转串口的无线通信的方式进行通信,也可以使用USB转串口的通信模块进行与主控核心板进行通信。(图2所示的是CAN通信电路,图3所示的是以太网通信电路)
图2 CAN通信电路
图3 以太网通信电路
3.1.3 主控核心板的其他电路的介绍
主控核心板中,为了增加显示的部分,板上留有六针的OLED屏的接口,这些接口可以使用硬件SPI,也可以使用软件模拟SPI的方式来扩展学习功能。同时增加设计TF卡槽的电路,可以让核心板运行RT-thread系统来实现文件系统功能。最后将一些比较经常用到的IO口通过排针引出来。Zigbee使用的PA2、PA3引脚拥有的功能比较多,所以也将这两个引脚在主控核心板中引出来,在不使用无线串口通信的情况下把开关关闭,这样PA2和PA3这两个引脚也可以当作普通的IO使用。
控制器转接板的电路作用主要是将外面输入的电源进行稳压,给主控核心板以及其他需要5 V或3.3 V电压供电的外接模块供电,若是用20到30 V的输入电源,控制器转接板还可以输出13.5 V的稳压电源,可以给一些10 V到20 V电源的外接模块供电。同时,转接板中还集成了一些功能模块,如CAN通信模块、MPU6050模块、W5500以太网通信模块。在连接上主控核心板后,这些模块在需要使用的时候可以打开对应的拨码开关,给这些电路供电。若是不使用的情况下可以把对应的开关关闭,这样的话可以不占用IO口。最后,在转接板上添加一个CH340G的电路,为了方便改写Zigbee参数而使用的,只有使用电脑通过数据线接上控制器转接板的microusb接口才会启动,在其他情况下它不会启动,也不会占用IO口的资源。(图4所示的是控制器转接板的模块连接电路)
图4 控制器转接板模块连接电路
基础教学平台的硬件组成主要由主控核心板、控制器转接板和OLED显示屏模块组成的。
4.2.1 基础教学平台的硬件保护功能测试
为了避免教学平台的硬件在测试的时候出现问题而导致主控核心板损坏,所以先对控制器转接板进行测试。在没有安装主控核心板前先对电源的稳压效果以及防反接保护电路的效果进行逐个测试。经过测试后,基本可以实现对应保护效果,因此可以得知此硬件平台的稳压电源方面没有问题并且还具备一定的保护作用。测试防反接的效果如图5、图6所示。
图5 硬件平台外接供电正常接入的效果图
图6 硬件平台外接供电反接的效果图
4.2.2 关键部分功能模块测试
把教学平台安装好了之后,再对该平台所使用的关键部分进行独立的编程测试,以下进行了OLED模块、Zigbee无线模块、W5500以太网通信电路、MPU6050电路的测试,观察此部分的运行状况。如图7、图8、图9所示。
图7 OLED显示屏输出测试
图8 Zigbee与MPU6050电路同步测试
图9 W5500以太网通信信测试
4.2.3 基础教学平台与树莓派组合使用
如图10,为基础教学平台与树莓派的适配组合。教学平台除了自身可以利用CAN扩展很多从机设备外,其也可以通过以太网与树莓派进行通信,以此来扩展很多丰富的应用场景。
图10 基础教学平台与树莓派的组合
如图11,为实际对战平台项目的应用组合案例。
图11 基础教学平台与树莓派组合应用案例
图12中,电脑上位机作为从节点,负责监控与调试。树莓派4B作为ROS主节点,负责激光雷达的数据处理,并通过串口rosserial协议与STM32主控作数据交互。STM32主控负责IMU陀螺仪数据处理,并把STM32电机控制器的电机信息上传与其IMU数据一并通过USART,反馈到树莓派上去,做综合运算。STM32电机驱动控制器,负责4个电机的精准控制,并通过CAN通信,把速度与位置信息上传。
图12 机器人系统架构
如图13所示,描述了一个自主导航机器人项目应用搭建出来的机器人系统运行时所描述的机器人节点关系图,每一个节点都是一个机器人软件功能包。/move_base节点提供了一个ROS接口,用于配置、运行和与机器人上的导航功能包集进行交互;/amcl节点用于根据已经有的地图进行定位;/map_server节点提供作为ROS服务的地图数据;/tf保持对多坐标系的跟踪并维护坐标系之间的关系于树型结构中,该话题被分发所以在ROS网络中的有关所有坐标系的信息每个节点都可以获得;/odom话题分发关于机器人里程计的传感器数据;/base_control节点具备解析控制指令中速度、角度的能力,并且最终通过这些指令控制机器人完成相应的运动目标;/rplidarNode节点发布关于激光雷达的扫描数据的/scan话题。
图13 机器人节点关系图
自主导航机器人搭建实物,如图14所示。该机器人基础教学平台,可以很好地应用在各种机器人项目种,所以该平台具备很好的项目应用价值,既能保证平台不容易损坏,也能大大缩短开发周期。
图14 机器人移动平台
本文提出了基于STM32的机器人基础教学平台研究与设计的方法,具有通用性特点的同时,本身还具有比较多功能模块,可以满足许多基础学习的功能,若不使用集成的模块,也可以将相应的模块功能关闭,减少功耗并且可以空出对应的IO口。该基础教学平台适用于较宽电压的供电电源,同时具备一定的保护功能。通过一系列的硬件测试得出每一部分的模块电路都可以正常长时间使用,同时结合机器人移动平台开发项目总体上都取得良好的效果,表明该机器人基础教学平台稳定可靠,可以适用于机器人领域学习用途以及各种实际项目的使用上,具备一定的教育与应用发展前景。