学习路线中级

用步进电机实现精密运动:一份学习路线图

你能为一根开环步进轴完成选型、接线、调试和标定,并能诊断出丢步、背隙和比例系数错误之间的区别。

开始前

你需要能够熟练上传 Arduino sketch,以及用万用表测电压和电阻。你不需要预先知道任何电机方面的东西——这条路线就是从步进电机是什么、以及它为什么会这样工作开始讲的。

你将会做到什么

学完之后,你能看着一台跑不到位地的机器,说出它属于四种可能原因中的哪一种。真正把“做得出能用机器的人”和“一直买更大电机的人”区分开的,就是这项技能。

  • 依据扭矩曲线而不是标称保持扭矩来选步进电机。
  • 第一次就把驱动板的限流设对,包括那种换了另一种采样电阻的板子。
  • 为任何皮带或丝杠推导出每毫米步数,然后用一个实测值把它标定下来。
  • 只凭症状就能把丢步、背隙和比例系数错误区分开。
  • 写一个能重复到几微米精度、并且在开关断线时能安全失效的回零例程。

大家卡在哪里

三个地方,而这三处之所以都在这里被明确讲到,是因为它们实在太常见了:

**凭耳朵设定限流。**板子上只有一个没有刻度的电位器,于是人们就转到电机“听起来对”为止。结果要么是电机太弱而跳步,要么是电机太热而在干活途中触发热保护。用万用表花两分钟加一个公式就能解决——而且你必须查清自己那块板子用的是哪种采样电阻,因为同一个 Vref 对应的是两种不同的电流。

**以为更细的细分就意味着更准的机器。**并不是。细分让运动更平顺、更安静,这确实值得拥有,但负载造成的位置误差在整步和 1/16 下完全一样。实验台把这两个数字并排放在一起;这是戒掉这个念头最快的办法。

**跳过加速斜坡。**一台从静止直接被指令到全速的步进电机不会慢慢跑——它只会嗡嗡响并停在原地,因为指令的磁场在转子来得及转起来之前就已经跑掉了。同样是 60 mm 的位移,没有斜坡时会彻底失败,有斜坡时则精确落在目标上。

你需要什么

物品 典型成本 说明
NEMA 17 步进电机,1.5–1.8 A £9–14 40 mm 机身;20 mm 的薄饼式太弱
A4988 或 DRV8825 载板 £2–4 多买几块——便宜,而且会烧
12 V 或 24 V 电源,2 A 以上 £8–15 想要速度就用 24 V
Arduino Uno 或 Nano £4–20 任何带两个空闲引脚的 5 V 板子
万用表 £10–25 不是可选项。没有它你设不了 Vref。
100 µF 电解电容,35 V 以上 £0.20 就是它让驱动器不至于烧掉
杠杆式微动开关 £0.50 回零那一节要用
GT2 皮带 + 20T 同步轮,或一根 T8 丝杠 £6–12 取决于你想做哪一根轴
钢尺或卡尺 £5–20 用来老老实实标定每毫米步数

全套大约 £45,而且其中大部分可以直接带进最后的绘图机器人制作。

为什么按这个顺序

**先学物理,再学接线。**滞后角不是可以跳过的背景理论——正是它决定了后面每一项设置对不对。在不知道限流决定的是 T_peak 的情况下去设限流,你就是在凭感觉拧电位器。先读懂它,驱动器那一节就会变得理所当然,而不是一串步骤。

**物理之后紧接着就是实验台。**读到“扭矩在 90 电角度之后会下降”,和亲眼看到一次运动因此消失,并不是同一回事。模拟器是刻意放在那个位置的——在你花钱之前——因为它建立起来的直觉,正是让你不至于把电机选到 95% 扭矩的那种东西。

**先驱动器,后机构。**每毫米步数取决于细分设置,而细分设置就住在驱动器上。先算术、后跳线,正是人们最终拿到一台恰好错了 16 倍的机器的原因。

**电源放在中间。**它排在驱动器之后,因为那是第一次知道自己的限流值、因而也是第一次能算出热量的时刻。三台通电的 NEMA 17 在静止状态下大约耗散 24 W,这让每一个从直流电机过来的人都大为意外。

