原创文章,转载引用请务必注明链接,水平有限,如有疏漏,欢迎指正交流。| 思兼,sjqlwy@gmail.com,2021年11月12日
这段时间研究了一下 Klipper 固件的文档和源码,对它的使用有了更深入的了解,功能丰富,拓展性极强,仅修改参数不需要每次编译固件这点就比 Marlin 方便太多。如果有疑问欢迎留言,简单问题请自行查看文档,复杂问题我会给个思路,实在搞不定可以付费咨询、远程协助,收费是为了证明知识是有价值的,也排除一些连简单基础的问题都伸手白嫖,转嫁时间成本的人。
本来想要列个大纲,按照计划一篇一篇写,但是后来发现有难有易,所以索性想到哪写到哪,最后再整理汇总,先做出来,再做完美。
3D嘛,由 XYZ 3 个轴构成,常见的 3D 打印机架构有笛卡尔和并联臂等,其中前者可以理解为一个轴由一个步进电机控制,比如 i3 龙门架构;后者一个方向的运动由 2 个以上的电机控制,比如 Delta、CoreXY。由于 Voron 等外观好看的 DIY 开源 3D 打印机的流行以及步进电机绕法的区别,很多朋友安装完毕之后需要调试电机方向。
这个比上面的好理解点,起码有文字注释。我看了一会儿,也没太搞懂。
参考链接:https://wiki.3dphell.com/zh/basic/calibration
也需要三步,如下图所示:
此流程操作傻瓜,比那些八张图,八个判断条件的流程高到不知道哪里去了。
遗憾地表示,我试了一下也没成功。 而且最差的情况,每一步都要调整配置文件。
以上方法都需要多次归零(G28)和急停(M112),操作繁琐,理解困难。我的方法只需要运行一个宏,迅速判断出结果,修改一次配置文件。
首先 CoreXY 的官方网站 可以看到其原理图,我们从这里入手。还有一种 H/D-Bot 架构,本文不展开讨论。
实际的绕线图:
我们首先来分析一下 CoreXY 的特点:
整个系统有 2 根皮带,对应 2 个电机:A 和 B。挤出头在 X 和 Y 方向上的移动,由两个电机参与完成。
当挤出头在斜 45° 移动时,只有一个电机参与。
由于是并联臂结构,其实很多配置里说的 X、Y 电机是不恰当的。除了 X 横梁,A、B电机分别可以放在图示三个位置。我们约定,将 A 电机接到 3D 打印机主板的 X 电机插槽,B 电机接到 Y 电机插槽。
也推荐观看
工程部老周
的视频 《【DIY3d打印入门指南】结构详解,hbot和corexy结构的原理和区别》
之前存在的两种的方法之所以复杂,是因为归零操作一直需要两个电机共同参与,那如果我们观察斜 45° 挤出头的运动方向,此时就像简单的 i3 架构,其运动方向仅一个电机参与,那么就可以快速确认电机方向。
由于 Klipper 的保护措施,只有归零后才能控制轴移动,所以我们要解除这一限制。参考文档。
# 修改 printer.cfg,添加以下内容 # CoreXY 电机方向测试,日常使用请勿开启 [force_move] enable_force_move: True # 使能 M118 控制台输出 [respond]
同时,为了防止喷嘴顶到热床,我们先把 Z 轴归零,然后挤出头离开热床 30mm(此过程可以使用下方的宏)。再把挤出头手动移到热床中间,防止调试过程中撞到框架。
由于我们仅需要控制一个电机,无法使用诸如 G1 X100 F3000
的命令,查看文档 可知使用以下命令 FORCE_MOVE STEPPER=<config_name> DISTANCE=<value> VELOCITY=<value> [ACCEL=<value>]
进行控制。我们写一个宏,方便操作。
[gcode_macro DIRECTION] description: 思兼 | 快速确定 A、B 电机方向,需要设置 [force_move] 为 True gcode: # 归零 Z轴并抬高30mm,防止误触热床。也可以手动操作。 G28 Z G1 Z30 F2000 M117 Goto Right-Back # 提示信息显示在屏幕上 M118 Goto Right-Back # 显示在控制台 # 此时挤出头应向右后方移动 FORCE_MOVE STEPPER=stepper_x DISTANCE=20 VELOCITY=10 # 等待 2秒 G4 S2 M117 Goto Right-Front M118 Goto Right-Front # 此时挤出头应向右前方移动 FORCE_MOVE STEPPER=stepper_y DISTANCE=20 VELOCITY=10
我们记下挤出头两次的移动情况,对照这个图,理论上 先沿红色向右后方移动 20mm
-> 等待 2s
-> 再沿蓝色向右前方移动 20mm
。那么根据实际情况,我们进行分析:
!
!
[force_move]
这种方法个人测试下来还是非常方便的,只需要执行一次宏,就可以快速确认电机方向,适合我这种懒人。后续会分享其他更多好玩、无聊的功能。
另外,由于 CoreXY 在 斜 45°移动时,只有一个电机运行,当速度/加速度过快,空驶的时候速度很快,超过单电机的物理能力,就会出现 geng-geng
的声音,这时就是丢步了。那么如何判断电机是否丢步、如何设置电机的理想电流、速度/加速度?请看下文分解。