61阅读

c语言深度解剖第二版-【打印虎原创】Repetier-firmware深度配置图解教程_第二版73

发布时间:2017-12-14 所属栏目:2015年9月份二级c语言

一 : 【打印虎原创】Repetier-firmware深度配置图解教程_第二版73

【打印虎原创】Repetier-firmware深度配置图解教程 玩过3D打印机一段时间的朋友,对PC客户端的使用方法,比如Repetier-Host或者Cura,应该已经比较熟悉了。今天我们不再介绍PC客户端,而是转向3D打印机固件,搞一个高难度的玩意,仔细研究一下Repetier-firmware的配置方法。

首先解释一下什么是Repetier-firmware。Repetier-Host大家都用过,可以说是玩3D打印机必备的软件。Repetier-firmware就是同一个公司出的3D打印机固件,主要面向RepRap类型的DIY 3D打印机。所谓固件,其实就是芯片里面的软件,看起来是“固定”的,所以就得到了“固件”(Firmware)这个名字。

Repetier-firmware的最新版本,是0.91第7版(Rev 7)。因为要面对很多种不同的3D打印机,所以这个固件程序与普通的固件程序不同,没法简单的下载安装使用,而是有一个重要而且复杂的配置过程。

配置这个固件程序,有两种主要的方法,一种传统的方法是直接在源代码中修改配置文件Configuration.h,按照代码中注释的说明逐项配置。很明显这种方法是非常麻烦的,而且也没有人提示一下哪个配置项更基础更重要,基本上得是专家级的玩家才能顺利搞定了。 为了简化这个配置固件程序的问题,Repetier专门提供了一个在线配置工具(访问),这个工具提供了结构化配置的UI界面,把3D打印机固件配置划分成了几个模块,方便用户理解。用户逐一配置完成之后,下载配置好的可以直接使用的Repetier-firmware代码。这么好的工具我们一定要仔细研究一下,它是我们成为3D打印高手玩家的捷径。

第一节,开始

访问刚才提到的网址,可以看到这样的起始页面。

在这个页面上,首先给大家简单介绍了这个配置工具。然后,提供了一个上传按钮,你可以把上次配置得到的配置文件(Configuration.h)从这里传入,让所有选项恢复到上次保存时的状态。往下大家就能看到,Repetier-firmware中的可配置项非常多,这个功能可以让用户避免忘记之前配置时所作出的选择,在以前选择的基础上进行微调即可。 我们这里,不需要上传上次的配置文件,直接按下下一步(Next step)。

第二节,通用配置

在通用配置这一栏,用户可以配置3D打印机的基础信息。

第一项,配置级别(Configuration level),用来选择这个配置工具中可见配置项的多少。一共有三项选择,缺省是普通档(Normal, hide only internal settings)。我仔细比较了三种选项的差别,发现差别不多,而且都集中在下面两个面板,机械(Mechanics)和温度(Temperature)之中。对于一般的用户来说,选择普通档已经足够复杂了,似乎没什么必要再给自己找麻烦了。

第二项,处理器(Processer),这里面有两个选项,分别是Atmel 8位板子(Atmel 8-bit based board)以及Arduino DUE板子(Arduino DUE based board)。我想前一种应该是绝大多数人的选择。Arduino DUE是新式的基于Arm核心的Arduino,似乎应用的还比较少。

第三项,主板(Motherboard),其中的选择就很多了,很多RepRap的分支设计都对电路主板进行了重新设计。根据我的研究,国内用户比较多的有其中三种,分别是RAMPS

1.4,Melzi以及Sanguinololu 1.2及以上(Sanguinololu 1.2 and above),大家按照自己的主板型号选择对应的选项就好了。这个选项的实际意义,是把3D打印机的各种设备,

比如步进电机,或者加热挤出头的开关,对应到了Arduino系统的某个端口号上。因为每种电路主板的设计都有些许差别,因此不同的设计都需要指定这组端口号。端口号对应错

误的话,就会出现本想控制X轴步进电机,结果控制了风扇这类错误,3D打印机肯定不能正常工作的。

