【打印虎原创】RepRap_Prusa_i3_3D打印机步进电机设置图解

玩3D打印机比较深入的玩家都知道,3D打印机步进电机的设置,是一个很有技巧的事情,特别是分辨率(Resolution)这个选项。如果你购买的是3D打印机套件,还比较简单,可以直接采用卖家告诉你的值进行设置。如果是自己采购零件组建3D打印机,就必须对原理足够了解,才能计算出正确的数值。这篇教程就是专门针对分辨率设置这个问题,详细解说其中的原理,手把手教会大家如何计算,希望大家能够喜欢。

第一节,同步带传动步进电机的分辨率计算

我的3D打印机是RepRap Prusa i3类型的,仔细观察,可以发现它的X轴和Y轴传动使用了类似的同步带传动结构。两者都是由步进电机驱动电路进行驱动,步进电机提供动力,同步轮固定在步进电机的轴上,与步进电机的轴同步旋转,再通过同步带驱动活动部件运动。下面几张图分别展示一下。

image001

这个是步进电机,大家都认识了。驱动电路就在电路板上,不单独贴图了。

image002

这个是同步轮和同步带。同步轮和步进电机的轴之间使用螺丝固定。同步轮和同步带齿的型号比较多,两者必须使用相同型号的才能匹配。

这些部件都有各自的内部参数,与最终X轴、Y轴方向的前进距离相关。首先我们看步进电机本身。步进电机的设计决定了在非超载的情况下,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度。这个角度,被称为“步距角”。最常见的三种步距角,分别是0.9°,1.8°和7.5°。这三种步距角,也就对应了步进电机每旋转一周(360°),需要的脉冲信号个数为400个、200个以及48个。这个参数是步进电机的内部参数,购买步进电机时一定要问清楚哦。

与脉冲信号相关的另一个参数是步进细分数,在驱动电路电路板上。驱动电路的主芯片,通常具有驱动细分功能。比如我的Melzi电路板上用的芯片A4982,就具有驱动细分的功能。所谓驱动细分,就是把原本一个脉冲信号前进的角度,再次进行分割,比如1/2、1/4或1/16等。这样,可以对步进电机进行更精细的控制。在Melzi电路板的设计中,A4982被设置为1/16驱动细分。在驱动细分起作用的情况下,假如你使用的步进电机的步距角为1.8°,步进电机旋转一周就需要3200个脉冲信号(200×16)。

第三个参数是同步轮的齿数。这个很简单了,数一数就知道了。这个部件的定制性比较高,从十几齿到三十几齿都能在市面上买到,因此一定要数对才行。同时,同步轮还有另外一个参数,就是支持的同步带的型号。很明显,同步轮和同步带必须使用型号一样的,否则出现什么效果就不好说了。

最后一个参数,就是同步带的型号了。不同型号的同步带,最大的不同就是齿和齿之间的距离不同。从2mm到5mm都比较常见。假如步进电机旋转一周需要3200个脉冲信号,而我们使用的同步轮有15个齿,同步带型号是GT2,也就是节距2mm的同步带,那么步进电机旋转一周,会带动同步轮旋转一周,也就是前进15个齿的距离,对应到同步带上,就是前进30mm的距离(15×2)。在这种情况下,同步带带动打印头或者热床前进1mm,需要的脉冲信号为3200÷30=106.67个。

如果觉得自己计算有点麻烦,可以考虑使用网站http://prusaprinters.org/calculator/,这里提供了一个在线版本的3D打印机步进电机计算器:

image003

在这个表中,只要把步距角填入Motor step angle中,驱动细分数填入Driver microstepping中,同步带的节距填入Belt pitch中,同步轮的齿数填入Pulley tooth count中,就可以在Result出得到最终结果了。第二行右边的Belt presets我的理解是起到提示的作用,告诉大家同步带尺寸和节距的对应关系,并不参与到计算中。

如果已经安装了Repetier-Host,也可以用软件提供的功能。在“工具”菜单中,我们可以找到同步带传动计算器。这个计算器同样是4项输入,与上面的网页功能一样。

image004

第二节,丝杆传动步进电机的分辨率计算

3D打印机的Z轴传动有几种不同的形式,先介绍比较先进也最简单的一种。看图,步进电机的轴直接是一个丝杆,而不是类似X轴或者Y轴步进电机的光杆。当然,如果用在3D打印机的Z轴上,通常需要的轴的长度比图中所示的还要再长一些才行。

