【机器调平】为I3增加自动调平功能 

3D打印技术 /[其他]
2017-08-12 00:24
看到网上有资料说XYZ可以支持自动调平,也试着改一下,效果超好。移机,装拆机器,再也不用为调平头疼了。我们的I3也可以增加自动调平功能。Marlin固件中是有带自动调平的,只要开启就可以了
舵机用9g的舵机。直接使用RAMPS的5V电源。接线如下图。(不好意思直接拿来主义,拿别人的图来用了)
1.jpg


固件设置步骤预先烧录                 以下红色字是需要修改的选项和数值。
将configuration.h中以下这几行的注解符号删去(行首的"//"               删掉)


#define min_software_endstops true 改成 flase
注意,此参数默认值是true,需要改为false,否则移动轴时,不能运行到小于0坐标的位置。最终调好后。还要再改回来。

#define ENABLE_AUTO_BED_LEVELING // Delete the            comment to enable (remove // at the start of theline)              
#define NUM_SERVOS             3 // Servo             indexstarts with 0 for M280 command
#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             Extendand Retract angles 设定舵机的收起放下角度。


将NUM_SERVOS              改为1

#define NUM_SERVOS            1 // Servoindex starts with 0 for M280            command


#define            PROBE_SERVO_DEACTIVATION_DELAY 300  
舵机延时。这项如果不开启舵机会乱抖动,有时候会乱转角度。

#define XY_TRAVEL_SPEED             8000                    // X and            Y axis travel speed between probes, in mm/min
//调平时,XY轴的运行速度
  #define            Z_RAISE_BEFORE_PROBING 15    //How            much the extruder will be raised beforetraveling to the first            probing point.
//运行到第一个调平点前,Z轴升起的距离
  #define            Z_RAISE_BETWEEN_PROBINGS 15  //How            much the extruder will be raised whentraveling from between next            probing points
//运行到下一个调平点前,Z轴升起的距离
这些距离要根据自己的实际情况来调整,反正就是先升起Z轴,然后放下舵机时才不会碰到平台。如果碰到了就有可能损坏舵机


修改好固件之后,烧录进去,装好舵机接线,先不要装到挤出头上。放在边上测试
打印机通电,运行 M280 P0 S[角度]  例如M280 P0 S60就是让舵机转到60度角位置。测试好舵机收起同放下的位置的角度值。要保证收起舵机机开关不会碰到物体,放下舵机臂时开关能正好垂直平台。然后重新烧录固件并装好舵机。


接下来给打印机通电,在打印平台中任意一点做个记号,在平台中点也行,先将X Y 轴归零。然后移动X Y轴到记号上方 执行G92 X0 Y0 Z50,
将当前点设为0点,Z轴设为50mm,然后慢慢的下移Z轴,让挤出头正好在记号上方,间距1张A4纸。然后再执行G92 X0 Y0 Z0,将目前的点设为0点
然后上移Z轴,注意移高点,让防止放下舵机臂时碰到平台,然后执行 M401 放下舵机臂,然后移动X Y 轴让限位开关正好在记号上方,然后慢慢的向下移动Z轴。一直到开关正好被触发。记下当前XYZ坐标值。
将X Y Z轴的数据乘以负一之后填入相应X Y Z 后的数据中


#define            X_PROBE_OFFSET_FROM_EXTRUDER-34  //挤出头相对Z轴限位开关的X轴位置
#define            Y_PROBE_OFFSET_FROM_EXTRUDER8 //挤出头相对Z轴限位开关的X轴位置
#define            Z_PROBE_OFFSET_FROM_EXTRUDER-14.3  //挤出头相对Z轴限位开关的Z轴位置

设定测量位置
这四个参数用来设定测量面的边界,请依照机器XY工作范围的边界做缩减后,填入设定档。如果手边的机器是Prusa i3,可以直接使用以下的数据。
#define LEFT_PROBE_BED_POSITION 30
#define RIGHT_PROBE_BED_POSITION 140
#define BACK_PROBE_BED_POSITION 140
#define FRONT_PROBE_BED_POSITION 30


#define min_software_endstops flase 这个参数再改成true,防止打印机小于0时还可以移动


重新烧录固件这时候自动调平功能就做好了。


切片软件中,就不能再用原来软件带的回零功能了。我们要自己加上代码


G92 Z0; 将当前Z轴设为0
G1 Z15; 向上移动Z轴15mm ,可根据自己的打印机决定移动多少放下舵机臂才不会碰到平台
G28 Y; Y 轴回零
G28 X; X轴回零
G1 X100 Y100 F6000;挤出头移到中间
M401;放下舵机臂
G28 z; Z轴回零
G29; 自动调平
G1 Z3 F3000 ; 抬高Z轴到3mm处
G1 X0 Y0 F6000; XY轴回零准备打印。

自动调平一定要保证平台平整,LCD上的auto home功能如果要使用一定要先抬高Z轴,才能使用,不然有可能会损坏舵机。
自动调平会自己检测4个角。通过软件修正,解决平台不平的问题。我们可以将平台一边抬高,让平台倾斜,有了这个功能
你就会发现。虽然平台是不平的,但打印件还是正常。如果是小件的物体,并且平台基本水平,我们可以只测试中间就行了。
不用测试四个点,我们切片文件都不用做任何修改,只要在打印前,抬高Z轴足够高度,就可以正常打印了。


附上slt文件,直接用自攻螺丝将塑料件锁在散热片上。
2.jpg


最终打印测试,如果发现挤出头太靠近或太远离平台,就微调下
#define            Z_PROBE_OFFSET_FROM_EXTRUDER -14.3  的参数,数字越大距离越远,越小越靠近平台,如-14就比-15间距来得大。
声明:3D打印资源库(3dzyk)内网友所发表的所有内容及言论仅代表其本人,并不代表3D打印资源库(3dzyk)观点和立场;如对文章有异议或投诉,请联系kefu@3dzyk.cn。
B Color Smilies
【机器调平】为I3增加自动调平功能