第四项,打印机类型(Printer type),指的是3D打印机步进电机的运动方式。最常见的就是笛卡尔式(也就是各自独立的XYZ三个轴的步进电机)。也因为笛卡尔式的3D打印机是最常见的,因此往往3D打印机电路板上会直接把三个步进电机的输出标为X, Y, Z输出。

但是实际上,还有好几种不同的3D打印机设计方式。在国内比较常见的还有并联臂方式,这种方式工作的3D打印机可以实现更快速平稳的加热挤出头运动。如下图,三个红色的并联臂,都可以上下移动,移动的位置决定了位于中心的加热头的位置。很明显,在这种结构设计下,步进电机的运动方式与笛卡尔式设计会完全不同。

另一种现在还不太常见的设计,是Tuga方式。如下图所示,这种方式的设计,XY轴的运动,被两个固定在X轴上的步进电机,通过一个剪刀式机械装置控制。很明显,这种方式的设计可以有效缩小3D打印机所占的空间,但保证这个打印头的稳定会更加麻烦一些。

好,看过了两种不同于笛卡尔式的3D打印机打印头控制方式之后,我们回到Repetier-firmware的设置选择上来。我们假设你的打印机类型就是普通的笛卡尔式(Cartesian printer),继续下面的选项。

第五项,EEPROM使用(EEPROM usage),指的是是否使用Arduino单片机中的

EEPROM作为设定参数的存储器。如果使用EEPROM保存参数,那么这里设定的大多数参数,都可以在固件刷到Arduino之后再进行修改,这样会极大方便我们对3D打印机的使用。如果没什么特殊的需求,这里就选择EEPROM Set 1就可以了。如果有特殊的需求,不希望使用EEPROM,选择禁用(Disable EEPROM)就好。至于EEPROM Set 2,作用与EEPROM Set 1完全一样。这里允许选择EEPROM Set 1或者Set 2的意义,在于如果电路板内现在的固件是Set 1,而新刷入的是Set 2,或者反之,电路板内现在的固件是Set 2,而新刷入的是Set 1,会迫使固件程序执行EEPROM的初始化操作。我认为,这是Arduino IDE不能清除EEPROM的一个替代解决方案。

第六项,波特率(Baud rate),是固件程序和PC上的控制软件之间通信所使用的频率。这两边的设置必须一致,才能进行有效的通信。没有特殊情况的话,缺省值115200 ANSI是一个好的选择。

第七项,中断打印方式(Kill method),是3D打印机接收到紧急停机(emergency stop)指令时的处理方式。缺省的重置控制器(Reset controller)方式,简单粗暴,直接进行了硬件重置操作,这样自然所有的加热器都关闭了。另一个选项关闭加热器并等待(Disable heaters, wait forever),用程序的方式逐一关闭加热器,并让CPU进入了死循环,相对是比较文雅的方式,但通常情况下可能没什么必要。

后面的几个选项,就非常简单了。首先是XYZ轴的最小坐标,这里保持缺省的0就很好了。然后是XYZ轴的长度。这个与打印机的物理尺寸直接相关,需要你自己根据情况设定好。我的打印机的输出空间比缺省设置更大,这里可以填入200, 200, 180。

第三节,机械设置

【打印虎原创】Repetier-firmware深度配置图解教程_第二版73_打印虎

在机械设置这一栏,用户可以配置3D打印机的各种机械装置,主要包括步进电机和限位

开关的设置。

我们还是逐一看一下这些设置项。

第一项,允许侧隙游隙补偿(Enable backlash compensation)。所谓侧隙,是一个机械专业用语,指齿轮齿廓之间为了避免摩擦膨胀而卡死预留的间隙。类似的,轴承有类似的游隙。我们DIY

的低端3D打印机,并没有在硬件层面上对这些细小的误差进行补偿,但Repetier-firmware允许我们在软件层面做出补偿。当然这里的软件补偿也是很简单的,只是在已有的移动量上增加一个小量。如果这个选项打了勾,那么在下面的XYZ轴的设置上,分别会增加一个Backlash量编辑框,可以对三个轴分别输入一个补偿值。