**标定之后紧接着是背隙。**这两者产生的症状几乎一样,修复方法却完全不同,而唯一的区分办法是:比例误差是百分比,背隙是固定量。把它们放在一起学,这个区别才会真正记住。

**先运动曲线,后回零。**回零是一次运动,而且是最容易被随意指令的一次运动——不带斜坡地快速寻位,一路撞上硬限位。知道斜坡是为了什么之后,三阶段寻位就讲得通了,而不会看起来像是迷信。

检查点:如何判断一个阶段已经落地

台架测试没通过就不要往下走。每一项都只需要几分钟,而每一项都能抓到一个特定的故障。

在……之后 台架测试 通过是什么样
电机 测量六种线组合之间的电阻 两对读数为 2–4 Ω;另外四对读数为开路
驱动器 不接电机给 VMOT 供电,探测电位器 Vref 与你算出的目标相差在 0.02 V 以内
首次运动 在 1/16 下精确指令一转(3200 个脉冲) 轴回到标记处;重复十次都停在那里
每毫米步数 指令 100 mm,用尺子量 在 1 mm 以内;修正比率后重新测量
背隙 从各个方向靠近同一个标记 记下间隙的毫米数——这个数不为零
运动曲线 一直提速到开始跳步,然后回退 40% 二十次往返循环都回到同一标记
回零 回零十次,每次都给滑座做标记 十个标记全都落在 0.05 mm 以内
安全失效 拔掉限位开关再回零 它会放弃并报错——而不是硬磨

回零重复性测试是最值得较真的一项。如果十次回零没有落在同一个位置,那么回零之后的一切都不可信,而在别处做再多标定也修不好它。

这条路线真正要给的诊断表

上面每一个阶段的存在,都是为了让这张表里的某一行变得可读。一台跑不到位地的机器正在给你提供证据,而误差的形状直接点出原因——这就是十分钟修好和换两周零件之间的区别。

你观察到什么 原因 对应阶段
距离恒定偏一个百分比 每毫米步数不对 每毫米步数
无论距离多远都恒定偏一个固定量 背隙 机构中的间隙
每次运行偏的量都不一样 丢步 滞后角,然后是限流或运动曲线
误差只在快速运动时出现 越过了拐点速度 接线——提高电源电压
误差只在剧烈加速时出现 越过了起动频率 加速度曲线
误差是四个整步的倍数 已确认的磁极滑移 滞后角
误差不是四的倍数 根本不是丢步 去查比例系数或背隙
电机嗡嗡响却不走 指令频率超过起动频率 加速度曲线
一个方向准,另一个方向短 背隙,两个方向都量过了 机构中的间隙
冷机正常,二十分钟后失效 驱动器热保护 接线——降低 Vref,增加通风
每次回零都落在不同位置 没有慢速的二次逼近 回零与坐标
回零完美,加工时仍然落错 工件偏移,或中途丢步 回零,然后是滞后角
恰好错 2×、4× 或 16× 细分跳线与固件不一致 接线,然后是每毫米步数
丝杠轴上恰好短了 4× 该用导程的地方用了螺距 每毫米步数

这两行承担了大部分诊断分量。**“是百分比还是固定量?”只需一次测量就能把标定误差和背隙分开——先指令 10 mm,再指令 100 mm,看误差是否随之放大。而“是不是四个整步的倍数?”**要么直接确认丢步,要么彻底排除它,因为一旦滑移,转子只会落在整整一个电周期之外,不可能落在别的地方。

常见的错误弯路

下面这三件事,是这条路线特意要防住的。

**买更大的电机。**轴一跳步,直觉反应就是换大电机,而它几乎从来不是解法。在一台典型轻量龙门上做选型算术就会看到,摩擦大约以八比一压过加速扭矩——所以一根卡滞的导轨、一条过紧的皮带或一根勾住的线缆,损失的裕量远远超过换电机所能带来的。先测摩擦,再查限流,最后才去看电机。

**用细分去追精度。**1/32 或 1/256 看起来总该比 1/16 更精确。并不是,至少在任何能传递到工件的方式上都不是:负载带来的位置误差在每个分度下都完全相同,而用来区分相邻两个细分步的可用扭矩,会随着细分变小而迅速塌缩——在 1/256 时它只剩保持扭矩的 0.61%,还不如你机器里的摩擦大。细分是为了安静和平顺;精度要从扭矩裕量和刚性机架那里拿。