image005

很明显,这样的直接以丝杆为轴的步进电机,部件比较少,计算起来也比较简单。除了上面第一节已经说过的步进电机驱动电路(不在图中哦)、步进电机本身之外,只剩下丝杆这一个与传动有关的部件了。下面我们就深入讨论一下丝杆。

与丝杆相关的概念,主要有螺距、头数和导程这三项。螺距指的是螺纹上相邻的两牙对应点的轴向距离。通常用P表示。头数就是螺纹的线数,如下图所示,双头丝杆有红蓝两条不相交的螺旋线,互相缠绕形成。

image006

有了螺距和头数这两个概念,导程就比较简单了,导程指同一螺旋线上相邻两牙对应点的轴向距离,可以用L表示。因此如果是单线的螺纹,导程就等于螺距。如果是多线螺纹,导程就等于头数乘以螺距(L = nP)。

image007

举个例子,比如我们仍然用1/16驱动细分的Melzi电路板驱动步距角为1.8°的步进电机,这时步进电机旋转一周就需要3200个脉冲信号。步进电机以一个4头螺距2mm的丝杆为轴,这样的丝杆,导程为8mm,因此每毫米Z轴上升或者下降,需要3200÷8=400个脉冲信号。

仍然可以使用刚才提到的在线版本的3D打印机步进电机计算器:

image008

在这个表中,仍然是把步距角填入Motor step angle中,驱动细分数填入Driver microstepping中,丝杆的导程填入Leadscrew pitch中,就可以在Result出得到最终结果了。第二行右边的Pitch presets仍然是常见的丝杆导程列表,不直接参与计算。

Repetier-Host也有四杆传动计算器。遗憾的是这个计算器缺少直接填入导程的地方,只能在预设的几种丝杆中选择。这样其中是没有我们需要的8mm这个选项的,因此没法得到我们需要的结果了。

image009

除了上面讨论的这种最简单形式之外,我们还可能遇到使用联轴器连接的光杆步进电机和丝杆。因为联轴器是同步的1:1的传动装置,因此计算方法与上面完全一样。下图就是联轴器的样子。联轴器下方是普通的步进电机,轴的直径是5mm,上方是用于Z轴升降的丝轴,直径在5mm~8mm之间都是可能的,直径与分辨率的计算没有直接的关系。

image010

如果你的3D打印机设计比较特别,Z轴还可能使用下图这样的部件。这个部件也是步进电机,只是带了减速器。常见的减速比是1比5.18,具体的计算就不举例了。

image011

第三节,挤出机步进电机的分辨率计算

挤出机步进电机分辨率的计算更简单一些,首先我们看一下挤出机齿轮的外观:

image012

这样的一个挤出机送料齿轮,外径是11mm,因此周长是11×3.14=34.54mm。假设我们仍然使用与上面例子中参数一样的步进电机,旋转一周需要3200个脉冲信号,那么每mm的送料,就对应了3200÷34.54≈93个脉冲信号。

可能是因为这个计算过于简单了,大家都没有提供对应的计算器。那我们就手算好了。

第四节,小结

到此为止,我们已经学会计算X轴、Y轴、Z轴以及挤出机的分辨率,也就是多少个脉冲信号对应1mm的移动距离。有了这些数值,就可以很容易的配置你的固件了。如果你使用的是Sprinter或者Repetier-firmware,可以去修改这些宏定义:

XAXIS_STEPS_PER_MM

YAXIS_STEPS_PER_MM

ZAXIS_STEPS_PER_MM

EXT0_STEPS_PER_MM

如果你使用的是Marlin,可以去修改:

DEFAULT_AXIS_STEPS_PER_UNIT

其他的固件虎哥我没有仔细研究,肯定也有对应的地方,大家自己查找吧。

最后,我们这篇文章中介绍的方法,计算出来的数值,都是理论值。3D打印机工作中的实际数值,由于各种环境因素的影响,必然会与理论值产生偏差。其中,挤出机的分辨率是最容易产生偏差的地方。如何观察3D打印机的实际工作状态,并校正这个值,可以看打印虎的另外一篇文章【打印虎原创】RepRap_Prusa_i3_3D打印机校准图解教程系列之二,专门讨论了挤出头送料量的校准过程。我们这篇教程到此结束,祝大家玩机愉快!想看更多的打印虎教程,请访问打印虎原创教程专区。有任何相关的问题,请

联系打印虎 QQ 2404959972