第二项,允许四倍步进(Enable quad stepping),是指遇到要求步进电机高速步进的时候是否允许特殊处理。因为单片机的运行速度有限,如果每个时钟信号步进1次,就会运行的比较慢,因此当步进电机步进频率比较高的时候(超过12000Hz),就会自动开启两倍步进,每个时钟信号步进2次。如果开启这个选项,而且步进频率比两倍步进更高时(超过24000Hz),就会自动开启四倍步进,每个时钟信号步进4次。很明显这个选项保持缺省打开就好了,3D打印机运行速度会更快。

第三项,在不工作多少秒之后关闭步进电机(Disable steppers after inactivity of),这个选项就很简单了,缺省是360秒,也就是6分钟,一般就不需要修改了。

第四项,在不工作多少秒之后尽量关闭所有东西(Disable as much as possible after inactivity of),这个选项缺省是0,代表不会执行这个操作。这个选项与上一个比较类似,除了关闭步进电机之外,还会关闭加热器等。如果有必要的话,也请设置一个比较大的值。

第五项,XY轴抖动速度(Jerk XY moves),是3D打印机同时在X轴和Y轴上移动时,产生的和速度最大值。比如,3D打印机加热头正在向X轴正方向全速移动,下一条指令变为向Y轴正方向移动。如果同时在X轴和Y轴上改变速度,那么实际产生的速度是X方向的速度和Y方向的速度的向量和,这个比较大的速度变化值,会对3D打印机的机械部件产生不利的影响,而且会造成比较大的噪音。这里的设置,就限制了这个XY轴上和速度的最大值。当然这个值也不能设置的太小,太小的话,首先打印速度会变得很慢,而且打印会产生更多的瑕疵。

第六项,Z轴抖动速度(Z-Jerk),与上面的意义类似,不同点是Z-Jerk是Z轴方向不为0的抖动速度值。因为这项涉及到Z轴的运动,因此最大速度就低多了。第五项和第六项保持缺省值就很好,分别是20mm/s和0.3mm/s。

再往下,是XYZ三个轴分别的设置。三个轴的设置项是一样的,因此我只介绍其中之一了。

第七项,步进电机接口(Stepper socket),指步进电机与电路板上哪个接口相连。我实在不太理解为什么这个选项会被暴露出来。难道有人不把X轴步进电机连接在电路板的X口上么?很显然,这里保持缺省值就好了。

第八项,分辨率(Resolution),每前进1毫米所需要的步进电机步数。这个值是由所选用的3D打印机驱动电路、步进电机、3D打印机机械结构设计综合决定的,计算这个值是一个比较复杂的问题。如果你买的是3D打印机成品或者套件,你应该可以从卖家那里直接得到这个值。如果你在搭建自己设计或修改的3D打印机,可以参考【打印虎原创】,这篇文章详细讲解了如何自己计算得到这个值。

第九项,最大的平移速度(Max travel speed),这个值的单位是毫米/秒,X轴和Y轴设定在100~200之间就很好了,200是缺省值。Z轴缺省值是2毫米/秒。

第十项,归零移动速度(Homing speed),因为归零的时候会同时检测限位开关的信号,因此移动太快会导致归零位置不准确。X轴和Y轴设置在40毫米/秒,Z轴设置在2毫米/秒就很好了。

第十一项,平移加速度(Travel acceleration),就是指不打印时,加热头移动的加速度最大值。X轴和Y轴缺省值都是1000毫米每二次方秒,Z轴缺省值是100毫米每二次方秒。缺省值都没什么问题。

第十二项,打印加速度(Print acceleration),就是指打印时,加热头移动的加速度最大值。不知道为什么这里把打印时的加速度和不打印时的加速度分开设置。实际上所有对应的缺省值都是一样的,X轴和Y轴是1000,Z轴是100。使用缺省值就好了。

第十三项,方向取反(Invert direction),指将这个轴的正方向和负方向取反。有些打印机的设计可能是这样的。通常不要打勾。

第十四项,使能信号取反(Invert enable signal),将原本的使能信号取反输出。有些打印机的设计可能是这样的。通常不要打勾。

第十五项,不使用时关闭(Disable when unused),作用是当不再使用某一个步进电机,将其关闭。意义不是很大。缺省值是不打勾。

