MakerLab创客实验室 — Let's Make something.
现在注册
已注册用户请 登入

3D打印机如何添加自动调平功能

每次打印前要调节打印平台?经常因为平台不平导致第一层粘结不好?甚至损坏打印头?本文将图文介绍如何添加自动调平功能。
原理说明24 硬件准备及配置24 固件配置1 确定具体参数2 真机测试7
Andy large avatar
MakerLab创客实验室  ›  学习系统  ›  3d 打印  ›  3D打印机如何添加自动调平功能

原理说明

By Andy at 2 年前 , 3434 次浏览

Kossel/Rostock等Delta(并联/三角洲)类型的机器,可以参考:http://learn.makerlab.me/guides/11

3d打印打印时最重要的是第一层的效果,如果第一层能够很好的粘在打印平台上,后面的如果不出意外,都可以顺利完成。但是第一层的打印并没有那么容易,其中一个原因就是打印平台是否水平的问题。如果平台不水平,可能导致模型的第一层在一个位置非常牢固,在另一个位置却根本没有粘上。甚至会损坏打印头(平台不平,由低的位置运动到高的位置可能会撞坏打印头)。

本教程将通过图文及视频的方式演示为你的3d打印机添加自动调平功能。以后再也不用手动调平了。这里介绍的是用官方Marlin固件的方式,不是rostock或kossel等Delta版本的Marlin,Delta版本的配置有可能会在以后推出。

自动调平的局限性

虽说是自动调平,但是现在的调平功能时有局限性的,即你的打印平台是平的(没有弯曲或凹凸情况),但你的平台并没有放置到水平的位置(或与打印头垂直)。如果你的打印平台是弯曲的或凹凸不平,理论上来说是不起作用或作用很小的。所以建议大家的打印平台是玻璃之类的平整度非常高的平面。

基本原理

电子世界里,任何的测量都需要传感器来实现。而调平用的传感器其实就是Z轴的零位置限位开关(Z-min)。为了实现Z-min对不同XY坐标的探测,Z-min的安装位置需要跟着打印头一起移动,但Z-min如果在打印头旁边,如果在打印时可能会碰到打印的物体从而损坏模型。所以在标准XYZ三轴打印机中,常常通过添加一个小舵机来控制Z-min的收起和放下,即需要触发Z-min时(回零或调平),通过舵机放下Z-min;不用的时候就会收起Z-min。具体舵机安装将在下一个环境说明。

由于Z-min不在只用于回零来使用,所以在打开自动调平功能后,回零也就有所区别。请看下面视频的前面一段,发送G28(XYZ全部回零)命令后,XY分别回零,然后XY分别运动到打印平台中心位置,放下Z-min,来完成Z轴的回零。并且如果XY轴没有回零,并不能单独为Z轴回零。Z轴的回零位置是一个基准点,即在(x,y)坐标位置的Z零点。后面的调平都是根据这个点的偏移来确定的。

请看视频的后半段,发送G29(自动调平命令)后的反映,打印机的Z-min会移动到四个不同XY坐标(固件中可以配置)进行探测。并且得到四个位置相对于G28确定的基准点的Z位置进行对比和计算,得到打印平台的倾斜程度,从而在以后的运动中,将各个位置的Z偏移补偿进去(同一层打印时,Z轴可能会动),从而完成自动调平功能。

如果你明白了基本的原理,再进行后面的工作就很顺利了。

本文最后更新于:20 天前
24 回复
Andy medium avatar
#1 - 2 年前
Andy

大家如果有疑问和问题,可以在这里说一下。

柯察极限 medium avatar
#2 - 2 年前
柯察极限

RAMPS1.4的板子接口就是接在z轴的零限位引脚上对吗?这样就不用安装z轴的零限位了对吧?

Andy medium avatar
#3 - 2 年前
Andy

@柯察极限 对,自动调平用的就是z轴限位的位置。不需要另外接z限位了。

rbgjj2 medium avatar
#4 - 2 年前
rbgjj2

Andy老大:
G29后四点调平时,每定位一点都升降降舵机一次,能不能调平放下后四点测完再升起,每次换位只剩高z轴就行。
因为发现舵机收放角度有时不一样,这样调平就不准了。还有就是减少动作,有利舵机使用寿命。
请赐教,哪里修改配置。

