《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 小型机器人关节控制电路系统设计
小型机器人关节控制电路系统设计
2015年微型机与应用第12期
黄春晓,白雪飞,黄 鲁,郝 沛
(中国科学技术大学 电子科学与技术系,安徽 合肥 230027)
摘要: 给出一种小型机器人关节控制电路系统的软硬件设计方案。该方案以意法半导体32位单片机STM32为核心处理器,通过CAN总线接收上位机的命令和反馈传感器采集的信息,利用双相DMOS全桥驱动电路芯片A3995驱动关节电机,采用PID算法实现空心杯直流电机的高精度闭环定位控制。其中关节位置信息的采集使用的是AS5045磁旋转编码器,分辨率达到0.087 9°。关节角度转动的误差控制在1°以内,关节控制电路板的面积为11.88 cm2,信号传输速率为1 Mb/s。
Abstract:
Key words :

  摘  要: 给出一种小型机器人关节控制电路系统的软硬件设计方案。该方案以意法半导体32位单片机STM32为核心处理器,通过CAN总线接收上位机的命令和反馈传感器采集的信息,利用双相DMOS全桥驱动电路芯片A3995驱动关节电机,采用PID算法实现空心杯直流电机的高精度闭环定位控制。其中关节位置信息的采集使用的是AS5045磁旋转编码器,分辨率达到0.087 9°。关节角度转动的误差控制在1°以内,关节控制电路板的面积为11.88 cm2,信号传输速率为1 Mb/s。

  关键词: 空心杯直流电机;STM32嵌入式微处理器;磁旋转编码器;PID控制

0 引言

  小型化机器人在通信、军事、医疗、航天航空以及家庭服务等领域具有重要的应用价值。机器人转动关节的准确定位和控制是小型机器人运动控制系统的一项关键技术。关节控制精度、与上位机的通信、功耗、控制电路体积是小型机器人运动控制电路设计时需要重点考虑的问题。

1 系统硬件设计

  关节控制电路的电机选取空心杯直流电机,该种电机具有突出的节能特性、灵敏的控制特性和稳定的运行特性,广泛用于各种机电产品中[1]。本系统为了实现电机的快速准确控制,需要进行比例积分微分(PID)控制算法运算,因此采用低功耗的ARM嵌入式微处理器STM32F103C8T6(以下简称STM32)作为控制器,通过CAN(控制器局域网)总线接口与上位机进行双向通信,充分利用CAN总线突出的可靠性、实时性、可扩展性以及总线利用率高等特点[2]。磁旋转编码器AS5045精度高,用以实时检测电机的位置信息;A3995驱动电路体积小,单个芯片可控制2个电机。上述元件体积都较小,适用于机器人关节处和机器人内部。小型机器人关节控制电路系统如图1所示。

  1.1 微处理器控制电路

001.jpg

  图1中STM32F103C8T6是基于ARM Cortex-M3内核的32位微控制器,负责采集磁编码器实时位置信息、接收上位机通过CAN总线传送的控制命令、进行控制电机转速的控制计算、反馈关节角度信息给上位机。

  1.2 驱动模块电路

002.jpg

  采用双相DMOS全桥驱动电路芯片A3995驱动电路。驱动电路和保护电路如图2所示。双相DMOS全桥驱动能够以高达2.4 A的电流驱动2个8~36 V直流电动机。

  1.2.1 驱动模块电路的设计

  ARM微处理器STM32的3个I/O引脚作为电机驱动芯片A3995的PHASE、ENABLE和MODE控制输入信号,进而控制电机的动作。其中PHASE的高低电平决定电机转动的方向,MODE选择电流衰减快慢模式。STM32定时器输出PWM信号接A3995的ENABLE,用于控制电机转速。

  1.2.2 电流检测保护电路与软件设置

  A3995芯片具有电流检测功能,通过外部编程设置内部保护电路的电压比较器门槛。A3995中的电流检测保护电路如图3所示。