第十六项,镜像步进电机信号(Mirror motor signals to other stepper driver),将XYZ轴的某一个步进电机的驱动命令,以同样的方式发送到另一个端口上。这个功能还是很奇特的,应该是用于某种特殊的目的。缺省值是不打勾。

好,到这里所有跟步进电机有关的选项已经搞定了。下面开始与限位开关相关的选项。

第十七项,总是检查限位开关(Always check endstops),代表所有的移动指令,都伴随着检查限位开关指令。这是一个很好的防御措施,缺省是打开的。

第十八项,连续三个选项,以负方向作为X/Y/Z归零方向(X/Y/Z homing in negative direction),这个对于通常的3D打印机来说都是要打勾的。如果你的3D打印机很特殊,归零方向不是负方向,那么这里要特殊处理。

第十九项,归零顺序(Homing order),三个轴的归零顺序。其实关系不大,为了避免在热床校正不好的情况下加热头与热床发生剐蹭,可以考虑让Z轴最后归零。我的选择是X, Y then Z。

第二十项,下面的一组选项,是限位开关的连接方式。我的3D打印机是RepRap Prusa i3,因此只有min类型的三个限位开关,没有max类型的,那么min类型的开关,应该选择接地闭路(Switch on GND, normally closed),max类型的开关,应该选择未安装(Not installed),这些都是缺省值,不用改。右侧的端口(Pin),如果你没有对端口做什么手脚的话,也应该保持缺省状态。

第二十一项,最后,是挤出头归零之后限位开关的位置。注意右侧的“[- for X, Y and Z]”,也就是说在编辑框中的数字都会取负值。缺省值是(1, 1, 0),也就是说,当挤出头归零动作完成时,限位开关位于挤出头的(-1, -1, 0)位置处,单位是毫米。与限位开关隔开一点点,可以在3D打印挤出头接近极限位置时(这极少发生),限位开关不会因为误差被触发。这个缺省值用起来还是可以的,不需要修改。

到这里,所有的机械设置已经完成。下面让我们继续下一栏。

第四节,温度设置

温度设置相关的选项也比较多,页面很长,我们还是分成几块来看。

第一项,稳定温度区间(Stabilize temperature corridor),如果设置为一个大于0的值,比如1℃,意味着只有温度在一定时间段内(由观察周期常量EXTx_WATCHPERIOD指定,缺省是1秒,这个配置工具不能修改此值)满足一定要求(温度值在温度预定值±1℃之内),才被认为是“温度达标”。如果设置为0,则没有这项要求了,只要温度达到预定值就算达标了。

第二项,温度控制区间(Temperature control range),在PID温度控制模式下,如果当前温度和预期温度的差大于温度控制区间,比如20℃,则全开加热器;如果当前温度和预期温度的差小于负温度控制区间,比如-20℃,则关闭加热器。这个值只影响PID温度控制模式,关于什么是PID温度控制模式请继续往下阅读。

第三项,跳过等待加热头加温(Skip bed temp. wait if within,注意,这里的英文是页面的写法,但是页面是错误的),如果加热头温度目前在目标温度附近。相差不超过编辑框中的温度值,则当固件接收到PC机发送的M109命令(设置加热头温度并等待命令)时,跳过等待步骤,直接完成返回。这个参数的缺省值是2℃。

【打印虎原创】Repetier-firmware深度配置图解教程_第二版73_打印虎

第四项,打开挤出机风扇温度(Enable extruder cooler at

),当挤出机温度高于这个预定值的时候,打开挤出机风扇。缺省值是50℃。

第五项,最小/最大挤出机温度(Minimum/Maximum extruder temperature),当挤出机温度过小的时候,由于塑料还未软化,直接移动挤出机可能会造成部件受损,因此当温度小于最小挤出机温度时,固件会忽略所有的挤出机移动指令。同样,挤出机也可能由于温度过高损坏,因此当PC机的指令要求挤出机温度超过最大挤出温度时,设置温度的命令会被忽略。缺省值是150℃/275℃。

第六项,最小/最大损坏温度(Minimum/Maximum defect temperature),当热敏电阻报告值超过最小/最大损坏温度时,程序会认为热敏电阻本身损坏了。这个参数的缺省值是-10℃/290℃。

