跳转至

限位相位

该文档介绍了Klipper的步进电机相态校准限位位置的功能(下称:相态修正)。该功能可以增强传统限位开关的准确性。使用带有运行期间设置的步进电机驱动器,如Trinamic,可发挥该功能的最大作用。

典型的限位开关的精度在100微米左右。(每次归零时,限位触发的位置可深可浅。)尽管该误差很小,但它确时会影响打印效果。对于模型的首层打印而言,该精度会有明显的影响。相对地,步进电机的运动精度显然更高。

相位修正功能可以利用步进电机的精度提高限位开关的精度。 步进电机通过一系列的相位循环运动,直到完成四个 "全步"。例如,一个使用16微步的步进电机,“全步”有64个相位,运动时会通过0, 1, 2, ... 61, 62, 63, 0, 1, 2...的相位循环。最重要的是,当步进电机处于线性轨道上的特定位置时,它应始终处于同一步进相位。因此,当滑车触发限位开关时,控制该滑车的步进电机应始终处于同一相位。Klipper的限位相位系统将步进相位与限位开关触发相结合,以提高归零的准确定。

使用该功能需要确定步进电机的相位。如果使用 TMC2130, TMC2208, TMC2224 或 TMC2660 ,并设置为 运行时设置模式(即,不使用独立(stand-alone)模式),Klipper可以通过访问它们获得相位信息。(使用传统步进电机驱动,在可以可靠地重置驱动地情况下,也能够实现相态检测功能。)

校准限位相位

在使用Trinamic驱动 并 使用了运行时设置后,可以使用ENDSTOP_PHASE_CALIBRATE命令进行相位修正。首先在配置文件中加入下列设置:

[endstop_phase]

之后,依次执行RESTART ,运行G28ENDSTOP_PHASE_CALIBRATE。完成后,将打印头移动到一个新位置,再执行G28。重复数次,确保每次打印头在不同地位置执行G28。最少应重复上述移动-G28操作5次。

完成上述操作后,ENDSTOP_PHASE_CALIBRATE命令会给出相同或进行的步进电机相位值。该值可以输入到配置文件中,之后G28命令执行使会参考该相位数据。(此后,即使限位开关过早或过晚触发,Klipper在归零时会获得调整到相同的相位。)

要保存特定电机的相位修正信息,可使用下面的命令:

ENDSTOP_PHASE_CALIBRATE STEPPER=stepper_z

参照上述命令,我们可以保存想要的步进电机信息。通常,stepper_z会用于龙门式或CoreXY式打印机,而stepper_a、stepper_b和stepper_c则用于三角洲。最后运行下面数据保存配置文件:

SAVE_CONFIG

额外要点

  • 此功能在Delta打印机和笛卡尔/COREXY打印机的Z端止器上最有用。可以在笛卡尔打印机的XY端止器上使用此功能,但这并不是特别有用,因为X/Y端止器位置的微小错误不太可能影响打印质量。在Corexy打印机的XY端止器上使用此功能是无效的(因为Corexy运动学上的单个步进器不能确定XY位置)。在使用"probe:z_virtual_endstop"Z EndStop的打印机上使用此功能是无效的(因为仅当EndStop位于轨道上的静态位置时,步进器阶段才稳定)。
  • 在限位开关校准后,如果移动过限位开关,则需要重新校准相位。此时应删除设置文件中的校准值,然后重新运行相位修正。
  • 为使用上述功能,限位开关必的偏差值需低于特定步进电机的两倍“全步长”的距离。因此,如果步进电机使用16微步,此时每个微步的长度为0.005mm,则限位开关的分辨能力应低于0.160mm。如果系统反馈"Endstop stepper_z incorrect phase"(stepper_z相位与限位开关不一致)错误信息,则限位开关的精度太差。如果重新校准未能消除报警,则需要停用相位校准功能。
  • 如果打印机使用的是传统步进电机控制的Z轴(如龙门或CoreXY打印机),同时使用了传统的螺母调平的话,则可以使用相态修正功能将打印的每一层的边界设置到一个“全步”上。要使用这个功能则需要在切片软件中将层高设置为“全步”的整倍数,然后在设置文件中的endstop_phase 片段中增加endstop_align_zero选项(详见 配置参考),然后通过调平螺母调平。
  • 该系统也有可能用于传统(非Trinamic)步进电机驱动 。然而,这需要每次微控制器复位时,对应的步进电机驱动也同时复位。(如果两者能实现同时复位的话,Klipper能够通过记录步进的总移动步数来确定其相位。)目前,能够可靠地完成微控制器和步进电机驱动地同时复位地方式是,这两者仅通过USB供电并USB电源通过运行有Klipper的树莓派提供。此时可以在配置的MCU章节中添加 "restart_method: rpi_usb",该选项将安排微控制器始终通过USB电源复位,在仅使用USB供电时,这将安排微控制器和步进电机驱动器一起被复位。使用这种方式时,需要在配置文件中手动设置"trigger_phase"(详见配置参考 )。
回到页面顶部