首页 > 技术文章 > 3D打印机(Prusa I2)DIY经验分享(Part II)

Martin-Soaring 2018-09-20 19:52 原文

原文链接(QQ空间):https://user.qzone.qq.com/582760538/blog/1454561861

3D打印机(Prusa I2)DIY经验分享(Part II)
 四、组装打印机电路(感谢:深海的小鱼儿 http://www.cnblogs.com/xmphoenix/
1.软件下载
1.1 固件上传工具——Arduino   可以到官网下载。http://arduino.org.cn/ 软件是免费的
图片
1.2 3D切片软件——Slic3r  可以到官网下载 http://slic3r.org/ 软件是免费的
图片
1.3 3d打印机控制软件(上位机)——Printrun 下载地址:http://koti.kapsi.fi/~kliment/printrun/   选择一个版本下载即可
图片
1.4  固件——Marlin 下载地址:https://github.com/ErikZalm/Marlin

2.安装驱动。。。安装Arduino之后就可以自动安装驱动了。。。

3. 配置固件
 
打开Marlin:
图片

3.1 #define BAUDRATE 250000这是配置串口波特率的,只有上位机波特率和固件波特率相同来能通讯成功,一定需要注意。当然也不能随便改,常见的波特率为:2400,9600,19200,38400,57600,115200,250000。在3d打印机中常用的是后3个。
图片

3.2 #define MOTHERBOARD 33 这个参数是配置板子类型的,3d打印机主控板类型非常多,每个板子的io配置不尽相同,所以这个参数必须要跟你自己的板子类型相同,否则无法正常使用。我的板子是RAMPS1.4版本,对应的配置应该为33(单打印头配置),和34(双打印头配置)。如果你使用的是其它板子,请参考旁边的注释并选择合适的配置。

3.3 #define TEMP_SENSOR_0 1
#define TEMP_SENSOR_BED 1这两个参数分别配置温度传感器的类型。这是读取温度是否正常的重要参数,如果读取的温度不正常将不能工作甚至有很大的潜在危险(烧毁器件等)。配置为1说明两个都是100K ntc热敏电阻。如果你使用了其它温度传感器需要根据情况自行更改。
图片

3.4 #define EXTRUDE_MINTEMP 170 这个参数是为了防止温度未达到而进行挤出操作时带来的潜在风险,如果你做其它3d打印机,比如有朋友做巧克力打印机,挤出温度只需要45度,那么这个参数需要配置为较低数值,比如40度。
图片

3.5 const bool X_ENDSTOPS_INVERTING = true;
const bool Y_ENDSTOPS_INVERTING = true;
const bool Z_ENDSTOPS_INVERTING = true; 这里的三个参数是配置3各轴的限位开关类型的,配置为true,限位开关默认状态输出为1,触发状态输出为0,也就是机械限位应该接常开段子。如果你接常闭段子,则将true改为false。
 图片

3.6  #define INVERT_X_DIR false
#define INVERT_Y_DIR true这两个参数是比较容易错的。根据自己机械的类型不通,两个的配置不尽相同。但是原则就是要保证原点应该在打印平台的左下角(原点位置为[0,0]),或右上角(原点位置为[max,max])。只有这样打印出来的模型才是正确的,否则会是某个轴的镜像而造成模型方位不对。参考下图坐标。
 图片

3.7  #define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1 如果原点位置为最小值参数为-1,如果原点位置为最大值配置为1.
 图片
 
3.8 #define X_MAX_POS 205
#define X_MIN_POS 0
#define Y_MAX_POS 205
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0 这几个参数是配置打印尺寸的重要参数,参考上面的坐标系图来填写,这里需要说明的是坐标原点并不是打印中心,真正的打印中心一般在[(x.max-x.min)/2,(y.max-y.min)/2]的位置。中心位置的坐标需要在后面的切片工具中使用到,打印中心坐标应该与这里的参数配置匹配,否则很可能会打印到平台以外。
 图片

3.9  #define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} 配置回原点的速率,单位为毫米每分钟,如果你使用的是xy轴同步带传动,z轴螺杆传动,这个参数可以使用默认值。
图片
 
3.10 #define DEFAULT_AXIS_STEPS_PER_UNIT {85.3333, 85.3333,2560,158.8308} 这个参数是打印机打印尺寸是否正确的最重要参数,参数含义为运行1mm各轴所需要的脉冲数,分别对应x,y,z,e四轴。多数情况下这个数字都需要自己计算才可以。
图片
【补充】如何计算运行1mm各轴所需脉冲数?
如果是皮带传动:

如果是丝杆传动:

挤出机: 
步进电机步数:1.8度步距角的电机为 200, 0.9度步距角的电机为 400
步进电机驱动细分配置: RAMPS默认为 1/16 etc
同步带齿间距 :对于T5为5.00mm , 对于XL为5.08mm ,对于GT2为2.0mm etc
同步轮齿数:问卖家。。。
丝杆导程:对于M8标准丝杆为1.25mm
挤出机齿轮比,从动轮比主动轮 :Wade's Extruder: 39/11, Accessible Wade's by Greg Frost: 43/10, Adrian's Extruder: 59/11, etc

这还有大神做的计算器:http://www.makerlab.me/calc/index.html

4.上传固件
4.1 上传之前,windows用户需要提前安装驱动。 配置板子类型:Tools > Board > Arduino Mega 2560
4.2 配置串口: Tools > Serial Port > 你的mega板子对应串口号一般是最后一个,如果是windows系统,串口号一般是com3、com4、com8之类的形式 
4.3 点击对号按钮来检查是否有错误 
4.4 再点击向右的箭头按钮来上传固件
4.5 上传过程中,2560板子上的TX RX 和L对应的三个led灯都会闪。如果不闪了,说明上传完成,如图
  
4.6 上传完成提示
  

5. RAMPS1.4板子的功能分布
请参考示意图,为了防止接错,请再三确认以下几个方面后再通电,
* 电源正负极是否正确?
* RAMPS电源只接12V,没有5V接入。
* 4988驱动板确保没有插错位和颠倒(如果差错,通电就会烧板子)。
* 机械式限位开关只需要将开关上的com端和NO端接到板子的S(信号线)和-(负)两个位置即可。千万不要尝试将机械开关的三个段子都接在板子上。很可能会造成短路。
  

6. 接线,准备测试
把电机驱动按图插上(如果插反了电路板就有可能烧坏),接上热敏电阻,限位开关,风扇。
用一个电机轮流测试 
图片

7.打开Printrun,开始测试
图片
 并且,左侧的图形操作区变为可以操作的颜色。勾上温度曲线旁边的watch选项,可以实时获取温度情况,如图。
 
7.1  查看温度是否正确
如果上面的操作都正确,你可以看到现在两个温度传感器的温度,并且温度应该为室温,手捏在上面可以看到温度的变化。如果你的温度读取到的为0度,请确保连接正确,依然有问题应检查固件中的相关参数。

7.2  测试三个输出端
接上12V电源,点击下图中标红位置的按钮,两个设置温度的按钮,一个风扇按钮(如果没有风扇打开按钮,可以在右侧输入M106 S255命令来实现)。如图:
 
如果这时RAMPS1.4上亮起了三个红色LED,那说明输出端测试成功。如下图:
 

7.3 测试电机及驱动
连接步进电机的4跟线到X轴电机输出端,如果你的电机导线颜色是标准颜色,可以用红-蓝-绿-黑的顺序连接,如果你的线颜色不标准或没有颜色区分,你需要通过电机说明书找到4跟线属于哪一相及哪一极,然后安装相B负-相B正-相A正-相A负的顺序连接(还有其它接线方式,请了解一下步进电机的原理)。(其实吧。。。如果懒就看图,按照我接线的颜色接线就好了)

7.3.1  xyz三轴电机测试
点击上位机左侧的手动操作区域,进行对xyz三轴的测试。如果只有一个电机测试完应该轴后,再插到另一个轴上。

测试流程:
先电机某个轴的加+方向操作,电机应该往正方向运转; 再电机对应轴的负-方向操作,电机应该反转; 重复几次上面的操作。
需要注意的是,固件为了防止打印机撞车,小于最小位置和大于最大位置后电机就会停止运动。也就是说并不会一直加或减下去,电机都会转。

7.3.2 挤出机电机测试
由于固件不允许温度为达到最小挤出温度(固件中的参数)时执行挤出动作。所以如果你连接了真正的挤出机,并且有物料在里面,请不要在温度未达到230(abs)和185(pla)时进行挤出机测试。
  
测试方法:
1、将温度加热到物料对应的挤出温度,PLA:185度,ABS:230度,再进行测试,电机Extrude为挤出动作,Reverse为后退动作。如果所需要的方向跟实际方向相反,直接把所有的4跟电机导线反向即可。
2、如果你没有接挤出机,或挤出机中没有物料,可以不需要进行加热来测试。需要在右侧命令输入框中输入M302来允许冷挤出操作。这样就可以跟上面一样进行Extrude和Reverse测试了。

7.4 限位开关测试
RAMPS1.4最多共支持6个限位开关,分别是X-min,X-max,Y-min,Y-max,Z-min,Z-max。其中至少需要用到3个来确定打印机的原点,可以是一个轴的min或max位置的限位(由固件中做配置)。限位开关根据不同的形式接线方式也不同,机械式的限位开关只需要连接两个段子即可(负和信号),光电、霍尔式开关一般需要连接三个段子(正、负和信号)。
我这里测试用3个轴的min位置来做原点的配置方式。测试限位开关应该接在各轴的min位置上。然后电机测试轴的home按键,对应轴的电机应该开始转动,然后按下对应轴的限位开关两下(为了提高精度,碰到一次后返回几毫米再碰到才是真正的原点),此时电机应该停止转动。以上操作重复在其它轴上进行测试。   

至此,电路的测试结束。

8.Slic3r配置需要注意的地方
先打开Slic3r,我用的是简易设置。。。
8.1 先看看Slic3r的界面
图片

8.2看看菜单栏

图片

图片

8.3打印设置窗口
层高的设置,一般比打印挤出头的尺寸要小。
图片
图片 
8.4 filament setting窗口
注意设置线材的直径(如果不知道问卖家,一般是3.00mm和1.75mm两种尺寸)
还有挤出机温度设置,热床温度设置,要注意一下。
pla一般是在185℃,热床一般是在60℃。
图片
 
8.5 打印机设置窗口
工作台尺寸要如实填写。。。不然有可能会打印到工作台外面。。。
打印中心就是工作台的中心,除以2计算一下就可以了
图片
设置完之后建议导出一份备份。

到这,打印机就已经组装完毕了。
剩下的就是不断的调试与整理。
P.S. 把STL格式的文件添加到Slic3r中生成G代码,然后再在Printrun中载入G代码,单击print就可以开始打印了。

推荐阅读