第七项,最大挤出长度(Maximum extrusion length),当PC机发送的指令,要求挤出超过这个设置的长度的塑料时,固件会认为指令出了问题,将忽略这条指令的执行。这里的缺省值是160毫米(指耗材长度)。

第八项,加热器脉冲宽度调制速度(Heater PWM speed),这里可以设置PWM也就是脉冲宽度调制的频率,以及取值范围。频率越高,取值范围越小。我研究了好久,还是没搞懂这里不同的设置在实际效果上的差异,理论上来说几个设置应该是等效的才对。如果有人知道PWM不同参数效果上的差异请QQ上告诉我,我会补充在这里。既然不知道差别,就选缺省的15Hz, 256 values就好了。

第九项,缩放PID值到PID最大值(Scale PID values to max. PID),只在PID温度控制模式下有效,作用是把原来0~255之间的PID值,等比缩放到0~MaxPID之间的值。否则就只做一个整数截断操作,大于MaxPID的值都被当做MaxPID使用。如果MaxPID的值比较低,做这个缩放操作可以获得更好的温度值。

第十项,在不使用时关闭挤出机电机(Disable extruder stepper when unused),这个选项很简单,通常是否关闭都无所谓。

下面一段选项,都与加热床相关。

第十一项,启用加热床功能(Enable heated bed support),首先必须把这个选项选中,下面的更多热床相关的选项才会展现出来。

第十二项,最大热床温度(Max. bed temperature),很简单,缺省的120℃就很好。 第十三项,跳过等待热床加温(Skip temp. wait if within),与上面第三项非常相似,但这里不是针对加热头,而是针对热床。对应的G-code也不是M109,而是M190。再次注意,这里才是针对热床的设置,上面是针对加热头的设置。

第十四项,温度感应器(Temperature sensor),这里列出了很多种常见的温度感应器型号,选择你正在使用的那种就可以了。如果你使用的温度感应器没有列出,还可以自定义温度表。自定义温度表是比较高级的玩法,这里就不介绍了。

第十五项,温度感应器接口(Temperature sensor pin),列出了3D打印机电路板上的IO接口,缺省就好。

第十六项,加热器接口(Heater pin),与上面一样在IO口里面选择,缺省就好。

第十七项,温度控制模式(Temperature manager),有四种不同的选择,下面详细讲解一下。

首先是简单控制模式(Bang bang),特点是简单,没有控制参数,基本上加热器的工作方式就是温度不到就打开,温度到了就关闭。

PID模式(PID controller)是历史悠久的温控方式,具有数学运算法模型,使用普遍,通常PID加温会略超过设定温度然后等降温至设定温度之后开始进行3D打印动作,有人认为PID模式比较精确,但我觉得可能是因为3D打印机的加热器的热容量都不大,因此这个好处不太能体现出来。另外PID模式的参数会多很多,设置起来也比较麻烦。

带延迟简单控制模式(Bang bang every x seconds),与简单模式基本上相同,除了设定了一个最小延迟时间,让加热器开/关的频率不要太高。如果你的电路中使用了继电器,那么最好使用这个模式,可以增加继电器的使用寿命。

最后是空载时间控制模式(Dead time control),这个似乎是Repetier设计的独有的控制模式,可以参考他们的页面,http://www.repetier.com/dead-time-control/,是PID模式的改进版本。这个模式改进了PID模式中的温度曲线,让这条曲线更加稳定的接近目标温度,避免了先超过目标温度再回归的过程。另外,针对PID模式的选项,在“空载时间控制模式”下也是有效的,这个是需要注意的一点。

下面的两个图,直观的比较了PID模式温度控制曲线和空载时间控制温度控制曲线。从图中可以看出,不管是在初始加热的最后阶段,还是当中段温度扰动时,空载时间控制模式都可以把温度曲线控制的更加平稳。

PID模式温度曲线

空载时间控制模式温度曲线

第十八项,最大脉冲宽度调制值(Max PWM value),这个选项只在PID模式下有效,是PID模式下使用的PWM值。在上面的第九项参数中,这个参数就是与其相关的MaxPID值。如果在PID模式下,这个值能够控制热床加热器能够输出的最大功率,通常情况下应该设定在255满额输出,但如果万一电源或者什么其他的东西有问题,可能设定在比较小的值是一个解决方案吧。

