步进电机驱动机械臂关节的编程实现

        对同一个步进电机而言,末端执行器由初始位姿变换至不同的目标位姿时,其旋转方向、旋转速度及旋转角度通常不同。并且,在变换的过程中电机转速也不是恒定的:变换初期电机加速旋转,变换中期电机匀速旋转,变换末期电机减速旋转。

        为确保关节正确旋转以及末端执行器能以稳定的轨迹到达期望位姿,必须对驱动各关节的步进电机进行精确的控制。本文选择以AT mega 2560为核心的Arduino下位机和两种型号的步进电机驱动器完成对步进电机的控制,相关代码烧录于下位机中,下表列出了控制1号电机的Arduino程序中所用到的主要变量名称及含义。

1号电机控制程序中主要变量名称及含义

序号

名称

含义

1

ACCStep

加速运动步数

2

DCCStep

减速运动步数

3

J1step

1号电机旋转步数

4

AdjSpeed

机械臂速度参数

5

J1caldir

1号电机旋转方向

6

J1rotdir

1号电机旋转方向标识

7

J1stepPin

1号电机脉冲控制引脚

8

J1dirPin

1号电机方向控制引脚

        以关节1的控制为例,关节1的旋转方向由1号电机方向控制引脚J1dirPin控制,当引脚为高电平时电机反转,低电平时电机正转。方向控制引脚J1dirPin 的电平由J1caldir与J1rotdir共同决定。其中,J1rotdir由电机驱动的型号决定,J1caldir由上位机的运算结果决定。

        关节1的旋转速度的调节是通过延时函数delayMicroseconds()以及机械臂速度参数AdjSpeed实现的:参数增大,延时时间增长,关节旋转速度降低;参数减小,延时时间减少,关节旋转速度增加。

        关节1的旋转角度由加速运动步数ACCStep、减速运动步数DCCStep及1号电机旋转步数J1step确定。

你可能感兴趣的:(机械臂速成小指南,经验分享,单片机)