Andy medium avatar
#5 - 2 年前
Andy

@rbgjj2 应该可以实现,参考Marlin_main.cpp中1350后面的相应代码:

#ifdef ENABLE_AUTO_BED_LEVELING
case 29: // G29 Detailed Z-Probe, probes the bed at 3 points.
//此处省略n行

jinlong101 medium avatar
#6 - 2 年前
jinlong101

请问g代码的修改在marlin的什么位置改呢 我也想做一个带自动调平的 打印的效果怎么样呢

Andy medium avatar
#7 - 2 年前
Andy

@jinlong101 固件里已经有自动调平功能了。不需要在固件中改。如果想在每个模型g代码中加入自动调平,需要在切片start代码中的g28后面添加g29即可。

jinlong101 medium avatar
#8 - 2 年前
jinlong101

是在切片软件中修改么 那每次切片都需要修改么

jinlong101 medium avatar
#10 - 2 年前
jinlong101

请问三角洲型和xyz轴型固件编写有什么区别么

Andy medium avatar
#11 - 2 年前
Andy

@jinlong101 编写代码?都是用arduino IDE,没区别

jinlong101 medium avatar
#12 - 2 年前
jinlong101

不只是自动调平那部分,我现在会xyz轴的固件修改了,想做个三角洲的,固件不会编写,有攻略什么的么

Andy medium avatar
#13 - 2 年前
Andy

@jinlong101 不需要你自己编写,用别人的固件,改改参数即可

jinlong101 medium avatar
#14 - 2 年前
jinlong101

是啊,但是这两种的参数修改有什么区别么

Andy medium avatar
#15 - 2 年前
Andy

@jinlong101 有区别,我的网站有两种机器的分别介绍,你可以看看

lizhihong888 medium avatar
#16 - 一年前
lizhihong888

Andy:
发送G28(XYZ全部回零)命令后,XY分别回零,然后XY分别运动到打印平台中心位置,放下Z-min,来完成Z轴的回零。并且如果XY轴没有回零,并不能单独为Z轴回零。Z轴的回零位置是一个基准点,即在(x,y)坐标位置的Z零点。后面的调平都是根据这个点的偏移来确定的。

能不能在左下角xy位置(实际上是xy的零点)作为z轴的基准点,在这点z轴进行回零动作?不是xy运动到平台中心。如何设置固件?

Andy medium avatar
#17 - 一年前
Andy

@lizhihong888 这个应该是可以的。但简单配置貌似实现不了这个功能,需要对固件进行改动,我没有仔细读过相关代码,但应该不难,你可以读一下调平部分的代码

lizhihong888 medium avatar
#18 - 一年前
lizhihong888

请问Andy,哪一部分是调平部分的代码?多谢!

huang medium avatar
#19 - 11 个月前
huang

你好,我的板是ultimaker2 我想请问一下,我的板子在自动调平衡的功能如果修改才能实现像你的视频中那样,第一个点,Z轴慢慢下降,然后打下舵机,接着Z轴上升。再移动第二个点时候重复第一个点的动作。我调了好久,也弄不了像你那样的3个点的动作呢,能不能指导一下我呀,成分感谢了!

hn0550 medium avatar
#20 - 11 个月前
hn0550

@Andy,请教一下打印机添加这个自动调平功能后是不是会拖累打印速度?
这个影响大吗?谢谢!

suyang medium avatar
#21 - 一个月前
suyang

你好 我想问一下平台倾斜的时,他在打印过程中z轴会自动补偿吗

suyang medium avatar
#22 - 一个月前
suyang

楼主能留个联系方式吗

scott medium avatar
#23 - 28 天前
scott

楼主,有没建个QQ群方便交流的呢?

cash0304 medium avatar
#24 - 20 天前
cash0304

請問一下,我下了新的RC7新的固件,裝了舵機改了下按教學文中下列數值#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command試過1跟3,舵機都無作動
#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 165,60} // X,Y,Z Axis Extend and Retract angles
但舵機沒有反應,是那邊有問題??