3D打印机DIY之三------Arduino开发环境构建和Marlin固件配置

一、Arduino开发环境

1、搜索Arduino IDE下载安装即可。

2、使用VS code开发Arduino

        Arduino IDE很简单,很多功能都没有,使用起来很不方便。因此建议使用Visual Studio Code来进行Arduino程序的开发。Visual Studio Code可以编辑代码、编译程序和下载功能,可以完全替代Arduino。

        首先下载安装Visual Studio Code,然后安装Arduino插件。

安装完成后,点“重新加载”启动插件。

然后“文件”--“首选项”--“设置”

“扩展”--“Arduino configuration”--“在setting.json中编辑”

添加Arduino IDE路径配置,如:

"arduino.path": "D:/Program Files (x86)/Arduino",

这样就完成所有配置了,下面介绍一下使用VS code开发Arduino的方法

首先可以使用VS code打开自带的例程:

也可以新建一个.ino文件,直接开始开发。

点击窗口的最下面可以选择编程器、开发板型号、串口号等

打开.ino文件,右上角会出现

可以选择编译并下载、只编译。

3、下载并使用VS code打开Marlin

https://github.com/MarlinFirmware/Marlin  下载Marlin固件,下载后解压。

直接打开VS code,使用“打开文件夹”,打开Marlin的文件夹

打开文件夹后,再在Marlin文件夹中找到Marlin.ino打开,就可以编译和下载了。

二、Marlin固件必要配置

打开Configuration.h文件,使用VS code的搜索功能来修改下面的参数。

1、#define BAUDRATE 250000

配置串口波特率,一般不修改。上位机的波特率要和这个一致才能正常通讯。
2、#define MOTHERBOARD 33

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

3、#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_BED 1

分别配置挤出机温度传感器和热床温度传感器的类型。配置为1说明两个都是100K ntc热敏电阻。如果是其他的,请参考旁边的注释进行设置。
4、#define EXTRUDE_MINTEMP 170

挤出机工作最低温度,必须要高于这个温度,挤出电机才能工作。如果耗材不是ABS或者PLA,这个值要改变,否则挤出机达不到170度,永远都不会工作。
5、#define BED_MINTEMP 5

热床工作最低温度,低于此温度让热床工作会报警。比如冬天室温太低就很可能触发热床温度过低报警,要想正常使用,可以把这个温度再调低,可以为负值。
6、const bool X_ENDSTOPS_INVERTING = true;
const bool Y_ENDSTOPS_INVERTING = true;
const bool Z_ENDSTOPS_INVERTING = true;

配置3个轴限位开关类型,配置为true,限位开关默认状态输出为1,触发状态输出为0。一般的限位开关都是上拉的,按下触发后输出0。
7、#define INVERT_X_DIR false
#define INVERT_Y_DIR true

#define INVERT_Z_DIR false

X轴、Y轴、Z轴运行方向是否反向,这个参数先不管,后面调试的时候根据机器情况再来调整。
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

配置打印机最大和最小坐标,单位是mm。
9、#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0}

配置回原点的速率,单位为毫米每分钟,太快会导致机架晃动。 
10、#define DEFAULT_AXIS_STEPS_PER_UNIT {400, 400,400,92.64}

这个参数是打印机打印是否正确的最重要参数,参数含义为运行1mm各轴所需要的脉冲数,分别对应x,y,z,e四轴。

我的打印机3轴都是使用的8mm丝杆,因此电机转一圈移动8mm,电机步距角是1.8度,转一圈需要200个脉冲,电机驱动是16细分,因此转一圈需要3200个脉冲。因此移动1mm需要400个脉冲。

我的打印机使用的是MK8挤出机,电机上的齿轮直径是11mm,周长是3.14*11=34.54mm,16细分,转一圈需要3200个脉冲,因此移动1mm,需要3200/34.54=92.64个脉冲。为了追求精确可以上料后,控制挤出机挤出10mm,用尺子量一下实际挤出的长度来矫正一下计算值。(详细的可以看这儿http://www.log4cpp.com/diy/3dprinter/46.html)
11、#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

限位开关是限制最大距离还是最小距离(归零的那一边),1是最大距离,-1是最小距离,根据自己的安装方式来设置,一般都是最小距离。

12、把//#define REPRAP_DISCOUNT_SMART_CONTROLLER前面的“//”去掉来启用2004液晶。

13、把#define SDSUPPORT前面的“//”去掉来启用SD卡。

注:如果是12864液晶,则需要将//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER前面的“//”去掉,同时因为12864可以显示汉字,所有还需要添加字库U8glib ,不然会编译报错。直接搜索U8glib 就可以知道安装方法了。

 

以上的配置修改了,就可以编译下载到Mega2560了。

  • 15
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【ql君】qlexcel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值