这里最奇怪的地方是为什么温度控制模式即使设置在简单模式下,这个选项仍是可见可修改的状态?这个我确实不太懂。结合上面的几项类似的选项看,应该是Repetier做的这个配置工具本身的设计问题。

到这里为止,与热床相关的参数都搞定了,下面开始看温度控制一栏的最后一部分。

加热挤出头的开始部分可以看到有两个按钮,用来增加或者减少挤出头。因为我的3D打印机只有一个挤出头,因此我只需要配置一块就可以了。如果你有多个挤出头,这个页面会长出不少。

第十九项,挤出头步进电机(Extruder stepper),这个很简单,就是指定电路板上的IO端口。如果没有意外就使用缺省值就对了。

第二十项,方向取反(Invert direction),指将这个轴的正方向和负方向取反。有些打印机的设计可能是这样的。通常不要打勾。

第二十一项,使能信号取反(Invert enable signal),将原本的使能信号取反输出。有些打印机的设计可能是这样的。通常不要打勾。

上面两项,我们已经在第三节中见到过类似的选项。它们的意义是一样的,只是第三节中设置的是XYZ轴的步进电机,这里设置的是挤出头的步进电机。

第二十二项,偏移位置X/Y(Offset X/Y),应该指的是双头或者多头3D打印机不同挤出头的相对位置。我只有一个挤出头,因此保持0, 0就没问题了。

第二十三项,启动速度(Start speed),指挤出头从静止开始的挤出速度。缺省值20毫米/秒。

第二十四项,最大速度(Maximum speed),指挤出头挤出的最大速度。缺省值50毫米/秒(很明显,配置工具页面上单位写错了)。

第二十五项,分辨率(Resolution),挤出头步进电机运动多少步对应于实际距离1毫米。与第三节第八项很类似,这个值是非常关键的,而且与不同的步进电机、不同的3D打印机机械结构设计都有关系,尽量从3D打印机卖家处得到这个数值。在3D打印机可以工作之后,再通过校正过程得到比较精确的值。

第二十六项,加速度(Acceleration),与上面的几项相同,指的仍然是挤出头步进电机的加速度值设置。缺省值是5000毫米每二次方秒。

下面的一组设置项,包括温度感应器(Temperature sensor),温度感应器接口

(Temperature sensor pin),加热器接口(Heater pin),温度控制模式(Temperature manager),最大脉冲宽度调制值(Max PWM value),都已经在前面介绍过了。不同的是,这里针对的不是加热床,而是加热挤出头了。需要注意一点,温度控制模式在挤出头这里缺省值是Repetier自己开发的算法“空载时间控制模式”(Dead time control)。 在空载时间控制模式下,会比简单模式增加两个选项。分别是

第二十七项,加热时输出值(Power when on),这个值是实际使用的脉冲宽度调制值。至于为什么不直接使用上面已经定义的最大脉冲宽度调制值(Max PWM value)我也不清楚了。我自己感觉这个值独立出来意义不是很大。

第二十八项,空载时间延迟(Dead time lag),这个值指加热器打开多长时间之后,能够从温度感应器上感应到温度的变化。实际上,这个值就是“空载时间控制模式”希望解决的问题的核心,由于热容的存在,加热和测量到加热有一个时间间隔。而PID模式在到达目标温度前一直持续加热,就会造成实际温度超过目标温度,必须再等待一个散热时间,让温度回到目标温度附近才算加热动作完成。“空载时间控制模式”下,在温度达到目标温度之前一段时间,我们就不再持续加热,这样可以保证加热头温度更加稳定。这个值缺省设置是7秒。

最后还有几项其他设定,

第二十九项,挤出机冷却风扇接口(Extruder cooler pin),是很简单的一项设置。选择3D打印机电路板上连接风扇的接口即可。缺省是禁用(Disabled)状态,我按照我的3D打印机的实际情况改为风扇接口(Fan pin)就可以了。

第三十项,冷却风扇脉冲宽度调制值(Cooler PWM speed),在上面选项不再是禁用状态后出现。很明显,这里用缺省值255就很好了。

【打印虎原创】Repetier-firmware深度配置图解教程_第二版73_打印虎