**机构还没对就先标定。**在一根会卡滞的轴上、或者在一根同步轮会在轴上打滑的轴上标定每毫米步数,得出的数字必然是错的。它在测试运动上看起来完全正确,在其他所有地方却都不对。上面检查点的顺序是刻意安排的:必须先能让轴用手推动得顺滑、没有任何卡点,然后才能从它身上测出任何数字。

这条路线到哪里为止

这是一条开环、单轴路线。它刻意留下了若干内容:

  • **闭环控制。**这里从头到尾没有编码器,所以丢掉的步就永远丢了。这就是这笔交易,而这条路线要教的是让你擅长守住扭矩裕量,而不是擅长从丢步中恢复。
  • **多轴协同。**两根轴一起动、让工具画出直线,这是插补;而 CoreXY 还在上面加了一层运动学混合。绘图机器人制作做的是基本的笛卡尔协同;再往后就属于固件的领域了。
  • **G 代码与固件。**你会把 M92 和 $100 当成设置项遇到,而不是当成一门学科。写一个解释器是另一个项目。
  • **大功率机器。**这里的一切都是按 NEMA 17 和几安培来规划的。主轴、滚珠丝杠,以及那些能把手指切掉的机器,都需要联锁和急停,而这条路线不教这些。
  • **舵机与无刷电机。**那是另一类电机,另一组问题。如果你需要的是带反馈的速度和扭矩,就去看那边。

它确实能给你的,是大多数人真正会做的那一类机器的完整图景:绘图机、激光切割机、轻量龙门、相机滑轨、3D 打印机的一根轴。对这些机器来说,这条路线上的五项内容就是全部的工作。

下一步去哪

顺理成章的下一步是绘图机器人制作,它会一次性用到这条路线上的每一个阶段。如果你更想在控制理论上往前走,PID 控制是反馈进入这张图的地方;如果你想要电机世界的另一半,电机控制讲的是直流减速电机、H 桥和编码器——那是轮子用的,而步进电机刻意不是。

学习路线

路线

按顺序完成各个节点——完成一个就会解锁下一个。你的进度会保存在这台设备上。

已完成 0 / 15

100%
目标

开环给你带来了什么

先读

搭建

用它做一台机器

一个周末

常见问题

常见问题解答

学这条路线之前需要先懂 PID 控制吗?

不需要,而这正是步进电机的意义所在。开环轴没有反馈,因此也就没有需要整定的回路——你让它走 3200 个微步,只要没有过载,它就会走 3200 个微步。这是一个很大的简化,也正是这条路线适合作为精密运动入门的原因。当你超越开环、改用闭环步进电机或伺服电机时,或者当你在控制带反馈的东西时,比如热床或平衡机器人,PID 才变得重要。

可以用 28BYJ-48 和 ULN2003 来学这条路线吗?

用它可以跟上物理原理,但跟不上工程实践。28BYJ-48 是一种单极减速电机,配的是达林顿阵列而不是电流调节型驱动器,所以没有需要设定的限流、没有 Vref,也没有有意义的细分。这里几乎所有实用的经验——采样电阻、拐点速度、电压越高速度越快——在那套硬件上都找不到对应。一台 NEMA 17 加一块 A4988 的总价差不多,却能教会你大家真正会做的那种机器。

闭环步进电机处在什么位置?

在最后,而且只在你需要时才用。闭环步进电机就是在同一台电机背后装一个编码器,再配一个能察觉转子落后的驱动器,于是一次丢步就会变成一次修正或一次报警,而不是一个无声的错误。这消除了这条路线上最尖锐的那种失效模式。它的价格是三到四倍,而对于绘图机、轻量龙门或 3D 打印机来说,充足的扭矩裕量加上合理的加速度曲线,就能免费解决同样的问题。

这条路线要花多长时间?

读完教程、做完模拟器大约需要六个小时的阅读和实验,最后的制作再需要一个周末。这两个实验台值得花比看上去更多的时间:步进模拟器是你唯一能看到滞后角被画成曲线的地方,而培养出关于那道 90 度悬崖位置的直觉,能帮你省下以后大量的猜测。