刘卫华 戴健雄
摘要:结合华北五省擂台机器人比赛规则,采用STM32微处理器为主控制器设计硬件系统, STM32微处理器具有设计周期短、成本低等优点。本文阐述基于STM32构建系统组成、工作原理及软件设计。观测数据可通过OLED显示,也可通过串口传给计算机。实验结果表明,系统工作可靠,电路结构简单。
Abstract: Combining the competition rules of the robot competition in the five provinces of North China, the STM32 microprocessor is used as the main controller to design the hardware system. The STM32 microprocessor has the advantages of short design cycle and low cost. This article describes the composition, working principle and software design of the STM32-based construction system. Observed data can be displayed via OLED or transmitted to a computer via a serial port. The experimental results show that the system works reliably and the circuit structure is simple.
关键词:STM32;PI;传感器;机器人
Key words: STM32;PI;sensor;robot
中图分类号:TP242 文献标识码:A 文章编号:1006-4311(2020)09-0034-03
0 引言
为了培养和开发大学生的聪明才智与创新精神,展示当代大学生机器人制作能力与高新技术应用水平,国内各类机器人大赛得到众多大学生的积极响应和参与。其中擂台机器人赛由于场地需求小、操作安全和观赏性强,国内已有多所高校进行相关研究并设计了多种方案。由于我国51单片机课程开设广泛,应用成熟,众多方案中大多采用51单片机作为处理器,但由于51单片机运算速度慢,抗干扰能力不强,严重影响了机器人的快速和稳定。本文以高达72M时钟的STM32处理器为机器人的主控器,使用模拟量红外测距传感器设计新型的擂台机器人控制系统,具有探测目标精度高,速度快并能加入PI算法实现机器的快速、机动灵活控制。
1 系统总体构成
系统选用ST公司的型号为STM32F103ZE微控制器作为主控制器,这是一款基于ARM公司Cortex.M3内核的STM32系列微处理器,秉承底层函数公开的原则,便于用户更深层次的开发。STM32F103ZE具有112个GPIO端口和512KB闪存及64KB能以0周期訪问的SRAM,其丰富的外设接口USB、CAN、USART、ADC、PWM、SPI等,便于外设扩展,内置3个12位高速ADC模块,便于模拟量的采集。
基于STM32微处理器设计擂台机器人控制系统框图,如图1所示。测距传感器、边界传感器、区域传感器作为机器人的“眼睛”,完成对方机器人进行目标、边界、区域的检测。STM32微处理器通过12位AD数模转换完成外部的信号采集、转换和处理,经过PI算法处理形成快速反应,驱动j电路控制电机作出正确的方向运动。为了方便调试和操作,通过OLED模块实时显示采集的数据和运行状态。
2 主要硬件电路
2.1 传感器模块
测距传感器使用夏普的红外距离传感器GP2Y0A02YK0F,其输出模拟电压与距离成反比关系。红红外距离传感器由红外发射管与接收管组成,红外光照射到物体并反射,反射强度与物体距离有关,根据接收到的反射光强弱判断距离,为模拟量输出。边界传感器使用E18-D80NK,为开关量输出。边界测量可根据现场环境进行调节E18-D80NK上的电位器达合适的测量条件。擂台上的颜色由中心向外渐变加深的,区域传感器使用灰度传感器来定位车体大致区域。
2.2 电机驱动
良好的电机驱动系统使武术擂台机器人强劲有力,也是武术擂台取胜的关键部件。由L293或L298全桥芯片构成的直流电机驱动系统,由于简便、成本低廉,得到了广泛应用,但由于内阻较大,在大电流时芯片发热严重,系统的整体效率较低,表现在机器人上,由于电机控制芯片内阻过大导致机器人的加速度变小,不适合应用在需要快速机动的武术擂台比赛场合。
基于STM32的擂台机器人驱动电路,如图2所示。Q1、Q3和Q2、Q4组成H桥,控制电机的正转和反转。驱动的MOS管均为N沟道器件,并且上下桥控制电压不同,为了方便实现N沟道MOS管驱动,这里选用专门桥驱动芯片IR2104。STM32控制器产生的PWM信号输入IR2014的SD引脚作为转速信号,主控制器DIRA/DIRB输出至驱动芯片IN管脚作为转向信号。
2.3 电机过流保护电路
在控制电机过程中常常与对手碰撞,并且频繁换向,为了防止电机出现超载或堵转而使得电枢绕组电流过大烧毁电机甚至引发火灾,以及解决电机启动时启动电流很大,不能直接启动,需要等励磁绕组逐渐建立磁场后再正常运行的问题,专门设计了电机过流保护电路。电机过流保护电路原理图,如图3所示。电机电流通过在康铜丝产生的压降,经过运算放大器LM358对其电压信号进行放大后的模拟量送至STM32控制器进行模数转换,同时将经过LM339电压比较器,比较后的数字量送至控制器,以上信息经处理后控制电机驱动电路起到过流保护作用。
3 软件设计
软件设计思路是擂台机器人根据传感器的测量数据经处理后,通过PWM和DIR信號控制电机驱动电路实现直流电机的转速和方向控制。系统软件要实现的功能如下:采集各路传感器数据;设定电机的转速和方向;电机转速连续可调并具有良好的动态和静态性能;速度控制采用PI算法加快响应速度;具有电机保护功能,当电机出现堵转、电流过大时能停止。系统整体流程图,如图4所示。
3.1 上台程序
上台程序主要完成擂台机器人的自主上擂台功能。比赛开始后机器人启动,通过测距传感器和边界传感器,找到最近的擂台边缘,并对正,然后快速启动电机上擂台。
3.2 目标检测程序
目标检测程序主要是完成对抗方机器人的位置检测,同时保证通过边界传感器和区域传感器,了解自己的位置,保证在进行攻击时不掉下擂台。因在整个比赛过程中需要实时检测对方机器人的位置,所以目标检测程序需一直循环进行。
3.3 电机控制程序
电机控制程序实现机器人灵活、高效及快速反应,根据上台程序、目标检测程序传来的数据进行实时有效的分析,控制直流电机的转速和方向,并根据过流保防电路提供的实时电流信息,实现电机的快速启动和保护。
4 结束语
本文设计的基于STM32的擂台机器人,能实现擂台机器人竞赛的规则要求,具有低成本、控制方便、扩展方便等优点。此平台可作为机器人基础教学平台,实现传感器应用、电机控制、嵌入式系统程序设计等课题学习。
参考文献:
[1]王永虹,徐炜,等.STM32 系列 ARM Cortex-M3 微控制器原理与实践[M].2008:26-40.
[2]ARM Limited. ARM Cortex-M3 Technical Reference Manual, 2006.
[3]曾谢华,等.基于红外传感器的智能灯控装置设计[J].昆明冶金高等专科学校学报,2011,27(1):31-35.
作者简介:刘卫华(1977-),男,江苏海安人,实验师,研究方向为嵌入式系统。