
专业版
闭环步进电机(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等需要高精度运动控制的场景。
- 源代码:https://gitee.com/hemn1990/closed-loop-stepper-motor
- 控制板演示视频:
- 自制485总线接口的闭环步进电机控制板 https://www.bilibili.com/video/BV1cDZoYEE3m/
- 闭环步进电机三环控制(电流环,速度环,位置环)演示 https://www.bilibili.com/video/BV18ndfYfEwh/
- 开源闭环步进电机foc控制--电流环前馈效果演示 https://www.bilibili.com/video/BV1LcGmz3Er7/
- 开源闭环步进电机控制板--负载测试 https://www.bilibili.com/video/BV1KBGYzSE3r/
- 控制板应用演示:
- 开源双臂魔方机器人,速度进一步优化 https://www.bilibili.com/video/BV1Ka7DzLEM2/
- 开源双臂双指魔方机器人,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设计

- 设计文件:
- Gerber文件:
hardware/Gerber_PCB1_2025-03-23.zip - 原理图:
hardware/SCH_Schematic1_2025-04-04.pdf - 嘉立创EDA工程:
hardware/ProProject_485接口闭环步进电机控制器_V11_2025-04-04.epro
- Gerber文件:
焊接指南
-
关键注意事项:
- R31/R32:使用10mΩ精密采样电阻(注意区分10mΩ与10MΩ)
- R26:设计预留位,无需焊接
- 焊接顺序:优先验证5V电源后再焊接R2
-
通电前检测:
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文件 |
调试流程详解
-
电机接线参考:
标准线序: 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+ -
连接USB:
- 在驱动板外接供电状态下,通过USB连接电脑
- 系统将识别为CDC虚拟串口设备
-
调试工具启动:
运行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等串口调试工具
-
成功连接提示:
python_tools % ./serial_debug.py /dev/cu.usbmodem1201 成功连接 /dev/cu.usbmodem1201 @ 115200bps 交互式串口终端(输入 'exit' 退出) -
基础指令:
help:显示所有可用指令dump:查看当前配置参数
-
编码器校准:
- 执行
calibration指令(建议空载运行) - 成功校准示例:
Non-linearity error: Absolute: 40.52 counts Relative: 0.2484% - 非线性误差>0.75%时需检查磁铁安装偏心问题
- 执行
-
电流环调试:
- 执行
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指令观察阶跃响应曲线
- 执行

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

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

- 执行
-
位置环调试:
- 调试方式与速度环类似,通常仅需P控制
- 不稳定时可适量增加微分环节

-
梯形加减速调试:
- 使用
trap指令测试加速度参数

- 使用
调试指令参考
常用指令
| 指令 | 功能描述 | 示例 |
|---|---|---|
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加载参数
开发指南
核心算法实现
-
电流环控制:
// 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 + ψ) } -
梯形加速算法:
// trapezoid.c void calculate_motion() { // 运动分段计算 Ta = (v_max - v0)/a // 加速段时间 Tv = (S - Sa - Sd)/v_max // 匀速段时间 T = Ta + Tv + Td // 总运动时间 }
许可证
采用 MIT开源协议,允许商业用途。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程添加到专辑
0
0
分享
侵权投诉
工程成员
知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论