3d打印机,起飞!!
我终于做好了一台3d打印机!!
说到底最重要的是打印机的程序,我直接使用了开源的 Marlin,这样我还可以在这基础上添加我自己的程序。
配置Marlin固件
说来有意思,我最近在整一些arduino的东西,没想到Marlin固件也是基于arduino而开发,这就省事了好多,所以直接下载Marlin就行了源代码就可以了。
Marlin官网:http://marlinfw.org/
我下载的是1.1.9.1
版本的固件,实际上是无所谓,也就是多多少少有些地方会有所不同。
下载之后会有一个 arduino 项目文件,所以直接使用 arduino IDE 打开就可以。
这个项目中其他文件尽量不要去修改,因为涉及到一些单片机的程序,当然我肯定会自己修改,毕竟我是
当然,有个文件还是需要修改的,找到Configuration.h
,你可以叫这个文件为配置文件(好low的名字),打开之后,如果你会 C/C++ 的话,你就会发现里面全是宏定义,这就有意思了(我超爱宏定义的)。
接下来我会说一下比较重要或需要修改的宏定义。
串口设置
这个主板与电脑通信使用的是串口通信,所以需要设置一下端口号:
1 |
端口号默认是0,还可以选择其他端口号。
波特率使用默认的 250000 就可以,其实我在以前玩单片机的时候还没用过这么大的波特率。
1 |
主板选择
这一条语句是设置你当前使用的是什么主板
1 |
我就不讲#ifndef
是什么意思了,毕竟 C/C++ 的知识。主板的型号在boards.h
中,打开就可以看到各种型号。
我就选择的是BOARD_RAMPS_14_EFB
主板,别问我为什么,我买的主板店家就这样告诉我的。
挤出机设置
一般情况就使用一个挤出机就够了,所以需要设置成一个挤出机(其实默认就是一个):
1 |
耗材的直径最好修改一下,默认为 3.0 ,改成1.75,虽然我感觉这个修改可能用不上。
1 |
热传感器设置
传感器需要自己好好检查一下自己选择的传感器型号,然后再去设置:
1 |
简单说一下,0 代表了不适用任何热传感器;1 代表了 100K 的热敏电阻,这是最常用的;其他的选择就看源代码中的程序吧。
我需要一个热传感器,这是用来控制喷头的温度,所以是必须的;其次我还在热床的位置添加了一个温控,所以TEMP_SENSOR_BED
也需要设置成 1 。
接下来最好修改一下工作温度的范围,在这个区间里才会正常工作:
1 |
我建议热床的最大温度还是调低一些,直接 150 度的话就烧了,我就设置成 80 度了。
限位开关
下面这个宏定义是默认打开的,不用去修改它,它的作用是限位开关有最小值:
1 |
除此之外,所有最小值宏定义被注释上了,因为我使用了双 Z 轴,所以我需要打开一个宏定义,X轴的最大值:
1 |
我用的这些限位开关是机械式的微动开关,需要长期打开的,所以就需要把下面的 false 改成 true,如果使用的是光电对管,这就不需要常开。
1 |
电机驱动
我的打印机使用了5个步进电机,其中 Z 轴就有两个,所以需要这样打开:
1 |
|
另外,我使用的是TMC2208
的驱动,所以需要修改成这个驱动的宏。
然后是动能部分,推荐一个网站,这个网站可以算出合适的参数:
https://blog.prusaprinters.org/calculator_3416/
先设置 X 和 Y 轴的步进电机,这两个步进电机是是使用同步带传动,所以直接填入就可以
我使用的是TMC2208
,可以直接挑战32细分,使用的同步轮是20,下图是我所填入的设置还有计算出来的结果:
我得到的结果为160,一会设置的时候,X 和 Y 都要设置成 160。
除了传送带,还有丝杆的电机也需要计算我用的是 8 毫米直径的丝杆:
挤出机我用的是泰坦挤出机,大概450左右,后期再精细调节。
将这些算出来,直接填入下面的数组中,四个数分别对应X、Y、Z、挤出机四种步进电机的值。
1 |
同时需要设置电机最大速度,可以把 Z 轴和挤出机的速度提高一点:
1 |
启动加速度值,可以随便调:
1 |
加速度值,可以随便调:
1 |
点击正反相问题有两种解决方法,第一种是修改接线,第二种是修改下面的值:
1 |
由于归航的时候使用的都是最小值,所以全部都使用最小值(-1代表最小,1代表最大):
1 |
限定位置
最主要的是设置热床的尺寸,这个就要根据自己的选择了,我使用的是220大小的热床,我留了一些余量,直接200:
1 |
接下来就是归航的范围,注意最后一个是打印的高度,根据自己搭建的最大值去设置。
1 | // 归位后行程限值(mm),对应于终点位置。 |
预热常数
根据自己需要去设置,我的是使用的是PLA,所以设置成 210 度,热床 60 度;如果使用的是TPU的话是230度,热床 50 度
1 |
LCD设置
这是我的强项了,我最喜欢玩屏了,可惜的是我买的是12864,很low的一款屏,有时间我魔改一下换成tft的彩屏。
12864是可以设置成中文的,所以在这个位置改成中文:
1 |
遗憾的是,没有字库文件,所以需要添加进来字库文件。
对了,我买的不是普通的12864,是一种小款的屏幕,如图:
建议直接查找这个宏,然后再打开:
1 |
SD卡设置
我需要用到SD卡来导入文件,所以需要打开这个宏:
1 |
蜂鸣器设置
我这个提供了一个蜂鸣器,所以我打算使用上:
1 |
其他设置
设置一下打印机的名字,这些字符会在打印机就绪的时候显示出来:
1 |
最后的设置
以上部分大致设置完毕了,但双Z轴还没有设置成功,所以需要设置一下双Z轴。
打开Configuration_adv.h
头文件,这个头文件是高级配置,接下来我需要在这里去配置。
找到一下宏定义,并配置成这样:
1 | // 双 Z 轴步进电机驱动 |
Simplify3D设置
3D打印机是不可以直接使用 stl 模型的,所以在这之前需要进行切片处理。我使用的切片软件为Simplify3D,简称 S3D,这款软件真的很强,不得不佩服,接下来说一下我自己的设置内容。
挤出机设置
这里最需要设置的有两个,一个是喷嘴口径,我使用的是0.4mm的喷嘴;另一个设置的是挤出倍率,这个需要慢调,表面太稀疏了就调大,太堆积了就调小。
其次就是回抽设置,如果没有回抽的话会出现很严重的拉丝现象。我是使用的是近程挤出机,所以,我适当调小了回抽距离,远程挤出可以考虑加大一下。
温度设置
我使用的是PLA材料,温度需要控制在210左右,温度低会黏着不好,温度太高会有点变形,设置成210就差不多了。
热床就定在60度就可以了。
脚本
这款软件可以自定义脚本,但我没有去写多余的脚本,我只写了一个结束脚本。
当打印结束的时候,X轴会移到中间,Y轴会伸到前面,这样做的目的就是方便拿起打印的物体。
脚本程序为(分号是注释):
1 | M104 S0 ; turn off extruder |