站内搜索
发作品签到
专业版

闭环步进电机(RS485接口)

工程标签

5.1k
0
0
5

简介

42闭环步进电机控制器,支持485总线控制,适用于3D打印机、机器人等的控制。 提供原理图、PCB、BOM、源代码全套、调试指南等全部资料。

简介:42闭环步进电机控制器,支持485总线控制,适用于3D打印机、机器人等的控制。 提供原理图、PCB、BOM、源代码全套、调试指南等全部资料。
复刻成本:40

开源协议

MIT License

创建时间:2025-06-23 19:18:42更新时间:2025-06-24 09:26:02

描述

42闭环步进电机控制器

项目架构图

项目简介

基于RP2040的闭环步进电机控制器,支持RS485总线通信,提供完整的硬件设计、嵌入式固件及调试工具链。适用于3D打印机、机器人、CNC等需要高精度运动控制的场景。

  1. 自制485总线接口的闭环步进电机控制板 https://www.bilibili.com/video/BV1cDZoYEE3m/
  2. 闭环步进电机三环控制(电流环,速度环,位置环)演示 https://www.bilibili.com/video/BV18ndfYfEwh/
  3. 开源闭环步进电机foc控制--电流环前馈效果演示 https://www.bilibili.com/video/BV1LcGmz3Er7/
  4. 开源闭环步进电机控制板--负载测试 https://www.bilibili.com/video/BV1KBGYzSE3r/
  • 控制板应用演示:
  1. 开源双臂魔方机器人,速度进一步优化 https://www.bilibili.com/video/BV1Ka7DzLEM2/
  2. 开源双臂双指魔方机器人,6-7秒还原魔方 https://www.bilibili.com/video/BV1XeNqzpEhM/

核心特性

  • 三环控制架构
    • 电流环(25kHz控制频率)
    • 速度环(5kHz控制频率)
    • 位置环(5kHz控制频率)
  • 高级控制功能
    • 磁场定向控制(FOC)
    • 梯形加减速算法
    • 弱磁控制策略
    • 前馈补偿机制
    • 多重保护(过压/欠压/过流/超速/过热/传感器失效)
  • 通信接口
    • USB-C虚拟串口
    • RS485工业总线

硬件准备

物料清单

关键部件规格说明
主控芯片RP2040
驱动芯片EG3013 ×4
电流采样INA240 ×2
编码器MT6816
电源电路SGM61410 + ME6211

完整BOM清单详见附件

PCB设计

3D PCB渲染图

  • 设计文件:
    • Gerber文件:hardware/Gerber_PCB1_2025-03-23.zip
    • 原理图:hardware/SCH_Schematic1_2025-04-04.pdf
    • 嘉立创EDA工程:hardware/ProProject_485接口闭环步进电机控制器_V11_2025-04-04.epro

焊接指南

  1. 关键注意事项

    • R31/R32:使用10mΩ精密采样电阻(注意区分10mΩ与10MΩ)
    • R26:设计预留位,无需焊接
    • 焊接顺序:优先验证5V电源后再焊接R2
  2. 通电前检测

    1. 测量5V/3.3V对地阻抗,确保无短路
    2. 上电检测电压:5.0V±2%,3.3V±2%
    

开发环境搭建

软件依赖

  • 工具链

    • Raspberry Pi Pico C/C++ SDK 1.5.1(暂未验证高版本兼容性)
    • 参考官方文档配置环境
  • Python依赖库

    pip install numpy matplotlib scikit-learn pyserial
    

固件编译流程

cd mcu
mkdir build && cd build
cmake ..
make

生成固件:mcu.uf2

快速开始

固件烧录方法

烧录场景操作步骤
首次烧录连接USB → 上电 → 拖放UF2文件至虚拟磁盘
固件更新方法1:按住SW1上电 → 拖放UF2文件
方法2:通过prog命令 → 拖放UF2文件