第三十一项,等待回抽距离(Wait retract distance),在

3D打印机挤出头加热等待过程中,将耗材回抽一段距离,可以减少不受控制的塑料丝挤出,避免一些首层打印时的麻烦。如果你不在乎这个,可以保持缺省值0。

到这里,所有的温度设置已经完成。下面让我们继续下一栏。

第五节,功能设置

第一项,允许Z探测(Enable Z-probing),这个功能允许3D打印机在特定硬件的支持下自动找平热床。因为这个功能比较复杂,又包含很多参数,所以如果选中这个选项,这个页面的下方会出现一组新的选项。因为这个东西大多数玩家都没有,特别是我也没有,所以就不仔细研究了。如果有朋友对这个比较了解,也欢迎QQ上告诉我你的心得,我可以加在我的这个教程中,分享给更多的朋友。

第二项,允许伺服电机功能(Enable servo support),这个功能允许3D打印机使用伺服电机工作,更快更精准。可以我也没有这种高档货,所以不深入讨论了。

第三项,允许双头打印(Enable ditto printing),这个功能将同样的信号发给挤出头0和挤出头1,当然结果就是同时3D打印出两件一模一样的模型。在一些特殊的情况下可能有用吧。

第四项,允许看门狗功能(Enable watchdog),看门狗是单片机提供的硬件功能,如果启用这个功能,程序必须至少每秒钟通知看门狗一次,声明自己还活着,否则看门狗将重

置单片机。打开这个功能就不会因为程序问题死机了(改成系统重启了)。是否开启大家自己看着办吧。

第五项,允许画弧线功能(Enable arc support),也就是是否支持G-code G2/G3两条指令。不需要特殊硬件支持,完全是软件实现的算法。缺省是打开的。

第六项,记忆当前位置/移动到记忆位置功能(Memory position/move to memory

position),也就是是否支持G-code M401/M402两条指令。这个功能很简单,缺省也是打开的。

第七项,强制检查校验和(Force checksums once a checksum is received),意味着G-code代码必须与校验和一起发送,没有校验和的代码被认为是错误的代码。如果选择了这个选项,代表了我们对PC端控制软件提出了更高的要求,不在G-code中附带校验和的软件就不能用了。

第八项,执行时而不是接收时回显指令(Echo commands when executed rather when received),这个选项决定了回显G-code的时机。缺省是选中的。

第九项,当固件空闲时,发送“wait”信息(Send “wait” when firmware is idle),这个消息是从3D打印机端发送给PC端的。当PC端软件支持这个功能的时候,应该打开这个选项,它有助于帮助用户分析通讯故障。

第十项,随着接收确认发送行号(Send line number along with receive confirmation),这个很简单,缺省是打开的,也是便于人工分析通讯故障用的功能。

第十一项,支持SD卡功能(Enable SD support),这个功能需要硬件支持,只对于一部分3D打印机电路板是有效的。如果你的电路板上有SD插口,应该把这个选项打开。这个选项打开之后,会增加两个选项,分别是是否对SD检测信号取反(Invert SD card detect signal)以及SD卡检测接口(SD card detect pin)这两个选项都很简单,按照实际情况选择就可以了。

第十二项,返回扩展的目录信息(Return extended directory information),只在支持SD卡功能打开之后这个设置才有效。当PC端要求列出SD卡目录的时候,固件程序是否把文件尺寸一并返回。根据代码注释,Pronterface软件是不支持这个格式的,因此如果你需要用Pronterface作为PC端控制软件,就不要打开这个选项了。否则可以按照缺省设置打开。

第十三项,允许婴儿步功能(Enable babystepping),这个功能是一个比较新的功能,它允许用户动态微调XYZ某一个轴方向的位置。特别是Z轴方向的位置微调,可以挽救那些第一层打印质量不好的模型。当然,既然这是一个动态微调功能,它必然只在你拥有LED面板的时候才有用。下面的另一个选项,Z轴婴儿步因子(Z Babystepping

multiplicator),很显然是直接与这个选项相关的。如果你像我一样还没有LED面板,那么这两个选项就保持缺省值吧。

