对于STM32F103三轴机械臂控制器进行基本功能测试-上下运动功能

 

01 机械臂控制器


1.简介

基于STM32对于三轴机械臂控制器设计 中设计了控制电路板。本文记录对其在机械臂实际部件进行调试的过程。

本文记录了机械臂上下运动测试相关信息。

2.单片机软件

单片机软件所在目录:

D:\zhuoqing\window\ARM\IAR\STM32\Application\XQWF\2020\CNTSTM103\Src\main.c

 

02 上下运动控制


1.控制接口

(1)运动控制电机

A.控制器和接口

使用PSM3进行步进电机接口控制。包括有:Pulse,Dir,Enable三根线控制。其中Enable线时域肩关节和肘关节的步进电机的Enable是公用的。

驱动器 DM542 控制信号中,ENABLE施加信号时候(即:Enable施加电压),驱动器禁止工作。

对于STM32F103三轴机械臂控制器进行基本功能测试-上下运动功能

▲ 步进电机接口

在Enable施加信号的时候,驱动器输出禁止。驱动器上的红色LED点亮。

对于STM32F103三轴机械臂控制器进行基本功能测试-上下运动功能

▲ Enable通电后

B.步进电机

驱动机械臂上下运动的步进电机为 两相四线86步进电机86HBP80AL4 。它位于机械臂底座下,输出轴直接驱动丝杠旋转。

对于STM32F103三轴机械臂控制器进行基本功能测试-上下运动功能

▲ 机械臂上下运动驱动步进电机

它的外部引线定义为:

对于STM32F103三轴机械臂控制器进行基本功能测试-上下运动功能

▲ 步进电机外部引线

制作步进电机驱动器DM542与控制器的接口。

对于STM32F103三轴机械臂控制器进行基本功能测试-上下运动功能

▲ 步进电机与控制板的接口

(2)上下位置限制

对于STM32F103三轴机械臂控制器进行基本功能测试-上下运动功能

▲ 机械臂上下限位

将下限位置开关连入控制板的PP1端口; 上限位传感器连入PP2 端口。

注意:位置开关的输出引脚与控制板的输出引脚顺序不是一致的。

限位开关的三条线的输出引脚功能定义:

PIN1 PIN2 PIN3
VCC GND SIGNAL

控制板上的接口定义为:

PIN1 PIN2 PIN3
VCC SIGNAL GND

2.控制口检测

(1)测试PSM3的输出波形

根据原理图,在control.h定义步进电机输出控制端口:

#define SM_PUL1         GPIOA,4
#define SM_DIR1         GPIOA,5
#define SM_PUL2         GPIOA,6
#define SM_DIR2         GPIOA,7
#define SM_PUL3         GPIOB,0
#define SM_DIR3         GPIOB,1
#define SM_ENABLE       GPIOC,15

在control.c: ControlInit(…)初始化控制端口:

OFF(SM_PUL1);
OFF(SM_DIR1);
OFF(SM_PUL2);
OFF(SM_DIR2);
OFF(SM_PUL3);
OFF(SM_DIR3);
OFF(SM_ENABLE);

OUT(SM_PUL1);
OUT(SM_DIR1);
OUT(SM_PUL2);
OUT(SM_DIR2);
OUT(SM_PUL3);
OUT(SM_DIR3);
OUT(SM_ENABLE);

在main.c中输出相应的波形测试:

if(nCount & 0x1) ON(SM_PUL1);
else OFF(SM_PUL1);
if(nCount & 0x2) ON(SM_DIR1);
else OFF(SM_DIR1);
if(nCount & 0x4) ON(SM_PUL2);
else OFF(SM_PUL2);
if(nCount & 0x8) ON(SM_DIR2);
else OFF(SM_DIR2);
if(nCount & 0x10) ON(SM_PUL3);
else OFF(SM_PUL3);
if(nCount & 0x20) ON(SM_DIR3);
else OFF(SM_DIR3);
if(nCount & 0x40) ON(SM_ENABLE);
else OFF(SM_ENABLE);

(2)测试底座电机

根据 DM542 使用说明书,对DM542进行设置:

1)DM542驱动器工作电压: +24V; 静态工作电流:30mA。
2)DM542设置开关:

  • SW1,2,3: OFF
  • SW4:OFF: 有半流设置。半流功能是指无步进脉冲500ms后,驱动器输出电流自动降为额定输出电流的70%,用来防止电机发热。
  • SW5,6,7,8:ON,OFF,ON,ON:电机每周步数:800.

通过将ENABLE信号关闭,工作电流 0.4A。
如果将SW4修改为:ON,工作电流约 1.5A。

通过输出PUL3脉冲(周围2ms,占空比50%),可以观察到步进电机上升和下降。

3)运动方向:

  • ON(SM_DIR3): Move Up
  • OFF(SM_DIR3): Move Down

3.上下位置传感器

(1)电路板对应管脚

对于STM32F103三轴机械臂控制器进行基本功能测试-上下运动功能

▲ 上下位置接口

注意 :机械臂的下限位连入PP1, 机械臂的上限位连入PP2

(2)软件管脚配置

STM32输入管脚分别为:

  • PS0:PA0: Input-Pin, Pull-Up
  • PS1:PA1: Input-Pin, Pull-Up

对于STM32F103三轴机械臂控制器进行基本功能测试-上下运动功能

▲ STM32F103cb管脚配置

 

03 运动控制


1.运动中断程序

构建中断程序ArmMoveUpDownISR()完成对于机械臂上下运动脉冲输出以及位置上下限的检测。

接口函数:

  • ArmMoveUp():机械臂运动到最上面机械位置;
  • ArmMoveDown(): 机械臂运动到最下面极限位置;

使用系统1ms中断程序输出步进电机的脉冲,脉冲频率为500Hz。上下运动速度有些缓慢:

  • 上下限位之间的距离:14.5厘米;
  • 上下限位之间的运行时间:23秒。

下面通过提高输出中断程序频率来提高运动速度。

2.修改中断程序

  • 中断频率:10kHz
  • 驱动器细分设置:SW5,6,7,8: OFF,OFF,ON, ON;每周1600脉冲。

运动上下中断次数:46300(左右)

运行时间:4.6秒

 

※ 结论


对于机械臂的上下运动进行了软件和硬件调试,设置了相应的调用程序。

 

■ 相关文献链接:

上一篇:html css简单讲解


下一篇:第九章 : 敏捷过程 - 1