003.jpg

  图3中SENSE1为A3995芯片电流保护电路的电压比较器正输入端,接在H桥(控制电机的正转或反转)的电流输出端口处,经一个0.1 Ω电阻接地,用来检测流过负载(即直流电机)的电流大小。VREF1作为电压比较器的负输入端,A3995内部电路根据该端口输入PWM信号的占空比作为比较参考电压,通过软件设置STM32的定时器使PB1输出PWM信号,降压后相连到VREF1。

  对于电压比较器而言,其正极电平V+与负极电平V-分别为:

  V-=Im×R1

  V+=VREF1÷3

  其中,Im为流过电机电流,R1为采样电阻。对VREF1进行÷3降压处理是A3995内部的功能。当V-<V+时,即流过电机的电流在安全范围内时,比较器输出高电平,直流电机工作正常。而当V->V+时,即电机流过的电流Im较大时,比较器输出低电平,复位PWM锁存器,电机驱动的控制逻辑输出端口被锁住,无法输出信号给H桥,从而关闭了对电机的输出,保护了电机与驱动电路。保护电路原理图如图4所示。

004.jpg

  STM32定时器通过端口PB0输出高电平为3.3 V的PWM信号,平均输出电压为Vout=3.3×duty(占空比)。

  当V+=V-时,流经电机M的电流达到正常值的最大值Imax。此时:

 `3T$R@M$6Q%P(HZKB)DPWE6.png

  其中,R1=0.1 Ω,R2=10 kΩ,R3=10 kΩ,带入上式可得Imax与占空比duty之间的关系式为:

  duty(%)=18.18×Imax

  当Imax限制在1 A时,占空比为18.18%,在整个机器人的关节控制中,可以针对不同电机的Imax限制来设置占空比,从而保护电路。

  1.3 CAN通信模块电路的设计

  本系统的信号传输采用CAN总线通信模式,CAN总线最多可接110个节点,可以进行区域组网,用于小型机器人的多关节联机协调动作。机器人关节节点与主控机进行通信,充分利用CAN报文帧ID识别码的特性,将发送帧的识别码、本节点的编码和本节点接收滤波器的识别码相统一[3]。

  STM32内部本身集成了一路增强型CAN控制器,支持CAN2.0B标准接口,使用时只需连接CAN的收发器即可。具体电路图如图5所示。

005.jpg

  SN65HVD230是3.3 V CAN收发器,信号传输速率最高可达1 Mb/s。STM32中CAN控制器的输出引脚CAN_TX与CAN收发器SN65HVD230的数据输入端D连接,可将此CAN节点发送的数据信息传送到CAN网络中,CAN控制器的接收引脚CAN_RX与SN65HVD230的数据输出端R连接,用于此CAN节点接收数据。

  SN65HVD230具有高速、斜率和等待3种工作模式[4],其工作模式通过控制Rs引脚的电平实现。当Rs通过0 Ω的电阻接逻辑低电平时,收发器工作在高速模式,通信速率达到最高。

  1.4 磁旋转编码器信息采集模块

  机器人关节控制系统传感器必须尺寸很小,灵敏度高,灵活性强。每个关节选取无接触式的磁旋转编码器AS5045来采集位置信息。内部集成霍尔元件,可以精确地测量电机转动的360°范围内的角度,分辨率达到0.087 9°,即每圈可以分成4 096个位置[5]。它的优点有:(1)芯片内部集成一个完整的片上系统;(2)非接触式的位置传感器可以应用在比较恶劣的环境下;(3)无需校准;(4)体积小,便于安装。

  AS5045电路板固定在关节处,为了测量关节的角度,要在关节的旋转轴上安装一个圆形径向磁化双极磁铁,必须对准AS5045芯片的中间[5]。根据关节的机械结构,磁铁可以安装在芯片的上方或下方。由于是无接触式的,因此在转动过程中不会影响关节。其工作原理是:关节在旋转的过程中带动磁铁旋转,AS5045内部的霍尔元件检测到磁性的大小,经过内部的DSP计算,可以输出角度信息。

  AS5045提供PWM输出和绝对值串行输出,本系统中采用的是绝对值串行输出。AS5045检测磁场的方向并计算出12 bit的二进制编码,此编码通过同步串行接口(SSI)进行访问,STM32产生磁旋转编码器AS5045的时钟CLK和片选CSn信号,读取其输出DO信号。硬件电路设计如图6所示。

007.jpg006.jpg

  STM32单片机产生的CSn和CLK信号时序,以及AS5045输出信号DO如图7所示。AS5045的工作过程如下:初始时STM32输出引脚拉高CSn和CLK信号,当需要读取数据DO时,将CSn变为逻辑低电平,数据输出(DO)将从高阻(三态)状态变为逻辑高电平。经过最短时间tclk后,数据在CLK的第1个下降沿锁存至输出移位寄存器内。每个后续的CLK上升沿将移出1 bit数据。STM32采集到的串行字包含18 bit数据,前12 bit D[11:0]是角度信息,后6 bit D[17:12]包含系统信息(奇偶校验、线性误差、磁铁对齐等)。数据全部读完之后,设置CSn为高电平,持续时间为tCSn恢复初始的状态进行后续测量。

  通过STM32的IO引脚接收到的二进制数据Do转换成关节对应的角度值A,转换公式如下:

  A=(Do>>6)×360÷4096

2 系统软件设计

  整个关节控制电路系统是以STM32为控制核心,采用keil作为编译工具,使用C语言开发代码,便于移植。

  主要程序包括系统初始化、启动模块、AS5045霍尔数据采集模块、PID速度控制模块、CAN通信模块。程序流程图如图8所示。

008.jpg

  系统经过初始化之后,上位机通过CAN总线发送控制命令给STM32单片机,霍尔传感器会检测关节所在的位置,通过处理之后发送出关节的实时位置信息给STM32单片机。根据目标值和实时值,利用PID调节kP、kI、kD参数调节占空比,从而控制电机的转动。

  本系统采用增量式PID控制算法[6]控制关节电机转速,进而控制关节在规定时刻到达特定角度。计算的输入量为关节角度偏差值,计算公式为:

  6`H6HL7QI}FAVZ9[5JV`RB0.png

  其中,$C[GYDP0EIAK~VKI[2I`3BF.jpg为k时刻角速度输出。

3 实验研究

009.jpg

  小型机器人关节控制电路系统实物图如图9所示,共有两块电路板,分别是磁编码器电路板和关节控制电路板。关节控制电路板的尺寸为44 mm×27 mm,具有体积小、质量轻的特点,有利于将电路板安装在机器人的关节处以及机器人内部。整个系统的功耗为227.37 mW,其中关节控制电路板的功耗为175.5 6mW,磁编码器电路板功耗为54.45 mW。

  将关节控制电路系统安装在机器人的关节处进行调试,该关节角度范围过零点,起止位置分别是300°和178°,即关节运动时采集到的角度为从300°经过360°(0°)到178°。通过串口与PC相连,在1 s时间内采样拟合的曲线如图10所示,给定的角度值与反馈的角度值误差控制在1°之内。

010.jpg

  4 结论

  本文介绍了一个基于STM32处理器设计的机器人关节控制系统。对微处理器外围电路、电机驱动电路、通信电路以及信号采集电路进行了硬件设计。关节控制电路板的面积为11.88 cm2。通过对机器人关节转动控制的测试,关节角度转动的误差控制在1°以内。本系统软硬件的功能和性能符合小型机器人转动关节控制电路系统的实用要求。

参考文献

  [1] 吴方勇,田伟程.基于ARM的空心杯直流电机伺服驱动器设计[J].机械与电子,2012(8):44-47.

  [2] 赵晓军,曹建坤,李可一,等.基于CAN总线的数据臂通信设计[J].自动化仪表,2010,31(5):13-15.

  [3] 陈瑛,宋俊磊,王典洪.CAN总线在野外地震数据传输中的应用[J].电子技术应用,2013,39(9):34-37.

  [4] 马丹丹.基于CAN-BUS和STM32的智能步进电机驱动控制模块设计[D].杭州:杭州电子科技大学,2013.

  [5] Wang Zhiheng, Zhang Libin, Bao Guanjun. Design and control of integrated pneumatic dexterous robot finger[J]. Journal of Central South University of Technology,2011, 18(4):1105-1114.

  [6] 王恩义,罗先喜,王甲甲.基于PID算法的智能温控系统设计与实现[J].微型机与应用,2014,33(12):18-20.


此内容为AET网站原创,未经授权禁止转载。