➤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施加电压),驱动器禁止工作。
▲ 步进电机接口
在Enable施加信号的时候,驱动器输出禁止。驱动器上的红色LED点亮。
▲ Enable通电后
B.步进电机
驱动机械臂上下运动的步进电机为 两相四线86步进电机86HBP80AL4 。它位于机械臂底座下,输出轴直接驱动丝杠旋转。
▲ 机械臂上下运动驱动步进电机
它的外部引线定义为:
▲ 步进电机外部引线
制作步进电机驱动器DM542与控制器的接口。
▲ 步进电机与控制板的接口
(2)上下位置限制
▲ 机械臂上下限位
将下限位置开关连入控制板的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)电路板对应管脚
▲ 上下位置接口
注意 :机械臂的下限位连入PP1, 机械臂的上限位连入PP2。
(2)软件管脚配置
STM32输入管脚分别为:
- PS0:PA0: Input-Pin, Pull-Up
- PS1:PA1: Input-Pin, Pull-Up
▲ 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秒
➤※ 结论
对于机械臂的上下运动进行了软件和硬件调试,设置了相应的调用程序。
■ 相关文献链接: