如何将自动床校平添加到基于 Marlin 的 CNC 控制器?

3D打印 平床 数控
2021-04-26 17:59:20

我刚刚完成了一个使用 Marlin 固件的 CNC。它的尺寸非常大(3200 x 2000 毫米),桌子并不完美。我正在考虑添加一个接近传感器来在 eeprom 中存储网格,从而补偿任何错误。我不知道该怎么做。我希望能够从显示器(完整图形)执行一个动作,并在整个表格上采集样本,但我不知道如何告诉固件在哪里采集样本,也不知道它的尺寸是多少。

1个回答

自动床调平需要在 Marlin 固件配置中进行一些设置(常数)。

建议先阅读自动调平床的实现有几个选项可以选择调平类型,对于 3D 打印机AUTO_BED_LEVELING_BILINEAR,如果您不知道床是否平坦,通常选择的选项是最佳选择。如果您确定它是平的但倾斜的(例如,当您在 3D 打印中使用铣床或玻璃板时),您可以选择AUTO_BED_LEVELING_3POINTAUTO_BED_LEVELING_LINEAR

更重要的是您选择的传感器类型。您想要触摸传感器还是接近传感器。后者是您的偏好(如您的问题中所指定),它更简单一些,因为您不需要配置伺服系统来部署和装载。

您需要设置:

#define FIX_MOUNTED_PROBE

用于使用固定式接近传感器。

在配置文件中,您还需要指定探头相对于喷嘴的位置(在您的情况下是工具中心):

#define X_PROBE_OFFSET_FROM_EXTRUDER 10  // X offset: -left  +right  [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 10  // Y offset: -front +behind [the nozzle]

和可选:

#define Z_PROBE_OFFSET_FROM_EXTRUDER 0   // Z offset: -below +above  [the nozzle]

后者不是必需的,因为您始终可以通过 G 代码命令设置传感器触发点到喷嘴/工具平面的距离 M851 Z-x.xx

您还需要设置探测区域的边界以防止工具击中不需要的位置(填写值或保留常量):

// Set the boundaries for probing (where the probe can reach).
#define LEFT_PROBE_BED_POSITION MIN_PROBE_EDGE
#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - MIN_PROBE_EDGE)
#define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE
#define BACK_PROBE_BED_POSITION (Y_BED_SIZE - MIN_PROBE_EDGE)

正确设置后,命令会G29运行床的调平,该命令可以使用选项将床网格存储到 EEPROM。

LCD_BED_LEVELING在配置文件中启用常量将向 LCD 添加一个 Bed Leveling 子菜单。但是您也可以使用加载这些代码的 SD 卡存储文件。

参考资料更详细地解释了自动调平,但互联网上还有许多更详细的指南可供参考。请确保您获得最新指南,以便在最新固件中进行设置。