Mixly——运用串口控制步进电机

步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。因此,步进电动机又称脉冲电动机。

1.电机介绍

电机版本图

板载3个小按键,从左到右分别是:

Next     :向下选择

Enter    :确认选择

Menu    :进入/退出参数设置菜单

查看参数方法:按Menu键进入菜单->按Next键向下选择->按Enter键进入子选项,进入后就可以看到该选项当前值是多少了。

参数设置方法:进入子选项后,选择另外的值按Enter确认选择就可以,会自动保存,立即生效 ,不需要断电重启。

参数设置菜单说明:

  • CAL:编码器校准
    闭环模式下对编码器进行线性化插值和电角度对齐,可以提高编码器的
    线性精度,校准前请确保电机类型选择正确。
  • MotType:电机类型选择
    根据自己的步进电机类型进行选择,修改该选项后,在闭环模式下需要
    重新对编码器进行校准。
    0.9°:电机是 0.9 度的步进电机
    1.8°:电机是 1.8 度的步进电机
  • Mode:控制模式选择
    CR_OPEN:开环控制模式,不需要编码器就能运行。
    CR_LOOP:矢量闭环控制模式,有编码器反馈防丢步;
    CR_UART:串口直接控制模式,TTL 串口发命令进行位置/正反转的控制。
  • Ma:设置电流档位
    设置开环模式的运行电流档位,闭环模式/串口控制模式会根据负载大小
    自动调整电流的大小,变电流技术。
    0
    200

    3000
  • MStep:设置细分步数(默认 16 细分)
    支持 1~256 任意细分,其中常规细分 1、2、4、8、16、32、64、128、
    256 可以在屏幕上进行设置,其他细分如 67 细分需要用串口发命令进行设
    置,请参考‘串口通讯’一节进行操作。
    1
    2

    256
  • En:设置 En 引脚的有效电平
    H :高电平有效,外部输入高电平(3.3V 以上)可以使能闭环驱动板。
    L :低电平有效,外部输入低电平(0V)可以使能闭环驱动板。
    Hold:一直保持有效,此时 En 引脚不受外部控制。
    注:如果没有使能驱动板,电机会像没通电一样,用手轻轻就可以
    拧动电机轴,你发脉冲它也不会转。
  • Dir:设置电机转动的正方向
    CW :顺时针旋转为正方向
    CCW:逆时针旋转为正方向
    注:如果方向不对(特别是用在 3D 打印机/雕刻机),不需要修改
    主板的固件,只需要修改该选项即可。
  • AutoSDD:设置自动熄屏功能
    Disable:关闭
    Enable :使能
    注:使能该选项后,在 7 秒内无任何按键操作就会自动熄灭 OLED 显
    示屏,按任意按键就可以重新点亮屏幕。
  • Protect:设置堵转保护功能
    Disable:关闭
    Enable :使能
    注:使能该选项后,驱动板如果检测到电机发生堵转就会触发堵转
    保护,自动关闭驱动器,并在屏幕上显示“Wrong Protect Enter..”。
  • MPlyer:设置内部 256 细分插补功能
    Disable:关闭
    Enable :使能(默认)
    注:使能该选项后,能够有效的减少电机低速运动时的震动和噪音,
    相当于把你当前的细分内部插补到最高 256 细分去跑。
  • UartBaud:设置串口通讯波特率
    Disable
    9600
    19200
    25000
    38400
    57600
    115200
    注:如果你要用到串口,需要设置驱动板的串口通讯波特率。
  • UartAddr:设置串口通讯地址
    0xe0

    0xe9
    注:可以通过该选项来设置驱动板的串口通讯地址。
  • O_Mode:设置单圈上电自动回零模式
    Disable :关闭单圈上电自动回零功能
    DirMode :方向模式(回零方向在 O_Dir 菜单上设置)
    NearMode:就近模式(往最靠近零点的方向回零)
  • Set O:设置单圈上电自动回零的原点(需要先设置 O_Mode 的模式)
  • O_Speed:设置单圈上电自动回零速度档位
    0 :最快的档位

    4 :最慢的档位
  • O_Dir:设置单圈上电自动回零的回零方向
    CW
    CCW
  • ACC:设置闭环驱动板内部的加速度值
    Disable
    286
    412
    538
    664
    790
    916
    1042
    注:该选项是预留和扩展,保持默认值‘Disable’。
  • Exit:退出参数设置菜单

2.电机接线

接线

注意电机上TX接单片机RX,RX接单片机TX!!!初始化串口设置时需要格外注意!

3.电机配置串口

打开串口直接控制功能

  • 在菜单->Mode中,开启串口直接控制功能。

配置串口

电机设置驱动板波特率

  • 在菜单->UartBaud中,选择38400。

38400

电机设置驱动板串口通信地址

  • 在菜单->UartAddr中,选择0xe0

设置串口通讯地址

串口通讯地址默认为0xe0,可以选择其他,但上传的数据也要相应的变化。

4.选择ESP32主控板

    根据主控板型号选择板号:

主控板

5.初始化串口

在Mixly左侧菜单中找到串口界面:

ESP32主控板共有三个硬串口,分别为Serial,Serial1,Serial2,其中有一个串口需要与电脑通讯调试,所以一个ESP32主控板最多只能控制两个步进电机。

串口的界面

选择初始化硬串口:

初始化串口

此处设置为RX的引脚应当接电机的TX,设置为TX的引脚应当接电机的RX。

6.建立传输数组

设置细分(对应屏幕上的“MStep”选项):

设置数组

图示为设置电机细分为128

0xe0 为先前设置的串口通讯地址

0x84 为设置细分的命令地址(CMD ID)

0x80 为需要设置的细分( 十六进制 0x01~0xff 对应 十进制 1~255 ,而 0x00 对应 256 )

最后一项为 tCHK ,需要将前面所有项加起来,取结果的最后两位。

如:e0 + 84 + 80 = 1e4 故 tCHK 项为 0xe4。

设置直接控制位置:

控制数组

图示为控制电机在128细分下转动360度

0xe0 为先前设置的串口通讯地址

0xfd  为串口直接控制电机转动位置的命令地址(CMD ID)

0x10 设置转动速度(speed)(0x00~0x80 对应 正转 0~127 档,0x81~0xff 对应反转 0~127 档)

接下来后面四位 0x00 0x00 0x64 0x00 为需要发送的脉冲数

0x51 为 tCHK,即前面所有十六进制项的和取最后两位。

  • 电机转速如何计算?

Vrpm = (speed × 3000)/(Mstep × 200) 1.8 度电机

电机默认为1.8度电机。

Vrpm = (speed × 3000)/(Mstep × 400) 0.9 度电机

也就是说,细分越多,电机同档位下的转速就会越慢。

  • 如何推算我们需要发送多少脉冲数?

细分的意思是:要发送多少脉冲数才能使电机转动1.8度/0.9度。

由于电机为1.8度电机,

在16细分下需要发送16条脉冲才能使电机转动1.8度,

在128细分下需要发送128条脉冲才能使电机转动1.8度。

以此类推。

因此,想要让电机在16细分下转动360度,需要发送 (360/1.8)*16 = 3200 条脉冲!

同理,想要让电机在128细分下转动360度,需要发送 (360/1.8)*128 = 25600 条脉冲!

7.发送串口数据

执行

控制

使用串口原始输出,输出格式为列表名称 + 列表长度。

8.更多运用

详见步进电机说明文档

密码:dqd2

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
shaowei的头像-易晋科技创客中心
评论 抢沙发

请登录后发表评论