调试流程详解

  1. 电机接线参考

    标准线序:
    A- A+ B- B+
    兼容线序:
    A- A+ B+ B-
    A+ A- B+ B-
    A+ A- B- B+
    
    B+ B- A+ A-
    B+ B- A- A+
    B- B+ A+ A-
    B- B+ A- A+
    
  2. 连接USB

    • 在驱动板外接供电状态下,通过USB连接电脑
    • 系统将识别为CDC虚拟串口设备
  3. 调试工具启动
    运行python_tools/serial_debug.py工具:

    python_tools % ./serial_debug.py
    使用方法: python serial_debug.py <串口设备路径>
    示例:
      python serial_debug.py /dev/ttyACM0
    可用设备列表:
      /dev/cu.wlan-debug - n/a
      /dev/cu.Bluetooth-Incoming-Port - n/a
      /dev/cu.usbmodem1201 - Pico
    

    如果不需要绘图功能,也可以使用screen、minicom、putty等串口调试工具

  4. 成功连接提示

    python_tools % ./serial_debug.py /dev/cu.usbmodem1201
    成功连接 /dev/cu.usbmodem1201 @ 115200bps
    交互式串口终端(输入 'exit' 退出)
    
  5. 基础指令

    • help:显示所有可用指令
    • dump:查看当前配置参数
  6. 编码器校准

    • 执行calibration指令(建议空载运行)
    • 成功校准示例:
      Non-linearity error:
      Absolute: 40.52 counts
      Relative: 0.2484%
      
    • 非线性误差>0.75%时需检查磁铁安装偏心问题
  7. 电流环调试

    • 执行curr_pi 1800(带宽单位Hz,推荐1000-2000范围)
    • 输出示例:
      power voltage = 23.720V
      resistor A = 1.964 ohm, resistor B = 2.013 ohm
      inductance A = 4.093 mH, inductance B = 4.132 mH
      design_bandwidth = 1800.00, Suggest kp = 186489952, ki = 3606615
      
    • 通过curr iq id指令观察阶跃响应曲线

电流环响应

  1. 速度环调试

    • 调试步骤:
      1. 先关闭积分(Ki=0),逐步增加Kp至出现轻微震荡,取该值的60%-70%作为最终Kp
      2. 从Kp/50开始增加Ki,直至消除稳态误差且无超调
    • 参数调整策略:
      • 响应过慢 → Kp增加20%
      • 震荡/超调 → 减小Kp或增大Ki
      • 稳态误差大 → Ki增加50%
    • 示例曲线:
      速度环响应
  2. 弱磁调试

    • 执行psi自动测量磁链参数
    • 高转速电压利用率优化:
      set Ld 0.0060
      set Lq 0.0041
      
    • 可视化工具:
      python_tools/plot_vd_vq.py
      
      示例曲线:
      弱磁曲线
  3. 位置环调试

    • 调试方式与速度环类似,通常仅需P控制
    • 不稳定时可适量增加微分环节
      位置响应
  4. 梯形加减速调试

    • 使用trap指令测试加速度参数
      trap.png

调试指令参考

常用指令

指令功能描述示例
speed [KP KI]速度环PID调试speed 90000 3000
pos [KP KD]位置环PID调试pos 1300 50
trap [accel]梯形加减速测试trap 500
ff [0/1]前馈控制开关ff 1
dump显示所有系统参数dump

完整指令列表

help    # 显示帮助信息
prog    # 进入USB Bootloader模式
reset   # 硬件复位
trap    # 梯形速度曲线测试
curr_pi # 电流环自动整定
psi     # 磁链参数测量
calibration # 编码器校准
485     # RS485通信测试
speed   # 速度环测试
curr    # 电流环测试
pos     # 位置环测试
ff      # 前馈控制开关
test    # [调试]临时功能
stat    # 系统状态显示
dump    # 参数导出
set     # 参数修改
save    # 参数保存到Flash
load    # 从Flash加载参数

开发指南

核心算法实现

  1. 电流环控制

    // foc.c
    void IN_RAM(on_pwm_wrap)(void) {
        // 坐标变换
        id_meas = Iα·cosθ + Iβ·sinθ
        iq_meas = -Iα·sinθ + Iβ·cosθ
        
        // 前馈补偿
        vd_ff = -ω·Lq·iq_target
        vq_ff = ω·(Ld·id_target + ψ)
    }
    
  2. 梯形加速算法

    // trapezoid.c
    void calculate_motion() {
        // 运动分段计算
        Ta = (v_max - v0)/a  // 加速段时间
        Tv = (S - Sa - Sd)/v_max  // 匀速段时间
        T = Ta + Tv + Td  // 总运动时间
    }
    

许可证

采用 MIT开源协议,允许商业用途。


设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
BOM.xlsx
48
2
mcu.uf2
52
3
电机参数.txt
69
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航