摘要:本文介绍Marlin固件的配置方法
14. 限位开关的常开、常闭设置
#define X_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
限位开关的类型分为常开与常闭,也就是在自然状态下是断开状态的还是接通状态的。通常机械开关为常开式,应设置为“true”,光电式限位开关为常闭式,应设置为“false”,当然,这也与你的接线有关。
15. 步进电机驱动的类型
#define X_DRIVER_TYPE A4988
#define Y_DRIVER_TYPE A4988
#define Z_DRIVER_TYPE A4988
#define Z2_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE A4988
在这里用了5个步进电机,使用的都是A4988驱动模块。这个要根据你所使用的驱动模块的类型来配置。Marlin支持的驱动模块有:A4988, A5984, DRV8825, LV8729, TB6560, TB6600, TMC2100, TMC2130, TMC2130_STANDALONE, TMC2160, TMC2160_STANDALONE,TMC2208, TMC2208_STANDALONE, TMC2209, TMC2209_STANDALONE, TMC26X, TMC26X_STANDALONE, TMC2660, TMC2660_STANDALONE, TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE。
16. 设置步进电机的默认步进值
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 101.9 }
这行代码后面的括号中有四个数值,分别对应了X、Y、Z、E(挤出机)的每毫米的步进值,也可以说是各轴的运动分辨率,也就是各轴每移动1毫米,对应的电机所需要的脉冲数,对于挤出机而言,就是寄出的耗材前进1毫米,所需要电机的脉冲数。
这四个参数必须要根据自己的情况,经过周密的计算后得出。比如,我的打印机,XY轴是用的同步皮带齿轮,每转动一周为360度,电机的步进角是1.8度,这样转动一圈就需要200个脉冲,电机驱动是16细分,因此转动一圈需要3200个脉冲。我所使用的是20齿的2GT同步轮,对应的同步带的齿距为2mm,那么转动一周,对应同步带发生的移动就是40mm,因此移动1mm就需要80个脉冲(360/1.8*16/20/2)。
3D打印机的Z轴使用的是8mm丝杆,电机转动一圈丝杆上的螺母移动8mm。电机的步距角是1.8度,电机驱动是16细分,因此,转动一圈需要3200个脉冲。因此,Z轴移动1mm需要400个脉冲(360/1.8*16/8)。
我的3D打印机使用的是MK8挤出机,步进电机上齿轮的直径大约是10mm,周长是3.14*10=31.4mm,同样,挤出机的步进电机步距角是1.8度,电机驱动16细分,转一圈需要3200个脉冲,因此移动1mm,需要3200/31.4=101.9个脉冲。
因为挤出齿轮的直径就是大概量出来的,不那么精确,因此计算出来的数据也必然不那么精确,因此,为了追求精确,必须要在打印机安装后,做一个实际的测试,然后根据实际情况再进行矫正。
具体挤出机分辨率的矫正方法是,进行多次挤出实验,例如每次设置挤出50mm,然后量一下实际挤出值,通过理论与实际之间的比例关系来按比例调整上面所设置的分辨率的值,具体的测试和计算方法,在后边的调试中还会讲解。
17. 最大移动速度
#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 }
分别表示XYZ步进电机和挤出机每秒移动的最大距离,单位是mm。在保证不丢步的情况下,这个值越大越好,电机移动速度越快。
18. 最大加速度
#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 100, 10000 }
分别表示XYZ轴和挤出机运动时的最大加速度。单位是mm/平方秒。这个数据也是在不丢步的情况下,越大越好,电机移动速度越快。
19. 电机移动的默认加速度
#define DEFAULT_ACCELERATION 1000
#define DEFAULT_RETRACT_ACCELERATION 1000
#define DEFAULT_TRAVEL_ACCELERATION 1000
在这里设置了3个默认的加速度值,分别是XYZ轴和E轴挤出机的默认加速度值、E轴挤出机回抽时默认加速度的值和E轴挤出时候的默认加速度值。
20. 电动机运动的方向
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
#define INVERT_E0_DIR false
这几个参数用于调整XYZ轴和挤出机电机的运动方向,这个在初始阶段可以随便设置。到机器组装完成后,测试时,如果发现电机的转动方向与期望的方向相反,那么把这里对应的配置项的值改成“true”就可以了。
20. 复位开关设置
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
用于配置复位开关的安装位置,可选值为“-1”和“1”。“-1”表示复位开关装在最小值的一端,也就是复位后的坐标为0,0,0。“1”表示复位开关安装在坐标值的最大值的那一端。
21. 设置热床的大小
#define X_BED_SIZE 220
#define Y_BED_SIZE 220
设置热床的大小尺寸,单位是mm。通常也是可打印范围的大小。
22. 设置XYZ轴移动的范围
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 220
设置挤出嘴在XYZ轴移动的最小坐标和最大坐标。
23. PLA预热的温度
#define PREHEAT_1_LABEL "PLA"
#define PREHEAT_1_TEMP_HOTEND 200
#define PREHEAT_1_TEMP_BED 50
#define PREHEAT_1_FAN_SPEED 0
设置打印PLA时挤出头和热床的温度以及冷却风扇的转速,风扇可配置速度为0~255。这个根据需要去设置。
24. ABS预热的温度
#define PREHEAT_2_LABEL "ABS"
#define PREHEAT_2_TEMP_HOTEND 200
#define PREHEAT_2_TEMP_BED 110
#define PREHEAT_1_FAN_SPEED 0
打印ABS的时候,挤出头和热床的温度以及冷热风扇的转速。(未完,待续)