第十四项,允许耗材冷却风扇控制(Enable fan control for filament cooling),这个选项

还对应着下面风扇接口(Fan pin

)选项。如果允许风扇控制的话,也要把风扇连接的电路板上的接口设置正确。但在我的3D打印机上,并不存在这样的风扇,因此,我需要把这个选项关闭,或是把风扇接口选项设置为禁用(Disabled)。

第十五项,电路板冷却风扇接口(Fan pin for board cooling),这个选项控制着另一个风扇,在我的3D打印机上也不存在,因此我把这个接口也设置为禁用(Disabled)。 到此为止所有的功能选项已经设置完毕。

第六节,设置完成

在设置完成之前,其实还有用户界面设置栏(User Interface),如下图。但因为我的打印机没有LED显示屏,因此我就没有深入研究这个模块。很简单的把显示控制(Display controller)设置为无显示(No Display)。

最后,全部设置完成,进入下载栏。

在这一栏中,我们可以选择

?

?

? 下载所有的固件文件,包括设置 下载Configuration.h设置文件 下载config.json设置文件 这三种形式各有各的用途,对于3D打印机玩家来说,肯定是用第一种了。完成下载之后,还需要用Arduino IDE对固件进行编译和上传的工作。这些就比较简单了,如果还不熟悉,可以参考打印虎之前的教程【打印虎原创】Prusa_i3_3D打印机软件安装图解教程。

第七节,总结 我们前面把所有配置项都过了一遍,看到这里大家能有一个问题,就是如果我第一次玩这个,哪些配置项是最重要的,必须要修改的?我在这里把这些重要而且通常要修改的配置项再列一遍,供大家作为检查列表使用。

编号 项目 说明

1 主板 一定要改为自己使用的主板类型

2 XYZ轴长度 应该改为实际的尺寸

重要,一定要根据自己使用的步进电机参数以及打印机的机械设计

3 XYZ轴步进电机分辨率 进行修改

4 限位开关的连接方式 按照实际情况选择选项

5 挤出头步进电机分辨率 同(3),要根据具体情况修改

6 挤出头步进电机方向 有些机械设计方案,需要步进电机反向运行

7 挤出头温度感应器 要根据具体情况修改

8 启用加热床功能 如果有热床,应该打勾

9 热床温度感应器 要根据具体情况修改

可以看出,以上这些配置项都与硬件直接相关,如果不能设置为正确的值,3D打印机很可能是不能正常工作的。因此如果自己不能确定这些项目的值,最好去找硬件的卖家解决问题。不管你买的是整机还是散件,卖家应该都可以回答你的问题的。

其他的配置项,更多的是软件优化或者是个人喜好问题,不影响大局,可以在这些重要的选项配置好,3D打印机已经可以工作之后细致调整。

如果你能读到这里,我认为你绝对是一个Geek了。作为3D打印高手,你一定早就猜到,Repetier提供的这个在线配置工具,其中的每个选项实际上都对应了Repetier-

firmware Configuration.h中的一个宏定义。为了搞清楚每个选项的意义,我可是逐一检查了Repetier-firmware的源代码,仔细地研究了每个选项对代码执行过程的影响。跟那些简单地按照文字本身解释一下的资料相比,希望我的这份教程能给你不一样的感觉。

二 : 2012 美国年度语言 C#,Python 排第二

C# 在过去一年内增长最快,达 2.3%,因此被评为年度语言。而 Python 在过去 10 增长最高,达 8% 。

该数据来自于 PYPL PopularitY of Programming Language index, 这是我根据 Google Trends 上的数据而创建的排名。它是基于在 Web 上搜索语言教程的次数获得:其价值在于一个语言的教程被搜索的次数越多,说明这个语言越受欢迎。

有趣的是,Python 在美国的流行程度排第 2。下图来自 Google Trends ,显示 2012 年在美国搜索语言教程的次数。你可以看到 Python 排在 PHP、C++ 和 C 语言之前,仅次于 Java。

对排名前十名的语言,可看 PYPL PopularitY of Programming Language index.

(文/开源中国)

本文标题:c语言深度解剖第二版-【打印虎原创】Repetier-firmware深度配置图解教程_第二版73
本文地址: http://www.61k.com/1155519.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1