ANet A8 运行 Marlin v1.1.9 Auto Bedlevel with ROKO SN04-N

3D打印 马林鱼 anet-a8 平床
2021-05-10 03:19:26

我正在尝试让 ROKO (SN04-N) 传感器与我的 Anet A8 配合使用。首先,在试图将它拧到挤出机上时,我把它拧得太紧了,有点弄坏了亚克力板……有点。我不得不使用带有两个孔的非常薄的钢板来加固亚克力板。它仍然有效。

现在,我按照此视频中的说明进行操作(请注意视频不是英文的。)在第一次“自动回家”操作后,小伙子在床上画画,然后测量。我的测量值略有不同。

在第 19 分钟时,这家伙正在对值进行硬编码,但我不明白他是如何计算它们的?我测量的偏移量是:X_PROBE_OFFSET_FROM_EXTRUDER 16Y_PROBE_OFFSET_FROM_EXTRUDER 58在他的视频中,他的计算结果是 X 偏移为 18 毫米,Y 偏移为 57 毫米。无论哪种方式,我都无法编译代码,因为完整性检查失败:

`static_assert(FRONT_PROBE_BED_POSITION >= MIN_PROBE_Y, "FRONT_PROBE_BED_POSITION 在探测区域之外。");`

以下是配置文件中的传感器限制值:

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

我究竟做错了什么?

请注意,我使用的是 Marlin 固件 v1.1.9

1个回答

太糟糕了,您弄坏了亚克力板(虽然临时修复不错),但是一旦您的机器启动并运行,您就可以轻松打印替换零件。

探针定位在 Marlin 配置中定义为:

 * +-- 返回 ---+
 * | |
 * L | (+) P | R——探针(20,20)
 * E | | 一世
 * F | (-) N (+) | G——喷嘴(10,10)
 * T | | H
 * | (-) | 
 * | |
 * O-- 前 --+
 * (0,0)

这意味着您的传感器在面对机器时位于右后方,并且需要设置以下常量:

#define X_PROBE_OFFSET_FROM_EXTRUDER 16 // X 偏移:-left   +right [喷嘴的]
的#define Y_PROBE_OFFSET_FROM_EXTRUDER 58 // Y轴偏移:-前+后面[喷嘴]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z 轴偏移:-below +above [喷嘴]

为了计算传感器的正确行程限制,您需要从最大限制处的床尺寸中减去偏移值。

某些传感器可能需要额外的偏移量,因此请通过定义在配置中添加额外的偏移量:

#define MIN_PROBE_EDGE 10

由于传感器相对于您的喷嘴偏离中心,因此只能假设您没有额外的空间来移动整个打印头,因此需要将打印头限制在最大/最小床尺寸的限制内(应该有一些额外的空间,这可以从偏移的起源在价值观看到X_MIN_POSY_MIN_POS,但为了简便起见,这些将不被考虑在内)。

基本上,您的正 Y 和正 X 偏移会导致以下示意图。 病床示意图和传感器限制

或者,如果您包括 #define MIN_PROBE_EDGE [value] 床的示意图和传感器限制,包括 MIN_PROBE_EDGE

然后需要根据传感器的偏移值计算传感器的床限制。例如,当您的喷嘴位于 (X=0, Y-0) 或 (0, 0) 时,您的传感器位于 (16, 58)。如果您不想将头部进一步向左和向前移动(以原点为极限!),这是传感器的最小位置。当传感器在(220, 220)的右后位置时,实际磁头在(220-16=204, 220-58=162)。

这意味着没有最小偏移的传感器的限制是 (16, 58) 和 (220, 220):

#define LEFT_PROBE_BED_POSITION (X_PROBE_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)
#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - MIN_PROBE_EDGE)
#define FRONT_PROBE_BED_POSITION (Y_PROBE_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE)
#define BACK_PROBE_BED_POSITION (Y_BED_SIZE - MIN_PROBE_EDGE)

将翻译MIN_PROBE_EDGE = 0成:

#define LEFT_PROBE_BED_POSITION 16
#define RIGHT_PROBE_BED_POSITION 220 
#define FRONT_PROBE_BED_POSITION 58
#define BACK_PROBE_BED_POSITION 220

并将翻译MIN_PROBE_EDGE = 10成:

#define LEFT_PROBE_BED_POSITION 26
#define RIGHT_PROBE_BED_POSITION 210 
#define FRONT_PROBE_BED_POSITION 68
#define BACK_PROBE_BED_POSITION 210

代码中的断言:FRONT_PROBE_BED_POSITION >= MIN_PROBE_Y现在将转换为 (58 >= 58) (或 68 >= 58),在您的情况下,它是 (47 >= 58) 这显然是不正确的。


请查看此答案此答案此答案以获取更多信息。