用marlin固件 lcd修改的打印机xy轴可不可以用丝杆

Kossel/Rostock等Delta并联三角洲3d打印机固件配置及自动调平 - MakerLab创客实验室
MakerLab创客实验室 — Let's Make something.
已注册用户请
固件配置对打印机非常重要,Delta机型也不例外
&>& Kossel/Rostock等Delta并联三角洲3d打印机固件配置及自动调平
教程进度【更新自6.24】所有的内容已经更新完成,大家如果发现有错误或有含糊不清的地方请在相应文章下面进行回复我,我会尽量解答大家的问题。基本原理Kossel/Rostock等delta(并联/三角洲)的自动调平原理跟普通XYZ坐标的机型差不多,如果你还没了解过,可以先看看那边的介绍(
)。简单说就是通过一个限位开关(Z-min)来获取打印平台的平整度信息。然后将各个位置的Z偏移在打印的时候补偿进去,就可以实现自适应打印平台的倾斜等不平问题了,但与普通XYZ结构调平一样,如果平台出现凹凸不平问题,并不能很好的解决。所以推荐大家的打印平台用平整性较好的玻璃等材料。说明,这是所提的delta调平都是针对Kossel版本的marlin固件而说的,并不是原始版本的marlin。请注意,可能会有不同。与XYZ机构调平不同之处如果你做的delta机型的机器是你自己组装和接线的,你应该知道。delta机型的原点限位接在了XYZ-max(最大限位)位置上,而用于调平的限位应该接在Z-min位置上。并且在marlin固件中,对X-min及Y-min的管脚定义(pins.h文件中)需要配置为-1,否则自动调平将不正常。如果你用的是由开发的合体主控板(Mega Controller),那么你不需要做这样的配置(我已经替你配置好这两个管脚了)。另一个不同之处是探针的连接方式,比较常见的Kossel探针方式是这样的(如图),限位接常开,通过一个长六角工具触发限位的状态,放下时,限位状态为Open,收起时,限位状态为Triggered(小提示:读取限位状态的G代码命令为M119)。这一点跟普通XYZ结构方式还是不同的。当然,Kossel也有其它调平方式,比如使用压敏电阻等等。这里就不多说了。原理差不多。
最后回复来自
由于探针的安装方式可能不同,这里只简单说明原Kossel设计的方案。如果你使用的其它方式,请根据自己的情况进行安装、配置及调试。本部分的图片摘自《Kossel Mini Assembly Guide》。1、准备材料两芯导线(程度根据你的机器高度确定),一个限位开关,一个曲别针,一个端子排上的铜端(或其它类似的东西),一个长内六角;2、限位接线注意,此处的限位开关接的是Com(公共端)及NO(常开端)。可以做如下处理,即把上面的铁皮折弯。3、安装将限位即其它部分安装在相应位置。
1、曲别针折弯:2、安装限位开关和曲别针:3、安装六角或其它类似东西:4、安装弹簧:如下图安装完成,左边是探针放下,右边是探针收起:探针收起时,探针高度应该高于打印头高度才可以,否则打印时探针可能会碰到打印物件,而导致损坏物件:
Kossel的固件配置基础部分跟普通xyz打印机的配置差不多,详细的配置文件(configuration.h)的说明请参考我的另一篇文章: 这里只说明最关键的几个参数,其它参数不要随便改,默认即可。Delta固件下载:如果你还没有安装IDE即上位机软件,请参考:说明,下面所说的代码都见于Configuration.h文件中。1、板子类型板子类型是打印机可以正常工作的基础,所以一定要配置正确,常见板子类型有:ramps1.4板子: 33;ultimaker板子: 7;我的合体板子即Mega controller:310;
#ifndef MOTHERBOARD#define MOTHERBOARD 310#endif//根据你的板子类型选自相应的数字在这里,我这里配置为310,是由我们MakerLab最新设计的合体式的控制板Mega Controller2、温度传感器类型温度传感器是用来读取温度的,如果配置错误或接线错误会导致打印机错误,请一定要配置正确。
#define TEMP_SENSOR_0 1//第一个打印头的传感器。这里是100K NTC热敏电阻的配置,如果你用其它传感器类型请做相应修改,比如热电偶改为-1(需要另外添加AD597温控板)#define TEMP_SENSOR_1 0//如果配置为两个挤出头,此传感器需要配置#define TEMP_SENSOR_2 0#define TEMP_SENSOR_BED 1//热床对应传感器类型,如果你没有用热床,请改为0,如果你用其它传感器类型请做相应修改,比如热电偶改为-1(需要另外添加AD597温控板)3、限位开关配置如果你下载的是上面我提供的固件,你不需要做任何修改,保留默认配置即可。4、脉冲比率配置这个参数非常关键,delta固件给我们简化了这个计算过程,只需根据你的硬件配置做相应参数的调整就可以。
#define XYZ_FULL_STEPS_PER_ROTATION 200 //步进电机每周的步数,即360/步进电机铭牌上的角度,如1.8度,步数应该是360/1.8=200;#define XYZ_MICROSTEPS 16 //步进驱动的细分,大部分都配置为16,如果你的不一样,请做相应调整;#define XYZ_BELT_PITCH 2 //同步带齿间距,单位是毫米,2GT同步带齿间距是2mm;#define XYZ_PULLEY_TEETH 17 //同步轮齿数,自己数一下,或查看卖家参数即可#define XYZ_STEPS (XYZ_FULL_STEPS_PER_ROTATION * XYZ_MICROSTEPS / double(XYZ_BELT_PITCH) / double(XYZ_PULLEY_TEETH)) //这是计算公式,请不要修改;#define DEFAULT_AXIS_STEPS_PER_UNIT
{XYZ_STEPS, XYZ_STEPS, XYZ_STEPS, 100}//这是最后的参数,最后100你需要自己改为相应挤出机的参数,其它的不需要改5、delta相关参数配置下面是delta打印机特有的参数,各参数与打印机实际尺寸的关系如图所示:
// Center-to-center distance of the holes in the diagonal push rods.#define DELTA_DIAGONAL_ROD 186.0 // mm// Horizontal offset from middle of printer to smooth rod center.#define DELTA_SMOOTH_ROD_OFFSET 128.0 // mm// Horizontal offset of the universal joints on the end effector.#define DELTA_EFFECTOR_OFFSET 19.9 // mm// Horizontal offset of the universal joints on the carriages.#define DELTA_CARRIAGE_OFFSET 19.5 // mm// Horizontal distance bridged by diagonal push rods when effector is centered.#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET)// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).#define DELTA_PRINTABLE_RADIUS 70.0 //delta最大打印半径,根据你的实际情况来修改,不要太大,放置出现撞车另一个跟尺寸相关的参数,是回原点后,打印头到打印平台的距离:
#define MANUAL_Z_HOME_POS 214
6、打开自动调平功能及相关配置
// #define ENABLE_AUTO_BED_LEVELING // 如果要打开自动调平功能,需要将前面的“//”删除,才会起作用
//这个参数比较关键,尤其是Z轴的偏移,即Z探针刚刚触发时,打印头与探针之间的偏移量,可以通过卡尺或移动轴来记下坐标等方式来确定比较精确的Z偏移
#define X_PROBE_OFFSET_FROM_EXTRUDER -1.0
#define Y_PROBE_OFFSET_FROM_EXTRUDER 21.0
#define Z_PROBE_OFFSET_FROM_EXTRUDER -6.77、LCD配置如果你有LCD,需要打开相关参数,比如你接了MakerLab的MiniPanel,需要做如下修改:
// #define MINIPANEL //删除前面的“//”由于delta打印机固件需要做很多坐标转换的运算,所以如果打开12864的LCD功能,可能会造成卡顿的现象,可以调节下面参数来修正和缓解这种问题:
#define DELTA_SEGMENTS_PER_SECOND 160 //减小这个数值,来缓解卡顿现象,如修改为120进行测试。OK,如果你来到了这里,大部分参数都已经配置完成,可以进入下一个环节来验证配置即硬件接线是否正确了。上传固件的方法,请参考:
最后回复来自
为了能够保证各个参数正确性,下面进行对各个参数的验证。主要使用到的工具是上位机软件Printrun(printface),如果你还没下载,请参考:0、准备工作上传固件后,打开Printrun上位机,选择正确的串口和波特率进行连接。1、限位开关验证通过上位机,发送命令:M119观察反馈信息,你会看到类似这样的反馈信息:对于x_max,y_max,z_max应当是:限位被触发时,反馈信息为Triggered;限位没有被触发,反省信息为Open;对于z_min即探针应当是:探针放下,反馈信息应当是open;探针收起,反馈信息应当是Triggered;2、验证回原点可以通过发送命令:G28或点击上位机上下图所示位置的左下角小房子:现象:发送或点击上面命令后,xyz轴电机会向上运动,碰到限位开关会向下运动一点然后再次碰限位(为了提高精度),然后会停止运动。问题排查:轴向下运动:这是因为电机接线原因,将原电机接线完全反转,如原接线为红蓝绿黑,现在改为黑绿蓝红再试试;轴碰到限位后不停止:很有可能你的xyz轴电机没有跟对应的限位一一对应,请检查接线;说明:这里回到的原点跟普通xyz坐标机器不同的是,这里的原点坐标并不比(0,0,0),而是(0,0,MANUAL_Z_HOME_POS)这个坐标。3、当前位置坐标可以通过发送命令:M114来获取当前的坐标,回原点后,如果输入M114得到的坐标应该是(0,0,MANUAL_Z_HOME_POS)。MANUAL_Z_HOME_POS这个参数在固件配置中已经说了。应该是打印头回零后,到打印平台的距离。4、挤出机方向验证验证挤出机是否方向正确,即点击“Extrude(挤出)”命令后,电机应该让打印材料往打印头方向运动才对,如果方向反了,可以改一下电机接线,将原电机接线完全反转,如原接线为红蓝绿黑,现在改为黑绿蓝红再试试;可能回用到的G代码命令是:M302冷挤出,即不需要加热就可以操作挤出机。如果不输入M302或加热到170度,挤出机不会动的。5、delta架构示意图如果你还不太了解delta架构,可以看看下面这张图,对原点坐标和打印中心坐标做了比较清晰的展示。6、最大Z高度确定即MANUAL_Z_HOME_POS参数MANUAL_Z_HOME_POS这个参数控制了打印机的Z轴方向的最大打印尺寸,同时也决定了坐标Z=0时打印头跟打印平台的贴合程度,大家应该知道第一层的打印跟这个贴合程度关系非常密切。如果你打开自动调平功能,这个参数不需要调节的非常精确,毕竟自动调平功能就是为了解决这样的问题的,但需要注意的是,每次G28回原点后,都必须跟上G29自动调平命令,否则可能会有第一层打印失败,甚至撞车的风险。7、G29自动调平功能G29命令是用来控制打印机进行自动调平的G代码。发送G29命令后,如果相应打印机配置了自动调平功能,则打印机回做如下操作:
A、放下探针(delta机器推荐手动放下);
B、开始对打印平台进行自动调平(与普通XYZ坐标打印机不同,delta需要对30多个点进行探测);
C、回收探针(自动完成);上面三个步骤中C需要修改固件,否则探针不会自动收起,或收起动作有误。收起代码见下图:G29自动调平校正流程:
A、手动放下探针,并发送G代码M119,检查其中的Z_min是不是Open;
B、发送G代码G28来进行回原点动作;
C、发送G29命令,来开始进行自动调平功能(注意,后面的动作有可能回撞车,请随时做好断电准备);
D、打印头回向下移动,并对各点进行弹出,完成最后一点后,打印头会移动到上图所示的坐标位置进行对探针的回收;
E、后面的动作应当非常注意,因为这个参数还没进行设定,所以现在的参数肯定对你的打印机来说不准确,所以应当在撞车时进行断电;
F、回收探针完毕后,打印机会上升30mm后停止动作,代表G29命令运行完毕,此时如果你的探针没有处于探针收起位置,则需要继续进行下面操作;
G、通过上位机(Printrun)移动XY轴坐标来使得探针位置刚好在回收螺母的正上方,然后发送M114命令得到当前坐标,并几下测试的XY轴坐标分别是多少;
H、通过上位机移动Z轴坐标垂直向下移动(使用1mm的间距移动),直到探针可以收起为止,发送M114命令得到当前的Z坐标并记下;
I、修改G得到的XY坐标和H得到的Z坐标,改动上面图片中的坐标为记下的实际值,然后保存并重新上传固件,注意上传前需要断开上位机的连接;
J、上传固件完成后,重新连接上位机,并重复A~I的所有必要的步骤,直到探针可以自动收起为止;
K、发送命令G1X0 Y0移动打印头到(0,0)坐标位置;
L、通过上位机的移动按键来移动打印头慢慢靠近并刚好碰到打印平台时停止,发送命令M114得到当前坐标,如果得到的坐标是(0,0,0)那么说明你的自动调平命令设定完成;
M、如果L操作中打印头不能太靠近打印平台,或得到的坐标值不是(0,0,0)而是稍大的值,需要修改Z_PROBE_OFFSET_FROM_EXTRUDER参数将其减小,比如将之前的-6.7改为-6.9后,重新上传固件再测试;
N、重复A~M的步骤来完成对自动调平功能的校正;
最后回复来自
如果你已经安装校正的流程进行了自动调平功能的校正,那么你输入G28命令然后G29命令后看到的动作应该是这样的:1、收到G28命令后,打印机会回原点;2、收到G29命令后,打印机开始对各点进行探测,完成后,移动到高高的回收螺丝位置进行探针的回收;3、回收完成后,打印机会升起30mm的高度;为了能够让打印机每次打印前都自动进行调平功能,需要在切片工具中(如Slic3r或cura等)的启动G代码位置配置上G29命令,否则打印机的自动调平功能将不会执行。找到切片工具的相关位置,然后找到启动代码的G28位置,在G29下面一行添加G29命令,如下图所示:
最后回复来自
校正完成并且切片软件配置好G29命令后,就可以进行实际打印测试了。导出模型G代码,然后进行打印测试,注意观察第一层是否打印正常。如果一切正常就可以打印一个标准的长方体进行尺寸测试了。比如常见的就有20X20X10mm的方块进行测试:
最后回复来自
Powered by
学习系统 基于RabelKossel/Rostock等Delta(并联/三角洲)类型的机器,可以参考:
3d打印打印时最重要的是第一层的效果,如果第一层能够很好的粘在打印平台上,后面的如果不出意外,都可以顺利完成。但是第一层的打印并没有那么容易,其中一个原因就是打印平台是否水平的问题。如果平台不水平,可能导致模型的第一层在一个位置非常牢固,在另一个位置却根本没有粘上。甚至会损坏打印头(平台不平,由低的位置运动到高的位置可能会撞坏打印头)。
本教程将通过图文及视频的方式演示为你的3d打印机添加自动调平功能。以后再也不用手动调平了。这里介绍的是用官方Marlin固件的方式,不是rostock或kossel等Delta版本的Marlin,Delta版本的配置有可能会在以后推出。
自动调平的局限性
虽说是自动调平,但是现在的调平功能时有局限性的,即你的打印平台是平的(没有弯曲或凹凸情况),但你的平台并没有放置到水平的位置(或与打印头垂直)。如果你的打印平台是弯曲的或凹凸不平,理论上来说是不起作用或作用很小的。所以建议大家的打印平台是玻璃之类的平整度非常高的平面。
电子世界里,任何的测量都需要传感器来实现。而调平用的传感器其实就是Z轴的零位置限位开关(Z-min)。为了实现Z-min对不同XY坐标的探测,Z-min的安装位置需要跟着打印头一起移动,但Z-min如果在打印头旁边,如果在打印时可能会碰到打印的物体从而损坏模型。所以在标准XYZ三轴打印机中,常常通过添加一个小舵机来控制Z-min的收起和放下,即需要触发Z-min时(回零或调平),通过舵机放下Z-min;不用的时候就会收起Z-min。具体舵机安装将在下一个环境说明。
由于Z-min不在只用于回零来使用,所以在打开自动调平功能后,回零也就有所区别。请看下面视频的前面一段,发送G28(XYZ全部回零)命令后,XY分别回零,然后XY分别运动到打印平台中心位置,放下Z-min,来完成Z轴的回零。并且如果XY轴没有回零,并不能单独为Z轴回零。Z轴的回零位置是一个基准点,即在(x,y)坐标位置的Z零点。后面的调平都是根据这个点的偏移来确定的。
请看视频的后半段,发送G29(自动调平命令)后的反映,打印机的Z-min会移动到四个不同XY坐标(固件中可以配置)进行探测。并且得到四个位置相对于G28确定的基准点的Z位置进行对比和计算,得到打印平台的倾斜程度,从而在以后的运动中,将各个位置的Z偏移补偿进去(同一层打印时,Z轴可能会动),从而完成自动调平功能。
/v_show/id_XNzAyMjkzOTY0.html
如果你明白了基本的原理,再进行后面的工作就很顺利了。
硬件准备及配置
1、一个小舵机,大家可以看到我用的舵机是9G型号。理论来说用什么型号都可以,但是小了不会占用太多空间;
2、一个小限位(机械式),小限位开关即可(鼠标按键),带柄不带柄都可以,我用的不带柄的;
3、固定舵机在加热头运动部件上的小零件,我是自己打印的,不太合适,最后用502粘上的;
4、固定限位开关的触碰柄,我也是打印的,这个基本上是标准的可以在这里下载: ;
5、支持舵机接口的打印机控制板,这里以MakerLab的为例;
由于每个人的打印机都不同,就不说了。总之就是保证尽可能少的影响其它部件的情况下,固定舵机,并且限位开关的柄可以收放自如,并且收起后,打印头的高度要低于限位的高度,即打印时限位开关舵机等零件不能妨碍打印的进程。
注意:安装限位开关触碰柄的时候,注意舵机的极限角度的位置(0度和180度),因为咱们用舵机主要两个位置最关键,一个是收起限位时,一个是放下限位时,这两个位置都不要太靠近舵机的0和180度位置(即舵机的极限位置),极限位置的舵机不稳定,并且可能容易烧舵机。 大家注意。
下图是舵机即固定舵机的部分:
下图是限位开关收起后的位置,不会妨碍打印及其它部分的运动:
下图是限位开关放下后的效果,放下后,限位开关当然要比打印头的位置更低才可以,否则打印头都撞车了,限位开关还没触发:
Mega Controller已经引出了四路舵机接口,都是标准的接口,所以将舵机线连接到图片所示位置,标记为30的位置即可,主要舵机线中黄色的为信号线,对应控制板子上的S标记。如果:
舵机角度确定
由于舵机是用于做调平,调平的准确性直接影响了打印的效果。所以舵机的角度控制就至关重要,而这个角度参数(两个角度,收起和放下时舵机分别所处角度)非常重要,需要用于固件的配置。
默认的Marlin固件并没有添加对舵机的支持(可以剩下RAM和ROM空间)。所以首先打开你的Marlin固件,找到Configuration.h文件,搜索“NUM_SERVOS”关键词(670行左右),来到
//#define NUM_SERVOS 1 // Servo index starts with 0 for M280 command
然后将最前面的//删除,并将后面的数字改为1,默认该数字可能是3.
修改完成后,其它参数不变,上传新固件到控制板。完成后,打开你用的最顺手的上位机软件,我以printrun为例,选择串口和波特率,连接。连接成功后,就可以测试舵机是否可以控制了。在发送命令区域,输入命令M280 P0 S100,其中M280是用于控制舵机的G代码,P0标识第一个舵机,如果你有其它舵机,可以用P1、P2等来分别控制,S后面的数字表示舵机运动的角度,输入命令后,点击Send(发送)或回车。
此时,如果一切都配置得当,你应该看到了舵机会动,如果不动再试一下其它的角度即更换S后面的数字,如果其它角度依然不动,请检查接线即固件是否正确。(注意,Ramps用户直接接在舵机接口位置是不能用的,因为舵机接口默认是不供电的,需要将Ramps复位按键旁边的两个电源接在一起才可以,标记为VCC和5V,将这两个端子连接,就可以为舵机供电了。)
由于舵机角度不能通过其它方式获得,只能需要你自己进行实际的测试,所以通过发送上面的命令,不断修改S后面的角度值,来得到两个比较完美的角度分别对应收起和放下时的位置。记在旁边备用。
我通过测试,找到的角度为:
放下角度为:125度;
收起角度为:42度;
你的配置不太可能跟我的一样,所以一定要自己测试一下。
处于放下状态时,输入M280 P0 S42命令后的效果是这样的:
处于收起状态时,输入M280 P0 S125命令后的效果是这样的:
如果得到的角度你很满意,即不影响其它部分运动,也可以在放下时进行正常调平,那么就可以进入下一环节了。
RAMPS1.4的板子舵机是接在哪里,麻烦能说下嘛?
注意,Ramps用户直接接在舵机接口位置是不能用的,因为舵机接口默认是不供电的,需要将Ramps复位按键旁边的两个电源接在一起才可以,标记为VCC和5V,将这两个端子连接,就可以为舵机供电了。
参考图片,其中紫色框内的两个针需要接在一起,否则舵机没有供电;红色框就是第一个舵机应该接的位置:
好的,再请教一下,这个在玛林里面是不是要把引脚改为11
不需要改,配置好舵机数量,发送命令时M280 P0 S42中的P0就是指的这个管脚对应的舵机
按本页修改后在打开上位机,舵机转到一个角度
但是在上位机输入M280 P0 SX没有反应,这里X表示一个数,我用的是RAMPS1.4的板子,上位机是PRONTERFACE,
各个参数都配置正确了吗?
#define NUM_SERVOS 1 按你的教程改了这里
然后5V供电也跳线了,我输入M280 P0 SX没有反应
我输入G28 XYZ可以回零,z回零的时候,舵机会转下来,舵机上的限位开关碰到底板后舵机就转上去,
看上去舵机和限位开关是能正常工作的,
但是M280 P0 S。。这个代码没有起到作用
我在网上搜了下国外的贴子,好像在在PINS。H这个文件里面设置P11接口?是不是这个原因?
能调平说明正常。是不是你输入命令时有问题
M280 P0 S34
这就是我发送的指令,字母都是大写三个一起发的,中间空格空开,是这样吗?
没错,舵机不动?试试其它角度
不动,我这两天试了很多个值,呵呵
可以了,我把M280 P0 S34
中的M换成小写的m可以了,为什么不能识别大写的,我开始一直以为是要大写
是很寄怪,我一直记得G代码这些都是要大写的,我输入的是小写但是他信框里的又是大写
完整板的固件配置说明可以参考这里: 。
这里只说明与自动调平有关的参数。
如果你需要舵机来收起、放下调平探针(Z-min限位开关),那么舵机相关的参数是必须要配置的。如果你的板子是Mega Controller(我们的合体板子),将舵机连接在Servos接口,标记30的位置。
还记得上一部分讲到的通过发送命令来获得放下和收起调平探针的角度吗?我的角度分别是:
放下:125度;
收起:42度;
每个人的数据都不太可能一样,一定要用自己的数据,得到这两个数据后,修改固件配置文件的:
// Servo Endstops
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M206 command to correct for switch height offset to actual nozzle height. Store that setting with M500.
//自动调平探针安装的哪个轴,-1表示关闭,0标识在此轴上,分别上XYZ,将下面两行代码原有的“//”删除,如下
#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 125,42} // X,Y,Z Axis Extend and Retract angles
//定义xyz三个轴上舵机放下和收起后的角度。将之前获得的角度数据填在Z轴对应的位置,即第5(放下角度)和第6(收起角度)个数据。
改完上面的参数后,舵机相关的参数就配置完成了。
自动调平功能开启及相关参数
上面已经配置好了舵机的相关参数,但是要想实现自动调平,还需要配置下面这段区域的参数:
//============================= Bed Auto Leveling ===========================
//是否开启自动调平功能,如果开启,删除前面的//
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//下面开始是针对自动调平功能的具体设置
#ifdef ENABLE_AUTO_BED_LEVELING
// these are the positions on the bed to do the probing
//自动调平时的4个位置,为了防止测试时挤出机超出XY轴的范围,可以适当调整下面参数,让这几个参数都靠近打印平台中心位置的坐标
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 135
#define BACK_PROBE_BED_POSITION 160
#define FRONT_PROBE_BED_POSITION 20
// these are the offsets to the prob relative to the extruder tip (Hotend - Probe)
//调平传感器与挤出头的坐标偏移,加热头坐标-调平探针坐标,这里的参数可以不调整,因为手动测量这几个数据精确性实在太差,暂时保留之前的默认值即可。下面的参数是我调出来的,大家不要用我的参数。
#define X_PROBE_OFFSET_FROM_EXTRUDER -34
#define Y_PROBE_OFFSET_FROM_EXTRUDER 8
#define Z_PROBE_OFFSET_FROM_EXTRUDER -14.3
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance.
// Be sure you have this distance over your Z_MAX_POS in case
//回原点前,z轴升起的距离,放置太低,调平探针无法放下
#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 before traveling to the first probing point.
//运行到第一个调平点前,Z轴升起的距离
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points
//运行到下一个调平点前,Z轴升起的距离
//If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
//The value is the delay to turn the servo off after powered on - depend 300ms is good value, but you can try lower it.
// You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.
//舵机关闭延时,为了防止抖动,建议开启这个功能。否则舵机会抖动。后面的参数保持默认只即可。
#define PROBE_SERVO_DEACTIVATION_DELAY 300
//If you have enabled the Bed Auto Levelling and are using the same Z Probe for Z Homing,
//it is highly recommended you let this Z_SAFE_HOMING enabled!!!
//Z轴安全回零配置。开启后,Z轴回零前,XY必须先回零才可以
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area.
// When defined, it will:
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled
// - If stepper drivers timeout, it will need X and Y homing again before Z homing
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
// - Block Z homing only when the probe is outside bed area.
#ifdef Z_SAFE_HOMING
#define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2) // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2) // Y point for Z homing when homing all axis (G28)
// with accurate bed leveling, the bed is sampled in a ACCURATE_BED_LEVELING_POINTSxACCURATE_BED_LEVELING_POINTS grid and least squares solution is calculated
// Note: this feature occupies 10'206 byte
#define ACCURATE_BED_LEVELING
#ifdef ACCURATE_BED_LEVELING
// I wouldn't see a reason to go above 3 (=9 probing points on the bed)
#define ACCURATE_BED_LEVELING_POINTS 2
调平相关的固件配置也已经完成,但里面有几个关键参数还需要再次确定,否则得到的数据将不正确,暂时还不需要上传,下面的参数配置后再上传。请参考下一部分。
确定具体参数
上一部分已经配置了自动调平相关的所有参数,并且也已经把舵机收起放下的角度测量了出来。
要想正常使用自动调平,我们还需要精确测量下面三个参数:
#define X_PROBE_OFFSET_FROM_EXTRUDER -34
#define Y_PROBE_OFFSET_FROM_EXTRUDER 8
#define Z_PROBE_OFFSET_FROM_EXTRUDER -14.3
之前配置参数时,我们建议大家把上面的参数保持默认值即可。现在我们需要把这几个参数测试出来。
为了保证顺利测试,还需要配置下面这个参数:#define min_software_endstops true,此参数默认值是true,需要改为false,否则移动轴时,不能运行到小于0坐标的位置。改完这个参数就可以上传固件了。
确定上面几个参数的方法
为了能够更加精确的确认上面的三个参数,即挤出头与调平探针的精确偏移量,我们需要用3d打印机自带的这个三维坐标系统来确定,而不是用尺子量。
注意:如果用此方法,操作之前各轴的steps_per_mm参数必须计算正确,否则得到的数据是不准确的。
第一步、在打印平台的中间位置用笔标记一个参考点
为了能够保证精度,我们需要确定一个参考点,参考点可以选择打印平台上的任意位置,但是为了能够保证打印头和调平探针都能方便抵达,所以选择平台中心位置比较好。标记一个小点,就像下图:
第二部、放下探针移动调平探针刚好来到标记点位置并手动置零
放下探针(命令:M280 P0 S125[125改为你的放下角度]),并通过上位机上的手动操作按钮,移动XY两个轴让探针刚好来到标记点上方,然后再移动Z轴(最后阶段尽量用0.1mm的按钮),让探针刚好碰到打印平台。此时在上位机中输入命令:G92 X0 Y0 Z0。
第三步、移动打印头来到标记点位置并得到偏移量
收起探针,移动XY及Z轴,让打印头与平台之间的距离恰好能够通过一张A4纸。然后输入命令:M114来获取现在的坐标,你会得到类似与下面的信息:
ok C: X:-34.00 Y:8.00 Z:-14.3 E:0.00
而这些数据就是你的固件中所需要的三个偏移量,将这三个数据添加到你的固件中的位置即可。
修改完这个参数后,你可以将之前改的#define min_software_endstops false中的false重新改为true,保障打印机的安全。然后重新上传固件。自动调平功能的配置已经在你的打印机上配置完成了。开始真机测试吧。。
我不用舵机固件怎么改啊
请问,探针和挤出头之间的Z向距离 Z_PROBE_OFFSET_FROM_EXTRUDER,可以通过M指令进行调整吗,每次改0.1都要刷一次固件,好麻烦,能联机调试就方便了。
固件上传完成后,你可以测试一下是否能够进行调平功能,为了能够保证调平探针顺利放下,最好将Z轴升至合适的位置,防止探针无法放下到位,而造成撞车现象。在上位机中点击上面的左下角小房子,注意是没有标记任何字母的那个,来进行XYZ三个轴的回零,
你会发现,回零跟没有添加自动调平功能前是有区别的,现在的回零是XY回零完成后,来到(Xmax/2,Ymax/2)坐标位置,放下Z探针,进行Z轴回零,并且,不能单独对Z轴进行回零,回零完成后输入G29自动调平命令,你会看到开始对固件中配置的4个点进行调平,此时你应当仔细观察,发现是否有超界的地方,如果有应该修改固件中的调平点的坐标。回零和调平的操作视频如下:
/v_show/id_XNzAyMjkzOTY0.html
如果你的打印机也可以完成上面的动作,说明你的自动调平功能配置成功了,Oh,yeah。
如果你想测试一下自动调平功能是否有作用,可以故意把平台弄斜,比如我把玻璃的右边抬高了一个螺丝帽的高度。
然后经过回零、调平操作后,让Z轴坐标确定后,调整XY坐标,你会发现虽然你只是在改变XY坐标,但是Z轴为了能够适应平台不平的原因,Z轴也会动,并且各个位置Z轴与平台直接的距离是不会变的。
怎么样把G28这个调平功能增加到一个真正的打印文件里面啊
切片软件里的启动代码G28下面加上G29,比如像这样:
我不用舵机,调零传感器是可拆卸的,这样固件怎么改啊,还有我想在调零后热床向下移动一段距离后停止,好便于取下调零传感器,然后在手动点击启动打印
不用自动调平 打印文件的时候,都会开始归零
安装了鸵机后 Z轴怎么归零呢?
阅读(...) 评论()}

我要回帖

更多关于 marlin固件配置详解 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信