分类目录归档:打印虎原创

【打印虎】中学生也可以!自制PM2.5检测器

近年来,全国各大城市雾霾的问题越来越严重,已经显著影响到大家的健康,到了必须引起重视的时刻了。为了让家人对PM2.5的情况有个了解,心中有数,虎哥专门研究了一下PM2.5检测器。研究之后,发现目前PM2.5检测器完全可以自己动手制作。虎哥作为一个DIY爱好者,自然心痒难耐,要自己动手搞一搞了。

经过一段时间的摸索,我总算完成了DIY PM2.5检测器的设计和制作。独乐乐不如众乐乐,为了让朋友们有一个健康的生活环境,以最便宜的价格获得一个PM2.5检测器,也为了让大家在制作过程中学习到一点单片机软硬件设计,以及一点点外观结构设计知识,我决定把PM2.5检测器的全部原始资料开源,作为2017年新春的礼物送给大家。源代码包下载链接在文章的末尾处,不想看文章的朋友可以直接把滚动条拉到最后下载。

image001

第一节,      在Arduino UNO上实现创意

在介绍设计细节之前,我们还是先说一下PM2.5检测器的设计需求。首先,我们需要的是一个PM2.5检测器。因此,具有测量PM2.5数值的功能,并且测试数值相对准确,是我们这个设计的第一项需求。第二,我希望设计一个结构简单、易于理解、易于制作、面向教学的PM2.5检测器。因此,“简易”这个条件可以算是另一项需求了。仔细想想,大概也就是这两项设计需求。在满足这些要求的前提下,我们的设计就要开始了。

电路方面,为了让整个设计简单易学,我采用了Arduino UNO作为电路设计基础。在第一节和第二节中,我会首先使用Arduino UNO对这个项目进行原始设计和测试,当测试通过之后,我会再进行PCB电路板的设计(第三节),以及外壳的设计(第四节)。这也就决定了,这个项目的MCU,将使用Arduino UNO的核心元器件ATMega328P。

作为一个PM2.5检测器,必然需要有PM2.5的检测模块。在这个项目中,我采用了国产的攀藤G7作为PM2.5检测模块。这个模块尺寸比较小,测量精度似乎也还可以。有了PM2.5检测模块,还需要一个显示屏输出信息。因为我们并没有太多信息需要展示出来,因此我选择的简单的1602LCD,这个屏幕可以显示16列2行字母或数字信息,足够用了。

总体来说,这个项目的结构非常简单,如图所示。

image003

在面包板上搭建电路的话,需要如下元器件:

元器件 数量
Arduino UNO 1
1602LCD(需要单排针引脚) 1
攀藤G7传感器 1
1/4W直插色环电阻 1.5K 1
1.27mm到2.54mm转接板 1
1.27mm 2x5pin 母头 1
2.54mm 2x5pin 母头 1
面包板 1
导线(杜邦线) 若干

image005

上图给出了一个示意图。右上角的2*5针接口代表了攀藤G7的输出接口。攀藤G7的实际上是这个样子的:

image006 image008

这里有一个需要注意的问题:攀藤G7的接口,并不是2.54mm的接口,而是更小的1.27mm接口。为了用杜邦线接上这个接口,我们需要一个转接板:

image009

这样的转接板,我们不使用中间的2.0mm的部分,只使用1.27mm以及2.54mm的部分。焊接上两个2x5pin的母头之后,攀藤G7就可以用杜邦线连接了。

image010

按照上面的介绍,就可以搭建面包板试验环境了。如果稍懂一些数字电路知识的话,可以看出这个连接非常简单,其中包括了电源和地的连接,以及数据线的连接。对于LCD1602来说,我们连接了所有的数据线,至单片机的GPIO端口。之后我们会在软件中通过操作这些端口电平高低的方式,把内容输出到LCD1602上。对于攀藤G7来说,我们只连接了它的串口输出,至单片机的串口输入(RXD,端口0),这样,我们就可以接收到从攀藤G7串口输出的所有内容了。

更具体的细节信息,可以参考Arduino UNO的设计文档,以及ATMega328P、攀藤G7、LCD1602的说明书(数据手册)。在这些资料中,详细说明了模块每一个引脚的功能。详细介绍需要大量的篇幅,有兴趣的朋友可以找说明书以及介绍单片机编程的书籍来深入学习,我们这里就略过了。攀藤G7以及LCD1602这两个说明书,包含在了PM2.5源代码包中,文章末尾处有下载链接,可以下载。

第二节,      Arduino软件刷入

如果你按照上一节的方式,连接好了电路板,就可以使用Arduino提供的软件环境,给Arduino UNO刷入软件了。我们提供的软件源代码,可以在PM2.5源代码包中的PM2.5目录下找到,文件名是pm2.5.ino,可以用Arduino打开。我用的是Arduino 1.6.13版,如果最新的1.8.x版使用有问题的话,可以下载这个旧版本使用。

软件刷入非常简单,把Arduino主板插入电脑的USB端口之后,Windows会自动安装驱动(如果是正版Windows)。如果驱动安装有问题,可以百度查询Arduino驱动安装的方法。驱动安装完成之后,在Windows设备管理器中可以看到:

image011

你的COM端口号数字可能与我不同,没有关系,等一会刷入的时候,在Arduino软件中可以选择这个端口号。

然后是安装、启动Arduino。当然,如果你还没有下载Arduino的话,要先下载。如何下载、安装Arduino这里就不讲了,如果有需要可以百度。因为Arduino安装包尺寸比较大,源代码包里面也不包含Arduino安装包。

启动Arduino之后,可以看到这样一个界面。

image013

在这个界面上,点击菜单“文件”-“打开…”,并找到源代码包中的pm2.5.ino文件,打开这个文件。观察窗口的右下角,如果显示的是Arduino/Genuino Uno,以及刚才在设备管理器中看到的COM端口号,那就可以按下向右的箭头,开始刷入软件了。否则,要先通过菜单“工具”-“开发板”以及“工具”-“端口”进行调整。

image015

按下箭头之后等一会,一般需要一分钟左右,可以看到Arduino UNO主板上的一些LED闪烁,再之后,就可以看到Arduino软件显示“上传成功”。

image017

如果这里有失败信息,最常见的问题是你的USB线接触不良,或者使用的Arduino版本不对导致的。检查一下再重试吧。

这里需要特别提示一点,由于Arduino UNO刷入固件的时候,需要用RXD端口,因此这时候RXD端口不能与攀藤G7连接。要把连接Arduino UNO以及攀藤G7的数据线(上面示意图中的蓝色线)拔下之后,才能正确刷入软件。刷入完成之后,再连接上,这时应该可以看到显示屏上的输出信息了!

下面,给对软件开发有兴趣的朋友,简单解释一下软件的结构,方便大家对软件的学习和改造。如果对C语言还不了解,或者对软件开发不感兴趣,可以略过这一段。首先是开头的数据引脚的定义。可以看到,从数据引脚2到13,全部使用上了。其中引脚2到12连接到了攀藤G7,引脚13对应的是Arduino板子上的LED灯,与输入的攀藤G7或者输出的LCD1602并没有连接。

下面的5个函数,包括WriteLCM, WriteDataLCM, WriteCommandLCM, DisplayOneChar, DisplayListChar,都是用于输出内容到LCD1602的。具体的写入协议,请查看其它相关的教程,或者LCD1602的数据手册,这里就不细讲了。这一组函数的对外接口,是DisplayListChar,用于将一个字符串显示在屏幕上。其他4个函数,都为DisplayListChar服务。

再下面是setup函数。Setup函数是Arduino的入口函数,负责初始化运行环境。在这个函数中,可以看到对所有数据引脚进行了初始化操作,然后使用一系列WriteCommandLCM调用,初始化了LCD1602。如果想知道这一系列调用起到了什么作用,可以查看数据手册,在数据手册中找到详细的解释。在setup函数的最后,还初始化了串口,等会我们要从串口中读取数据。

最后一个函数是loop函数。Loop函数也是Arduino的入口函数,负责执行程序循环。在这个函数中的内容,会被Arduino反复调用,直到单片机断电为止。对于我们的程序来说,这里面的内容,就是从串行口读入数据,然后显示在LCD1602上。这个过程循环往复,就完成了PM2.5检测器的功能。从代码来看,也不复杂。显示采用一系列Serial类的函数,完成从串行口读取数据的工作。读入的数据是什么格式?这个问题又得去问数据手册了。这次,攀藤G7的数据手册,会解释这个问题。拿到PM2.5的测量数据,我们在数组dispbuf中组成了一个字符串,然后通过刚才提到的DisplayListChar函数,显示在屏幕上。这样,我们就完成了这个单片机上所需的所有软件功能了。

第三节,      PCB电路板的设计和制作

做完了以上两节的工作,实际上PM2.5检测器(的核心功能)已经运行起来了。只是工作在面包板上,不仅不够美观,也非常不可靠。很容易碰到某一根线,整个系统就不工作了。为了让家人也能放心使用,我决定要做一个PCB板,解决这些问题。

想做一个独立的PCB电路板,首先一个问题就是,是不是整张Arduino电路板都要复制过来呢?如果仔细观察就会发现,Arduino电路板还是很复杂的,如果整张Arduino电路板都要复制过来,那些贴片元件,特别是USB转串口模块的ATMega16U2芯片,是极难手工焊接的。如果用了这样的方案,就只能请代工厂完成焊接工作,不能自己手工DIY了。

经过研究之后,我发现实际上Arduino电路板上,只有少数几个元器件是工作所必须的,而这些元器件,都可以采用直插元件,这样就大大方便了我们的后续焊接工作,让没有什么焊接经验的同学也可以参与到其中了。

经过简化之后的Arduino电路图,如下所示。

image019

简单说明一下。MCU部分,只保留了晶振和晶振匹配电容C2/C3,以及一个给电源稳压的电容C1。LCD1602的V0引脚,通过一个1.5K电阻接地,可以得到最好的对比度效果。另外整个系统的电源,我设计为使用常见的Micro USB接口提供。这样,每天早上起床之后,或者晚上给手机充电之前,可以使用手机充电器连接PM2.5检测器看一下当天的PM2.5值,就不需要再配其他的电源了。从电路设计图上也可以看到,这个口虽然是USB口,但只使用了USB口上提供的+5V电源,并没有USB通讯功能,所以也就不需要USB通讯相关的芯片、软件了。

电路板上一共只有9个独立元器件,需要焊接:

image020

元器件 数量
28pin窄DIP插座(用于插入ATMega328P) 1
2.54mm 1*16排针(用于连接LCD1602) 1
1.27mm 2*5排母(用于连接攀藤G7) 1
1/4W直插色环电阻 1.5K 1
瓷片电容 22pF 2
瓷片电容 100nF(104) 1
直插无源晶振 16MHz 1
1*5排针(用于连接USB转DIP转接座) 1

这样的设计,让即使是初次拿起电烙铁的同学,也完全可以顺利完成焊接,希望能让大家提高兴趣,深入学习了解电子知识。

整个电子设计,使用EAGLE软件完成。国内使用EAGLE软件的朋友相对比较少,但这个软件在国外开源社区非常流行,对于双面、80cm²以内的PCB电路板设计,可以使用免费版完成。我们这个PM2.5检测器,完全符合条件,大家可以直接使用免费版本进行研究和修改。掌握这个软件,还可以帮我们更好的与国际接轨,学习参考国外开源社区的优良设计。(特别提示,Arduino系列电路板,都是使用这个软件完成的设计。想玩转Arduino的朋友,一定要掌握这个软件哦~)

电路板的原始设计文件,也包含在了源代码包中,可以在pcb目录下找到。其中pmpcb.sch和pmpcb.brd文件是原始设计文件,可以直接在EAGLE软件中打开。Gerbers目录下的所有文件,是用于生产的导出后文件。电路板设计完成之后,可以拿到代工厂进行打样。一般一两周之后,我们就可以拿到打样之后的结果啦~

把PCB板上的所有的零件都焊接好,再做好以下几点:

  1. 把LCD1602显示屏焊接在单排针上面。这个焊接需要比较注意,要把两层PCB板的对应孔位置对齐,如果歪得太多,安装外壳是螺丝很难穿过去。关键点在于,用电烙铁焊接第一个点和第二个点的时候,要特别注意对齐。焊完三个点以上,如果不借助专门的工具,就很难再调整了。
  2. 把USB转DIP转接座焊在单排针上面。与上面第一条情况类似,不重复了。
  3. 安装MCU ATMega328P。这里可能需要IC起拔器。这个工具不贵,建议买一个。如果没有这个工具,从IC座上取下芯片可能会比较困难。
  4. 安装攀藤G7。这个模块没有安装孔位,如果只是简单插上这个模块,模块和PCB板中间会有一个小缝,而且整体晃动时模块会拍打在电路板上。因此我在模块和PCB板中间贴了一片2cm直径,1mm厚度的双面胶。如下图。

image021

贴上这个双面胶之后,所有问题都解决了。

全部焊接完成之后,整个作品已经可以工作,接近完成了:

image022

这样,在上面的表格之外,完成到这步还需要的元器件包括:

元器件 数量
MCU ATMega328P 1
LCD1602 1
攀藤G7 1
USB转DIP转接座 1
2cm直径1mm厚度双面胶 1

第四节,      外观设计与安装

最后,让我们给PM2.5检测器增加一个外壳,这样用起来就更加可靠了。这个外壳,我设计使用亚克力板作为前面和后面两面的面板,其他部分使用标准零件连接。这样,我们只需要找到能切割亚克力板的商家,进行一次切割就可以了。

前面和后面的面板,我使用QCAD软件(免费软件)进行设计。设计完成之后,保存为dxf文件,就可以发送给亚克力切割商家了。这个文件也保存在我们的源代码包中,下载后在frame目录下可以看到。使用QCAD打开这个文件如下图所示。

image024

在这里,我们就不详细介绍QCAD的用法了。有兴趣改造目前设计的朋友,可以百度相关的教程。打印虎也曾经写过一个QCAD使用的教程,【打印虎】用QCAD修改RepRap Prusa i3 3D打印机框架设计图解,可以供大家参考。这个dxf文件实际上只有2D的设计。切割时,要跟商家说好,用4mm厚度的亚克力板进行切割。这个厚度数据是不包含在dxf文件中的。

切割完成之后,我们要先把背板和支撑板安装在一起:

image025

下面,使用M3*8塑料螺丝、螺母以及2.5mm塑料柱,加固PCB电路板USB接口部分。这样,就不怕插拔力量太大对USB接口造成损坏了:

image026

最后只要把前面板、中间的PCB电路板以及后面板组装到一起,就可以了:

image027

总结一下,这一步中需要的零件包括:

零件 数量
亚克力板 1套
M3*16螺丝、螺母、垫片 1套
M3*8塑料螺丝 6
M3*15塑料螺丝 4
M3*10双通尼龙柱 2
M3*15双通尼龙柱 2
M3尼龙螺帽 2
2.5mm白色塑料柱 8

到此为止,全部工作就完成了。是不是特别有成就感呢?

第五节,      结束语

以上所有工作完成之后,你就获得了一个与文章开始处第一张图一样的PM2.5检测器了。当然,所有读到这里的朋友,肯定都有非凡的聪明才智,一定想到了很多可以继续改进的主意。如果你有进一步的改进,也欢迎你开源给后面的朋友,加打印虎QQ2690194554,我帮你加到这篇文章中。当然,如果想购买文章中提到的整套零件,也欢迎加我QQ。

文章结尾处,我们做一个小广告。最近宁波爱用推出了最新的迷你3D打印机,相比于目前市面上的机型,这个3D打印机特别小巧灵活,使用注塑外壳,可以达到很不错的精度。还使用了磁性柔性打印平面,让打印时更容易附着,打印完成后更容易取下。而且,最重要的是,这个3D打印机特别便宜,可以点击这个链接了解详情。

image029

最后,当然不能忘记的是开源包的下载!点击这个链接,可以下载到所有的相关资料。祝大家玩得愉快。

 

【打印虎】RepRap 3D打印机新一代Salai主板安装与配置教程 第二版

第一节、Salai主板介绍

随着3D打印机,特别是面向DIY爱好者的RepRap Prusa i3 3D打印机被越来越多的朋友所了解和熟悉,玩3D打印机的朋友们对现有3D打印机设计的改进也越来越深入,同时对3D打印机的核心部件3D打印机主板的要求也越来越高了。

经典的RepRap Prusa i3 3D打印机的主板,通常采用Melzi或者Arduino Mega 2560 + RAMPS这两种方案之一。在这两种方案中,Melzi方案为全合一的形式,单片PCB板,可靠性高;Arduino Mega 2560 + RAMPS方案采用多块PCB板插接的形式,由1片Arduino 2560,1片RAMPS以及4片步进电机驱动板组成,灵活性高。经过打印虎深入评测对比,我们认为Melzi更适合一般的3D打印机玩家的需求,因此在我们之前的各种对3D打印机的介绍文章中,绝大部分都是以Melzi主板为例的。

虽然我们很喜欢Melzi主板,但它也存在诸多限制,影响我们对3D打印机的深入研究和开发。比如,Melzi主板不能支持双挤出头,这让希望用水溶性耗材作为支撑的朋友就不能选择Melzi主板了;另外Melzi主板采用的CPU主频、内存容量都比较低,这样Melzi主板就只能支持12864 LCD液晶屏,而不能支持更高级的彩色触摸屏。为了解决这些问题,让广大3D打印机爱好者有一块更好用的3D打印机主板,打印虎在Melzi主板的基础上研发了Salai主板,解决了目前Melzi主板的一系列问题,提供给3D打印机DIY爱好者一个更好的选择。

很多朋友都知道,Melzi主板最开始是基于Arduino Leonardo进行的设计改进,而Leonardo就是我们熟知的列奥纳多·达·芬奇,所以Melzi主板的设计者选择了达·芬奇最钟爱的学生Francesco Melzi,弗朗西斯科·梅尔兹作为主板的名字。作为Melzi的改进型,我们选择了达·芬奇的另一名学生,Gian Giacomo Caprotti,吉安·贾科莫·卡普罗蒂,又名Salai(萨莱),作为第二代主板的名字。

image002

达·芬奇《萨莱头像》

Salai主板的主要技术参数包括:

  1. 处理器:AT91SAM3X8E,32位ARM核心,512K FLASH ROM,96K SRAM,84MHz主频,可以提供高达80KHz的均匀步进电机步频信号
  2. 用户界面采用3.5英寸全彩TFT触摸屏
  3. 支持双挤出头,提供5个独立的32细分DRV8825步进电机驱动,直接提供高达2A的步进电机脉冲电流输出
  4. 提供3个独立的大功率MOSFET驱动,用于双挤出头加热以及热床加热
  5. 支持XYZ结构,CoreXY结构以及三角洲结构3D打印机
  6. 支持多种自动调平模式,不论使用哪种机械结构,都有合适的自动调平解决方案
  7. 提供Micro SD卡(TF卡)接口以及U盘扩展模块,脱机打印G-code文件
  8. 支持机械及光电限位开关,提供更准确的步进电机定位
  9. 支持热电偶,提供更精确的温度测量值
  10. 支持断电续打,打印完成自动关机
  11. 支持引出步进电机信号线,可以外接更大的步进电机驱动模块,驱动更大的步进电机
  12. 主要电气连接使用螺丝端子,不需要压线或者焊接
  13. 外形尺寸:210mm x 81mm x 17mm,安装孔与Melzi兼容
  14. 重量:106g

2016年8月,打印虎大幅更新了第一版Salai的设计,推出了第二版Salai主板v2.0,在原有设计的基础上,增加了限位开关、热敏电阻以及步进电机的接口引出,将步进电机驱动芯片换位了32细分的DRV8825,并重进规划了断电续打模块、Wifi模块以及热电偶支持的方式。整块主板功能更多性能更强使用更方便。

image004

上图为一片Salai主板,可以看到在这片主板的设计中,各个接口的位置、形式都尽量保持与Melzi一致。

image006

上图为工作状态的Salai主板+TFT屏幕

虽然Salai主板继承了很多Melzi主板的特性,但这两块主板之间的差别还是不小的,我们专门列了一个表格,对比Salai和Melzi之间的差别:

  Salai Melzi
MCU型号 AT91SAM3X8E ATmega 1284P
总线宽度 32位 8位
主频速度 84MHz 16MHz
FLASH容量 512K 128K
SRAM容量 96K 16K
LCD支持 彩色3.5寸TFT触摸屏 单色12864 LCD屏
步进电机驱动 DRV8825,32细分 A4988,16细分
挤出头支持 2个 1个
自动调平支持 支持 不支持
SD卡支持 支持(支持中文文件名) 支持
光电限位开关支持 支持 需要对主板进行调整
热电偶支持 支持 不支持
断电续打支持 支持 不支持

从以上表格可以看出,打印虎推出的下一代3D打印机主板Salai,主板采用了32位ARM体系结构,CPU运行速度是传统8位主板的5倍,可以有效提高3D打印的质量,同时支持双挤出头,自带3.5英寸的TFT全彩触摸屏,配合大幅改进的Repetier-firmware固件,拥有丰富的操作功能和良好的用户界面。这个产品的固件不仅功能丰富,还是开源的,可以满足深入学习的需求!产品不光性能高、颜值高,核心代码开源,价格还特别低,有兴趣的朋友,可以到打印虎的产品页面,看看更详细的信息,这里就不多说了。

第二节、安装USB驱动程序

上一节我们介绍了Salai主板的基础特性,下面我们详细讲解拿到一片Salai主板之后如何安装使用。首先,要把Salai主板与电脑连接起来,为下一步刷固件(调整参数)做准备。连接Salai主板与电脑非常简单,只要两步即可完成。第一步是使用排线连接Salai主板与3.5寸TFT触摸屏:

image008

注意两根10pin排线要JP1对JP1,JP2对JP2,两根线之间不要混淆。

第二步就是连接Salai主板与电脑之间的USB线了。连线之后,主板上的两个LED应该亮起(下图红框内),同时3.5寸TFT触摸屏上应该显示正确的信息:

image010

由于这时候我们还没有连接3D打印机的热敏电阻,因此3.5寸TFT触摸屏上会报告当前温度为“损坏”。不用担心,等会我们连接好热敏电阻之后,这里就会显示为正常的当前温度值了。

虽然连接好USB线之后,Salai主板就得到供电开始运行了,但实际上这时电脑只起到一个供电的作用,在驱动程序安装之前,还不能和Salai主板交换数据。通常Windows会提示“未能成功安装设备驱动程序”,如下图所示。为了让电脑与Salai主板通讯,我们需要先给它安装驱动程序。

image009

Salai主板的驱动程序,已经包含在Arduino安装包内,我们只要下载Arduino并安装驱动即可。由于Arduino官方提供的安装包,不包含SAM核心组件,在下载完成之后还需要单独安装,比较麻烦,因此打印虎重新封装了最新的Arduino 1.6.11版本,同时包含了Arduino主程序以及SAM核心组件,给大家提供了方便。打印虎打包的Arduino 1.6.11版本可以从这里下载(打印虎本地下载百度云下载)。

下载之后直接执行安装包文件就可以开始安装过程了,如下图所示:

image012

直接按下安装,就会开始安装Arduino 1.6.11的过程。由于需要安装的文件数量很多,这个过程的用时会比较久,要等一会才能完成。

image013

全部完成之后,按下关闭就可以了。这时候,桌面上会出现Arduino 1.6.11的图标。

image014

双击这个图标即可启动Arduino 1.6.11了。但我们这里的目标,并不是使用Arduino 1.6.11(下一节会使用这个工具刷固件),而是安装驱动程序。因此我们先打开设备管理器。

打开设备管理器最简单的方法,是在“我的电脑”上单击鼠标右键,选择菜单项“管理”,并在打开的“计算机管理”窗口的左侧选择“设备管理器”。如下图所示:

image014

这时,我们可以看到在“端口(COM和LPT)”这个类别中,会出现一个“未知设备”。这个未知设备就是我们的Salai主板了。鼠标双击这个“未知设备”,并在弹出的窗口中,点击“重新安装驱动程序”按钮。

image015

在打开的更新驱动程序软件窗口中,单击“浏览计算机以查找驱动程序软件”这一项。

image017

在编辑框中填上我们刚才安装Arduino 1.6.11的路径,再点下一步按钮。

image019

这时候会提示用户是否安装“Arduino USB Driver”,当然选择“安装”。

image020

安装完成之后,回到设备管理器,可以看到我们的Salai主板已经驱动起来了。由于Salai与Arduino Due在驱动上是完全兼容的,所以从电脑上我们看起来是一个Arduino Due设备。之后的COM3表示这个设备当前在COM3串口上,在不同的电脑上,这个情况也有可能会改变,不管COM口的编号是多少,都是正确的结果。

image021

到此为止,Salai主板的驱动程序已经成功安装完成,下面我们就可以和主板进行通讯了。下一节,我们会首先介绍如何给主板刷固件,以配合我们的3D打印机的参数。然后,我们还会介绍如何与上位机软件Repetier-host配合使用Salai主板。

第三节、给Salai主板刷固件

Salai主板的一大特点,就是它使用了RepRap 3D打印机最常用的固件Repetier-firmware,这种固件运行稳定,同时兼容性特别好,可以和多种上位机软件配合使用。特别是在配合Repetier-host时,可以发挥出完整的功能,具有极佳的兼容性(毕竟是同一家公司开发的)。而且,为了保证广大3D打印机玩家的进一步改造需求,打印虎保持了所用固件的开源。大家可以直接获得固件的源代码,并在源代码的基础上进一步修改获得自己希望的功能。

将随Salai主板附送的源代码包zip文件解压之后,可以得到这样一个Repetier文件夹,包含了一组源代码文件,如下图所示。

这组文件全部是Repetier-firmware的源代码文件,用C++语言写成。如果需要对这些文件进行较多的修改,可以安装一个文本编辑器,比如notepad++,打开这些文件并进行编辑。下面我们可以看到,直接使用Arduino软件也可以进行修改,但比较不方便。

image023

启动Arduino 1.6.11软件,可以看到初始窗口:

image027

在这个窗口中,选择菜单“文件”-“打开”,并将路径切换到刚才解压得到的Repetier目录,在目录中选择Repetier.ino文件,如下图所示:

image027

这里需要注意一点,因为Windows会隐藏已知的文件扩展名,所以在有些电脑上,Repetier.ino文件会显示为Repetier,“.ino”部分被隐藏了。不论扩展名是否隐藏,打开操作本身没有变化。

按下“打开”按钮之后,我们会得到一个新的Arduino窗口,里面就是整个Repetier工程了。如下图:

image031

在将固件刷入Salai主板之前,我们必须按照自己的3D打印机配置,修改固件里面的配置值。Repetier-firmware所有的配置值,都保存在Configuration.h文件中。为了打开Configuration.h文件,我们要先点击文件名标题栏最右侧的向下小三角,然后在弹出的菜单中选择Configuration.h文件:

image032

在Configuration.h文件中,我们要修改的主要配置项目包括:

  1. 挤出头的数量;
  2. 3D打印机是否有热床;
  3. 限位开关的种类;
  4. 步进电机的方向;
  5. 步进电机的分辨率;
  6. 热敏电阻的参数;
  7. 3D打印机的长宽高参数;

除了以上几项,还有稍微不太常用的

  1. 3D打印机的运行速度参数;
  2. 3D打印机的运行加速度参数;

下面我们逐一搞定这些配置项目。首先是挤出头的数量。找到配置文件中的这一行:

#define NUM_EXTRUDER 1

(小窍门:可以用Ctrl+F打开“寻找”对话框,并输入这一行,就可以迅速跳到正确的位置上,不需要一行一行看了)

这一行配置了挤出头的数量。1代表一个挤出头,2代表两个挤出头。

第二项,是3D打印机是否有热床。找到配置文件中的这一行:

#define HAVE_HEATED_BED true

可以看到,缺省设置是为有热床的3D打印机准备的。如果你的3D打印机没有热床,可以把这一行最后的true改为false,告诉固件这台3D打印机不包含热床。

第三项,是限位开关的种类,常用的限位开关有两种接法,一种是常通的,一种是常断的。如果我们连接了限位开关的C(也就是COM)以及NC接口,如下图所示,则是“常通”接法。这种接法在限位开关未触发的时候,是处于短路状态,触发之后变为断路。

image032

反之,如果连接了C以及NO接口,如下图所示,则是“常断”接法。这种接法在限位开发未触发的时候,是处于断路状态,触发之后变为短路。

image033

如果是第一种接法,也就是“常通”的接法,那么Configuration.h文件中应该设置为

#define ENDSTOP_X_MIN_INVERTING false
#define ENDSTOP_Y_MIN_INVERTING false
#define ENDSTOP_Z_MIN_INVERTING false

这也是初始的设置。

如果是第二种接法,也就是“常闭”的接法,那么上面三行中所有的false都应该改为true:

#define ENDSTOP_X_MIN_INVERTING true
#define ENDSTOP_Y_MIN_INVERTING true
#define ENDSTOP_Z_MIN_INVERTING true

第四项,是步进电机的方向。步进电机的方向,通常在第一次配置的时候不能很好的确定,因此可以先保持原样刷固件,如果发现运行方向与预期不一致,可以在第二轮中进行调整。在Configuration.h文件中,步进电机方向的设置为:

#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false

这三行确定了XYZ的方向。可选值为true和false。如果发现步进电机的运行方向是反的,可以将false改为true,或者反之将true改为false。

另外,在将步进电机加热之后(要首先确定热敏电阻设置是正确的,否则有可能会过热),还可以观察挤出头步进电机的方向。如果挤出头的方向反了,可以调整

#define EXT0_INVERSE true
#define EXT1_INVERSE true

这两行。其中EXT0对应挤出头1,EXT1对应挤出头2。

第五项是步进电机的分辨率。步进电机的分辨率是一个比较麻烦的问题,需要进行一定的计算。具体的计算方法,我们这里就不详细介绍了,对比不清楚的朋友,可以参考另外一篇文章【打印虎原创】RepRap_Prusa_i3_3D打印机步进电机设置图解,专门介绍了步进电机的分辨率计算。我们这里只介绍如何在配置文件中修改步进电机分辨率:

#define XAXIS_STEPS_PER_MM 80
#define YAXIS_STEPS_PER_MM 80
#define ZAXIS_STEPS_PER_MM 800
#define EXT0_STEPS_PER_MM 101
#define EXT1_STEPS_PER_MM 101

以上五行,分别对应了XYZ轴以及两个挤出头步进电机的分辨率。将它们修改为正确的值即可。

下面,第六项是热敏电阻的参数。我们见过的国内绝大多数3D打印机,都采用了R0=100K, beta=3950的热敏电阻。如果你也使用了同样的热敏电阻,那么就不用修改配置文件了。如果很不幸你的热敏电阻与此不同,那么你需要修改这些项目:

#define GENERIC_THERM1_R0 100000
#define GENERIC_THERM1_BETA 3950

很明显,这两行分别对应了热敏电阻的R0值和beta值,修改为你使用的元器件的实际值就可以了。

最后,第七项是3D打印机的长宽高参数。这项参数非常直观,只要直接按照自己3D打印机的实际数值(以毫米为单位)设置即可:

#define X_MAX_LENGTH 200
#define Y_MAX_LENGTH 200
#define Z_MAX_LENGTH 180

如果你的3D打印机比较特殊,可以使用更快的运行速度,或者必须使用更慢的运行速度,则需要调整这些配置项:

#define MAX_FEEDRATE_X 200
#define MAX_FEEDRATE_Y 200
#define MAX_FEEDRATE_Z 2
#define HOMING_FEEDRATE_X 40
#define HOMING_FEEDRATE_Y 40
#define HOMING_FEEDRATE_Z 2

前面三项,MAX_FEEDRATE,指的是3D打印机的最大速度。所有超过这个速度的G-code指定运动动作,全部会降低到这个速度值之后才被执行。

后面三项,HOMING_FEEDRATE,指的是3D打印机的归零速度。可以看出,在XYZ结构的3D打印机配置中,Z轴的速度一般都设定的很低。这是因为Z轴通常使用了丝杆结构,而丝杆结构不能支持比较高的运动速度。

除了速度之外,加速度参数也会对机械运动产生较大影响。

#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_X 3000
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Y 3000
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 3000
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X 4000
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Y 4000
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 4000

对于XYZ结构的3D打印机来说,如果某一个轴比较重,步进电机达不到这个加速度,就会产生失步的现象。如果调试过程中发现失步现象,可以将这里的加速度值调低试试,可能会有明显的效果。前面三项MAX_ACCELERATION,指的是打印过程中的最大加速度值;后面三项MAX_TRAVEL_ACCELERATION,指的不喷丝只是运动挤出头XYZ值时的最大加速度值。

将以上所有内容都修改完成之后,就可以刷固件了。正式开始刷之前,我们还要在Arduino环境中选择正在使用的主板类型以及端口号。这些只要使用菜单项“工具”下面的“开发板”以及“端口”就可以了。开发板选择为Salai AT91SAM3X8E(通常是开发板菜单的最后一项),端口选择为设备所在的实际端口,如图:

image037

开发板以及端口都选择好之后,只要按下Arduino窗口工具栏上的向右箭头按钮,就可以开始刷固件过程了。

image038

这个过程需要持续一段时间,完成后,在下方的日志窗口中,我们会看到这样的内容:

image039

这就说明刷固件过程成功完成了。

需要注意的是,固件刷好之后,我们配置在固件中的各个参数值,却不一定能立即起作用。这是由于Repetier-firmware会把一部分配置参数值保存在EEPROM之中,而在每次主板启动时,自动从EEPROM中读取这些参数值。我们建议的方式,是在每次刷完固件之后,使用触摸屏上的菜单界面“配置”-“将EEPROM恢复出厂设置”,这样可以保证当前的EEPROM中的值,与刚刚刷入的固件配置文件的设置值完全一致。如果你不满足于此,想深入理解EEPROM,了解如何处理EEPROM中的参数值,可以参考我们这篇教程的第七节内容。

image041

第四节、给Salai主板刷三角洲固件以及自动调平的使用

上一节中我们介绍了给Salai主板刷固件的方法,其中举例使用的是XYZ结构的3D打印机。除了XYZ结构的3D打印机之外, Salai主板Repetier固件也完全支持三角洲3D打印机。下面我们就介绍一下如何对三角洲3D打印机进行配置。

与配置XYZ结构的3D打印机一样,配置三角洲3D打印机固件也同样需要使用Arduino环境。由于上一节已经详细介绍了Arduino环境的使用,因此这一节中就不再重复了。这一节中,我们只关注于固件配置文件Configuration.h的修改。修改完成后,使用与上一节同样的方法,就可以将配置好的固件刷入主板了。

为了方便大家,我们把为三角洲机型已经修改了初始值的配置文件,保存为Configuration_Delta.h文件。大家可以从这个文件开始修改。修改完成后,刷固件之前,可以把Configuration.h文件删除,把Configuration_Delta.h改名为Configuration.h文件,这样刚刚修改的内容,加上我们准备好的基础配置,就变成了Configuration.h文件。

对于三角洲3D打印机来说,在固件文件中,我们要修改的主要配置项目包括:

  1. 3D打印机类型(三角洲);
  2. 3D打印机是否有热床;
  3. 限位开关的设置;
  4. 步进电机的方向;
  5. 步进电机的分辨率;
  6. 热敏电阻的参数;
  7. 3D打印机的高度参数;
  8. 三角洲3D打印机半径相关参数;

与XYZ结构的3D打印机配置类似,还有稍微不太常用的

  1. 3D打印机的运行速度参数;
  2. 3D打印机的运行加速度参数;

下面我们逐一搞定这些配置项目。首先是3D打印机类型。找到配置文件中的这一行:

#define DRIVE_SYSTEM 0

将其中的数值0改为3。其中0代表XYZ结构的3D打印机,3代表三角洲结构的3D打印机。

第二项,是3D打印机是否有热床。找到配置文件中的这一行:

#define HAVE_HEATED_BED false

可以看到,缺省设置是为没有热床的三角洲3D打印机准备的。如果你的3D打印机有热床,可以把这一行最后的false改为true,告诉固件这台3D打印机不包含热床。

第三项,是限位开关的设置。由于三角洲3D打印机的限位开关都是高位限位开关,因此我们首先把原定义的低位限位开关改为高位限位开关,找到并修改以下六行:

#define MIN_HARDWARE_ENDSTOP_X false
#define MIN_HARDWARE_ENDSTOP_Y false
#define MIN_HARDWARE_ENDSTOP_Z false
#define MAX_HARDWARE_ENDSTOP_X true
#define MAX_HARDWARE_ENDSTOP_Y true
#define MAX_HARDWARE_ENDSTOP_Z true

这样,就关闭了三个低位限位开关,打开了三个高位限位开关。

上一节中,我们已经详细说明了限位开关连接的两种方式,“常通”接法以及“常断”接法。这里我们就不再重复给图片了。对于三角洲3D打印机来说,除了XYZ三个限位开关之外(三个限位以及不对应于XYZ三个空间正交轴,而是对应于三角洲3D打印机的三个立柱),还通常具有第四个限位开关,用于自动调平。这样的情况下,如果是第一种接法,也就是“常通”的接法,那么固件配置文件中应该设置为

#define ENDSTOP_X_MAX_INVERTING false
#define ENDSTOP_Y_MAX_INVERTING false
#define ENDSTOP_Z_MAX_INVERTING false
#define Z_PROBE_ON_HIGH 1

如果是第二种接法,也就是“常闭”的接法,那么上面几行中所有的false都应该改为true,同时1都应该改为0。

#define ENDSTOP_X_MAX_INVERTING true
#define ENDSTOP_Y_MAX_INVERTING true
#define ENDSTOP_Z_MAX_INVERTING true
#define Z_PROBE_ON_HIGH 0

第四项,是步进电机的方向。步进电机的方向,与上一节讲到的方式一样,可以先保持原样刷固件,如果发现运行方向与预期不一致,可以在第二轮中进行调整。在固件配置文件中,步进电机方向的设置为:

#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true

这三行确定了XYZ的方向。可选值为true和false。如果发现步进电机的运行方向是反的,可以将false改为true,或者反之将true改为false。

另外,在将步进电机加热之后(要首先确定热敏电阻设置是正确的,否则有可能会过热),还可以观察挤出头步进电机的方向。如果挤出头的方向反了,可以调整

#define EXT0_INVERSE true

第五项是步进电机的分辨率。步进电机的分辨率是一个比较麻烦的问题,需要进行一定的计算。具体的计算方法,我们这里就不详细介绍了,对比不清楚的朋友,可以参考另外一篇文章【打印虎原创】RepRap_Prusa_i3_3D打印机步进电机设置图解,专门介绍了步进电机的分辨率计算。我们这里只介绍如何在配置文件中修改步进电机分辨率:

#define BELT_PITCH 2
#define PULLEY_TEETH 16
#define STEPS_PER_ROTATION 200
#define EXT0_STEPS_PER_MM 101

其中,BELT_PITCH指的是同步带每一个齿之间的距离,通常是2mm。PULLEY_TEETH指的是同步轮的齿数,16齿或者20齿的同步轮比较常见。然后,是步进电机一圈的步数STEPS_PER_ROTATION。对于1.8度步进角的步进电机来说,一圈200步。对于0.9度步进角的步进电机来说,要把这里改为400。最后,EXT0_STEPS_PER_MM指的是挤出头步进电机的分辨率。

下面第六项是热敏电阻的参数。仍然与上面一节相同,与热敏电阻相关的固件配置项目,包括:

#define GENERIC_THERM1_R0 100000
#define GENERIC_THERM1_BETA 3950

很明显,这两行分别对应了热敏电阻的R0值和beta值,修改为你使用的元器件的实际值就可以了。

第七项是3D打印机的高度参数。与上一节的XYZ结构的3D打印机不同,三角洲3D打印机只能设置Z轴的高度,而XY轴的运动范围是由下面马上要讲到的第七项参数设置的。

#define Z_MAX_LENGTH 180

将这一项直接改为3D打印机的实际运行高度。因为下面还要进行自动调平,这里的设置比实际值小10mm左右最合适。

最后第八项是三角洲并联臂3D打印机所特有的配置项,如下图所示:

image042

#define DELTA_DIAGONAL_ROD 217 // mm
#define PRINTER_RADIUS 100
#define DELTA_MAX_RADIUS 80

DELTA_DIAGONAL_ROD指的是并联臂的长度。市面上最常见的并联臂长度是217mm。PRINTER_RADIUS指的是在3D打印机喷头对准热床中心时并联臂在水平方向的长度。217mm的并联臂,对应的水平方向长度正好是100mm。最后一个参数DELTA_MAX_RADIUS指的是打印平面的最大可使用半径。虽然打印平面一般是100mm半径,但由于挤出头效应器(Effector)以及上面的风扇会占用一定的空间,受此限制,通常这个半径设置在80mm会比较合理。

第九项和第十项是步进电机的速度和加速度。三角洲类型3D打印机的一大特点就是速度快。特别是Z轴的移动,XYZ类型的3D打印机一般使用丝杆,因此速度会非常慢。而三角洲类型3D打印机的Z轴移动速度,由于使用了同步带传动,因此可以获得与XY轴完全一样的速度。如果我们还保持原来的3D打印机速度,就太浪费了。我们可以修改以下配置项(修改为XYZ三个轴都使用同样的数值):

#define MAX_FEEDRATE_Z 200
#define HOMING_FEEDRATE_Z 40
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 3000
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 4000

这些值的具体含义,可以参考上一节的解释,这里就不再重复了。

到此为止,所有相关的参数都已经修改完成了。如果你有一些使用三角洲类型3D打印机的经验,就会知道我们上面设置的并联臂长度、水平方向半径以及3D打印机高度等数值,都不会太准确。能精确到毫米,已经是非常不容易了。但即使精确到毫米的程度,如果直接使用的话,最终打印效果仍然会不够理想,因为在打印第一层的时候,喷头与热床之间的距离需要非常精确地保持一个很小的数值,比如0.3mm。可以想象,完全通过手工测量和计算,很难达到这样的精度。

为了解决这个问题,常见的三角洲3D打印机都附带了自动调平的设施,而固件也已经支持了自动调平。下面就让我们来使用自动调平功能,最终校准我们对三角洲3D打印机的各项设置值。

在固件中找到这样两行:

#define FEATURE_Z_PROBE false
#define FEATURE_AUTOLEVEL false

将其中的false改为true,即打开了三角洲固件的Z轴高度测试以及自动调平两项功能。重刷固件,并且清理EEPROM的值(参考上一节),我们就可以开始了。

Repetier-firmware自带的自动调平功能非常简单易用。只要在菜单上选择“配置”-“常规配置”-“自动调平测试”,即可开始自动调平过程。在这个过程中,要保持警惕。如果发现挤出头部分撞机了,或者其他问题,要立即切断电源并分析问题。切不可在无人情况下执行这个动作。如果一切顺利,这个过程完成之后你的3D打印机就已经完成了调平。再次进入这个菜单,可以发现“自动调平变换”已经变为了“开”。

image044

在执行了自动调平功能之后,也许你会发现Z轴的高度值还不是非常合适。这时候,我们可以再调整一下Z轴的高度值。在Repetier-host里面,使用菜单“配置”-“固件配置”,在打开的对话框中,找到Z max length一项,微微增加一点(每次尝试1mm左右的改变量即可),把Z轴归零之后降到底部(Z=0)观察,逐渐逼近真实的Z轴高度。

image045

完成Z轴高度调整后,喷嘴和打印平面之间,应该留有一条能透光的细缝,就是我们期待的最佳高度了。

第五节,硬件的连接

如果你还没有把Salai主板安装到3D打印机上,那现在就应该进行安装了。下图给出了各个接口的作用。懂英文的朋友,直接看主板上印刷的文字,也可以直接理解。

image030

3.5寸TFT触摸屏的接口比较简单,连接的时候注意主板和显示屏上的JP1连JP1,JP2连JP2,不要交换反接。USB接口、SD卡接口以及断电续打接口比较简单,都带有防呆设计,不会接反,这里就不详细介绍了。下面主要介绍连接中可能会有问题的接口。

每个接头的背面,都有具体每根线代表的意义。电源以及风扇分正负极,千万不要把正负极接反哦。热床、挤出头加热管实际上是一个纯电阻,不分正负极,但如果使用红黑双色导线的话,还是建议把黑线接在-,红线接在+。养成好习惯可以减少出错的几率。

XYZ以及E1/E2步进电机接口,从左到右应该连接步进电机的B-, B+, A+, A-四条线。下图是一种常见的步进电机线的颜色,在这种情况下,正确的连线应该是从左到右蓝黄红绿

image031

对于另一种常见的步进电机线的颜色来说,正确的连线应该是从左到右蓝红黑绿。

image032

几个限位开关接口,包括XYZ以及自动调平限位开关,主板上都已经配备了相关的上拉电阻和电容器,因此只要简单地直接接上开关就可以用了。理论上,应该把开关的COM端(公共端)连接-,将另一端NC或者NO连接S(可以看主板背面的印刷)。但实际上无论怎么连接都可以正常工作的。

热敏电阻没有正负极,两根导线也不区分颜色,可以随意连接。

LED灯条接口带有防呆设计,但不一定与你的实际情况相符,这里要注意正负极。

如果你的3D打印机使用的不是热敏电阻,而是热电偶,那么你需要外接热电偶模块。热电偶模块的+, -, S三根线要与主板上的TC1/TC2接口对应连接好,如图。

image033

除了以上介绍的最常用的接口以外,Salai 2.0还增加了很多其他接口,提供给有高级定制需求的用户使用:

image034

首先是WIFI云服务模块接口。这个接口实际上比较常用,放在这里是因为比较容易画图。把WIFI模块插入这个接口之后,3D打印机就具备了联网的能力,用户可以远程监控、操作3D打印机的运行。

SD卡延长外接以及USB延长外接,是比较简单的两个接口。有些用户设计的3D打印机,不太方便使用主板上已经固定好的SD卡接口或USB接口。这种情况下,可以使用外接模块,让机器设计更加灵活。

下面是XYZ限位开关旁边的3pin限位开关连接。有些用户直接购买了带电路板的限位开关,这时就需要主板上提供包括电源在内的3pin接口。比如下图的机械限位开关和光电限位开关,都可以直接插在主板提供的3pin接口上。注意红色线对应+,黑色线对应-,蓝色线对应S,不要插反。在限位开关的3pin接口旁边,提供了3.3V/5V切换跳线。这个跳线决定了给限位开关模块供电的电压。使用时,先尝试使用3.3V电压,对于一些不能用3.3V电压的光电限位开关,可以切换为5V电压。

image035

类似地,在主板左侧还有一组开关接口。包括了自动调平限位开关,以及断丝检测光电开关连接。对于这组接口,也是同样地可以进行3.3V/5V供电切换。

Salai 2.0主板,为了允许用户外接更强大的步进电机控制板,引出了所有步进电机的四根信号线。它们分别是ENABLE使能信号,DIR方向信号,STEP步进信号以及GND地线。对于有一些电子方面技术能力的用户,可以外接这些信号线。

最后,Salai 2.0主板还提供了4个舵机接口。在一些自动调平方案中,需要使用舵机,这时候就可以使用这些接口了。

image036

Salai主板的没一个步进电机驱动芯片旁边,都有一个微调电位器(上图红框中)。这个电位器负责控制步进电机驱动芯片的参考电压,进而控制主板输出的步进电机脉冲电流大小。对于Salai 2.0来说,由于采用了DRV8825步进电机驱动芯片,因此参考电压的计算公式为:

Vref = I_TripMax * 0.5

如果你希望输出1.0A的驱动电流,则步进电机驱动芯片的参考电压应该设置为0.5V。具体的测量方法也很简单,使用万用表的电压档,黑色表笔接地(电源接口的右侧接线柱,或者USB接口的外壳,都是接地的),红色表笔接触微调电位器的顶盖,就可以测出当前的参考电压了。

如果你采用的是普通42步进电机,没有特殊的需求,可以保持出厂的设置0.5V,这个值对于大多数普通42步进电机都是合适的。

如果你用的是上一版的Salai主板,由于采用了A4988步进电机驱动芯片,上面的公式要改为(系数变为0.8):

Vref = I_TripMax * 0.8

第六节、Repetier-host的安装和测试

把所有这些接口都连好,就可以开始联机测试了。当然在测试之前,要先把Repetier-host软件安装好。还没有下载Repetier-host的朋友,从这里可以下载Repetier-host软件最新版1.6.2版(打印虎本地下载百度云下载)。

下载完成之后,双击开始安装的过程。第一个界面是选择语言。很遗憾这里面没有中文,只能是凑合用英文了。(安装完成后,软件主界面大部分都有中文)。

image039

之后一路Next下去,直到选择安装模块的页面。

image040

在这个界面下,我们建议红框内的两项,一项是Repetier-Server,另一项是Skeinforge Slicer,都不要选中。因为这两项都没有包含在安装包中,如果选中的话,会临时从互联网上下载,安装速度就很慢了。

特别值得一提的是Repetier-Server,这个3D打印机私有云服务器还是挺好用的,希望了解这个软件的朋友,可以参考打印虎的另一篇教程文章【打印虎】Repetier-Server基础图解教程

继续再按几次Next,完成整个安装过程。最后安装完成的同时,Repetier-host也同时启动起来了,如下图(第一次启动会同时载入一个演示用的模型文件,第二次开始就不再自动载入了):

image052

第一次启动Repetier-host之后,需要先对3D打印机进行设置。按下主窗口右上角“打印机设置”按钮,可以打开打印机设置对话框,如下图所示。最新版本的Repetier-host,绝大多数选项已经非常适合直接使用,只有很少的地方还需要调整。首先,是“连接”选项卡里面的通讯端口及波特率。通讯端口保持Auto通常是可以的,如果发现有问题,可以改为3D打印机实际的通讯串行口,比如COM3。波特率一定要保持初始的115200,否则会不能正常使用。

image044

然后,另一个需要调整的地方是“挤出头”选项卡。如下图。这里最关键的选项,一个是挤出头的数目,另一个是挤出头的喷嘴直径。很显然,这两个选项都必须根据实际的情况进行修改,才能让3D打印机正常工作。

image046

以上所有的配置项都调整好之后,就可以按下窗口左上角的“连接”按钮,连接3D打印机了。

image057

如果一切正常的话,“连接”按钮将会变为绿色。这时候,将右侧的窗口切换到“手动控制”选项卡,就可以进行各个步进电机、限位开关以及热床挤出头的加热测试了。

这些基础的测试项目,我们已经在【打印虎】零基础自制RepRap Prusa i3图解全攻略中做了详细的介绍,这里就不再重复了。这里我们介绍一个比较常见问题的解决,就是挤出头温度偏移的问题。当我们给挤出头设定一个温度(比如200度)进行加热的时候,有些情况下会发现挤出头温度稳定下来之后会有一个偏移,一直高几度或者低几度。这个问题通常是由于固件中初始设置的PID值是个通用值,并非最适合你的挤出头加热棒、加热铝块使用。我们可以使用固件提供的自动PID测试功能进行PID校准,经过校准之后这个问题很可能就可以解决了。

具体的方法很简单,首先在Repetier-host中打开日志记录窗口。点击工具栏的“是否记录”按钮,下方的日志记录窗口就会显示出来了。注意为了看到所有的日志内容,我们要把“记录命令”和“记录应答”两个选项打开,点击蓝色小灯让它亮起。

image043

然后在Repetier-host的手动控制界面上,输入

M303 S200 P0 X

这行命令中,S200代表目标温度为200度,P0代表测试第一个挤出头,X代表测试完成后自动将PID参数值保存到EEPROM中。如图:

image044

这行命令发送之后,在屏幕最下方的日志窗口内会看到

Info:PID Autotune start

这样自动PID测试功能就开始运行了。下图左侧箭头所指的五次温度起伏,就是整个自动PID测试的过程。当温度升降循环五次之后,系统就会自动找到最合适的PID参数值,并且将其存储在EEPROM之中了。

Kp: 5.41

Ki: 0.21

Kd: 33.99

Info:PID Autotune finished ! Place the Kp, Ki and Kd constants in the Configuration.h or EEPROM

整个过程完成后,会在日志区看到以上的内容。Kp, Ki和Kd就是PID三参数的值。没有记下也没关系,这些值已经存储在EEPROM中,不会轻易丢失了。image045

如右侧箭头所指的位置所示,当我们再次对挤出头进行加温时,就会看到温度曲线平滑流畅,并且温度可以非常好地稳定在指定温度的位置处了。

第五节、EEPROM的使用和清除

固件的设置,是一个比较有趣的话题,很多玩3D打印机的朋友,在遇到设置相关的问题时都会犯迷糊。实际上,对于某一项特定的设置,比如说X轴的步进电机分辨率,在3D打印机主板上,有三个不同的位置(也是三种不同的存储器)保存了这项内容,而它们的值还有可能不同。让我们先来了解一下这些保存设置内容的位置,以方便大家的理解。

首先,是固件配置文件(configuration.h)中的设置值。配置文件中的值,会跟随固件一起编译,之后在刷机过程中,保存在了3D打印机的静态存储区(Flash ROM)中。除了刷机之外,静态存储区的内容不会发生变动,可以认为是只读的。每次开机的时候,都是一样的值在等待着我们。

第二份设置值,保存在电可擦写静态存储区(EEPROM)。EEPROM的读写代价,比静态存储区要小。因此,3D打印机允许在刷机之后,修改设置值,而这些修改之后的设置值,就存储在EEPROM之中。每次开机,程序会先检查EEPROM,如果EEPROM中是空白的,则将静态存储区的第一份设置值复制到EEPROM之中。而如果EEPROM中已经有保存好的设置值,则程序会直接使用EEPROM中的值。有些朋友在玩3D打印机过程中可能会有这样的经验,就是明明修改了固件配置文件中的设置值,但刷机之后竟然没有发生变化。这种情况,往往就是EEPROM在捣鬼了。我们完全可以使用G-code M502 M500两条指令(指令的具体含义可以参考下面),重写EEPROM,解决这样的问题。

第三份设置,保存在内存(RAM)中。实际用户使用的值,就是内存中的值。由于内存只在加电情况下能够保持其中的内容,因此每次开机时,3D打印机会根据上面描述的逻辑,重建内存中的设置值。如果某条指令修改的是内存中的设置值,那么这也代表着这次修改是一个临时修改,下次开机这个值就会消失了。

总的来说,三份固件设置,使用的优先级是

内存 > EEPROM > 配置文件

但设置的持久性,就要反过来了。明确了解这些,特别有助于我们解决一些与设置相关的问题,也给我们使用Repetier-host提供了参考。在Repetier-host中,我们可以通过菜单项“配置”-“固件配置”,看到当前EEPROM中的各项设置值。如下图:

image050

在这里,可以直接修改设置值,并立即起作用。比如说X轴的步进电机分辨率,就可以直接在X-axis steps per mm后面进行修改。这显然比修改Configuration.h更方便。同时也如前面所述,这种修改的持久性要小于在Configuration.h中的修改。在用户清除EEPROM之后,这项改动就消失了,会恢复为之前刷机时在Configuration.h中设置的值。

在了解如何查看当前EEPROM的值之后,我们还希望知道如何清除EEPROM的值,让刚刚刷机时在Configuration.h中设置的值起作用。这个动作在Repetier-host中不太容易,没有一个按钮或者菜单项可以直接完成,而是要在“手动控制”面板上输入两条G-code指令来完成这个动作。首先输入M502,按下“发送”。再输入M500,再按下“发送”,这样就完成了对EEPROM的清除重置操作。如下图所示(图中是已经完成两条命令输入后的状态)

image061

图中的三个红框,分别是G-code输入和发送功能,M502的执行结果,以及M500的执行结果。看到这样的执行结果,说明EEPROM已经恢复到Configuration.h中设置的状态了。当然想看到这些内容,“记录命令”以及“记录应答”这两个开关一定要处于“开”的位置。

如果想对G-code有更多的了解,可以参考打印虎的原创文章【打印虎】RepRap 3D打印机G-code命令专家详解

另一种更简单的清除EEPROM值的方法,前面已经提到过了,就是使用触摸屏上的菜单“配置”-“将EEPROM恢复出厂设置”,这样就可以了。相比上面使用Repetier-host的方法,更加简便易行。

第六节、结束语

到此为止,与Salai主板相关的部分就介绍完了。如果对Repetier-host的使用还存在问题,大家可以参考我们之前写的教程【打印虎】3D打印控制软件Repetier-Host使用基础图解教程 第二版,里面详细介绍了Repetier-host的使用方法。

如果你看了我们的文章,对Salai主板很感兴趣,可以到我们的产品页面查看产品详情,产品页面的底部,是打印虎淘宝店的连接,购买主板可以到打印虎淘宝店完成。

另外,Salai主板原生配置了3.5寸彩色TFT触摸屏,使用这个屏幕,用户可以完全脱离电脑,直接操作3D打印机。对于这个触摸屏界面的使用,我们这篇文章就不介绍了,另一篇文章【打印虎】RepRap 3D打印机新一代Salai主板触摸屏使用教程对触摸屏界面进行了详细的介绍,有需要的朋友可以跳到这篇文章,了解详情。

打印虎作为国内最专业的3D打印机软件、硬件研发厂商,提供3D打印机软件、硬件研发定制服务。无论您是3D打印机DIY玩家,或者是3D打印机的生产企业,都欢迎来打印虎选购产品,洽谈合作。我们会用专业的态度加精湛的技术帮助你解决3D打印机研发中的困难,提供最优质产品和服务。希望能够得到广大用户的认同和选择。我们的联系方式可以从打印虎网站获得。祝大家玩机愉快,每天都有好心情。

【打印虎】Salai主板Wifi云服务使用介绍

近日,打印虎的技术研发工程师,给Salai主板添加了Wifi云服务功能。配合Wifi模块,打印虎Salai 3D打印机主板就可以连接互联网,直接接收用户在网上发出的指令,进行3D打印动作。使用了Salai主板的3D打印机用户不再需要使用USB线连接或者通过SD卡倒gcode数据,而是可以直接在打印虎云服务网页上进行操作,远程控制自己的3D打印机。

使用打印虎Wifi云服务,让配备Salai主板的3D打印机变成智能化设备。这进一步方便了用户对3D打印机的操作,让用户体验得到了显著提升。

一、Wifi模块安装说明

image002

Wifi模块外观如图所示。

image003

Wifi模块在Salai主板上的安装位置。将Wifi模块的2*4pin排针插入。注意插入Wifi模块应该在断电情况下进行。

image005

Wifi模块安装在Salai主板上的状态。请注意Wifi模块上天线的方向,应该朝向USB接口一侧。

image006

给3D打印机加电,应该可以看到Wifi模块上的红色LED亮起,这说明电源已经接通。在Salai主板触摸屏上,选择“帮助”菜单,在屏幕上应该可以看到Wifi模块的ID信息(也就是后面需要使用的3D打印机序列号)。如果ID信息显示为“无”,说明Wifi模块和主板通讯出现故障。如果这个页面没有出现ID这一行,说明你的3D打印机主板固件版本太旧了,需要进行Salai主板固件更新(详见下一节)。

二、Salai主板参数设置与固件更新

刚刚插上Wifi模块的Salai主板,还没有设定本地Wifi网络的SSID和密码,因此,还不能连上云服务。我们需要将本地Wifi网络的SSID和密码设定告诉Salai主板。

打开Salai主板固件的Configuration.h文件(可以用常见的文本编辑器打开,比如Notepad++等),修改以下两行的内容:

#define WIFI_SSID “ssid”

#define WIFI_PASSWORD “password”

其中,ssid应该被替换为本地Wifi网络的SSID,两侧的引号保留。password应该被替换为本地Wifi网络的密码,也同样保留两侧引号。

修改完成之后,参考【打印虎】RepRap 3D打印机新一代Salai主板安装与配置教程的内容,重新刷一次固件,这时Salai主板应该就可以和打印虎云服务连接起来了。

三、在打印虎云服务上注册3D打印机

打开浏览器,进入打印虎云服务页面http://www.dayinhu.com/cloud

image007

点击页面上的“用QQ账号登录”按钮。如果是首次登录,会要求用户填写Email邮箱地址:

image009

填写完成之后,我们会进入到控制台首页。这时候可以看到,控制台上空空如也,需要我们把自己的3D打印机添加到这里:

image011

把刚才在Salai触摸屏上看到的打印机序列号,填写在这里。按下确定按钮。

image013

看到下面的界面,意味着你的3D打印机已经添加到打印虎云服务之中,可以开始使用了!

image015

四、使用打印虎3D打印云服务

在打印虎3D打印云服务控制台上,点击“前往打印机”之后,我们就进入了一台3D打印机的主控制界面:

image017

在这个界面上,我们可以在左上角看到3D打印机序列号以及连接状态信息,在拥有多台云服务3D打印机的情况下,这有助于帮助我们搞清楚正在操作的是哪一台机器。

下面是三个主要的功能区。我们正在使用的,是“打印”功能区。在这个功能区,我们可以上传、浏览、打印gcode文件。与在本地电脑上直接操作gcode文件基本一致。

image019

按下“上传G代码”按钮之后,浏览器会弹出文件选择对话框。在文件选择对话框中,选择gcode文件,并按下“打开”按钮。这时,gcode文件开始上传到打印虎云服务。

上传完成后,“已存储的G代码”区域,将会显示出一行信息,代表刚刚上传的gcode文件。在这行信息的最左侧,有“打印”按钮,按下后即可开始打印。在最右侧,有“删除”按钮,按下后将删除这个gcode文件。

image021

“控制”功能区,提供了一组手动控制3D打印机的功能。这一组功能,为我们初期手动调试3D打印机,使用一段时间之后的热床调平等需求提供了帮助。

image023

最后是“控制台”功能区。这里提供了所有发送和接收到的gcode信息。对于核心玩家来说,有了这些信息,可以深入调试机器,有任何问题都可以解决了。

五、结束语

这篇文章介绍了打印虎Salai主板Wifi云服务的使用方法。看到这里,如果你已经购买了Wifi云服务模块,可以开始动手试用了!如果你还没有购买,是不是已经动心了呢?各位打印虎的朋友们可以到打印虎网站的产品页面查看产品详情,产品页面的底部,是打印虎淘宝店的连接,购买主板可以到打印虎淘宝店完成。

打印虎作为国内最专业的3D打印机软件、硬件研发厂商,提供3D打印机软件、硬件研发定制服务。无论您是3D打印机DIY玩家,或者是3D打印机的生产企业,都欢迎来打印虎选购产品,洽谈合作。我们会用专业的态度加精湛的技术帮助你解决3D打印机研发中的困难,提供最优质产品和服务。希望能够得到广大用户的认同和选择。我们的联系方式可以从打印虎网站获得。祝大家玩机愉快,每天都有好心情。

 

【打印虎】Salai主板控制器的设计与制作

第一节,介绍

我们在前面介绍了有关3D打印机的历史和发展,以及入门级的RepRap Prusa i3 打印机的制作教程,感兴趣的小伙伴请前往【打印虎】零基础自制RepRap Prusa i3图解全攻略

熟悉3D打印机的小伙伴们应该都听说过kossel (三角洲)并联臂打印机,kossel打印机因为其结构简单、成本低廉、打印速度快,深受DIY玩家们的喜爱,由于其结构关系,机器调平往往成为入门小伙伴难以逾越的一道门槛。

小编曾信心满满的做过一台kossel,但由于调不平搁置了半年。 因此我们在新一代主板 Salai主板上集成了这一功能,从固件底层支持并联臂式打印机自动调平,想了解更多的小伙伴请前往Salai主板产品介绍,稍后我们将发布调平软件的相关教程,支持自动调平精度最高可达0.01mm,一键式操作。

在小编接触过的好多款并联臂式打印机中,很多都是将主板安置在打印机内,而且用的是很小的按键屏幕。我们的salai主板自带3.5英寸TFT全彩触摸屏,所以从美观和实用的角度出发,本篇教程指导小伙伴们做一款3D打印机控制器,控制器外壳采用亚克力,方便小伙伴们DIY。同时,为了避免复杂的电磁干扰,我们采用信电分离的接口方式,也方便控制器与其他类型打印机连接。希望本篇教程可以给予小伙伴们一些基础的、简便的组装思路。

第二节,组装

首先看看整体装配完成的图片

image002

image004

OK, 我们开始组装吧!

一、切割亚克力板

按照小编的设计,切好的亚克力一共有7块 图纸下载(打印虎本地下载)。

在控制器的组装中需要亚克力部件中的6块。

剩下1块安装在三角洲机器上。

image008

image006

二、打沉头孔

紧接着就有点难度了,小编使用的是M3X14的内六角沉头螺丝,为了美观需要在前面板、上面板、左侧板和右侧板上用6mm的钻头钻出深度为2.5mm的沉头孔。

所需的孔位在下图已高亮标出,请小伙伴们操作时注意安全。

image010

image012

三、打螺纹孔

上面板,下面板以及将要安装在三角洲机器上的接口板需要攻丝处理,螺纹的大小为M3。亚克力板脆,小伙伴们也可以借助电钻快速攻螺纹。

image014

image016

四、安装主板

取出一块下面板,主板距底部亚克力板8mm,小编在这里采用的是单通螺纹柱固定主板,五枚垫在主板与亚克力板中间,另外五枚拧在螺柱上。

image018

image020

五、安装串口接头及开关电源

取出上面板、开关电源以及串口接头,小编在这里使用了1mm和2.5mm厚的尼龙垫片,串口接头与上面板的距离为3mm,允许±0.5mm的误差,垫片垫高串口接头针脚一侧,串口接头与开关电源安装在亚克力板的同一侧,亚克力板的方向注意依照图示对位。

image022

image024

六、安装显示屏

取出前面板以及显示屏幕,这里的尼龙垫片垫在亚克力板与显示屏之间,螺柱起紧固作用,也可用普通螺母替代。

image026

image028

七、后面板上的安装

取出散热风扇,同样地,这里需要打4个2.5mm左右深的沉头孔。

当然,这步也可以忽略,可直接取四枚较长点的螺丝拧在风扇上。

image030

取出后面板,电源开关、航空接口以及散热风扇,这里的散热风扇安装需要四枚垫片垫在风扇与亚克力板之间,电源开关和航空接口安装在亚克力板的外侧,散热风扇安装在内侧。

image032

八、电路连接

各个电气件的接线如下图所示:

pic_17

image038

电路部分的各处端口接线如上图,线色及对应序号已标出,黄绿为信号线不分正负,红黑为电输出,请对应位置接好,注意区分。

小编在这里使用了2pin以及4pin的接线端子,大家平时走线也可以使用端子,很方便的说。

image040

控制器的散热风扇直接接开关电源12V输出。

开关电源的供电电压为220V,请小伙伴们注意安全!

十、最后的组装

我们这里需要把左右侧板上对应的螺丝以及四方螺母给装上。

image042

ok!搞定了,有需要的伙伴可以下载这整个模型(打印虎本地下载),最后祝小伙伴们玩的开心!

十一、零件清单

最后,小编给出零件清单以及安装的各个配合关系,方便小伙伴们快速查找,最后祝小伙伴们玩的开心!

image044

image046

 

【打印虎】零基础自制kossel 3D打印机图解全攻略

第一节,让我们开始吧

小编一直想好好写一篇kossel的教程,由于各种原因从去年冬天一直拖到今年夏天。通过近两周的努力才完成这篇文章,希望这篇教程能够给予大家一些帮助,我们首先简单介绍一下kossel 3D打印机。

Kossel 3D打印机是RepRap(replicating rapid prototyper)开源打印机中delta(三角洲)并联臂架构中的最新开源机型,由Johann设计。

RepRap的核心部件是热塑性塑料挤出机,产品基于Arduino平台以及其它用于控制步进电机的板卡。RepRap被视为一个完整的复制系统,而不是 简单的一块硬件。为此,该系统包括CAD的3D建模系统和CAM软件和驱动程序的形式,把RepRap用户的设计转换成一组指令,通过RepRap的硬件,转变成物理物体。RepRaps的打印出的物体材料是来自与ABS,PLA聚乳酸,以及其它一些类似性质的材料。

因此,基于开源软件和便宜而实用的标准件,Kossel delta型3d打印机性价比非常高,具有速度快、静音、三臂并联结构、扩展性强、便宜的特点,三臂机型的还有一个优势就是可以随意加大框架尺寸。这点其他结构的打印机是很难做到的。所以建议新手第一台装机务必要从三臂机型开始,以后升级很方便。

在制作的筹备中,小编尽量选用市场上能买到的材料,既满足diy的乐趣,又要兼顾机器的精度和稳定,所以文中出现的很多套件是小编建议小伙伴们直接购买现有的,同时我们也提供相应的模型和资料下载以满足有需要的小伙伴。

第二节,组装

我们先看一下主要零件

image002

一、安装底框架

1.1 首先完成电机的装配

将同步带轮插入电机轴上,拧紧紧固螺母。

image004

将电机安装到下角件上,下角件STL模型下载(打印虎本地下载),拧紧对应螺丝。

image006

1.2 完成一个下角件组的组装

如图所示,将螺丝和螺母预装配到底框的下角件上。

请注意:将方形螺母拧上螺丝即可,不要拧紧。

image008

重复步骤,将三个下角件组装起来,就像这样:

image010

1.3 完成底框的组装:

将两根铝型材对准方形螺母插入并对齐:

image012

请检查是否安装到位!

确认铝型材安装到位后拧紧螺丝:

image014

重复步骤,组装三组这样的框架。

1.4 组装下部框架

将三组组装好的组件铝型材的槽对准方形螺丝插入:

image016

请检查框架及铝型材是否安装到位!

拧紧图中标记出的螺丝:

image018

将组装好的框架放置在一个平整的平面上,检查是否平整以及各处的配合是否安装对位。

二、安装顶部框架

2.1 完成一个上角件的组装

如图,将全部M4x10螺丝及方形螺母预安装到上角件上。上角件STL模型下载(打印虎本地下载

image020

重复步骤,完成组装三组顶框上角件。

2.2 完成顶框的组装

和底框下角件一样,将铝型材插入,安装到位。

image022

拧紧图中标记位置的螺丝:

image024

重复步骤,完成三组顶框部件的组装。

image026

和底框一样,将铝型材安装到位不留缝隙,

拧紧图中标记位置的螺丝,注意检查整体框架的平整性。

image028

三、安装惰轮

这里要完成一组同步带惰轮的组装:

image030

同样地,在其它两个上角件上完成组装:

image032

三、立柱铝型材的安装

取出3根600mm长度铝型材以及组装完成的底框。

将铝型材插入下角件中:

image034

从底部观察,铝型材必须插到与下角件底面齐平,然后拧紧图中标记出的螺丝:

image036

重复步骤,将三根铝型材安装到底框上:

image038

四、安装滑车套件

按照图示组装滑车,滑车套件STL模型下载(打印虎本地下载),请注意滑车内部两枚M3螺母的安装:

image040

将滑车从三根600mm铝型材的顶部滑入,调节滑车一侧的螺丝直至滑轮不会摇晃:

image042

五、安装限位开关座

限位开关座(打印虎本地下载)的结构如图所示:

image044

将限位滑块从上至下滑入,拧紧蘑菇头M4螺丝,装入微动开关,拧紧两枚M2.5螺丝:

image046

重复上一步骤,完成另外两组限位的安装:

image048

限位开关的走线如图,

这里,我们将两根引线从安装的槽口穿上去,将线插入到铝型材的中心孔,

image050

紧接着从下角件预留的孔中引出导线:

image052

六、组装主框架

将组装好的顶框插入立柱铝型材中,使立柱铝型材凸出5mm左右:

image054

注意,绿色箭头指示面朝上,向下安装:

image056

这里需要安装三枚M4x25螺丝,如图插入螺丝,底部套入螺母,轻轻拧紧M4螺母,不要太紧,防止顶部框架被拉高。

image058

重复步骤,完成另外两枚螺丝的安装:

image060

七、安装同步带

这里需要三根130mm长的同步带和若干扎带,

我们先将同步带的一端按照如图所示,将同步带依照轮廓安装上去:

image062

从上方惰轮穿过:

image064

然后穿过步进电机:

image066

按照滑车槽口的轮廓装入,注意拉紧同步带,但不要拉得太紧:

image068

取出四根尼龙扎带,扎紧同步带:

image070

请完成另外两个滑车的同步带安装。

如果同步带张紧度不理想,可以拧松M4x10螺丝,然后拧动框架顶部的螺丝将同步带调整到合适的张紧度,请保证三根同步带张紧度一致,调节完成后拧紧上角件上M4x10螺丝。

image072

八、组装鱼眼效应器

请按照结构示意图组装鱼眼效应器(打印虎本地下载):

image074

组装好后是这样子的:

image076

取出6根鱼眼推杆,我们先将其安装到滑车上:

image078

然后将推杆与鱼眼效应器连接:

image080

九、安装接口组件

首先取出制作控制器时一起切割的亚克力板(打印虎本地下载),这里需要攻四个M3螺纹:

image082

然后我们需要拆掉底框的一根240mm铝型材

image084

如图,安装串口接头:

image086

我们将刚才拆下的铝型材安装回来:

image088

紧接着安装亚克力板以及航空接口:

image090

注意!亚克力板安装对位如下图所示:

image092

(电路安装附后)

十、安装玻璃板

玻璃固定座STL模型(打印虎本地下载

image094

十一、安装挤出机

小编建议伙伴们直接购买挤出机套件,所以这里只放出了安装结构图,想要DIY的朋友,我们提供模型下载(打印虎本地下载

image096

image098

挤出机安装完成后插入PFA管,PFA的另一端插到挤出头上。

第三节,控制板和接线

串口接头走线如图示,步进电机线色请按照我们上一篇教程【打印虎】Salai主板控制器的设计与制作来走线。当然,具体线位小编在图上已标识,小伙伴们也可以按照自己的布局来走线。

image100

航空接头走线如图:

image102

关于预留的12V(航空接头7,8号口) 输出接口,小伙伴们也知道这里缺少一个对打印丝进行散热的风扇,目前小编还在测试新的效应器,动手能力强的朋友可以自己DIY。

同时,根据控制器的设计,我们也预留了一个接口(航空接头9,10号口)备用,这里大家可以输出电源、信号等等。当然如果你有更好的想法,欢迎跟我们分享!

第四节,BOM

kossel整机step模型下载(打印虎本地下载),转载请注明出处。

材料清单:

image104

主要配合:

image106

螺丝清单:

image108

【打印虎】RepRap 3D打印机Melzi主板电路详解

一、简介

玩RepRap 3D打印机的朋友们,一定听说过Melzi主板。Melzi主板是一种在3D打印机领域应用非常广泛的紧凑型全合一3D打印机控制板,适合于单挤出头的3D打印机机型。

Melzi主板最开始是基于Arduino Leonardo进行的设计改进,Leonardo就是我们熟知的列奥纳多·达·芬奇,所以设计者选择了达·芬奇最钟爱的学生Francesco Melzi,弗朗西斯科·梅尔兹作为主板的名字。

image001

弗朗西斯科·梅尔兹《青年妇女肖像》

Melzi主板有三个主要的版本,下面表格总结了三个版本的差异:

版本 ATmega MCU 步进电机驱动
Melzi 1.0 644P A4988
Melzi 2.0 1284P A4982
Melzi 2.0混合版 1284P A4988

可以看出,实际上Melzi的三个版本之间差异不大,只有两种不同的PCB版型,Melzi 1.0与Melzi 2.0混合版,使用的是完全一样的PCB版型,而Melzi 2.0由于将步进电机驱动芯片换成了A4982,修改了步进电机驱动芯片局部的PCB走线。

目前在市面上,能够购买到的Melzi主板,基本上只有Melzi 2.0以及Melzi 2.0混合版两种。这两种唯一的区别就是步进电机驱动芯片,而A4988和A4982两种芯片,基本上只是封装外观不同,没有本质的区别,因此在选购时随便哪一种都是可以的。

image002

上图是一片Melzi 2.0主板,所有芯片上都没有覆盖散热片。可以看到,主板上的步进电机驱动芯片是A4982。

Melzi 2.0以及Melzi 2.0混合版主板的主要参数:

  1. 处理器:ATmega 1284P
  2. 全部电气连接使用螺丝端子,不需要压线或者焊接
  3. 提供Micro SD卡(TF卡)接口,脱机打印G-code文件
  4. Mini USB接口
  5. 提供4个独立的A4982(或者A4988)步进电机驱动
  6. 提供3个独立的MOSFET驱动,用于挤出头加热、热床加热以及风扇
  7. 外形尺寸:210mm x 50mm x 17mm
  8. 重量:70g

一个3D打印机玩家经常问虎哥的问题,是Melzi与另一种特别常见的RepRap 3D打印机主板Arduino Mega 2560 + RAMPS的方案相比有哪些异同?我们专门列了一个表格,来说明这个问题:

  Melzi Arduino Mega 2560 + RAMPS
MCU型号 ATmega 1284P ATmega 2560
主频速度 16MHz 16MHz
FLASH容量 128K 256K
SRAM容量 16K 8K
PCB版型 全合一形式,单片PCB板,可靠性高 插接形式,由1片Arduino Mega 2560,1片RAMPS以及4片步进电机驱动板组成,灵活性高
电气连接端子 侧面螺丝端子,使用方便可靠,连接完成后接线整洁 直插杜邦线接口,容易出错,连接完成后接线混乱
SD卡支持 支持 不支持
挤出头支持 1个 2个
LCD支持 单线LCD,不需要额外转接板 双线LCD,需要额外转接板

如果你对Melzi主板感兴趣,想把Melzi主板用在自己的3D打印机上,可以到打印虎的Melzi产品页面上看看。

有些朋友,会觉得Melzi不能支持双挤出头,或者感觉FLASH容量小,不够用,怎么办?对于这些问题,就必须给打印虎做一个小广告了。日前,打印虎正式推出了自主研发的下一代3D打印机主板Salai,这个主板采用了32位ARM体系结构,CPU运行速度是传统8位主板的5倍,可以有效提高3D打印的质量,同时支持双挤出头,自带3.5英寸的TFT全彩触摸屏,配合大幅改进的Repetier-firmware固件,拥有丰富的操作功能和良好的用户界面。这个产品的固件不仅功能丰富,还是开源的,可以满足深入学习的需求!这个产品不光性能高、颜值高,核心代码开源,价格还特别低,有兴趣的朋友,可以到打印虎的产品页面,看看更详细的信息,这里就不多说了。

二、设计图纸

既然Melzi是完全开源的设计,相关的设计图、电路PCB板图在哪里能下载到呢?如果你的英文没有问题,可以直接从github上下载Melzi的原始设计文档:

https://github.com/reprappro/melzi

如果觉得直接看英文页面有困难,也可以在这里下载(打印虎本地下载百度云下载)。

下面,我们就一起看一下这个zip文件中都有哪些内容。

解压缩zip压缩包之后,可以看到很多文件,其中有两张png图片。Melzi.png以及melzi-board.png,分别是电路原理图以及PCB版图。

这两张图我们都贴在这里,但因为图片很大,在页面上肯定是看不清楚的,如果需要看清晰版,还是要下载zip包之后在电脑上看。

image003

Melzi 2.0原理图,文件名melzi.png

image004

Melzi 2.0 PCB图,文件名melzi-board.png

虽然使用png格式的图片,用很多看图软件都可以直接查看,但对于电路图来说,特别是PCB设计图,仅仅使用看图软件查看是远远不够的。电路板上很多的细节,特别是正反面都有的PCB走线,如果只凭一张图片,就会有很多东西被覆盖住,完全看不出来了。对于这样的情况,就要求我们必须用EDA(电子设计自动化)软件进行查看了。

Melzi设计时,使用的EDA软件是EAGLE 6.2,在我写这篇文章的时候,EAGLE已经升级到7.5版,经过试验,EAGLE 7.5完全兼容EAGLE 6.2生成的文件,所以我们就用EAGLE 7.5来进行下面的介绍。最新的EAGLE 7.5版可以从这里下载(打印虎本地下载百度云下载)。下载、安装完成之后,就直接可以开始使用了,因为这篇文章不是专门介绍EAGLE软件操作的,所以我们只是进行简要的介绍,一些细节如需要可参考其他的相关资料。

image005

EAGLE启动到主界面之后,就可以使用菜单,打开Melzi的原理图和PCB版图了。首先我们使用菜单“文件”-“打开”-“原理图”,并选择刚才解压的zip压缩包中的melzi.sch文件。可以看到,Melzi的原理图以及PCB图,会在两个独立的窗口中打开。屏幕上首先应该能看到原理图窗口:

image006

PCB图窗口,一开始应该是处于最小化状态,点击Windows的任务栏上的图标,就可以将这个窗口展现出来。这个窗口中实际打开的是melzi.brd文件:

image007

在EAGLE软件里面,再观察原理图以及PCB图,就很方便了。可以任意放大缩小、分层、按照网络查看等,完全可以满足各种需求了。

除了以上介绍的4个文件之外,zip压缩包中还有不少文件。其中,melzi-bom.csv和melzi-bom.ods是Melzi主板的BOM(物料清单)文件,两个文件的内容一样,可以用Excel等电子表格工具软件打开。

剩下的其他文件,是用于Melzi主板制造的GERBER文件。这些文件都是从PCB版设计图中导出的,并不是基础文件,因此即使删除,也可以很容易地重新导出。至于GERBER文件如何生成、查看、使用,就不是本文的主题了,有兴趣的朋友可以查其他资料获得答案。

三、原理分析

以上两节,从总体上介绍了一下Melzi主板,以及Melzi开源文件压缩包中的各个文件。这一节简单分析一下Melzi电路板原理图。

image008

首先是MCU模块,这个模块设计非常简单,基本上就是使用了数据手册的参考设计。所有的通用IO引脚都利用上了,有几条还进行了重用。

image009

电源部分,使用了7805DT提供+5V电源,另外用了一个跳线(位于主板中部),选择从USB供电还是从7805供电。对于7805来说,+12V的电源输入比较合适,如果用+24V的电源输入,这个芯片就会太烫,需要特别散热才行。

image010

热床、挤出头以及风扇的控制(图中是风扇的一路,其他两路完全相同),使用了一个MOSFET管作为开关。因为热床要求的功率很高(大约100W),因此这里的MOSFET管电压降必须要小,才能避免在这里产生过多的热量。也是由于同样的原因,虽然原理图上没有体现,但需要从PCB板上体现的是,+12V的VMOT的导线需要尽可能宽,减小电阻和发热量。

image011

主板上有4路步进电机驱动芯片,每一路的图纸是完全一样的。这里的设计也是标准设计,MS1/MS2/MS3(只有A4988有MS3)要与VCC短接,得到步进电机16细分。另外,SENSE1/SENSE2两个电阻,与获取REF参考电压的电位器,要成比例。如果是如图中设计的情况,SENSE1/SENSE2使用0.1R电阻,则REF参考电压应该设定在0.6~0.8V之间;如果SENSE1/SENSE2使用的是0.05R电阻(我在市面上的一些Melzi主板上见到过),则REF参考电压应该设定在0.3~0.4V之间。

image012

XYZ三个限位开关,以及热床和挤出头的热敏电阻,都使用同样的方法与MCU连接。连接端子引出的两个头,一个接地,另一个接MCU通用IO接口,同时有一个10K电阻上拉。对于限位开关来说,MCU只要能判断0/1信号即可。但对于热床和挤出头热敏电阻来说,需要得到一个电压值,因此必须连接支持ADC的MCU接口。实际上,当前的Melzi设计中,热床和挤出头的热敏电阻,分别连接了MCU的ADC6和ADC7两个口。

image013

Melzi主板使用了FTDI FT232RL芯片连接USB端口。使用这个芯片有两个好处,一是芯片已经固化了USB连接程序,不需要再自己刷入了;另一方面这个芯片还提供了3.3V的电源输出,可以直接给SD卡模块使用,省去了一个单独的电压转换芯片。

image014

最后是SD卡的电路,这里使用一个74HC4050D芯片,将+5V的信号转为+3.3V的信号。

四、配套LCD模块

现在越来越多的DIY爱好者给自己的3D打印机配上了LCD,这样可以脱离电脑单独控制3D打印机。Melzi主板配套LCD的最佳选择,是打印虎研发的Melzi专用12864中文LCD产品。这个LCD模块使用单条10pin JTAG导线连接,在标准Melzi 2.0主板上,不需要再增加转接板,即可直接连接LCD屏幕。

image015

另一种方案,是使用原本给RAMPS设计的双线12864 LCD模块,这种LCD模块由于要支持上面自带的SD卡插槽(RAMPS上缺少SD卡插槽),所以必须用两根10pin JTAG导线连接。虽然Melzi自己已经有了SD卡插槽,但也必须把两根线都接好这个LCD模块才能工作。可惜对于双线LCD来说,Melzi主板上没有合适的插槽了,所以还需要一片转接板,才能正常使用。

image016

很明显,与打印虎提供的Melzi专用12864 LCD模块方案相比,这个方案在使用的方便程度、完善程度上,就有差距了。

五、常见问题

Melzi主板经过最近一两年的发展,也出现了很多相关的问题。特别是在国内,Melzi设计的开源,让大家学习到设计知识的同时,也带来了更多的混乱。下面我们就总结一下目前比较常见的一些Melzi主板的问题。

image017

首先看图中这块Melzi主板,实际上,这块板子是否还能叫做Melzi我都有点存疑。这块主板最大的问题,就是对Melzi设计的修改过于混乱。既失去了Melzi主板原有的可靠性,又没有获得Arduino MEGA 2560 + RAMPS的灵活性。可以注意一下图中右下角的Melzi扩展端口,为了连接双线12864 LCD又不要扩展板,就直接把Melzi的扩展口改为了双10pin JTAG形式。这样,连接双线12864 LCD确实不需要扩展板了,但其他标准Melzi的扩展设备,也就不能连接了。如果用户购买了这样的主板,又买了某种针对标准Melzi主板设计的扩展设备,就只能自认倒霉了。

另一种相对比较常见的问题,出在FTDI芯片上。在元器件市场上有些假冒的FTDI FT232RL芯片,售价比原厂芯片便宜不少。有些主板制造商,为了降低主板的成本,就去使用这样的假冒芯片。这种芯片质量比较差,容易出问题,而且一旦厂商采取措施,这些芯片用户就只能承担相应的损失了。关于假冒FTDI芯片的问题,打印虎在之前的文章中已经比较详细的介绍过了,这里就不再详细说明了。有兴趣的朋友可以去参考【打印虎】Melzi USB设备不能识别解决办法

除了FTDI芯片这样的关键部件的质量问题之外,其他小零件也会有类似的问题。为了降低成本,有些主板制造商会采用价格较低质量较差的元器件。这里我们举一个小例子,如以下所示。

image018

这里我们给了两块Melzi主板接线端子的特写照片。上面的Melzi主板,接线端子使用的是方形接口的接线端子,而下面的Melzi主板,使用了圆形接口的接线端子。这两者看起来很类似,但实际上用起来差别很大。方形接口的接线端子,不论导线较粗还是较细,都可以很容易地插入端子,并且牢牢固定住。但圆形接口就费劲多了,导线不能粗也不能细,要恰好符合端子的要求,而且插入的时候也很困难,比方形接口要多用几倍的时间才能搞定。价钱呢?不用我说大家也能猜到了,方形接口当然更贵。可能是因为制造工艺的原因,同样一个端子要比圆形接口的贵出2~4倍,虽然只是几毛钱,但积少成多,很多制造商还是选择了便宜的版本。

六、结束语

到这里为止,我们对Melzi主板的介绍就全部结束了。不知道大家看了这篇文章之后,是否对Melzi主板的理解加深了一些呢?

如果你看了我们的文章,对Melzi主板很感兴趣,可以到我们的产品页面查看产品详情,产品页面的底部,是打印虎淘宝店的连接,购买主板可以到打印虎淘宝店完成。

打印虎作为国内最专业的3D打印机主板设计生产厂家,竭诚为广大用户提供最优质最便宜的3D打印机主板产品。目前主要提供Melzi主板,以及Melzi的升级产品Salai主板。除了主板之外,打印虎还提供3D打印机软件、硬件研发定制服务。无论您是3D打印机DIY玩家,或者是3D打印机的生产企业,都欢迎来打印虎选购产品,洽谈合作。我们会用专业的态度加精湛的技术帮助你解决3D打印机研发中的困难,提供最优质产品和服务。希望能够得到广大用户的认同和选择。我们的联系方式可以从打印虎网站获得。祝大家玩机愉快,每天都有好心情。

【打印虎】RepRap 3D打印机G-code命令专家详解

玩过一段时间3D打印机的朋友,都会接触到G-code文件。所谓G-code文件, 指的是3D模型在进入3D打印机实际打印之前,必须要经过切片器处理而成的一种中间格式文件。这种中间格式文件的内容,实际上每一行都是3D打印机固件所能理解的命令。而这些命令,也被称为G-code命令,是3D打印机和电脑之间最重要的命令交互界面。

image002

上面的图,虽然是简化后的线框图,但清晰地表示了G-code命令所处的重要位置。事实上所有从计算机发送到3D打印机的内容,全部都是G-code命令,没有任何例外。不论计算机和3D打印机之间是如何连接的,用常见的USB线也好,用SD卡作为G-code文件介质也好,或是用比较新式的TCP/IP连接也可以,这个连接通道中的所有信息,都是G-code命令。这个特征非常重要,牢牢记住这个特征,可以在我们分析、解决很多3D打印机问题的时候,提供强有力的支撑。

既然所有3D打印机都使用G-code作为对外联系的唯一信息交互方式,那么这种“语言”的标准就很重要了。不幸的是,虽然所有的3D打印机,都使用G-code作为与计算机的交互语言,但实际上每种3D打印机“说出”的G-code,都多多少少有些不同。这也可以说,每种3D打印机都有自己的“方言”。我们要研究G-code,就要从一种最常见的“方言”,也可以说是“普通话”开始,先了解一种,然后再学习其他类似的语言,相互对比,就很容易了。

我们这篇文章,专门研究的是Repetier公司出品的Repetier-firmware固件所使用的G-code语法。如果这正是你需要的,那么就很方便了。如果你想研究的是其他3D打印机固件,比如marlin之类,那就不太巧了,有些内容可能不完全一致。不过,文章中提到的方法,仍然适用,你可以以这篇文章为基础,自己搞定对marlin的研究。

这篇文章主要面向具有一定技术水平的朋友,从第一节开始,我们就开始分门别类解释每一条G-code命令,这对于已经了解如何使用G-code的朋友会比较方便。但如果你还是初学者,不知道怎么使用G-code,甚至都没有见过“活的”G-code,也没有关系,在这篇文章最后面的第十五节和第十六节,我们会详细讲解如何在Repetier-host软件中单条执行G-code命令,以及如何观察、编辑、修改一个切片器切片之后的简单的G-code文件,满足初学者的学习要求。

在正式开始之前,我先给打印虎做一个小广告。日前,打印虎正式推出了自主研发的下一代3D打印机主板Salai,这个主板采用了32位ARM体系结构,CPU运行速度是传统8位主板的5倍,可以有效提高3D打印的质量,同时支持双挤出头,自带3.5英寸的TFT全彩触摸屏,配合大幅改进的Repetier-firmware固件,拥有丰富的操作功能和良好的用户界面。这个产品的固件不仅功能丰富,还是开源的,可以满足深入学习的需求!这个产品不光性能高、颜值高,核心代码开源,价格还特别低,有兴趣的朋友,可以到打印虎的产品页面看看更详细的信息,这里就不多说了。

第一节,基础运动

既然G-code是计算机指挥3D打印机干活用的一套语言,那么其中最重要的就是运动类的指令。

G0/G1 直线移动

虽然从名字上看,G0叫做“快速直线移动”,而G1叫做“直线移动”,但实际上在Repetier-firmware里面,G0和G1指令是完全等价的,没有任何区别。移动是否快速,完全是靠参数F来决定的(下面会详细介绍)。这条指令的作用也很简单,就是将挤出头线性移动到一个特定的位置。这条指令带有不少参数,完整的形式是这样的:

G0 Xnnn Ynnn Znnn Ennn Fnnn Snnn

或者

G1 Xnnn Ynnn Znnn Ennn Fnnn Snnn

使用时,不需要所有的参数全部存在,但至少要有一个参数。其中,

Xnnn表示X轴的移动位置;

Ynnn表示Y轴的移动位置;

Znnn表示Z轴的移动位置;

Ennn表示E轴(挤出头步进电机)的移动位置;

Fnnn表示速度,单位是毫米/每分钟;

Snnn表示是否检查限位开关,S0不检查,S1检查,缺省值是S0;

举例来说,

G1 F1500

G1 X50 Y25.3 E22.4

这样两行G-code,表示了首先将速度设置为1500mm/min,也就是25mm/s,然后将挤出头移动至x=50mm, y=25.3mm的位置上,z轴高度不变,并且将挤出头步进电机移动至22.4mm的位置上。这里,速度、xyz位置都比较好理解,但挤出头步进电机的位置怎么理解呢?移动至22.4mm处,代表着挤出了多少耗材呢?实际上,这里挤出头的具体动作,要根据之前挤出头步进电机所在的状态(也就是位置)而定。比如在这两条语句之前,挤出头步进电机已经处于20mm的位置处,那么这里挤出头步进电机只要再前进2.4mm就可以了。

仔细想想,其实挤出头步进电机的工作方式,与xyz轴完全一样。xyz轴之所以比较好理解,是因为我们清楚的知道原点(0, 0, 0)的位置在哪里。而对于e轴来说原点的位置也会在打印开始处被初始化到0的位置。知道了原点的位置,就可以正确理解挤出头步进电机的工作方式了。实际上,挤出头步进电机仍然是以原点为基础,只不过是在整个打印过程中持续增加的。(思考:切片器的挤出头回抽动作,对应了什么样的G-code代码?)

再举一例,

G1 F1500

G1 X50 Y25.3 E22.4 F3000

这个例子与上面的例子非常类似,唯一的区别,就是F参数了。而这两条语句的意义,除了对XYZE的移动之外,还会将打印速度,从语句执行开始时的1500mm/min,提高到语句执行结束时的3000mm/min。这里有两点需要注意。

第一点,F参数与XYZE参数一样,在语句执行的过程中线性插值

第二点,在预先知道第一点的前提下,F参数使得计算机对3D打印机的控制更加深入和精准了。计算得当的情况下,切片器可以精确控制3D打印机的加速和减速过程,使得整个3D打印过程更加顺滑。

G2/G3 圆弧移动

这两条命令中,G2是顺时针圆弧移动,G3是逆时针圆弧移动。命令的完整形式是:

G2 Xnnn Ynnn Innn Jnnn Rnnn Ennn Fnnn

或者

G3 Xnnn Ynnn Innn Jnnn Rnnn Ennn Fnnn

其中,

Xnnn表示移动目标点的X坐标;

Ynnn表示移动目标点的Y坐标;

Innn表示圆心位置,值是圆心距离当前位置的X分量;

Jnnn表示圆心位置,值是圆心距离当前位置的Y分量;

Rnnn表示圆形的半径长度;

Ennn表示E轴(挤出头步进电机)的移动位置;

Fnnn表示速度,单位是毫米/每分钟;

根据勾股定理,R2 = I2 + J2。因此,如果提供了圆心位置参数,就不需要提供半径参数了。反之,如果提供了半径参数,也可以根据当前点和目标点计算出圆心位置,就不需要提供I/J参数了。其他几个的参数用法,与G0/G1是完全一样的。

G2/G3命令面临的最尴尬的问题,是常用的上位机切片器软件,包括Slic3r以及Cura engine,并不会生成这两条指令。所有3D模型中的圆弧,在STL文件中已经被转化为使用大量小线段拟合而成的曲线。这样,切片器自然也不会把这些小线段当做圆弧处理。最终的G-code输出结果,也只会存在G0/G1指令,而不会存在G2/G3指令。当然,据打印虎所知,如果你使用的是比较小众的上位机软件,比如artCAM等,因为这些软件的输入并不是STL文件,因此它们的输出G-code是很有可能出现G2/G3命令的。

如果确定了你的3D打印机只会接收到G0/G1直线移动命令,那么我们完全可以在3D打印机固件配置中,定义

#define ARC_SUPPORT 0

这样,所有与G2/G3指令相关的代码,就都不会编译,也不会包含在最终的固件代码中了。可以节省一些固件的空间,同时并不会影响任何3D打印机的功能。

还有一个问题留给大家思考:在上位机切片软件输出G2/G3命令的情况下,相比于上位机切片软件输出G0/G1命令的情况,是否3D打印机打印圆形物体时会更圆呢?(答案是不会。)那么其中的原理是什么?

G4 暂停移动

这条命令让挤出机在当前位置停止一段时间。可能的参数包括:

Pnnn表示停止移动的时间,以毫秒为单位,1000毫秒等于1秒。

Snnn也表示停止移动的时间,以秒为单位。

因此,G4 P2000命令与G4 S2命令是完全等价的。

G10/G11 回抽/反回抽

这两条命令使挤出头执行一个回抽(G10)或者相反的动作(G11)。所谓回抽,就是让E轴步进电机反转一小段。而反回抽则让E轴步进电机正转一小段。参数只有一个:

Snnn表示回抽的距离。S1表示长回抽,S0表示短回抽。

实际上,目前的切片器并不太依赖于G10/G11指令执行回抽动作,而是利用G1 Ennn命令直接命令挤出头步进电机前进或倒退到某一个位置。因此,与G2/G3命令类似,G10/G11命令基本上是个摆设,除非未来有专门的切片器可以生成这两条指令,否则完全可以将这两条指令关闭,节省内存空间。在固件配置中,定义

#define FEATURE_RETRACTION 0

可以关闭G10/G11功能,在编译期去除这段相关的代码。

G20/G21 设置距离单位

这两条命令非常简单,用于设置当前距离单位为英寸(G20)或者毫米(G21)。没有参数。

未设置时缺省值是毫米。

G28 归零

这条命令使3D打印机XYZ轴以及挤出头E轴归零。参数包括:

X表示使X轴归零

Y表示使Y轴归零

Z表示使Z轴归零

E表示重置E轴的位置为0,与XYZ轴不同的是,如果使用了E参数,E轴步进电机并不运动,而是将当前的E轴位置直接设置为0,这样下面对E轴的运动指令,都会解释为相对0点的运动。

如果使用时没有任何参数,直接使用G28,等价于G28 XYZ命令。这时并不会对E轴进行重置为0的操作。

XYZ轴归零的顺序,由固件配置HOMEING_ORDER决定,比如定义为

#define HOMING_ORDER HOME_ORDER_XYZ

就代表着先归零X轴,然后是Y轴,最后是Z轴。

T 设置当前挤出头

对于拥有多个挤出头的3D打印机来说,需要使用T命令选择当前工作的挤出头。这条命令有一个无名参数,参数值直接跟在T后面。例如:

T0表示选择第一个挤出头;

T1表示选择第二个挤出头;

参数是T命令最特殊的一点。这与其他所有的G-code命令都不相同。

第二节,Z轴高度测试与自动调平

三角洲类型的3D打印机,由于其打印速度更快,受到很多3D打印用户的欢迎。与XYZ式3D打印机最大的一个不同,在于三角洲类型3D打印机的运动计算更加复杂,很难依赖人工调平达到较好的打印效果。因此,对Z轴的自动高度测试,以及自动调平相关的功能,就显得更加重要了。以下G-code命令,是Repetier-firmware对这方面进行支持的一组命令。当然,这些功能并不仅限于三角洲类型的3D打印机。如果是包含了Z轴高度测试微动开关的XYZ式3D打印机,也同样可以使用这些功能。

G29 Z轴高度三点测试

这条命令测试打印平面上三个点的Z轴高度,并在串口上输出结果。参数包括:

Snnn测试结果的处理方式。S1表示更新内存中的Z轴高度值(重置系统会丢失),S2表示更新内存以及EEPROM中的Z轴高度值(重置系统不会丢失)。

无参数时,G29命令表示只从串口上输出结果,不更新内存或EEPROM中的Z轴高度值。

一般来说,只有使用高位限位开关(也就是说,Z轴的限位开关位于Z轴坐标最大处),且在挤出头上附带有Z轴高度测试微动开关的机型,适合使用G29命令测试Z轴高度。其他机械配置的机型,不适合使用G29命令。G29命令由固件配置

#define FEATURE_Z_PROBE 1

决定是否开启。如果这个配置项定义为0,则编译时会去除对G29命令的支持,节省内存的使用。

命令执行时,打印平面上的三个点,其XY坐标由以下固件配置参数决定:

#define Z_PROBE_X1 -52

#define Z_PROBE_Y1 -30

#define Z_PROBE_X2 52

#define Z_PROBE_Y2 -30

#define Z_PROBE_X3 0

#define Z_PROBE_Y3 60

命令执行的开始和结束,分别会执行一段预定义的G-code。缺省的固件配置定义为:

#define Z_PROBE_START_SCRIPT “G28”

#define Z_PROBE_FINISHED_SCRIPT “”

可以看出,在缺省状态下,开始执行G29时,系统会自动对挤出头进行复位(G28命令)。结束执行G29时,没有特殊的动作。

G29命令的Z轴高度测试,通常由一个微动开关控制触发。这个开关的端口号,由Z_PROBE_PIN单独指定。

G29命令的输出,格式为:

X:0.00 Y:0.00 Z:200.00 E:0.00

Z-probe:5.01 X:-52.00 Y:-30.00

Z-probe:13.04 X:52.00 Y:-30.00

Z-probe:12.77 X:0.00 Y:60.00

X:0.00 Y:60.00 Z:-98.48 E:0.00

从以上例子的输出可以看出,G29命令一共测试了三个坐标点,分别在(-52, -30), (53, 30)以及(0, 60)的位置,形成一个正三角形。三个点的Z轴高度相差比较悬殊,在第一个点正好是5mm的情况下,后两个点分别是13.04mm以及12.77mm。第一行和最后一行,是测试开始时以及测试结束时的挤出头坐标位置。

G30 Z轴高度单点测试(单步)

这条命令作为一个完整Z轴高度测试过程的一步,测试打印平面上一个点的Z轴高度,并在串口上输出结果。这个完整的Z轴高度测试过程,通常是由3D打印机控制软件连续发出的,通过参数控制G30的执行状态。因此在手动工作方式下,G30命令只适合不带参数运行(等价于G30 P3,见下面的参数说明)。

G30命令的参数包括:

Pnnn表示测试的状态,P1表示当前这步是整个Z轴高度测试过程的第一步;P2表示当前这步是整个Z轴高度测试过程的最后一步;P3表示当前这步是Z轴高度测试过程的唯一一步,也就是说既是第一步也是最后一步;P0表示当前这步是Z轴高度测试过程中的中间一步。无参数情况下,P的缺省值是3。

与G29命令类似,G30命令同样由固件配置

#define FEATURE_Z_PROBE 1

决定是否开启。

G30命令的输出,与上面的G29输出格式一致,但只有其中的一行,需要上位机软件多次发出G30命令,再综合处理所有的输出结果。

G31 输出Z轴高度测试微动开关状态

这条命令非常简单,没有参数。执行后会输出当前Z轴高度测试微动开关的当前状态:

Z-probe state:L

其中L表示微动开关没有触发。如果是处于触发状态,这里会输出H。

G29命令、G30命令、G31命令只进行Z轴的高度测试,并不进行自动调平。有些上位机3D打印机控制软件,会通过这一组命令配合自动跳屏算法实现(上位机)热床自动调平功能。如果希望不通过上位机,只由3D打印机自身完成自动调平功能,需要使用G32命令。

G32 热床自动调平

这条命令在G29命令的基础上,不仅测试打印平面上三个点的Z轴高度,而且还会根据测试的结果,对3D打印机的机械参数进行调整,实现热床自动调平。G32命令使用的参数与G29命令是一致的:

Snnn测试结果的处理方式。S1表示更新内存中的相关参数值(重置系统会丢失),S2表示更新内存以及EEPROM中的相关参数值(重置系统不会丢失)。

G32命令执行完成时,不仅Z轴高度参数发生了改变,而且还会根据3D打印机的硬件配置,对热床进行相应的调平处理。

如果热床本身是使用步进电机进行高度控制的,那么程序会自动调整步进电机的位置,使热床自动调整为平整的状态;如果热床本身不能移动(这个应该是更常见的情况),那么G32命令会在3D打印机内存中构建一个转换矩阵(Transformation matrix),让未来3D打印机所处理的所有三维空间位置,都先经过这个矩阵的变换,保证在Z=0的情况下,正好与热床平面完全吻合。由于这里涉及到高深的计算机图形学知识,我们就不详细介绍了。有修改这方面代码需求的朋友,可以直接与打印虎进行联系。

G32命令,由固件配置

#define FEATURE_AUTOLEVEL 1

决定是否开启。

G32命令的输出,格式与G29命令类似:

X:0.00 Y:0.00 Z:200.00 E:0.00

Z-probe:5.00 X:-52.00 Y:-30.00

Z-probe:12.97 X:52.00 Y:-30.00

Z-probe:12.76 X:0.00 Y:60.00

Info: 0.99709 -0.00319 -0.07628 0.00000 0.99912 -0.4191 0.07634 0.004179 0.99621

Info: Autoleveling enabled

X:7.32 Y:64.08 Z:-95.66 E:0.00

X:0.00 Y:0.00 Z:200.00 E:0.00

除了与G29命令相似的测量信息之外,G32命令还输出了计算得到的自动调平矩阵,并且打开了自动调平功能。需要注意的一点是,G32命令虽然生成了自动调平矩阵,但并没将其保存在EEPROM中,因此下次开机这个信息将会丢失。可以配合M320 S1命令,将自动调平矩阵保存在EEPROM中。

M251 将当前Z轴位置保存为Z轴高度值

这条命令可以将当前的Z轴位置保存为Z轴高度值,以使前面的Z轴高度手动/自动测量的结果起作用。通常,M251命令只工作在三角洲机型上,并且应该与G29命令联合使用(自动测量Z轴高度)。这条命令没有相关的参数。

当3D打印机打开EEPROM支持时,这条命令还会将Z轴高度值同时保存在EEPROM中。

只有当固件配置定义

#define Z_HOME_DIR -1

也就是Z轴向正方向归位,并且定义

#define MAX_HARDWARE_ENDSTOP_Z true

也就是存在硬件的Z轴高位限位开关时,M251命令才会在编译中包含相关的代码。

通常,只有三角洲类型的3D打印机才能满足这两个条件限制。

M320/M321 开启/关闭自动调平

开启(M320)或者关闭(M321)自动调平功能,使自动调平转换矩阵起作用或不起作用。命令参数为

Snnn表示是否保存于EEPROM,没有S参数或者S0表示不保存于EEPROM,S1表示保存于EEPROM,在关闭自动调平(M321)命令中S3表示将自动调平矩阵清零且保存于EEPROM中;

M320的输出结果为:

Info:Autoleveling enabled

表示自动调平已经打开。

M321的输出结果为:

Info:Autoleveling disabled

表示自动调平已经关闭。

M322 清零自动调平转换矩阵

清零(M322)自动调平转换矩阵。显然,清零这个动作的同时自动调平功能也关闭了。命令参数为

Snnn表示是否保存于EEPROM,S0表示不保存于EEPROM,S1表示保存于EEPROM;

也就是说,

M321 S3

命令等价于

M322 S1

命令,两者都是清零自动调平矩阵,关闭自动调平功能,并且将这个设置保存于EEPROM之中。

以上三条命令,与G32命令相同,由固件配置

#define FEATURE_AUTOLEVEL 1

决定是否开启。

M322的输出结果为:

Info:Autolevel matrix reset

表示自动调平转换矩阵已经被清零。

第三节,坐标模式与坐标位置

G90/G91 设置坐标模式

这两条命令用于设置当前坐标模式为绝对坐标模式(G90)或者相对坐标模式(G91)。没有参数。

未设置时缺省值是绝对坐标模式。我们在这篇教程中,所有的例子也都是以绝对坐标模式给出的。

在相对坐标模式下,每次步进电机XYZE移动之后,当前位置都会重置为0。对于以下两条G-code命令

G0 X1

G0 X-1

如果3D打印机当前处于相对坐标模式下,那么X轴步进电机会先向正方向移动一个单位,再向反方向移动一个单位。第二条语句,实际移动距离是1个单位(向X轴反方向)。

而如果3D打印机当前处于绝对坐标模式下,那么X轴步进电机会先移动到X=1的位置处,再移动到X=-1的位置处。第二条语句,实际移动距离是2个单位(向X轴反方向)。

G92 设置位置

设置3D打印机内存中XYZE的位置值。不移动对应的步进电机。参数包括:

Xnnn表示X轴的位置值;

Ynnn表示Y轴的位置值;

Znnn表示Z轴的位置值;

Ennn表示E轴(挤出机步进电机)的位置值;

第四节,辅助步进电机

一些3D打印机的机械设计,会在XYZE四个步进电机轴之外,使用更多的辅助步进电机。Repetier-firmware提供了一套辅助步进电机指令,让用户(以及上位机软件)可以操作这些辅助步进电机。由于辅助步进电机的用途、参数各异,为了让这套指令更加通用,这些指令被设计为非常简单的形式。

G201 移动步进电机位置

将步进电机P的位置移动到X位置处。参数包括:

Pnnn表示第P个辅助步进电机;

Xnnn表示这个步进电机的目标位置;

这条命令与G1命令非常类似。

G202 设置当前位置

将X位置设置为步进电机P的当前位置。不实际移动步进电机。参数包括:

Pnnn表示第P个辅助步进电机;

Xnnn表示这个步进电机的当前位置;

这条命令与G92命令非常类似。

G203 报告当前位置

报告步进电机P的当前位置。参数包括:

Pnnn表示第P个辅助步进电机;

这条命令与M114命令非常类似。

G203 开启/关闭步进电机

用于开启/关闭步进电机P。参数包括:

Pnnn表示第P个辅助步进电机;

Snnn表示开闭标志,S0表示关闭步进电机,S1表示开启步进电机;

步进电机开启后,有两种可能的状态。一种是“运动”状态,也就是正在进行正向或反向的旋转。另一种是“保持位置”状态,也就是保持当前的位置不变。虽然步进电机关闭也不会主动移动位置,但“保持位置”状态与步进电机关闭状态仍有显著的区别。“保持位置”状态下,当步进电机受力时,会产生一个反向的力矩,使步进电机位置保持不变。

这条命令与“节能管理”一节中的M84命令有关。M84命令用于关闭XYZE步进电机,但不能打开这些步进电机。

第五节,SD卡管理

M20 列目录

显示SD卡所有目录内容。没有相关的参数。

M20命令的输出,格式为:

Begin file list

a.gcode

TEST/

TEST/c.gcode

b.gcode

End file list

这个目录内容清单,说明了这张SD卡上目前有3个文件,分别是a.gcode,b.gcode以及c.gcode,其中,a.gcode和b.gcode都保存于根目录下,而c.gcode保存于一个名称为TEST的文件夹里面。

M21 加载SD卡

尝试加载SD卡,也就是执行Mount动作。没有相关的参数。

M22 卸载SD卡

卸载SD卡,也就是执行Unmount动作。没有相关的参数。

M23 选择文件

选择一个SD卡上的文件。参数为

filename表示被选择的文件名(包含目录名,以/分隔);

文件选择之后,可以执行打印、删除等动作。例如命令

M23 TEST/c.gcode

选定了SD卡TEST文件夹里面的c.gcode文件作为当前文件。

同时输出格式为:

File opened:c.gcode Size:1127565

File selected

表示文件已经顺利打开。

M24 开始SD卡打印

打印当前选定的SD卡文件。逐行读入SD卡文件内容G-code代码,并执行。没有相关参数。

M25 暂停SD卡打印

暂停当前的SD卡打印。没有相关参数。

M26 设置当前文件当前位置

设置当前文件的当前位置。参数为

Snnn表示当前位置的字节数。

M27 获取SD卡打印进度

获取SD卡打印进度。没有相关参数。

M27命令的输出,格式为:

SD printing byte 11518/1127578

这条命令供上位机获取当前的3D打印进度信息,用于显示在电脑界面上。

M28 写SD卡文件

写一个SD卡文件。参数为:

filename表示待写入的文件名(包含目录名,以/分隔);

从执行M28命令开始,所有3D打印机接收到的G-code,除了M29命令以外,都会保存至指定的SD卡文件中,而不会被实际执行。这条命令可以将一个G-code文件从上位机3D打印控制软件复制到3D打印机的SD卡上,以供未来执行。

M29 结束写SD卡文件

结束以M28开始的“保存至SD卡文件”状态,将3D打印机恢复到正常状态。从此,所有接收到的G-code命令,都会被直接解释执行。没有相关参数。

M30 删除文件

删除一个SD卡中的文件。参数为:

filename表示待删除的文件名(包含目录名,以/分隔);

M32 创建子目录

在SD卡上创建一个子目录。参数为:

filename表示待创建的子目录(包含目录名,以/分隔);

以上所有SD卡相关指令,都由固件配置

#define SDSUPPORT 1

决定是否开启。如果固件不需要支持SD卡,关闭这项固件配置,可以节省不少内存空间。

第六节,节能管理

M84 设置步进电机自动关闭时间

当3D打印机一段时间没有接收到步进电机运动指令之后,3D打印机(为了节能)会自动关闭步进电机。使用M84指令,可以设置这个自动关闭步进电机的时间。参数包括:

Snnn表示步进电机关闭的时间,以秒为单位。

如果使用M84时没有指定S参数,则步进电机会立即关闭。

M84命令的缺省值是360秒。在固件配置中,缺省值由

#define STEPPER_INACTIVE_TIME 360L

控制。

M85 设置3D打印机自动关闭时间

当3D打印机一段时间没有接收到指令之后,3D打印机(为了节能)会自动关闭步进电机以及挤出头、热床等设备。使用M85指令,可以设置这个自动关闭3D打印机的时间。参数包括:

Snnn表示在关闭步进电机之前步进电机没有活动的时间,以秒为单位。

如果使用M85时没有指定S参数,或者使用了S0参数,则代表取消3D打印机自动关闭功能,挤出头、热床等在工作完成之后,一直会处于当前状态,而不会被自动关闭。

M85命令的缺省值是0(不自动关闭)。在固件配置中,缺省值由

#define MAX_INACTIVE_TIME 0L

控制。

第七节,温度管理

M104 设置挤出头目标温度

设置挤出头的目标温度。执行这条命令后,不需要等待达到这个温度,立即开始执行下一条G-code语句。相关参数包括:

Snnn表示目标温度;

Tnnn表示对应的挤出头;

P表示要等待前面的指令完成之后,再开始设置挤出头温度;

Fnnn表示到达目标温度之后,是否触发蜂鸣器。F1表示要触发;

如果执行命令时没有带T参数,则针对当前挤出头设置目标温度。

M140 设置热床目标温度

设置热床的目标温度。执行这条命令后,不需要等待达到这个温度,立即开始执行下一条G-code语句。相关参数包括:

Snnn表示目标温度;

Fnnn表示到达目标温度之后,是否触发蜂鸣器。F1表示要触发;

M105 获取当前的温度

获取当前温度值,包括挤出头和热床的温度。相关参数包括:

X表示输出AD转换输入的原始值;

M105命令的输出,格式为:

T:18.97 /0 B:18.75 /0 B@:0 @:0

可以看到,T:之后的部分,代表挤出头的当前温度/目标温度;B:之后的部分代表热床的当前温度/目标温度。

在PID温度控制模式下,B@:后面的数字代表热床当前的输出强度,是一个0~255的值,@:后面的数字,代表挤出头当前的输出强度,也是一个0~255的值。例子中,挤出头、热床都处于关闭状态,所以这个位置的值都是0。

M109 等待挤出头加热达到目标温度

设置挤出头的目标温度,并等待达到这个温度。相关参数包括:

Snnn表示目标温度;

Tnnn表示对应的挤出头;

Fnnn表示到达目标温度之后,是否触发蜂鸣器。F1表示要触发;

如果执行命令时没有带T参数,则针对当前挤出头设置目标温度。

M190 等待热床加热达到目标温度

设置热床的目标温度,并等待达到这个温度。相关参数包括:

Snnn表示目标温度;

Fnnn表示到达目标温度之后,是否触发蜂鸣器。F1表示要触发;

M116 等待温度达到目标温度

等待所有挤出头/热床到达由之前的M104/M140指令所指定的目标温度。没有相关参数。

第八节,其他常用指令

M92 设置分辨率

设置3D打印机内存中XYZE步进电机的分辨率。参数包括:

Xnnn表示X轴的分辨率;

Ynnn表示Y轴的分辨率;

Znnn表示Z轴的分辨率;

Ennn表示E轴(挤出机步进电机)的分辨率;

M106/M107 打开/关闭风扇

这两条命令用于打开(M106)或关闭(M107)风扇。相关的参数包括:

Snnn表示打开风扇时风扇的转速,取值范围在0~255之间;

P表示要等待前面的指令完成之后,再开始调整风扇转速;

在固件配置中,定义

#define FEATURE_FAN_CONTROL 1

表示支持风扇控制功能,在编译中会包含相关的代码。

M114 输出当前位置

输出挤出头当前位置。没有相关的参数。

M114命令的输出,格式为:

X:20.00 Y:30.00 Z:10.000 E:0.0000

M115 输出3D打印机信息

输出3D打印机信息。没有相关的参数。

M115命令的输出,格式为:

FIRMWARE_NAME:Repetier_0.92.3 FIRMWARE_URL:…

Printed filament:0.00m Printing time:0 days 0 hours 0 min

SpeedMultiply:100

FlowMultiply:100

第一行是固件的版本信息,很长,我没有列完整。第二行是已经打印了多少米耗材,打印时间是几天几小时几分钟。第三行是速度系数,参考M220命令。第四行是流率系数,参考M221命令。

M119 输出限位开关状态

将当前限位开关状态输出。没有相关的参数。

M119命令的输出,格式为:

endstops hit: x_min:L y_min:L z_min:L

列出了XYZ三个轴的低位限位开关的当前状态。L代表限位开关没有触发。H代表限位开关被触发了。

M201/M202 设置最大加速度

这两条命令设置打印加速度。包括挤出头工作时(打印中)的运动加速度(M201),以及挤出头不工作时(移动中)的运动加速度(M202)。参数为

Xnnn表示X轴的加速度;

Ynnn表示Y轴的加速度;

Znnn表示Z轴的加速度;

Ennn表示E轴的加速度;

在固件配置中,定义

#define RAMP_ACCELERATION 1

表示支持加速度功能,在编译中会包含相关的代码。

M203 监控温度

使用串口输出监控3D打印机的温度。参数为

Snnn表示是否监控,S0关闭监控,S1打开监控;

当监控处于打开状态,可以从串口定时获取当前的温度信息。

监控输出格式与M105命令的输出结果完全一致。

M204 设置PID参数

设置挤出头温度控制的PID参数,命令参数为

Snnn表示对应的挤出头,无S参数表示使用当前挤出头;

Xnnn表示P参数;

Ynnn表示I参数;

Znnn表示D参数;

M207 修改抖动(Jerk)值

修改当前的最大抖动值。命令参数为

Xnnn表示XY轴的最大抖动值;

Znnn表示Z轴的最大抖动值;

Ennn表示E轴的最大抖动值;

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

Z轴抖动与XY轴抖动意义类似,不同点是Z-Jerk是Z轴方向不为0的抖动速度值。因为这项涉及到Z轴的运动,因此最大速度就低多了。

M207命令的输出,格式为:

Jerk:20.00 ZJerk:0.30

这个输出意义很简单,表示XY轴抖动速度为20mm/s,Z轴抖动速度为0.3mm/s。

M220 设置速度

设置3D打印机运行速度系数。命令参数为

Snnn表示系数,是一个百分数,如果S参数不存在,则使用缺省值100;

3D打印机运行速度系数,是一个在25%到500%范围内变化的值。这个系数值在3D打印机运行过程中,与切片器给出的3D打印机运动速度基础值相乘,得到最终的3D打印机实际运动速度值。

M220命令的输出,格式为:

SpeedMultiply:100

M221 设置流率

设置3D打印机的流率系数(Flow rate)。命令参数为

Snnn表示系数,是一个百分数,如果S参数不存在,则使用缺省值100;

3D打印机流率系数,是在上位机切片软件通过耗材直径、喷头直径、层高以及3D打印速度等因素综合计算得到的E轴运动速度的基础上,叠加的一个E轴运动速度系数。简单地说,就是控制挤出头耗材挤出量的多少。这个系数可以在25%到500%范围内变化。

M221命令的输出,格式为:

FlowMultiply:100

M302 设置是否允许冷挤出

为了保护3D打印机的挤出头,通常设置下,E轴的运动必须在挤出头加热到一定温度之后才被允许。在挤出头冷却的情况下,所有的E轴运动命令是被3D打印机固件忽略的。但有些情况下我们需要在挤出头冷却的情况下运动E轴,这时可以通过M302命令进行设置。命令参数为

Snnn表示是否允许冷挤出,S0表示不允许,S1表示允许,没有S参数缺省表示允许;

M302命令的输出,为当前是否允许冷挤出。允许时会输出:

Cold extrusion allowed

不允许时会输出:

Code extrusion disallowed

第九节,较不常用指令

这些指令实在无法归类了,只能以“较不常用指令”为名字,放在了一起。

M42直接读写端口

此命令直接读/写一个Arduino端口,为3D打印控制软件上位机扩展程序功能提供基础。参数包括:

Pnnn表示Arduino的输入/输出端口;输出时固件程序会同时输出到数字端口和模拟端口;输入时固件程序会从数字端口输入;

Snnn表示写入输出端口的值,0到255之间是合法的数字;当S参数不存在的时候,M42指令起输入作用;

Repetier-firmware固件中预先定义了一个表格,称为“敏感端口表格”,所有位于这个表格内的端口,也就是当前已经被步进电机、限位开关以及热敏电阻占用的端口,都不能被M42命令影响。其他当前未占用的端口,可以由这条命令进行IO操作。

M82/M83 设置挤出头步进电机坐标模式

与G90/G91命令类似,这两条命令用于设置挤出头当前坐标模式为绝对坐标模式(M82)或者相对坐标模式(M83)。没有参数。

未设置时缺省值是绝对坐标模式。

需要注意的是,G90/G91设置的坐标模式,同时对XYZE四个轴起作用,但M82/M83设置的坐标模式,只对E轴(挤出头步进电机)起作用。

M99 暂时关闭步进电机

M99命令可以暂时关闭XYZ轴步进电机一段时间。命令参数包括:

Snnn表示所需暂时关闭步进电机的时间,以秒为单位;

X表示暂时关闭X轴步进电机;

Y表示暂时关闭Y轴步进电机;

Z表示暂时关闭Z轴步进电机;

如果S参数没有指定,则暂时关闭10秒钟时间。暂时关闭时间到达之后,重新打开相应轴的步进电机。

M111 允许/禁止运行时调试标志

运行时调试标志是一组布尔值,一共有6个不同的标志,使用位域(Bit Field)的表示方式。用户可以利用M111指令修改这些标志的值。相关参数包括:

Snnn表示直接将调试标志设置为S值;

Pnnn表示以位操作的方式,将P值与当前调试标志做某种操作。如果P值是正数,则进行按位或操作(增加P参数所带的标志位);如果P值是负数,则忽略P的符号,进行取反后按位与操作(去除P参数所带的标志位);

调试标志的位域,由以下6个布尔值组成:

第1位,值为1,表示是否回显(Echo)由上位机发送至下位机的命令;

第2位,值为2,表示是否输出信息(Info),实际在固件代码中并未使用;

第3位,值为4,表示是否输出错误(Error),在固件出错时会将出错信息发送回上位机;

第4位,值为8,表示是否进入模拟执行模式(Dry run),在模拟执行模式下,3D打印机不实际执行上位机发送的命令,只修改3D打印机的内存状态;

第5位,值为16,表示是否进入调试通讯模式(Communication),实际在固件代码中似乎并未使用;

第6位,值为32,表示是否进入禁止移动模式(No Move),在这个模式下,所有对步进电机的移动命令,都会被忽略;

M117 发送消息至LCD屏幕

将一条详细发送至LCD屏幕,显示为当前状态信息。参数为

message表示待显示在LCD屏幕上的文本;

M120 测试蜂鸣器

使蜂鸣器发出蜂鸣声。参数为

Snnn表示发出声音/不发出声音的时间,以毫秒为单位;

Pnnn表示重复的次数;

如果3D打印机有蜂鸣器,而且是无源蜂鸣器,那么通过S参数和P参数的组合,可以得到不同频率的声音。比如

M120 S24 P8

可以得到一个较长的蜂鸣声。如果3D打印机的蜂鸣器是有源蜂鸣器,那么M120指令只能控制蜂鸣时间,不能控制蜂鸣器的声音频率。

M200 设置体积挤出模式

将3D打印机设置为“体积挤出模式”,同时设定挤出头直径参数。相关参数包括

Tnnn表示对应的挤出头,无T参数表示使用当前挤出头;

Dnnn表示挤出头的实际直径,无D参数表示关闭体积挤出模式;

体积挤出模式,是相对于缺省的“长度挤出模式”而言的另一种挤出模式。在常见的“长度挤出模式”下,G-code中的使E轴运动的G0/G1命令,其参数都是以长度单位mm作为单位的。这样确实比较简单,但问题是我们在切片的时候,就必须知道要使用的喷头直径,否则无法计算出耗材前进的实际长度。

为了使G-code在生成之后适用于多种不同喷头直径的3D打印机机型,我们可以在上位机切片时,将E轴参数变为以体积单位mm3作为单位,然后在下位机固件中,再设定正在使用的喷头直径,以达到最终正确输出的目的。为了以体积单位mm3作为E轴的参数单位,上位机需要将喷头直径设定为1.128mm(这样,耗材每前进1mm,会喷出1mm*π*(1.128mm/2)2约等于1mm3的耗材。)同时,下位机要使用下面的语句:

M200 T0 D0.4

将实际的挤出头喷头直径设置为0.4mm。同时在上位机和下位机进行这样的操作之后,3D打印机可以在E轴参数单位为mm3的情况下,正确完成打印操作。

M209 开启/关闭自动回抽

开启/关闭自动回抽功能。命令参数为

Snnn表示是否开启自动回抽功能,1表示开启,0表示关闭;

通常上位机切片器负责在合适的位置处加入回抽指令。如果你的切片器功能比较弱,不能加入合适的回抽指令,那么可以打开这个特性,由固件自动回抽。

在固件配置中,定义

#define FEATURE_RETRACTION 1

表示支持自动回抽功能,在编译中会包含相关的代码。

M280 多头重复打印模式设置

有些特殊配置的3D打印机,允许2~4个挤出头同时工作,并且这些挤出头动作完全一致,同时打印出多件完全一样的打印件,这种工作模式叫做多头重复打印模式(Ditto mode)。M280命令对这个模式进行设置。命令参数为

Snnn表示这个模式下的挤出头个数;S0表示关闭多头重复打印模式;S1~S3表示工作在多头重复打印模式下,并且3D打印机拥有额外的1~3个挤出头。

在固件配置中,定义

#define FEATURE_DITTO_PRINTING 1

表示支持多头重复打印模式功能,在编译中会包含相关的代码。

M281 测试硬件看门狗功能

这条命令用于测试CPU硬件中的看门狗功能。实际上,就是造成一个死循环,不再执行“喂狗”动作,从而触发CPU硬件看门狗,最终(故意地)造成3D打印机重启。这条命令只是用于3D打印机固件开发测试。

M303 自动测试PID参数

自动测试PID参数值。命令参数为

Pnnn表示待测试的挤出头编号,从0开始,P<挤出头个数>代表待测试的是热床;

Snnn表示打印温度;

Rnnn代表重复测试次数;

X代表是否保存于EEPROM中;

由于加热、散热需要较多时间,这条命令执行时间很长。

M330 测试蜂鸣器

测试(无源)蜂鸣器,产生一个特定频率的声音。命令参数为

Snnn表示声音的频率;

Pnnn表示声音持续的时间,以毫秒为单位;

如果命令没有包含S参数或者P参数,则会使用缺省值S1以及P1000。

第十节,保存与恢复当前位置

M400 等待当前所有移动指令完成

等待在3D打印机内存中待处理的移动命令执行完成。没有相关的参数。

执行这条语句之后,可以保证在下一条G-code命令执行时,所有步进电机都不处于运动状态中。

M401 保存当前的位置

将当前位置,包括XYZE步进电机,保存于内存的一组专用变量中。未来可以用M402命令恢复这组位置。没有相关的参数。

M402 恢复之前保存的位置

恢复之前由M401命令保存的位置值。命令参数为

X表示恢复X位置;

Y表示恢复Y位置;

Z表示恢复Z位置;

E表示恢复E位置;

Fnnn表示使用参数给定的速度,无F参数时使用当前速度值;

第十一节,暂停与更换耗材

M600 更换耗材

在拥有显示屏的3D打印机上,启动更换耗材向导界面。没有相关的参数。

通常,这个向导界面是从显示屏界面上触发的。M600命令提供一个接口,使更换耗材向导界面可以从上位机软件触发。

M601 暂停/恢复挤出头

暂停或者恢复挤出头。命令参数为

Snnn表示暂停或者恢复,S1表示暂停挤出头,S0表示恢复挤出头工作;

暂停挤出头包括停止挤出头加温以及停止挤出头步进电机工作。恢复则相反,加热挤出头到原来的温度。

第十二节,设置与EEPROM管理

固件的设置,是一个比较有趣的话题,很多玩3D打印机的朋友,在遇到设置相关的问题时都会犯迷糊。实际上,对于某一项特定的设置,比如说X轴的步进电机分辨率,在3D打印机主板上,有三个不同的位置(也是三种不同的存储器)保存了这项内容,而它们的值还有可能不同。让我们先来了解一下这些保存设置内容的位置,以方便大家的理解。

首先,是固件配置文件(configuration.h)中的设置值。配置文件中的值,会跟随固件一起编译,之后在刷机过程中,保存在了3D打印机的静态存储区(Flash ROM)中。除了刷机之外,静态存储区的内容不会发生变动,可以认为是只读的。每次开机的时候,都是一样的值在等待着我们。

第二份设置值,保存在电可擦写静态存储区(EEPROM)。EEPROM的读写代价,比静态存储区要小。因此,3D打印机允许在刷机之后,修改设置值,而这些修改之后的设置值,就存储在EEPROM之中。每次开机,程序会先检查EEPROM,如果EEPROM中是空白的,则将静态存储区的第一份设置值复制到EEPROM之中。而如果EEPROM中已经有保存好的设置值,则程序会直接使用EEPROM中的值。有些朋友在玩3D打印机过程中可能会有这样的经验,就是明明修改了固件配置文件中的设置值,但刷机之后竟然没有发生变化。这种情况,往往就是EEPROM在捣鬼了。我们完全可以使用G-code M502 M500两条指令(指令的具体含义可以参考下面),重写EEPROM,解决这样的问题。

第三份设置,保存在内存(RAM)中。实际用户使用的值,就是内存中的值。由于内存只在加电情况下能够保持其中的内容,因此每次开机时,3D打印机会根据上面描述的逻辑,重建内存中的设置值。如果某条指令修改的是内存中的设置值,那么这也代表着这次修改是一个临时修改,下次开机这个值就会消失了。

总的来说,三份固件设置,使用的优先级是

内存 > EEPROM > 配置文件

但设置的持久性,就要反过来了。明确了解了这些,特别有助于我们解决一些与设置相关的问题,自然,看下面这些命令描述的时候,也就不会迷糊了。

M205 输出EEPROM设置

输出EEPROM的当前设置值表格。没有相关的参数。

M205命令的输出,格式为:

EPR:2 75 115200 Baudrate

EPR:3 129 0.000 Filament printed [m]

EPR:2 125 0 Printer active [s]

这是一个很长的输出,我们这里只截取了前三行。每行中,EPR:后面的第一个数字,是这个设置项值的类型。0代表8bit整数类型,1代表16bit整数类型,2代表32bit整数类型,3代表32bit浮点类型。第二个数字,是设置项值的位置(即EEPROM中的地址)。第三个数字,是设置项的值。最后,是设置项的意义。

以第一行为例,第一行设置的是通讯波特率(Baudrate),当前值是115200。波特率设置项,在EEPROM中的位置(地址)是75,这个值是一个32bit整数类型,因此占据了从位置75开始的连续4个字节(也就是位置75, 76, 77, 78)。

M206 修改EEPROM设置

修改EEPROM中的某个值。命令参数为

Pnnn表示待修改的值的位置(即EEPROM中的地址);

Tnnn表示值的类型,0代表8bit整数类型,1代表16bit整数类型,2代表32bit整数类型,3代表32bit浮点类型;

Snnn表示值,只能带整数,用于T为0, 1, 2的情况;

Xnnn表示值,只能带浮点数,用于T为3的情况;

可以看出,M206指令的使用是很复杂的,需要了解EEPROM中数值的存储位置以及数值类型,才能进行有效的修改。因此打印虎建议除非你完全理解M206指令的含义,否则不要使用这个指令。

M360 输出固件配置信息

输出固件配置信息。没有相关参数。

M360命令的输出,格式为:

Config:Baudrate:115200

Config:InputBuffer:127

Config:NumExtruder:1

这是一个很长的输出,我们这里只截取了前三行。每行中,都有一项配置信息的名称,以及对应的值。

M500 保存内存中的设置值到EEPROM

将3D打印机内存中的设置值保存到EEPROM中。没有相关的参数。

M501 读取EEPROM的设置值到内存

将EEPROM中的设置值读取到3D打印机内存中。没有相关的参数。

M502 将内存中的设置值重置

将内存中的设置值重置为固件配置(configuration.h)中的值。没有相关的参数。

由于每次系统掉电后,内存中的值都会消失,重新启动时从EEPROM中读取,因此单独使用M502命令将只对3D打印机掉电重启之前起作用。如果想起长期作用,需要配合M500,将设置值保存到EEPROM中。

第十三节,步进电机参考电压调节

目前市面上支持软件设置步进电机参考电压的3D打印机主板很少。大部分3D打印机主板只能通过调整微调电位器来控制步进电机参考电压。在这些3D打印机上,这一组命令是无效的。

M907 设置步进电机参考电压(百分比值)

设置步进电机参考电压。命令参数为

Snnn表示对所有步进电机进行统一设置;

Xnnn表示对X轴步进电机进行设置;

Ynnn表示对Y轴步进电机进行设置;

Znnn表示对Z轴步进电机进行设置;

Ennn表示对E轴步进电机进行设置;

所有的参数值,都是一个0~100之间的百分比数值。

M908 设置步进电机参考电压

与M907命令类似,设置步进电机参考电压。命令参数为

Pnnn表示步进电机编号;

Snnn表示步进电机参考电压设置值,要求为0~255之间的一个数值;

这个命令与M907命令类似,同样要求3D打印机主板支持。在不支持软件调整参考电压的3D打印机主板上,M908命令无效。

M909 输出步进电机参考电压值

输出当前的步进电机参考电压值。没有相关的参数。

M910 将步进电机参考电压值保存至EEPROM

将M907/M908命令设置的步进电机参考电压值保存至EEPROM。没有相关的参数。

第十四节,需要辅助硬件支持的指令

M80/M81 打开/关闭ATX电源

在配置了ATX电源的3D打印机上,打开(M80)或者关闭(M81)ATX电源。没有相关的参数。

M340 伺服电机控制

伺服电机控制功能。命令参数为

Pnnn表示伺服电机编号,从0开始,最大为3,可以控制4个伺服电机;

Snnn为控制时间,单位为毫秒,应该是一个500到2500之间的数值;

Rnnn为自动关闭时间,单位为毫秒;

M350 设置步进电机细分数

在支持细分数设置的3D打印机主板上(这类主板很少见),设置步进电机细分数。命令参数为

Snnn表示将细分数的每一位(bit)都设置为相同的值,S0表示所有都设置为0,S1表示所有都设置为1;

Xnnn表示设置细分数第0位;

Ynnn表示设置细分数第1位;

Znnn表示设置细分数第2位;

Ennn表示设置细分数第3位;

Pnnn表示设置细分数第4位;

需要注意的是,在大多数3D打印机主板上,细分数设置是主板硬件设计时就固定的,不能通过软件调整。这种情况下,M350命令无效。

M355 设置照明灯开关

设置照明灯的开关。命令参数为

Snnn表示照明灯的开关状态,S0表示关闭照明灯,S1表示打开照明灯;

无参数时输出当前照明灯的状态。

在固件配置中,定义

#define CASE_LIGHTS_PIN -1

表示照明灯的电路硬件连接pin值,-1代表照明灯未连接。

M355命令的输出,为当前是否打开了照明灯。打开时会输出:

Case lights on

关闭时会输出:

Case lights off

第十五节,单步执行G-code

通过上面的章节,打印虎给大家详细讲解了Repetier-firmware支持的所有G-code命令。相信大家对这些命令有了初步了解之后,就想自己试验一下,看看单步执行这些G-code命令是怎样的效果。根据我们的经验,上位机软件Repetier-host提供了很方便的功能,可以让我们尝试单条G-code命令的效果。

在最新版本的Repetier-Host 1.6.0中(打印虎本地下载百度云下载),“手动控制”操作面板中,顶部是一个G-code输入框。想要单条执行G-code,可以在这里输入,并按下“发送”按钮,就可以了。

为了看到G-code的执行结果,可以按下工具栏上的“是否记录”按钮,这时,整个窗口下半部分,就会展现出通讯记录(也称为日志,Log)的内容。一部分G-code命令,是带有输出内容的。这时内容就可以从这个窗口中看到。可以看到,在通讯记录窗口的第一行,有一排蓝色的圆点按钮,我们建议初学者把所有按钮都点亮。未来对这个系统熟悉了,可以根据需要选择过滤掉一部分不需要的信息,加快工作速度。

image003

比如,我现在希望知道XYZ三个坐标轴的限位开关状态,就可以在G-code输入栏中,输入“M119”,并且按下“发送”按钮。

image004

按下“发送”按钮之后,通讯记录窗口就立刻显示出M119命令的执行结果:

image005

可以看到,XYZ三个轴的限位开关,现在都处于未触发(L)状态。

如果你使用的不是Repetier-host 1.6.0版本,而是早期的一些版本,G-code输入框和“是否记录”按钮可能在Repetier-host软件启动的时候是隐藏的。这种情况下,需要先按下整个软件右上角的大按钮“Easy mode”,关闭简易模式之后,就可以看到G-code输入框和“是否记录”按钮了。

第十六节,一个G-code文件的解读

上一节我们解决了单步执行G-code命令的问题,这一节再进一步,给大家讲解一下切片器实际生成的G-code文件内容是怎样组织的。

还是以Repetier-host 1.6.0版本为例,下载、解压并在Repetier-host中载入打印虎网站模型库的“坐着的猫”3D模型之后,我们使用Cura Engine对这个模型进行了切片操作(0.4mm挤出头,0.32mm层高,其他设置大都是缺省的),操作完成之后,在“Gcode编辑”标签页,我们可以看到这样的结果:

image006

在G-code代码展示窗口中,可以看到一共生成了30,894行G-code命令代码。下面让我们一条一条读一下(其实当然不是每条都读,哈)。

第1行和第2行,以分号开头,很明显是一些注释信息,表示了切片器的名称和版本,会在上位机发送G-code代码时被直接忽略掉,没什么可仔细研究的。

第3行,是一条G28命令。执行归零操作。后面又是一个分号,仍然表示注释信息。以后的同类信息我们就不再解释了。

第4行,G1 Z15 F100,以100mm/s的速度,将Z轴上升15mm,在这里等待热床/挤出头加热。

第5行,M107,将风扇关闭。

第6行,G90,XYZ步进电机使用绝对定位模式。万一之前用户将3D打印机设置在相对定位模式的话,后面的移动位置用的G-code代码可就全乱了。所以一定要确保当前是绝对定位模式。

第7行,M82,同样的道理,挤出机步进电机E也得使用绝对定位模式。

第8行,M190 S60,等待热床加热到60℃。

第10行,M104 T0 S210,将第一个挤出头设定到210度,不等待到达这个温度,继续执行下面的G-code命令。

第11行,G92 E0,将当前E轴步进电机位置设置为0。结合上面的第7行M82考虑,可以理解这条命令的意义。

第13行,M109 T0 S210,等待挤出头加热达到210度。

再下面一段G-code命令是这样的:

image007

第14行和第15行仍然是注释。不过这里的信息比较有趣,第14行表示总层数是125层,第15行表示第0层(计数从0开始)开始了。

第16行,M107,再次将风扇关闭(没有实际作用)。为什么会出现这样一条语句?因为对风扇的操作,是每一层打印G-code命令组的第一个动作。因为是程序自动生成的G-code代码,所以就会出现这样比较粗糙的重复执行动作的情况。

第17行,G0 F9000 X94.751 Y75.707 Z0.320,这是整个G-code文件出现的第一次移动指令,作用是将挤出头快速移动到实际打印第一笔开始的位置处。可以看到这条指令中没有对E轴的移动,说明这条语句不会挤出3D打印耗材。

第19行,G1 F1800 X95.368 Y75.083 E0.04670,从这条语句开始进行正式的3D打印,这条语句中没有Z轴的移动,说明挤出头是在一个水平面内移动。F速度值变小,适应于3D打印机打印速度。E轴开始移动,挤出耗材。

接下来,是大量的G0/G1语句,控制挤出头反复移动,在合适的机会下挤出耗材,完成整个3D打印的主体过程。

最后,在G-code执行到最后的时候,会执行这段代码:

image008

这些结束代码我们就不逐一介绍了,大家可以按照我们的文章,对应起来看,就可以很容易理解了。

结束语

到此为止,我们的3D打印机G-code命令相关的内容就都介绍完了。希望读到这篇文章的朋友,获得所需的知识,并且对3D打印机有一个更深层次的认识。

最后,再给我们自己做个广告。打印虎作为国内最专业的3D打印机主板设计生产厂家,竭诚为广大用户提供最优质最便宜的3D打印机主板产品。目前主要提供Melzi主板,以及Melzi的升级产品Salai主板。除了主板之外,打印虎还提供3D打印机软件、硬件研发定制服务。无论您是3D打印机DIY玩家,或者是3D打印机的生产企业,都欢迎来打印虎选购产品,洽谈合作。我们会用专业的态度加精湛的技术帮助你解决3D打印机研发中的困难,提供最优质产品和服务。希望能够得到广大用户的认同和选择。我们的联系方式可以从打印虎网站获得。祝大家玩机愉快,每天都有好心情。

【打印虎】Prusa i3 3D打印小花纹研究

桌面级3d打印机Prusa i3的优势就在于可以方便地打印小巧的部件或玩具。对于非功能性物件来说,在小巧的基础之上,设计繁复精密的花纹也是乐趣所在。而3d打印机能够胜任多小多精细的花纹,这是一个值得探究的问题。

首先来看一件“雪花”模型(模型可以从打印虎网站3D打印模型库下载)的打印效果:

image001

原模型图案:

image002

可以看到,所有棱角处理都不够透彻,中心密集区域变形较大。排除打印机自身调平问题,使用Repetier-Host软件,列出模型相关参数,如下:

image003

image004

另外显示打印路径:

image005

雪花模型在选定比例下,x、y大小不足50mm,花纹间隙甚至接近1mm。

所用打印机相关配置是这样的:

image006

image007

image008

那么,问题来了,使用相同的配置,在0.4mm的挤出头的条件下,3d打印机能够胜任多小多精细的花纹?

为了直观了解打印机打印精密花纹的能力,这次就针对于平面图形的打印情况,选取一个典型模型,进行打印比较。

image009

这是“符号与字母模型”(打印虎网站3D打印模型库可以下载)里的大写字母“B”模型,选择字母上半部分孔隙作参考,即下图红线标注部分。

image010

图中红线标注的参考线长度大约26mm,按照逐次减小比例的顺序进行打印考察,层数就统一设置为4层。注意,参考线并不是随便选取的,而是考虑了打印路径之后,选择的时间上相邻并且平行的两条路径间的垂线。

第一次选择0.4的比例,此时参考线长度约为12mm:

image011

结果分析:边角处理很到位,图形比较标准。

第二次选择0.2的比例,此时参考线长度为6mm:

image012

结果分析:边角处理有所降低,出现小范围连丝现象,表面处理效果降低。

第三次选择0.1的比例,此时参考线长度约为3mm:

image013

结果分析:边角变得圆滑,图形开始扭曲,表面出现了明显的打印缺陷;连丝的坏影响也被放大了。

第四次选择0.05的比例打印,此时参考线长度约为1.5mm:

image014

结果分析:只能大概看出轮廓,连丝影响很大,表面已经坏掉了,或者说,整体上它已经坏了。

第五次选择0.04的比例,此时参考线长度约为1.2mm:

image015

结果分析:意外地变得很清爽了,但是不说不一定能知道这是字母B;从图形上来说它有点失败,而作为一个超小打印件,它的得分可以比上面那个高。

再往下,选择0.03的比例的时候就没有办法打印了。可知,对于这种平面图形模型,间隙在1.5mm以下的时候,尽管挤出头和步进电机理论上都满足打印条件,但在多种因素的共同影响下,实际打印出来的物体已然模糊不清。因此,打印时估算花纹间隙,使之大于一定数值,是保证花纹足够清晰的必要条件。

另外,值得注意的是,使用Repetier-Host软件进行切片的话,软件自身会对切片尺寸做出限制。对于上面所使用的字母“B”模型,在0.03的比例下切片,得到的是一片空白;在0.032~0.04的比例下切片,得到的是不完整的图形。如下图,是0.038的比例切片:

image016

单从图形效果来看,跟上面0.04比例打印出来的有点像啊。这是不是说明实际打印尺寸最小值要大于切片尺寸最小值?

如果花纹附着在物体表面,这种情况下结果又会怎样呢。不妨利用Repetier-Host软件进行切片实验,选取”个人标识”模型:

image017

image018

该模型为15mm*15mm的方块,表面附有“KG”字样,两个字母长度约12mm,宽度约为6mm。红线标注部分作参考线,长度约为2.5mm。选取较小比例进行切片,在0.27的比例时:

image019

经过计算不难发现,在参考线长度小于0.8mm(近似值,仅供参考)的时候,进行切片时图形就无法正确显示了。

比较有趣的是,对于类似下图“笼子网格”的方格类模型来说,方格长度小于2mm时就无法正确切片了。

image021

image022

无论是多个网格密集在一起切片,还是单个方框拿出来单独切片,结果都是一样的。

image023

上图是“第一柔性标示”里的方框模型,中间参考线长度约为15mm,在0.13的比例下切片是一片空白,在0.14的比例下则能完好切片。下图是0.136的比例:

image024

而三角形类模型则略有差别,在非常小的比例切片才会出现空白,该比例之上会出现不完整的现象。下图的模型是“第一柔性标示”里的三角形框模型,参考线长度约为12mm。

image025

在0.11的比例切片是空白的,在0.12~0.16的比例切片则是非常不完整,0.17以上切片结果就比较完好。下图是0.16的比例切片:

image026

圆形类模型情况也大体相同。下图“第一柔性标示”里的圆形框模型,参考线长度约为14mm。

image027

在0.131的比例切片是空白,在0.132~0.134的比例切片结果较不完整,0.134比例以上比较完好。下图是0.134比例切片结果:

image028

另外,对Repetier-Host软件来说,进行切片时对最小尺寸的限制与挤出头大小是没有关系的,即使把软件设置里的挤出头大小改为0.2mm,切片的最小尺寸也是和0.4mm时一样。挤出头大小影响的只是打印效果。

根据以上所述,可以得到以下结论:

(1) 实际打印出来的图案在很小尺寸的情况下难以保持完整清晰。

这跟挤出头尺寸有关,同时受打印机调平影响比较大。总的来说,想要得到清晰的花纹,花纹间隙最好不要小于2mm,进行小巧玲珑的物体打印时,别忘了估算这一点。

(2) 软件切片是有最小尺寸限制的。

这应该是软件系统决定的。更深层次,就是切片算法,这是一个复杂的学术性问题。实际上,就算软件在微米级上能够切片成功,目前的打印机也无法打印出来。

(3) 切片之后观察打印路径,会发现一些规律。

比如U字形路径切片的最小距离会比三角形或圆形路径切片的最小距离稍大。根据这个规律,是不是在设计图形时,减少方格数目,改用圆形或三角,会让打印效果更好一点呢?

在玩转3d打印的时候,为了打印出理想的实物,细节部分考虑再多都不为过。精益求精,不断地试验研究,才能打印出更加精致美丽的物品,让自己的创意更加淋漓地发挥!

最后,如果您对3D打印机切片或者打印方面有任何问题,都可以在打印虎3D打印问答社区提问。在打印虎3D打印问答社区,所有问题都会得到认真详细的解答。祝大家玩机愉快,每天都有好心情。

 

【打印虎】ReprRap 3D打印机驱动安装常见问题汇总

玩RepRap 3D打印机的朋友们,经常给打印虎提出一个问题,为什么自己的3D打印机驱动安装不上。根据我们的估计,这个问题应该能排在最常见的问题第一名了。因此,我觉得非常有必要单独写一篇文章,专门讲解一下驱动方面的问题。

实际上,根据虎哥我的经验,驱动安装不上的问题可以归为三种常见的情况。下面我们逐一讨论。

第一种情况,Windows自动下载安装驱动程序被关闭了

针对主板:Melzi主板,以及少量使用FTDI芯片的RAMPS主板

我见过很多Windows 7,只要是国内重新打包的,不论是Ghost版、精简版、或者是完美装机版,都有类似的情况。这是因为对于盗版Windows来说,自动下载安装驱动的服务是不能工作的(微软的服务器会发现你使用的是盗版Windows,进而拒绝服务)。如果这个选项是打开的,则会白白浪费很长时间寻找驱动,但却一无所获。因此,所有的非正版Windows系统,都会将这个“自动下载安装驱动程序”关闭。

对于3D打印机用户来说,如果你用的是Melzi主板,并且使用的是正版Windows操作系统,那么恭喜你,直接在USB端口上插入Melzi主板之后,Windows就会发现并且下载正确的驱动程序,Melzi主板就直接可以使用了。但是,如果你用的是上面我们所说的盗版Windows操作系统,就会看到这样的错误提示:

image001

进入设备管理器,可以看到设备上带有了惊叹号标志,代表目前没有驱动程序。双击设备,可以看到出错提示“该设备的驱动程序未被安装。(代码28)”。

image002

出现这种情况之后,我们首先可以尝试下载并安装FTDI提供的驱动程序。为了方便大家,这个驱动程序可以从这里下载文件CDM v2.12.06 WHQL Certified.zip(打印虎本地下载百度云下载)。或者从FTDI官方网站上下载也可以:http://www.ftdichip.com/Drivers/VCP.htm。这个驱动程序是32位/64位Windows通用的,从Windows 7到Windows 10都可以安装使用。

驱动下载之后,是一个zip压缩包,解压缩之后,得到这样一个文件夹:

image003

这时候,只要双击其中的dpinst-x86(对于32位操作系统),或者dpinst-amd64(对于64位操作系统),就可以开始安装了。经过简单的几步,安装完成之后,会得到这样的结果:

image004

如果你的结果也是这样,那么Melzi主板的驱动程序就已经安装完成了。

第二种情况,Melzi主板上的FTDI芯片是山寨的

针对主板:Melzi主板,以及少量使用FTDI芯片的RAMPS主板(其中FTDI芯片为山寨货的)

这种情况相对少见一些。如果你的Melzi主板,使用上面的方法仍然无法安装驱动程序,那么就要怀疑是不是FTDI芯片有问题了。首先打开设备管理器。如果设备管理器里面是这样显示的:

image005

设备上带有了惊叹号标志,代表目前没有驱动程序。双击设备,可以看到出错提示“该设备的驱动程序未被安装。(代码28)”。这里的现象与上面的第一种情况中的现象是一致的。

下面选择“详细信息”属性页,并将“属性”调整为“硬件Id”,观察“值”列表,如果与图中所示相同,第一项是USB\VID_0403&PID_0000&REV_0600,那么恭喜你,你用的Melzi板子上焊的FTDI芯片就是山寨货了。(说明一下,如果是原厂的FTDI芯片,这里的值应该是USB\VID_0403&PID_6001&REV_0600,这样的原厂芯片应该用上面的第一种情况中介绍的方法就可以搞定了)

image006

如果出现了这样的问题,也不代表Melzi主板就废了,我们完全可以使用一些方法,让这样的Melzi主板工作起来。详细的分析我们这里就不再写了,有兴趣的朋友,可以去看我们之前写过的文章【打印虎】Melzi_USB设备不能识别解决办法

这里,我们只给出最终的解决方法,也很简单,就是下载我们专们用于解决这个问题的驱动包CDM_2.08.28_R.zip(打印虎本地下载百度云下载)。这个驱动包,同样的32位/64位兼容的。

下载得到驱动程序zip压缩文件之后,将它解压,假设我们把这个文件解压到D:\CDM_2.08.28_R位置。下面回到设备管理器,在FT232R设备的对话框中,单击“更新驱动程序”按钮。

image007

在弹出的更新驱动程序对话框中,点击“浏览计算机以查找驱动程序软件”。

image008

然后在驱动软件路径编辑框里面,输入我们解压zip包的位置。对于我们这里示例的情况,就填入D:\CDM_2.08.28_R就可以了。点击“下一步”按钮。

image009

接下来,Window会弹出一个警告,原因是这个驱动没有合法的数字签名。如果你安装了360安装卫士之类的软件,还可能在安装过程中被杀死。唉,谁让我们用了山寨货FT232R芯片呢,只好凑合了。在这里点击“始终安装此驱动程序软件”,继续安装过程。

image010

这样山寨FT232R的驱动程序就安装好了。为了区别于正规的FT232R芯片,这里的设备名称最后加了一个R字母,叫做USB Serial ConverterR。

image011

关闭这个对话框之后,我们就会发现设备管理器中“其他设备”处又出现了一个新的不能识别的设备。

image012

再一次使用刚才的方法手动安装驱动程序,就可以解决这个问题。类似的,安装好的设备名称,为了清晰标示,变为了USB Serial PortR。两个设备都安装完成之后,在设备管理器中可以看到两个设备都可以工作了:

image013

出现了串行COM端口之后,就代表着Melzi电路板的设备驱动安装好了。

第三种情况,Windows操作系统精简过度,缺少基础驱动程序文件

针对主板:RAMPS主板

上面我们提到的Melzi主板,一般不会出现这种情况。出现这种情况的是另一种常用的3D打印机主板RAMPS。原本对于RAMPS主板来说,驱动程序的安装十分简单,只要用户安装Arduino软件,RAMPS对应的Arduino MEGA 2560主板的USB驱动程序就自动安装好了。但是如果你的Windows不是完整版,而是经过精简的版本,那么你就要小心了。Arduino安装完成之后,再插入RAMPS,会出现这样的现象:

image001

看起来和第一种情况的Melzi主板很类似,都是驱动没有安装好,但如果进入设备管理器,就会看到不太一样的情况:

image015

可以看到,这时候的错误代码是18,代表着驱动程序安装过程中出错了。切换到“驱动程序”属性页,并且点击“驱动程序详细信息”按钮之后,会发现当前没有加载任何驱动程序文件。

image016

这个问题的原因是Arduino中提供的驱动程序所依赖的文件,在你的Windows之中被“精简”掉了,造成安装之后的驱动程序包不完整,也就无法工作了。

为了解决这个问题,打印虎给大家准备了一个完整无依赖的驱动程序包,可以从这里下载mega2560_usbser.zip(打印虎本地下载百度云下载)。下载完成之后,同样要解压缩后使用。对于32位操作系统,应该使用解压缩之后x86文件夹;而对于64位操作系统,则应该使用解压缩之后的amd64文件夹。两个文件夹内都是一样的内容,下面的介绍我们就以32位为例。驱动程序下载、解压好之后放在一边备用即可,我们还要先执行卸载旧驱动的操作,然后再安装这个驱动程序。

如果你已经安装过Arduino自带的驱动程序,那么在设备管理器的“驱动程序”属性页里面,点击“卸载”按钮。在弹出的确认设备卸载对话框中,勾选“删除此设备的驱动程序软件”并且按下确定按钮。

image017

完成之后,设备会在列表中消失,这时候按下窗口工具栏的“扫描检测硬件改动”按钮。

image018

这时Arduino MEGA 2560对应的设备会回到设备树之中,同时具有如下图所示的几个特征:

  1. 设备类型是“其他设备”;
  2. 双击未知设备并且切换到“驱动程序”属性页后,可以发现驱动程序的相关信息都是空的;
  3. 再次点击“卸载”按钮,可以发现这次弹出的确认设备卸载对话框中,是没有“删除此设备的驱动程序软件”勾选项目的。

image019

这就说明这个设备的驱动程序已经被清理干净了,可以进行下一步。如果这里还有驱动,那么还要按照之前的步骤再次卸载驱动程序,直到这里被清理干净为止。这点一定要注意,如果没有卸载干净,那么安装了打印虎提供的驱动也是不起作用的。

下面的驱动安装过程就很简单了,进入刚才已经下载解压备用的打印虎mega2560_usbser驱动程序文件夹(如下图所示),并且双击dpinst-x86(对于64位系统,应该进入amd64文件夹并且双击dpinst-amd64),即可。

image020

在安装过程中我们会看到这样的警告信息:

image010

这是因为打印虎提供的驱动程序没有经过数字签名。出现这个界面的时候,应该选择“始终安装此驱动程序软件”。接下来,驱动安装就完成了:

image021

当看到这个界面的时候,我们的RAMPS主板驱动就已经安装好了。再回到设备管理器,可以看到:

image022

这样就成功了。

结束语

从我们这篇文章可以看出,3D打印机在驱动安装方面,还是有一些比较麻烦的问题的。如果你的运气比较好,也许整个安装过程完全不会出问题,顺利结束了。如果运气不太好,也许就需要在我们这篇文章中找找合适的解决方案了。

当然,我们虽然在32位的Windows 7上进行了全部的测试,但很多其他常用的系统,比如Windows XP(虽然已经发布了超过15年,但似乎还有不少粉丝在用哦,打印虎建议使用3D打印机的朋友尽快升级到Windows 7, 或者Windows 10),或者最新的Windows 10,并没有仔细测试过,如果你发现了问题,欢迎给我们指出。

最后,如果您对3D打印机驱动安装或是任何其他方面的3D打印问题,都可以在打印虎3D打印问答社区提问。在打印虎3D打印问答社区,所有问题都会得到认真详细的解答。祝大家玩机愉快,每天都有好心情。

 

【打印虎】Repetier-Server基础图解教程

玩3D打印机的朋友,安装了最近的Repetier-Host 1.5.6之后(打印虎本地下载百度云下载),会发现Repetier-Host会缺省附带安装Repetier-Server 0.60.4,这个软件给Repetier-Host增加了(私有)云功能。这一功能,允许用户把3D打印机部署在远程(也许是另一件屋子,也许是另一个城市),通过Repetier-Server提供的服务,连接、管理、操作3D打印机。相比于直接使用Repetier-Host加USB连接3D打印机的方式,这样做有几个明显的好处:对于个人使用者来说,把3D打印机放在另一间屋子,可以减少3D打印过程中产生的塑料味道的吸入,有利于健康;对于拥有多台3D打印机的企业来说,可以更加有效的管理这些3D打印机,把他们组成一个3D打印机农场;对于出售3D打印服务的商家来说,可以让服务的用户直接提交3D打印任务,观察任务执行的进度,让3D打印服务更加可视透明,提高用户的满意程度。

这么看,是不是感觉Repetier-Server是一个特别有用的工具?如果你对这个新工具感兴趣,可以读这篇教程,和我一起了解一下它。可能你眼下还用不上其中的一些高级功能,但也说不准以后就会发现合适的使用场景。

既然是一个远程服务端工具,Repetier-Server自然会提供远程访问的方法。目前最主要的使用方式有两种,一种是使用浏览器,直接访问Repetier-Server提供的Web服务,这种方式使用便捷,不论是电脑还是PAD还是手机都可以使用,但缺少一些前段处理STL 3D模型方面的功能。另一种方式是和Repetier-Host客户端配合使用,这样可以利用Repetier-Host弥补Repetier-Server 3D模型处理方面的不足,但要比Web方式麻烦一些。这两种使用方式,我们在下文都会进行介绍,大家对这两种远程访问方法所能提供的功能有所了解之后,选择自己合适的方式即可。

操作系统方面,这篇教程以Windows 7为例进行介绍。如果你使用Mac或者Linux,也没有关系,它们的功能完全一样,只是界面略有不同。如果你使用其他版本的Windows,文章中提到的文件路径可能会有变化,只要对应修改为正确的文件路径即可。

第一节,Repetier-Server的安装

一般情况下,如果你安装或者升级到Repetier-Host 1.5以上版本,那么在你安装或者升级Repetier-Host过程中,软件将自动为你安装Repetier-Server,所以你就可以跳过安装这部分的介绍了。但有些朋友可能在安装过程中没有自动安装,或者在服务器电脑上没有安装Repetier-Host而只想安装Repetier-Server的朋友,那么就可以参考这一节的内容进行安装了。

  1. 点击网站http://www.repetier-server.com,进入下载页面,点击下载相应适合自己系统的版本,包括了Windows,Mac、Linux。如果只需要Windows版本,也可在这里直接下载(打印虎本地下载百度云下载)。
  2. 双击下载完成的安装文件进行安装,如下图,并点击下一步;

image001

  1. 许可证协议页面,单击“我接受”

image002

  1. 选择安装路径(最好英文目录下,一般默认即可)

image003

  1. 点击安装,开始安装;

image004

  1. 点击完成,即完成安装。

image005

  1. 安装完成后,会自动跳转到网页面,页面网址为http://localhost:3344

image006

至此,Repetier-Server即安装成功。如果用户安装Repetier-Host过程中能够自动跳转到此网页,说明在安装Repetier-Host过程中已经自动安装了Repetier-Server。缺省情况下,安装1.5版本以上的Repetier-Host都会自动安装Repetier-Server。

在Windows上,Repetier-Server是以一个后台方式运行的服务,每次Windows启动都会自动启动后台服务。若要停止/重新启用Repetier-Server,可以通过任务管理器进行操作,选择任务管理器中服务选项卡,找到Repetier-Server点击选择鼠标右键即可停止使用或重新启用服务,如下图所示。

image007

特别注意:默认情况下,Repetier-Server将所有数据存储在同一目录文件夹下,默认目录为 C:\ProgramData\Repetier-Server\,无论是软件卸载或者升级Server,目录下数据都不会删除,以防止数据丢失。如果需要备份数据,只需要备份此文件夹即可。

第二节,Repetier-Server云服务器主页

在介绍添加打印机、配置打印机等功能之前,我们先对Repetier-Server云服务器主页面控制台进行简要介绍:

image008

在首页界控制台面菜单栏中包含了6个工具按钮,分别为主页、打印机列表、信息、全屏切换、设置、语言设置。

image009:语言设置按钮,其中包含了中文,所以我们首先可以在此将界面语言更改为中文,选择中文后软件将变为中文页面。

image010:全屏显示界面。

image0113D打印机消息,当Repetier-Server中打印机出现信息报告时,将会在这里显示。

image0123D打印机列表,点击会显示当前云端包已添加的打印机。

image013:主页按钮,点击将会回到控制台首页。

image014:打印机设置按钮,包含用户信息、全局设定、信息推送、版本检查更新、注册、使用手册等选项。

除了打印机设置之中的全局设置和用户管理功能,我们会在后面的章节进行介绍。除了这两个功能之外,这些按钮提供的功能都比较简单。在稍微熟悉了这些功能之后,我们要开始添加我们的3D打印机了。

第三节,添加3D打印机

对主界面控制台有了基础了解之后,下面我带领大家进入最主要的内容,即在Repetier-Server中添加一台打印机。添加打印机非常方便,直接点击控制台主页面中的添加打印机,或者点击右上角的加号按钮然后选择添加打印机,即可进行添加打印机的操作。以下将会对打印机的添加分步介绍。

image015

  1. 打印机命名,自己任意命名即可,完成后点击继续前往步骤2

image016

  1. 连接打印机,此时可以连接打印机(这样可以方便Repetier-Server自行检查打印机配置,并进行匹配),连接完成后点击续前往步骤3,网页将会自动检测并上传打印机固件相关配置。

image017

  1. 当第二步检测完成后,将会自动跳转步骤3,进行打印机形状设置,此时根据打印机形状自行完成设置,设置完成后点击前往步骤4

image018

  1. 步骤4中进行热床和挤出头设置,设置挤出头数量和耗材直径,设置完成后点击继续前往步骤5

image019

  1. 对打印机部分特征进行设置,按照打印机类型进行设置,完成后点击完成按钮。

image020

  1. 完成配置后,在控制台主页面将会出现已经完成添加的打印机啦。

image021

第四节,3D打印机设置

添加打印机完成后,最主要的设置项已经填好,但很多情况下,还需要对3D打印机进行一些其他配置设定。进入打印机设置有两种办法,第一种是在控制台页面下,点击需要设置的打印机右上方的设置按钮,在下拉菜单中点击打印机设置按钮;第二种先点击控制台中需要设置打印机的前往打印机按钮,进入打印机页面,在打印机页面中点击右侧设置按钮下的打印机设置。

image022

image023

进入打印机设置后界面如下,曾经设置过Repetier-Host的朋友应该会比较熟悉,包括了通用一些设置、挤出头、打印机形状、G代码等,大部分在Repetier-Host的打印机设置中有的设置选项按钮在Repetier-Server中也都包含,在此就不再介绍了,想要了解有关Repetier-Host打印机设置有关介绍,可以访问打印虎原创教程。在此仅介绍与Repetier-Host不同的一些选项及设置。

image024

在通用、打印机形状以及G-code的设置选项卡中基本与Repetier-Host一样。本文就不再展开介绍。

Repetier-Server与Repetier-Host关于估算打印时间和耗材上不同的地方,在于Repetier-Host只能估算打印消耗时间,而Repetier-Server能够精确计算打印所需消耗时间。这一功能实现是通过在打印机首次设置时,软件可以预先对打印机进行加热和冷却,在加热和冷却过程中计算出当前打印机的加热和冷却速度,从而实现精确计算其他打印模型所消耗时间。

下面带领大家认识一下这一功能,首先在打印机设置选项卡中选择挤出头选项卡,如下图所示:

image025

1、首先点击开始向导,将进入测量界面,设置需要挤出头和热床达到的温度,然后点击,开始测量:

image026

2、点击开始测量后,打印机将自动开始加热,需要特别注意的是,加热过程中所打开Repetier-Server网页不能关闭,若关闭则打印机将不断进行加热。

image027

当加热和冷却完成后,页面将会显示出已经计算出的热床和挤出头加热和冷却速度。如下图所示

image028

另外一个与Repetier-Host不同的地方即云摄像设置,原有的Repetier-Host并不支持云摄像头功能,而在目前的Repetier-Server中包含了这一功能,方便用户查看3D打印的实时状况。其设置界面如下:

image029

我们可以把USB摄像头安装在服务端电脑上,把摄像头角度调整好,对准3D打印机的工作区,然后利用webcamXP等软件,将摄像头的视频源转为动态/静态图像HTTP URL,并且把这两个URL填入这个页面的表单中,就完成了云摄像头的设置。云摄像头配置完成之后,我们就可以通过摄像头查看打印状态了:

image030

如果你对webcamXP软件的操作有疑问,不知道如何将摄像头的视频源转换为HTTP URL,可以到打印虎问答(http://www.dayinhu.com/q2a/)上提问,我会在问答社区中给你详细解答。

第五节,全局设置

打印机的全局设置主要包括了打印机用于云链接的信息设置,打印机耗费计算、打印机推送消息的设置和打印模型预览图片的设置。

进入打印机全局设置可以通过主菜单栏中的设置按钮下拉菜单中的全局设置进入,如下图所示。

image031

Repetier-Server中的全局设置包含了云连接、打印耗费、推送消息和预览JPG图像四个选项卡,如下图所示。

image032

选择云连接将会显示当前连接的API密钥,这主要显示连接本地Repetier-Host的API密钥,通过这一密钥可实现本地与云端的连接,这对于连接本地Repetier-Host软件至关重要,如下图所示。

image033

打印机耗费选项中,可以自行设置耗材的材料价格,时间成本,加工费等从而很方便的得出最终成本,如下图所示。

image034

推送消息选项,包含是否需要打开推送消息,以及推送消息类型设置选项等功能,如下图所示。

image035

预览JPG图像主要是用于显示上传代码的预览图,Repetier-Server会根据上传代码通过JPG图像设置的打印机头颜色设置自行渲染出代码代表的模型预览图,以方便查看。

image036

第六节,用户管理

Repetier-Server新增加了一个用户管理功能,因为Repetier-Server为云端服务器,允许在任何地点进行访问,为保证安全,用户可以创建用户账号进行访问,另外,为满足多用户访问需求,也可创建多个账号,从而方便多个用户的访问。

创建用户时,可以对用户进行分类,使用户获得不同的访问权限,最先设置的用户具有最高的使用权限。

进入用户管理界面,可通过控制台主页菜单栏中的设置按钮下的用户资料进入,如下图所示

image037

选择创建用户,即可进入用户添加界面,通过更改用户下端的选项,可限制用户的访问权限,如用户是否可打印、新增文件、删除文件或者更改打印机配置。

image038

用户添加完成后,用户管理器中就会显示用户资料及访问权限,如下图所示

image040

第七节,开始3D打印!

完成打印机的设置后,下面进入打印机页面,进入打印机直接点击主页面控制台,选中需要进入的打印机,点击进入打印机即可。在打印机页面菜单中包含了打印、控制和控制台三个菜单按钮(若打印机包含摄像头,则菜单栏中会显示云摄像头选项卡),其页面主要内容如下:

image041

在打印选项卡中包含了打印的一些基本设置,包含关闭电机、打印机速度、流量、风扇和编辑G-code,基本设置与Repetier-Host相同。在页面下方包含了上传G-code功能选项以及已经上传了的不同模型的G-code,这其中包含了文件名、上传模型时间、模型大小、线程、打印时间、耗材和打印模型层数等信息。

image042

在G-code模型库右上方是四种不同的G-code显示方法,

第一个image043:表示只显示模型信息不显示模型预览图

第二个image045:显示预览图和模型信息

第三个image047:不显示模型信息仅以小图显示模型预览图

第四个image049:不显示模型信息以大图显示模型预览图

在打印机控制选项卡页面下,页面内容与Repetier-Host 中的手动控制选项卡内容相似,用法也比较直观,本文就不再详细介绍。

由于Repetier-Server目前还不支持切片功能,因此用户要先在客户端用Slic3r或者Cura等切片工具先把STL模型文件切片,然后将得到的G-code文件上传到Repetier-Server。上传动作很简单,只要按下最大的按钮“上传G代码”,并选中G-code文件,就完成了。在准备好G-code之后,可以按下G-code渲染图片旁边的小按钮image051,开始打印过程。打印开始之后,Repetier-Server Web界面如下图所示:

image052

3D打印开始之后,事情就很简单了,主要的工作就是时不时回来通过“云摄像头”观察一下打印的进展。如果没有问题,那就等着时间到了收获3D打印的成果了。

如果运气不好,3D打印过程中出了问题,可以通过“控制”、“控制台”里面提供的手动功能,排查造成问题的原因,解决问题之后,再来一次吧。但愿这次能够顺利完成。

第八节,Repetier-Host与Repetier-Server的连接

上面我们已经了解了Repetier-Server的主要功能,虽然现有功能已经很强大,但还有一些重要的问题没能解决:

  1. 目前Repetier-Server没有切片功能;
  2. 也没有交互式查看3D模型的能力;
  3. 还不能在3D打印机空间中排布3D模型;

不管怎么说,基于Web界面的工具,交互方面,特别是3D交互方面的能力还是不如客户端工具的。如果能把Repetier-Host与Repetier-Server结合起来使用,就最好了。这种需求,Repetier公司自然在设计这些工具的最初就已经想好了,下面我们就来介绍一下如果连接Repetier-Host与Repetier-Server,发挥出组合拳的威力。

在Repetier-Host连接云端打印机Repetier-Server之前,首先保证云端已添加有打印机。

实现Repetier-Host与Repetier-Server的连接十分方便,主要从以下几个步骤实现:

首先打开Repetier-Server并启动打印机。

启动后点击右上方设置按钮image053,并打开全局设置。

打开云连接image055,然后你就可以看到所有你所需要的Repetier-Host与Repetier-Server的连接需要的IP地址、Port、以及API密钥信息。

image058_2

打开Repetier-Host,并打开打印机设置选项,在打印机选项中输入新的打印机名字,然后选择连接端子中的连接服务选项,分别在对应位置输入Repetier-Server中获得的IP地址、通讯端口和API密钥,如下图所示:

image059

完成上述步骤后,点击Connect to Continue,开始连接。稍等片刻,连接成功后,界面打印机选项中将会出现云端Repetier-Server中的打印机名称,当出现打印机后,点击Copy Server Config Settings,即完成将云端配置设置加载到Repetier-Host中。

image060

完成以上配置后,即可完成两者连接,通过连接下的选项选择上述设置的云端打印机即可进行云端和本地的连接。如下图所示。

image062

第九节,Repetier-Host与Repetier-Server的互操作

当Repetier-Host与Repetier-Server结合在一起后,工作流程与Repetier-Host单独工作时并无特别区别,下面仅仅介绍连接Repetier-Server改变的地方。

首先在打印预览窗口中,增加了一项Save to Server 的选项,此选项是用来将本地的切片完成之后的打印模型G-code文件上传至Repetier-Server中。

image063

其次最大的变化是在功能区选项卡中增加了Server选项卡,如下图所示:

image064

在此选项卡中,包含了模型的基本信息,包含打印模型名称、打印时间、耗材、大小等。在右下方中Stored Prints打印文件模型库中包含了云端Repetier-Server中的模型文件。

image065:开始打印当前选中文件

image067:显示当前模型详细信息

image069:将云端Repetier-Server模型库中选中的模型文件载入本地预览

image071:删除选中模型

选定了一个模型文件之后,就可以按下Print按钮开始打印了。开始打印之后,窗口显示如下图所示。下面的事情,与一个本地打印就没什么区别了。有一点可惜的是,在Web界面上可以看到的摄像头视频,在这里是没有的。我觉得对于云3D打印来说这是个非常重要的功能,毕竟摄像头视频能给用户以非常直观的感受。特别期待在未来的版本中能够看到这个功能。

image073

结束语

这篇教程详细介绍了Repetier-Server的安装、配置和使用方法,相信对于有私有3D打印机云需求的朋友来说,会提供一定的帮助。

在我们的使用过程中,感觉到Repetier-Server虽然在功能上已经比较丰富完整,但还有很多细节需要打磨和完善。在写这篇文章的过程中,我们就在很多小地方发现了bug,这其实也说明了这个软件还只是一个雏形,尚未成为一个成熟的软件。如果需要使用这个软件进行远程3D打印服务,还需要在目前的基础上做不少补充工作才行。

最后,如果您对Repetier-Server或是其他3D打印工具有任何问题,都可以在打印虎3D打印问答社区提问。在打印虎3D打印问答社区,所有问题都会得到认真详细的解答。祝大家玩机愉快,每天都有好心情。

 

【打印虎】Repetier-Host V1.5使用基础教程

Repetier-Host是Repetier公司开发的一款免费的3D打印综合软件,是目前市面上使用最为广泛的3D打印综合软件。软件能够实现切片、查看修改G-Code、手动控制3D打印机、更改某些固件参数等等功能,同时软件具有界面友好型,软件易操作等特点,因而得到广泛应用,今天就给大家介绍一下这款软件。

软件目前最新版为V1.5.6,打印虎网站提供了免费下载(打印虎本地下载百度云下载)。软件相较之前版本尤其是已经介绍过的V1.0.6版本在主页面上布局基本没有什么改变,主要改变在于增加了Server功能模块,以及集成了最新版本的Cura Engine/Slic3r切片软件。关于Repetier-Server,我们会在后续单独介绍这一模块功能。软件的安装比较简单,也可参看RepRap Prusa i3 3D打印机软件安装图解教程第二版,在此不再赘述。

安装过程中唯一需要说明的一点,是Repetier-Server功能。这个功能缺省是打钩的,但这个功能的文件并没有包含在安装包中。因此,如果一路点击“下一步”安装的话,会在安装过程中下载Repetier-Server,对于国内用户来说,直接从国外网站下载会比较慢,要多等一会才行。如果想快速安装,要把这个勾去掉才行。如下图所示。

1

安装好软件后,直接运行打开,主界面如下图所示:

image001

Repetier-Host软件主界面包括菜单栏,快速工具栏,视图区和功能区。菜单栏包含一些基本Windows常用菜单,下侧还包含几个工具按钮主要用于连接打印机,对打印机进行设置;快速工具栏中包含一些查看模型的快捷工具和查看视角快捷按钮;视图区是用来查看载入模型,并在开始打印模型后查看温度变化情况,因为比较简单,本文就不再介绍;功能区是该软件的核心区域,也最为关键,包含5个功能块:物体放置、切片软件、(print preview)预览、手动控制和SD卡,本教程将重点讲解。

下面将对每个模块按钮功能进行简要介绍,方便用户对软件进行全面了解,便于应用。

一、菜单栏

菜单栏中的从左到右依次为文件、视图、配置、打印机、server、工具和帮助。

image002

文件:主要包含模型的载入,以及最近载入的模型选择。另外,一般文件模型的载入也可利用菜单栏下侧的image003实现模型的快速导入。

视图:包含了所有的视图,也可通过左侧的快速工具栏即可基本实现所用视图

配置:主要用于设置软件语言,支持多种语言;更改导入模型默认单位等,若你初次打开软件发现不是中文版的就可在此位置进行设置。

帮助:可以查看软件版本升级、操作手册等信息

打印机、sever、工具不常用,在此不再介绍。

菜单栏下侧包含了三个工具按钮分别是连接、载入和是否记录按钮。

image004

【图:打印机未连接】

image005

【图:打印机已连接】

连接:用于连接打印机,未连接时为上左图,连接后变为绿色如右图即为连接成功,当有打印任务的时候,将出现运行任务和任务终止工具按钮,如上右图所示。

载入:载入是操作的基础,指载入需要打印物体模型文件,需要注意的是模型文件一般是需要打印机能够识别的格式,若格式不对或者模型文件不好将导致模型文件无法导入。当在功能区显示下侧橘黄色文字说明模型有问题如下图所示,则需要修复后才能使用。

最简单的修复模型的方法是使用netfabb的云服务。请参考网址:http://cloud.netfabb.com/

另一个免费的修复程序是Autodesk公司的3D Print Utility。请参考网址:http://apps.123dapp.com/3dprint/install.html

是否记录:是指在打印过程中是否显示软件操作进程,以及3D打印机的一些返回命令,此命令窗口可用可不用,一般用于打印过程中。

image006

【图:模型存在问题时,出现警告】

二、快速工具栏

快速工具栏中包含了对模型文件的一些基本操作和视图选项。主要包括旋转、平移、物体平移、缩放、适应窗口、等比例视图、正视图、俯视图和使用平行投影。选中的按钮会带有浅蓝色边框。

旋转按钮image007:默认模型操作模式即为旋转模式。当保持默认模型操作模式即选中旋转按钮后,点击鼠标左键不放,将可实现视图整体任意方向的旋转;在视图区点击鼠标左键选中,转动滚轮即可实现整个视图的缩放;点击右键鼠标不放,拖动鼠标,可单独实现模型的平移;点击鼠标中键不放,拖动鼠标,可实现整个视图的平动。因而旋转模式下通过鼠标就可控制实现模型和视图的绝大部分操作,是相当常用的工具按钮,建议保持默认即可。

其他的按钮依次排列分别为平移、模型平移、缩放。选中按钮后,点击鼠标左键不放即可实现所选工具按钮命令。可实现单一快速操作。但不如旋转按钮模式下鼠标操作的多样性。一般不常用。

最下端三个视图分别为等比例视图,正视图俯视图,点击鼠标即可快速实现,按下视点重置的三个按钮之一,或者直接按下键盘F4/F5键,都可以将视点复位。

使用平行投影image009:位于快速工具栏最下侧,按下这个按钮之后,3D窗口将从缺省的透视投影状态变为平行投影状态。以这种方式观察模型,就不会出现近大远小,感觉不是那么真实,另外还有一些好处,比如更容易测量、比较两条线的长短。学过机械、建筑的同学自然就懂了。

在功能区之上包含了三个工具按钮分别为打印机设置、Easy model紧急停机。如下图所示:

image011

Easy model:主要用于手动控制功能页面的设置,保持绿色即为选中,保持默认即可;

紧急停机:主要是在打印过程中遇到突发情况,或者事故需要紧急停止打印,点击实现任意状态下停机。

打印机设置:打印机设置是对打印机的一些基本设置,应该在打印开始之前首先完成设置,是相当重要的设置按钮,尤其对于初次打印。点击打印机设置就会出现下图所示界面,包含连接、打印机、extruder、打印机形状、scripts、高级几个子选项卡。其中最关键是是前四项的设定,后两项基本不会更改,保持默认即可。

image012

连接:如上图所示,其中红色框中的是主要的设定项,其他保持默认即可。Repetier-Host和3D打印机通过建立串口进行连接,因而设备连接端子选项中一般采用串口连接即可;当前版本的Repetier-Host可以自动检测到可用端口,因此只需在通讯端口下拉框中选择“Auto”即可,波特率必须和3D打印机固件中设置的波特率相同,否则电脑和打印机无法正常通信,不同打印机数值不同,根据打印机参数进行设定,常见的波特率为115200, 250000, 256000等。

image013

打印机:如上图所示,包含一些比较重要的设置。上半部分主要是调节挤出头的速度和温度设定,对于初学者挤出头各类型速度保持默认即可,对打印效果影响不大;缺省挤出头温度和热床温度的设定非常关键,需要根据不同材料进行针对性设定,否则温度太低无法融化材料,材料将不会送下,另外,即使挤出材料也会由于温度过低,在挤出头出口即已凝固,无法进行塑造,打印效果很差;温度太高又会使材料难以保持固定形状甚至烧毁材料。一般材料主要包括ABS和PLA两种,对于ABS挤出头温度设定在210-250℃之间,加热床温度80℃;对于PLA,挤出头温度为180-230℃之间,加热床60℃。

另外可以选择任务中断结束后回到停机位,即当任务中断后,打印机挤出头将回到停机位;选择任务中断结束后关闭热床,将在任务结束中断后开始关闭热床。这两个按钮一般会选择上。

其他选项基本保持默认即可。

image014

extruder如上图所示,主要是针对挤出头的设定,包含打印机挤出头数目、最大挤出头温度和最大热床温度,这是为了保护探头的一些安全措施,当超过最大温度时将自动停机,本页基本无需改变,保持默认即可,对打印影响不大。

image015

打印机形状:如上图,从打印机类型中可以选择不同的打印机类型,一般情况下选择经典打印机即可;起始位置设定一般都设置为最小;打印区域的设定与打印机相关,不同打印机打印区域不同,也会有不同设置。

三、功能区:

下面将重点对功能区做说明,打印软件最为重要的一些操作都在这一区域,将按照模块顺序进行功能详细讲解。

在功能区的五个页面中,“物体放置”主要对载入图形进行一些基本转动、平移、缩放、旋转等操作;“切片软件”用于选择切片引擎并对已经设置好的模型进行切片,得到G-Code文件;(print preview)预览用于查看切片结果并修改G-Code;“手动控制”最主要是用于调试打印机,包括测试各轴的运动,风扇开关,加热控制,查看打印机反馈信息,向打印机发送G-Code指令;“SD卡”用来在联机状态下读写SD卡内容以及删除某些G-Code文件。

1、物体放置

image016

物体放置是用来调整模型物体位置大小等,在刚载入物体模型后,首先就需要调整位置、大小、方向,以满足打印要求。其中包含了9个工具选项,红框中工具依次分别为另存为、增加物体、模型复制、自动布局、物体对中、缩放物体、旋转物体、模型裁剪和镜像。

增加物体image017用来添加新的模型文件,通常为实现多个简单模型同时打印即可添加多个模型文件,进行编辑,多用于同时打印多个部件时使用;

模型复制image018指对当前已载入文件进行复制,重复打印某个物体时使用。

自动布局image019:当载入多个模型时,方便对模型的位置进行设定。

物体对中image020:为保证打印机在打印的物体位于加热床正中心,点击即可使得模型文件位于中心位置。

缩放物体image021:默认情况,XYZ三方向保持锁定,即设定X方向的增大倍数,即可实现模型在XYZ三个方向的一起缩放;当点击如下图红框中带锁按钮后,即可解除锁定分别对三个方向进行缩放。此模型的原始大小可通过对象组下设置按钮下分析结果查看模型物体大小。缩放物体是比较常用工具。

image022

image023

旋转物体image024通过在XYZ后方框输入旋转度数,即可实现物体的旋转,一般为保证模型的正常打印,通常应该保证模型文件从下到上堆积,避免悬空,物体累积倾角与底板夹角不要低于30°。

image025

模型裁剪image026:用于裁剪模型,去除模型多余部分,已经裁剪掉的部分将不再参与打印。

镜像image027:模型文件按照镜像旋转,但仅限于X方向。

当载入模型后将在物体放置下出现对象组,对象组后面包含两个按钮分别为设置和删除,如下图红色方框所示。点击删除按钮模型将从软件中删除,若非删除模型不要轻易点击。

image028

设置又分为设定和分析结果,设定主要是指定挤出轨的选择和物品的选择,一般都为一个挤出轨,物体单一则不用再进行设定,分析结果可用于查看模型大小和一些其他信息,这里最常用的就是查看打印模型的尺寸是否符合要求,当不符合要求时,可通过物体放置页面下第六个按钮image029,更改模型大小。

2、切片软件

当物体位置及大小调整完成后,就要进入打印模型最关键的部分,模型切片。

image030

最主要的设定包括切片软件、配置、打印速度填充密度的设定,如上图红框所示。

切片软件:一般选择CuraEngine切片引擎工具,这是目前最好的切片工具,在最新版中已经默认选择CuraEngine切片引擎工具,以前版本中Slic 3r切片速率较慢,效果不是很好,不过为了方便老用户使用,因而仍然具有这一切片引擎,用户如果需要使用可以在切片软件下进行选择。

配置:点击配置工具按钮,打开切片配置设置窗口,包括了打印和材料两部分设定,打印中包括速度和质量、结构、挤出、G代码和高级;材料中包括了打印材料的一些设定,保持默认即可。配置中速度和质量主要是设定速度区间。其他均对打印效果影响不大,对于初学者保持默认即可。

image031

通过改变打印机打印速度区间进行调整,再结合切片软件界面可进行速度和填充密度对速度和填充密度进行调整。

速度:速度设定越大,打印花费时间越短,可以根据打印效果进行不断调整;

填充密度,实体物体填充设定100%,空心物体设定0%,填充密度越大,结构越充实,不过为节省材料,对于非强度结构件一般设定为20%~30%即可。

当所有设定结束后,点击上方开始切片,即可实现切片的处理。

3、(print preview)预览

当切片完成后,点击打印预览,即可观看打印效果图。

image032

打印统计:可以查看打印预测花费时间、层数、总行数以及需要材料。

可视化:可以选择观看打印模型,选择显示非打印移动,将显示非打印空形路线,其中浅绿色线即为打印机空走路线,另外也可以选择显示单层,显示特定的显示层。

当一切没有问题时,点击红框中第一项Printimage033,开始打印,此时打印机将开始为模型打印做准备并打印模型。打印之初首先加热热床,然后加热挤出头,当达到设定温度后,开始打印。可在视图区选择温度曲线,实现实时监测打印机和热床工作温度,如下图所示,其中左上方红框中显示不同颜色线条所代表物体温度,包括挤出头、热床、目标温度、平均温度、挤出头输出以及热床输出。底部红框中,中间部分显示了热床和挤出头温度数值大小,右下方显示打印进度,以及剩余时间:

image034

其他三项分别为编写G代码,保存代码文件和将代码保持至SD卡。

编写G代码用于给打印机输入命令代码;保存代码文件是将切片软件生成代码保存;代码保存至SD卡,用于将代码转存到SD卡中,对于较大文件一般需要将代码转至SD卡中,即可脱离计算机独立打印工作,维持工作稳定。

4、手动控制

手动控制一般是为了检测打印机是否连接成功、调整打印机。手动控制栏目主要分为4部分,从上到下依次为发送G-Code,控制移轴及挤出机,设置温度、风扇及速度倍率,调试选项。

image035

手动控制中三个移轴部分中的小屋图标为归位图标,使每个轴向回归初始位置。带字母的小屋图标为对应的轴向的归位图标,即打印机喷头只在该轴向上回归初始位置,左下角不带字母表示三个方向同时归位。X/Y方向上的移轴运动单位有0.1、1、10、50,Z方向上的有0.01、0.1、1、10,通过改变鼠标在箭头扇形中的位置可以改变移动单位。然后点击鼠标左键,打印机即可做出相应移动。

最右边是控制挤出机运动的,正向是挤出耗材,负向是回抽耗材,同样可以改变移动单位。需要特别注意:当喷头温度过低的时候,打印机不会做挤出或回抽动作。

其他选项对打印效果影响不大,对于初学者,保持默认即可。

移轴部分下带有一排按钮图标分别为:电源开关、切断所有电机工作电流、将打印头移到停机坪、数字代表打印片段代码,最后问号代表帮助按钮,当点击问号后,变绿后代表选中,此时,将光标移到各个按钮中停留即可看出该按钮功能介绍,非常适合初学者使用。

上图红色方框内显示的分别为打印头移动速率、冷却风扇速率、热床温度、挤出头温度。打印头移动速率在主菜单栏打印机设置/打印机选项卡中设定默认值;冷却风扇速率一般保持默认即可,一般不会使用,当挤出头温度过高,需要快速降温时,点击风扇标识去除红色斜杠,打开挤出头风扇即可实现快速冷却;热床温度和挤出头温度用于设定挤出头目标温度,最右端显示即为目标加热温度,当点击热床或者挤出头标识后,红色斜杠将消失,此时将开始加热热床或挤出头,一般进行换料时,在无任务状态下加热挤出头会通过点击挤出头进行加热。

四、结束语

以上就是我们对Repetier-Host V1.5版本基础应用的介绍,主要通过对软件所有功能模块进行介绍,内容包含了打印机中主要打印机设定,打印中可能遇到的功能按钮的介绍,基本涵盖了所有可能用到的选项的介绍,非常利于初学者对软件进行整体把握,同时方便在软件使用过程中遇到问题时,可以快速进行检索答疑,从而了解某一选项的功能应用,有助于软件的学习。希望这篇教程能够帮助初学者快速掌握Repetier-Host软件的使用。

对于新的Repetier-Server功能,内容比较多,我们会在另一篇文章中详细讲解。如果感兴趣,可以直接跳转到【打印虎】Repetier-Server基础图解教程

最后,如果您对Repetier-Host或是其他3D打印工具有任何问题,都可以在打印虎3D打印问答社区提问。在打印虎3D打印问答社区,所有问题都会得到认真详细的解答。祝大家玩机愉快,每天都有好心情。

【打印虎】可爱机器人的3D打印及组装

image001

这是一个外形萌萌哒的机器人,身体几大关节都是可动的。你可以用它来摆不同的造型,演绎不同的幻想故事,随心所欲地和它玩耍。

image002

看到这么灵活可爱的机器人,有没有怦然心动?拥有一个给孩子,可以让他玩得不亦乐乎;拥有一个给自己,可以体验童年玩玩具的乐趣。

image003

如何才能拥有一个?3D打印机来帮你!只需要打印出它的全部构件,自己动手组装,就可以轻松拥有它!

选择自己喜欢颜色的耗材,下载这个可爱机器人的模型,然后利用软件和打印机来动手制作吧!

另外需要准备工具及用品:小镊子、结实的弹性细绳。

然后,充满期待地开始制作过程吧!

首先在模型库里找到它,搜索“女飞侠”这个名字就可以了(汗,为什么要起这么武侠风味的名字……)。这套模型一共有15个部件,为了保证质量,一件一件打印。

一、打印环节

image004

【上图:打印中的右脚】

image005

【上图:打印完成的右脚】

两只脚的打印过程很顺利。良好的开始便成功了一半……本来应该是这样,然而到了后面……

image006

【上头:打印中的左臂】

从左臂开始,打印的部件就出现瑕疵了。左臂右臂的问题都在于支撑问题。虽然两者都有悬空部分,但角度并不大,没有支撑也能打印。不过无支撑打印的时候,模型底部和热床接触面积太小,而极有可能粘不结实,打印到一半就活动导致打印失败。

所以打印的时候选择了“接触热床”的支撑形式,可以顺利打印完成。只不过,之后清理支撑的时候不容易清理干净,使手臂底面部分看起来较凌乱。

image007

【上图:打印中的髋部】

髋部打印同样遇到支撑问题,如上图,选择“接触热床”的支撑,因为模型内部中空,支撑也贯穿内部,非常不方便。但是没有支撑,模型和热床接触面积就太小了,极容易活动。

image008

【上图:打印中的手】

手模型遇到的这个问题更加突出,接触面积更小更琐碎。然后,几经尝试,就想到了上图那样。没错,以上问题的解决办法就在这里,Repetier-Host软件切片的时候,打印设置页面有个结合类型,选择“Brim”。完美解决模型接触热床面积小的问题,打印过程中不会活动;只有薄薄的一层,打印完毕也很容易清除。

image009

image010

【上图:打印完成的手】

image011

【上图:打印中的大腿】

大腿模型内部中空,类似一个圆管,底面同样需要“Brim”。

学会了添加“Brim”,解决了前几个模型的烦恼,以为可以顺利打印到最后的时候,新的问题又出现了……胸部模型添加“Brim”之后,切片软件预览里面未显示“Brim”那一层,顿时有种不详的预感。开始打印,果然——打印第一层是悬空的!“Brim”根本未曾出现。

image012

【上图:开始任务后直接打印胸部第一层】

而此后继续打印,随着第一层落到热床,后面也能逐渐步入正轨。

image013

【上图:打印中的胸部(1)】

但是不到两分钟,就因为接触热床面积过小,模型发生活动,打印失败。

试一试添加支撑,选择支撑形式为“接触热床”,可以顺利打印,但是胸部内部也是中空,添加支撑以后会把内部填满,关键胸下出口附近有一道横杠,使得支撑部分更加难以清除。

还是尝试其他方法。最后检查切片结果,发现:

image013

底部悬空!切片软件及设置如下:

image015

image016

image017

image018

其他采用默认设置,切片结果是底部悬空……不知道是模型本身的问题还是切片器有问题了。所以打印的时候尝试在底部添加另外一个模型,“打印辅助小圆片”,设置成一层,刚好和胸模型接上。这也相当于手动添加“Brim”。

image015

【上图:打印辅助小圆片】

image016

【上图:打印中的胸部(2)】

打印效果如上图。

至此,打印过程中出现的波折也就告一段落,之后打印的膝盖等其他几个模型都采用“Brim”的方式,很顺利打印出来。

image017

【上图:打印好的机器人各部分组件】

一共15件,没有重复,不多不少,正好可以组装成一个“女飞侠”。打印效果挺不错,基本不需要做太多处理。下面就开始期待已久的组装环节,可爱的小机器人马上就能与我们见面了。

二、组装环节

image018

【上图:一根细绳绕过头内横杠】

1、使用一根细绳,绕过头部内的横杠,搭在上面对折,绳两端朝外。

image019

【上图:把胸部穿起来】

2、细绳两端一起穿过胸部,经过胸腔横杆的时候分开,然后在横杆处打结,结实一点。这样就把头部和胸部两个部分连接在一块儿了。然后把绳子多余部分剪掉就行了。

image020

【上图:另外两根细绳分别从两肩穿过】

3、另用两根细绳分别从两肩处穿过胸部,同样绕胸腔横杆对折,使之搭在上面,绳两端从下出口伸出。图上为方便展示在肩部留出一部分。

image021

【上图:连接髋部】

4、把刚才的细绳的两端穿过髋部,一根绳的两端从左侧出,另一根从右侧出。

image022

【上图:连接腿和脚等部分】

5、按照图中顺序,用上一步的绳子把腿脚部分串上去。把膝盖扣在小腿上部的横杆上面,拉紧绳子打个结。另一条腿也是这样。多余的绳子剪掉即可。

image023

【上图:装好双腿的机器人】

只剩双臂和手了,已经可以站起来了,了不起!(其实这里把胸部前后搞反了)

image024

image025

【上图:绳子穿过手臂】

6、手臂部分是一体打印的,由于中间孔隙不大,先用绳子穿过手臂。肘关节这里有个横杠,等后面需要把绳子另一端再穿回来,跟这端隔着横杠。所以这里选择横杠上下较窄的部分先穿过去。

image026

【上图:手臂部分串起来】

7、先把上一步绳子的一端从胸部对应好左右的一侧穿过,绕头和胸连接的绳子对折,再从同一侧伸出去,穿回手臂里面。把手也连接上,系个结就行了。同样,多余的绳子剪掉。

image027

【上图:胸与手臂连接】

这是具体的连接方式示意图。

image028

【上图:手与手臂的连接】

image029

【上图:整体连接情况】

image030

【上图:缎带飘飘的机器人】

至此可以说,组装完成!萌萌哒的机器人就这样到手了!可以用它来摆多种造型,一起进行幻想中的游戏啦!

image031

【上图:初临地球的机器人】

“泥嚎,我叫女飞侠,请给我介绍一下地球好吗?”

image032

【上图:杂耍艺人】

“嘿,哥儿们,我有特技,不来投个币吗?”

image033

【上图:横行霸道的宇宙人】

“什么?你们敢来惹我?我能一个打十个!来啊!”

image034

【上图:和善的巨人】

“哟,小不点,你受伤了吗,好可怜……”

image035

【上图:宇宙级修理工】

“捏哈哈哈,人类制作的机械太小儿科了,看我分分钟拆掉它!”

……等等等等

诸如此类,幻想不尽,乐趣无穷。

不过这里还是说明一下,最好使用有一定弹性的细绳,可伸缩才能有力度,方便摆动作。这是用没弹性的绳子玩耍之后的切身感受……

最后,如果您对3D打印有任何问题,都可以在打印虎3D打印问答社区提问。在打印虎3D打印问答社区,所有问题都会得到认真详细的解答。祝大家玩机愉快,每天都有好心情。

 

【打印虎】RepRap Prusa i3 3D打印机固件配置新工具

随着3D打印机的逐渐普及,RepRap Prusa i3的玩家也越来越多了。很多Prusa i3的玩家,会找虎哥咨询固件配置方面的问题。很明显,固件配置已经成为困扰Prusa i3玩家的一个比较麻烦的问题。

我们在之前的教程里已经介绍过关于Repetier-firmware和Marlin的固件配置(这里是Repetier-firmware的配置教程这里是Marlin的配置教程)。虽然有了教程,但很多朋友还是反映教程比较难,关心有没有更简单的方法可以把固件配置好,运行在自己搭建的Prusa i3 3D打印机上。为了让广大DIY玩家有更方便的方法配置固件,打印虎潜心开发了一款3D打印机助手工具软件,专门来解决这个问题。

我们这篇文章,将给大家详细介绍打印虎3D打印机助手这个小工具的使用。如果你有这方面的需要,跟着我一步一步往下做吧。

第一节 下载和安装

打印虎3D打印机助手这个工具的下载和安装非常简单。首先,大家可以从这里下载这个工具(打印虎本地下载百度云下载)。下载完成之后,我们会得到dayinhu_helper这个文件。这个就是打印虎3D打印机助手的安装包了,如下图所示。

image002

双击这个安装包,就可以进入安装过程。安装过程非常简单,第一步是选择目标文件夹。如果没有什么特别的要求,安装在C盘缺省位置就好了。

image003

单击安装按钮,立即开始安装。整个安装过程不长,完成之后会停在100%进度的状态下。

image004

这时,按下按钮“关闭”,整个安装过程就完成了。安装完成之后,可以在“开始”菜单中,以及桌面上,找到“打印虎 3D打印机助手”这个图标:

image005

双击这个图标,打印虎3D打印机助手就可以开始运行了。

第二节 连接3D打印机以及备份恢复固件功能

如果这时候用户的3D打印机还没有连接,软件将提示“请连接3D打印机”。

image007

这个时候,把3D打印机打开,并且连上USB接口,打印虎3D打印机助手会自动开始与用户的Prusa i3 3D打印机进行通信。如果一切顺利,最终会显示这样的连接成功界面:

image009

在这个界面里,除了“3D打印机已经连接”这项提示之外,还显示了打印虎3D打印机助手自动检测得到的主板类型、COM端口号以及当前运行在3D打印机主板上的固件型号。所有这些信息,都不再需要用户自己指定,极大方便了用户的使用。

当软件和Prusa i3 3D打印机的连接完成之后,我们就可以使用这个软件提供的固件管理功能了。固件管理,又分为备份/恢复固件,以及更新固件这两项。这一节中我们先介绍备份/恢复固件这个功能。

备份/恢复固件功能,是打印虎3D打印机助手提供的一项创新性功能。当前市面上有很多Prusa i3 3D打印机,在销售的时候固件并没有按照RepRap原始开发者的版权要求,继续保持开源的状态。在这种情况下,DIY玩家想要对自己的3D打印机进行一些试验,特别是固件方面的试验,就很麻烦了。一旦使用自己配置的固件,把3D打印机卖家修改、配置好的固件冲掉,就很难再恢复,而3D打印机卖家也往往会用各种理由推脱,不把适合机型使用的源代码交给DIY玩家。

现在,我们有了打印虎3D打印机助手,这些问题就可以迎刃而解了。如果想对自己的3D打印机进行固件方面的试验,完全可以使用打印虎3D打印机助手提供的备份/恢复固件功能,先把原来的固件备份起来。未来如果有需要,可以随时进行恢复操作。

image010

第一次使用备份/恢复固件功能,界面上只有一个备份按钮。我们按下这个按钮,备份动作就开始了。

image012

当进度条走到100%的位置,备份动作就完成了。这个动作完成之后,打印虎3D打印机助手会重新与3D打印机主板、固件简历连接。

image014

当连接成功,这个重新连接对话框会自动消失。这时候,我们就有了一个已备份档案,随时可供用户进行恢复操作。

image016

第三节 更新固件功能

从上面的备份/恢复固件功能的介绍可以看出,打印虎3D打印机助手的功能牛逼,操作简单,真是居家旅行杀人越货谋财害命之必备佳品。下面,我给大家介绍这个软件的另一个主要功能,更新固件功能。

切换左侧主功能栏,到“更新固件”功能之后,我们可以看到,更新固件是一个比较复杂的操作。十个确认/测试步骤,再加上几个刷固件的步骤,组成了整个更新固件功能:

image018

为了开始整个更新固件的过程,我们点击“开始”按钮。

image020

在进行更新固件过程之前,我们最好先备份一下当前的固件。这个动作不是必须的,但毕竟是有备无患,用一点时间备份会更加安心。如果希望进行备份,则按下“备份”按钮,否则,可以按下“跳过备份,直接进入下一步”按钮。

备份的过程,与我们上面介绍过的在“备份/恢复固件”功能中的备份过程是完全一样的。这里就不再重复了,在备份好自己的Prusa i3 3D打印机固件之后,我们进入下一步操作。

image023

第一步,确认3D打印机类型。在这一步中,我们首先要确认所使用的3D打印机类型。当前,打印虎3D打印机助手还只支持Prusa i3类型的3D打印机,其他型号的机型,未来会逐步支持。在这一步,我们所需进行的选择,就是在Prusa i3 3D打印机的图片上,点击一下鼠标,这样,这个选择上就会出现一个对勾,提示我们这项已经被选中了。这时,点击“下一步”继续。

image025

第二步,是选择3D打印机的主板。由于Prusa i3 3D打印机可以选用多种不同型号的主板,而不同型号的主板的技术参数有一定的差别,因此这里有必要对其进行选择。当前,打印虎3D打印机助手软件能支持Melzi主板和RAMPS主板两种常用的3D打印机主板,其他类型的主板还需要等待未来的支持。

类似于第一步,我们在合适的主板上点击鼠标选定之后,就可以进入“下一步”了。

image027

第三步,限位开关的连接方式选择。这里有两种常见的连接方式,一种连接方式是常闭连接,这种连接方式,导线连接限位开关的COM(通常在限位开关上标记为C)和NC两个引脚,在限位开关没有触发的时候,开关是闭合的,而当限位开关被触发时,开关变为断开。如果你的限位开关是这样的连接方式,请选择第一个选项。反之,如果你的连接方式是常开连接,导线连接了限位开关的COM和NO两个引脚,则应该选择第二个选项。当然,如果实在搞不清楚,选择第三个选项也是可以的。选好之后,进入“下一步”。

image029

第四步中,我们选择Melzi主板上的R2电阻的阻值。这个电阻在Melzi主板的一侧,相对比较容易观察到上面的文字。如果文字是103或者1002,代表阻值是10K,选择第一个选项。如果电阻上的文字是472或者4701,则说明阻值是4.7K,选择第二个选项。类似于上一步,如果实在看不清楚也没关系,选择第三项就可以了。然后点击“下一步”继续。如果你用的是RAMPS主板,对应的热敏电阻阻值是固定的,这一步就不需要选择了,将会直接跳过。

image030

进行了前面四步确认之后,主板的基础参数就确定下来了。有些参数,不经过实际验证不太容易确定,因此,这时候打印虎3D打印机助手会要求先刷一次固件,然后根据3D打印机的实际测试表现,来决定如何进一步调整固件的参数。

与前面的固件备份过程类似,在这里按下“刷!”按钮之后,将开始一个刷固件的过程。所谓刷固件,就是把准备好的3D打印机单片机可以运行的程序,从电脑传输到3D打印机单片机,并且保存在单片机的Flash闪存中的过程。这个过程,与大家平时刷手机操作系统比较类似。固件刷好之后,打印虎3D打印机助手会重新与3D打印机固件建立通讯。全部完成之后,点击“下一步”继续我们的更新固件过程。

image032

第五步是对XYZ方向进行测试。进行这一步之前需要注意,这个测试过程中,将不会检查限位开关的状态,因此步进电机的初始位置不好,在轴的一侧的话,很可能会发生挤出头撞击Prusa i3 3D打印机框架。要避免这样的问题,需要在测试之前用手移动挤出头到X轴中间,用手移动热床到Y轴中间,并且用手移动整个X轴部件到Z轴的中间(这步需要两手同步旋转Z轴)。

在确保了挤出头不论向任何一个方向移动时都不会发生撞击之后,可以开始点击界面上的测试按钮了。首先,可以点击X轴的“点击这里”按钮。同时仔细观察挤出头的移动方向。把挤出头的方向,与Prusa i3 3D打印机的实际正方向相比较,如果前进方向确实是正方向,则应该点击“前进方向正确”按钮。否则,应该点击“前进方向错误”按钮。如果没有观察到挤出头运动的方向,还可以再次使用“点击这里”按钮让挤出头移动,多操作几次一定可以观察到挤出头的运动方向。

分别测试三个轴的前进方向。选择好正确或是错误选项,然后点击“下一步”继续。

image034

第六步是对限位开关的测试。在这一步我们要分别对XYZ轴的限位开关进行测试。最终测试的结果将组成一张表格。先看“未触发状态下”这一列,需要用户在确保XYZ三个轴的步进电机未触发的情况下,用鼠标单击这三个按钮。这里需要特别注意的是,在上一步中,挤出头很可能移动了比较远的距离,这样就有可能移动到了触发状态限位开关的位置。如果发生了这样的情况,需要用户首先用手移动挤出头,将限位开关的触发状态解除。

分别按下未触发状态下的XYZ轴三个按钮之后,再看“触发状态下”这一列。这一列的三个按钮,需要用户确保在XYZ轴限位开关被触发的状态下被按下。这里,我们最简单的方法,就是用手指去分别触发XYZ三个轴的限位开关,同时用另一只手操作鼠标,点下这一列的按钮。

六个按钮所对应的测试全部完成之后,在结论这一列,有可能会出现“设置正确”,这就代表测试通过了。也有可能会出现“设置反向”,这说明当前的设置是反的,这个问题已经被记录下了,等一会会在重新刷固件的时候解决。还有可能出现“硬件错误”,这是因为在未触发和触发两次测试的时候,打印虎3D打印机助手都获得了相同的电平信号,这往往代表着操作错误,或者是硬件错误,要先检查并且解决问题,再进入下一步。

image036

第七步是测试XYZ步进电机分辨率。有三种方法可以完成这步,分别是“使用当前固件数值”、“手动测试”以及“直接指定数值”。下面我们一一介绍。

使用当前固件数值是最简单的方法。在打印虎3D打印机助手与固件建立通讯的时候,会尽量从旧固件中读取之前用户设置的步进电机分辨率值。当然,根据固件型号、版本的不同,这个值有可能能够被取出,但也有可能不能取出。如果能够被取出的话,这里就会展示出用户原有固件中配置的数值。如果用户之前使用3D打印机,XYZ轴的分辨率没有问题的话,那么就继续使用这个数值就很好。

image038

手动测试功能,是另一种获得XYZ轴分辨率的方法。这种方法需要一把至少15cm长的直尺,最好是塑料或者钢质的硬尺。首先选择一个任意点作为起始点,沿着X轴正方向测量10cm的距离。用手将挤出头移动到10cm的位置处。挤出头上具体哪一点对应在10cm处,也不重要,记住这一点就可以。按下第一个“点击这里”按钮,这时挤出头会向限位开关方向移动,并且在碰到限位开关的时候停下来。接着,以与刚才相同的点作为起始点,沿着X轴正方向测量15cm的距离。用手将挤出头移动到15cm的位置处。以刚才记住的挤出头上的特定点对准15cm位置。然后再按下第二个“点击这里”按钮。这个时候,X轴的分辨率,将自动计算出来。

接下来,还可以使用类似的方法,分别计算出Y轴和Z轴的分辨率。当我们得到了所有三个轴的分辨率,就可以点击“下一步”继续了。

image040

第三种指定XYZ轴步进电机分辨率的方法,就是直接指定数值。这种方法就没什么好讲的了,直接在编辑框中填写数字即可。至于如何自己手工计算这样的数值,可以参考打印虎的教程文章【打印虎原创】RepRap_Prusa_i3_3D打印机步进电机设置图解。其中有详细的计算步进电机分辨率的讲解。

image042

第八步是测试热敏电阻参数。这里我们既可以使用简易设置,通过对比当前热敏电阻与环境温度的差别,猜测热敏电阻的参数,也可以通过直接指定热敏电阻参数数值的方式,比较精确地设置热敏电阻。如图所示,当我的热敏电阻报告出来的数值,与室温一致的情况下,我只要选择“正常”按钮就可以了。如果报告的值明显偏高,比如是40多度,那么我就应该选择“偏高”按钮。通过这样的方法,就可以简易设置热敏电阻参数了。

这里有一点需要注意。如果你的3D打印机刚刚使用过,热床或者挤出头还处于热的状态,那么很明显这时就不能简单的把热敏电阻报告的温度值与室温值相比了。在这种情况下,最好多等一会,直到热床和挤出头的温度回归室温,再进行这里的测试操作。

image044

当然,如果你读过打印虎的教程【打印虎】RepRap 3D打印机热敏电阻设置图解,那也许直接指定热敏电阻相关的参数数值,是一个更适合你的选择。关于这些参数的意义以及如何设置的方法,这篇教程里讲解的已经很清楚了,这里就不再详细介绍了。

image046

如果刚才的测试过程中,我们发现了一些需要修改的参数,那么到这里,就需要重新刷一遍固件,并且重新进行刚才的第五、第六、第七、第八项测试。反之,如果刚才所有的测试都没有问题,那么就会看到这样的界面了:

image048

这时候,只要点击“下一步”,我们就可以开始第九步测试了。

image050

第九步是测试E轴步进电机的方向。E轴也就是挤出机驱动耗材所使用的步进电机。这个步进电机也需要确认它转动的正反方向。那么为什么不在前面和XYZ轴一起测试呢?这是因为想要E轴步进电机转动,并且能看到对应的效果,首先要对挤出头加热到耗材所需的温度。仔细观察就可以发现,第九步这个页面的上方,有一个灰色的区域,在这里用户可以以指定温度对挤出头进行加热。

按下“加热”按钮之后,对挤出头的加热就开始了。等待挤出头达到用户所希望的温度,就可以按下下方的“点击这里”按钮,让E轴步进电机旋转前进1mm。由于E轴的分辨率参数还没有调整到位,因此这里的1mm,与步进电机的实际运转距离可能不完全一致。这就要求我们对耗材的运动方向特别仔细观察。

最后,按下“前进方向正确”或者“前进方向错误”这两个按钮之一,完成这一步的测试。

image052

最后的第十步,是测试E轴步进电机的分辨率。与前面测试XYZ轴步进电机分辨率类似,这里也有三种不同的方法。首先是直接使用当前固件的步进电机分辨率;第二是手动测试;最后是直接指定数值。第一种和第三种方法,与之前类似,这里就不再详细讲解了。手动测试方法比较特殊,如下图:

image054

使用“手动测试”时,用户首先应该在耗材上使用记号笔标记一个位置,然后用鼠标单击按钮“点击这里”,让基础头步进电机前进20mm的距离。然后,使用一把尺子测量这个记号点的实际前进距离是多少,如果确实是20mm,则选择“前进距离正确,正好是20mm”;否则,选择“前进距离不正确”,并且在下方的编辑框内,填写实际前进的距离毫米数。

全部完成后,单击“下一步”继续。

image056

与第八步完成时类似,第十步完成时同样有两种可能性。如果在第九步和第十部测试中,有什么东西不正确,则这里会提示用户再次刷机,并重新测试第九步和第十步。反之如果所有的测试都成功了,我们就会看到最后的通关画面了。

image058

到此为止,整个更新固件的过程就完成了。大家可以把打印虎3D打印机助手关闭,使用Repetier-host或者Cura,尽情使用自己的3D打印机了。

结束语

当然,由于打印虎3D打印助手才刚刚面世,还远远不够完善,你的使用体验也许没有我们这篇文章中所介绍的这么流畅。如果你在使用过程中遇到了任何问题,请与打印虎QQ 2690194554联系,软件研发团队在QQ上等着你,随时给你解决问题。

为了保证大家没有错过打印虎3D打印机助手软件的下载方法,我在这里重新列出(打印虎本地下载百度云下载),希望大家喜欢这个小工具。

最后,如果您对打印虎3D打印助手有任何问题,都可以在打印虎3D打印问答社区提问。在打印虎3D打印问答社区,所有问题都会得到认真详细的解答。祝大家玩机愉快,每天都有好心情。

【打印虎】RepRap Prusa i3 3D打印机Melzi专用LCD控制器使用指南

对于Prusa i3 3D打印机的玩家来说,有一个比较常见的问题,就是3D打印机本身没有可供用户交互的界面,必须通过USB连接,使用PC上的Repetier-host或同类的3D打印机控制软件,才能对3D打印机进行有效的控制。这对于起步阶段的玩家,打印一些小玩意是没什么问题的。但是,当你需要打印高精度、大尺寸的3D打印作品时,问题就来了。不论是提高精度,还是加大3D打印对象的尺寸,都意味着打印时间的大幅增加。这样你的PC机就必须长时间开机。如果你用的是笔记本电脑,你的电脑也不能移动了,要一直保持USB的连接状态。而且,万一因为USB线的质量不佳导致传输出现问题(对于大型作品,在长达几十个小时的打印时间里,还是很可能出现的),你的作品就会功亏一篑,令人抓狂。

想解决这样的问题也不难,只要给3D打印机增加一个LCD液晶显示屏模块,就可以解决在3D打印机上直接人机交互的问题。再配合上SD卡,我们就不再需要使用USB连接,完全可以依靠3D打印机自身完成所有的工作。同时,3D打印的稳定性也会上一个台阶。市面上已经有一些这样的模块,不过打印虎针对Melzi主板做了一个更完善的方案:

  1. 可以与Melzi主板完美配合使用;
  2. 使用了大尺寸显示屏,同屏可以显示更多的信息;
  3. 基于Repetier-firmware 0.91固件,稳定可靠;
  4. 完整的、容易理解的全中文用户界面。

从以上几点可以看出,打印虎的Melzi LCD控制器方案还是有些特色的。下面我们先来看看这个模块的外观,然后给大家详细讲解用户界面的使用方法:

image001

可以看出,这个模块的主体,是一块很大的LCD显示屏。下面有几个按钮,可以用来操作。模块侧面有一个小开关(图中被挡住了)用来控制LCD背光,允许用户在夜间使用时把蓝色灯光关闭。

在Melzi启动过程中,LCD上会显示出版权信息。在下方,有一个紧急停止(STOP)小按键,这个按键的作用,是当3D打印机出现问题的时候,立即停止目前的动作,以便人工干预。旁边的圆柱形元件,是一个蜂鸣器。当用户在界面上操作的时候,会以蜂鸣声提示用户动作已经被响应。最右边的大旋转按钮,可以发出三个动作,分别是左旋、右旋和点击。虽然只有三个简单的动作,但配以合理的菜单交互,可以允许用户在这个界面上进行很多常用的操作。下面我们会主要讲解如何操作这个界面。

第一节,主界面与主菜单

image002

进入主界面之后,我们可以看到上图所示的内容。首先,左上角的格子里,是挤出头和热床的当前温度、目标温度。向下的箭头图标代表挤出头,长方形图标代表热床。第二个格子里面,是XYZ三个轴的当前位置。右上角的格子里面,是挤出头风扇的转速。这个转速以一个百分比的形式显示在垂直的矩形条上。

这其中,挤出头、热床以及风扇,如果在工作中,这里还会有对应的动画效果出现。大家使用时可以观察到。

下面的速度,是控制3D打印机XYZ轴运行速度的百分比。基础速度还是由PC端的控制软件决定,但我们可以从LCD界面上随时设置这个速度的比例,可以是一个小于100%的数值,代表降速,也可以是一个大于100%的数值,代表提速。

最下面一行,有两项信息。左侧是当前3D打印机的状态指示。可以看出,目前的状态,是“打印机就绪”。如果3D打印机发现问题,也会在这里进行提示。右侧的“缓存: 0”,代表着目前有多少条指令在等待执行。

在这个界面下,旋转输入按钮(这里左旋右旋都可以),可以得到第二个信息输出界面:

image003

这个界面的内容就很简单了,一共有两项统计信息。一项是打印时间,另一项是消耗耗材。这些信息是从上一次用户清除EEPROM开始计算的。

再次旋转输入按钮,就会回到主界面。在主界面上按下输入按钮,可以进入菜单系统。第一级菜单项超过了一屏最多能够显示的5行,因此当用户旋转输入按钮时,会滚动显示出更多的项目。如下图所示:

image004 image005

可见,菜单项一共有八项。包括“返回”、 “快速设置”、 “步进电机位置”、 “挤出机”、 “风扇速度”、 “SD卡”、 “调试”以及“配置”。

第一个菜单项非常简单,再次点击就会返回到主界面上。这就不用多说了。

当一个菜单项下面还有子菜单的时候,屏幕的最右侧会显示出一个向右的箭头。可以看到,在主菜单中,除了返回功能之外,所有的菜单项都有下一级的子菜单。也就是说每个菜单项都对应着一个功能组,而不是一个具体的功能。我们下面会逐一了解这些菜单项对应的内容和用法。

第二节,快速设置

进入快速设置菜单,可以看到其中是一组可以快速使用的功能或者设置项。

第一项,XYZ归零功能,非常简单实用。按下按钮之后,三个步进电机轴分别归零。这项就不用过多解释了。

image006

第二项是设置速度系数。这里的设置会直接反映在主界面上。缺省是100%速度,按下按钮之后,左侧的空心三角,会变化为实心三角,代表着当前处于调整数值的状态。在这个状态下,旋钮的左右旋转分别代表了减少或者增加数值。按下旋钮代表确定当前值,并且退出调整数值状态。下图所示,就是正在调整数值状态的显示效果:

image007

速度系数这个数值,代表着XYZ三个轴的步进电机,在当前基础上的运行速度的百分比。比如,当这里设置为90%时,XYZ三个轴都会以PC端发出指令的90%的速度实际运行。这个系数也可以设置为超过100%的数字,这时就意味着我们希望3D打印机提速运行。当我们希望临时增加或者降低3D打印机的运行速度的时候,这个功能就很有用了。

第三项是流率系数。这个系数与上面的速度系数类似,但是作用对象不同。这个参数作用于挤出头步进电机,可以让挤出头在原始设置的基础上,以一个更慢或者更快的百分比速度运行。当我们发现挤出头挤出量过多或者不足的时候,就可以临时调整这个值,以获得更好的打印效果。

image008

下面三项,第四项、第五项和第六项是一组功能。分别是使用预设数值预热PLA、ABS以及冷却。预设值在配置固件,刷入Melzi之前就确定了。打印虎使用的预设值就是我们正在销售的高质量耗材所需温度值,PLA设置在热床60℃,挤出头215℃;ABS设置在热床98℃,挤出头247℃。当然如果你需要使用不同的值,完全可以自己在配置固件的时候修改。这里对应的固件设置项是以下4项,可以在configuration.h中找到。

image009

 

最后的第七项,是关闭步进电机。这项很简单,应该被视为是一项节能选项。打印虎固件在超过一定时间没有操作的情况下,也会自动关闭步进电机。

第三节,步进电机位置

步进电机位置菜单,其中的内容比较多,但都很简单易用。首先一组,是关于XYZ轴归零的功能。这就不用细讲了,大家一试便知。

image010

第二组功能,是调整XYZ轴的位置。这组功能一共六项,分别用来调整X位置、Y位置以及Z位置,同时为了兼顾微调和快速调整的需要,每一个轴又分为快速和慢速两个版本。如下图所示:

image011

因为每屏最多显示5行,因此下面还有一行(Z位置)没有显示出来。进入Z位置(快)尝试一下这个功能:

image012

在这个界面上,旋钮向右旋转一次,会增加Z轴高度1mm。向左旋转就降低1mm。同时显示的还有低位限位开关和高位限位开关的状态。当然,对于Prusa i3设计来说,只有低位限位开关,高位限位开关就不存在了。

限位开关如果处于“开”的状态,代表当前被触发了。如果处于“关”的状态,则没有被触发。

步进电机位置的最后一项,是挤出机位置。

image013

点击进入挤出机位置菜单项,可以看到这样的一个界面:

image014

在这个界面上,用户可以使用旋转按钮的左、右旋转,控制挤出机步进电机,每旋转一格,代表挤出机向前或者向后运行1mm。按下旋转按钮退出这个功能。

需要特别注意的是,这个功能一定要在挤出头加热之后再使用。否则挤出头中的塑料处于固体状态,强行使挤出头步进电机转动,很容易造成挤出头的损坏。

第四节,挤出机

挤出机菜单里面是一组关于挤出机以及热床的选项。

image015

第一项是热床温度。这里可以直接设置热床的温度,而不是类似于快速设置中采用一个预设值的方式设置热床温度。可以通过旋转按钮,设置一个精确的温度值。0℃代表热床关闭。

第二项是挤出机温度。与上面的热床温度相似,这里可以直接设置挤出机的温度。

第三项是挤出机关闭。这项可以直接关闭挤出机加热。

第四项是挤出机位置。这个菜单项与步进电机位置中的挤出机位置菜单项完全一样,用于控制挤出机步进电机的前进、后退。注意不要在挤出机没有加热的情况下操作这个功能。

第五项是“当前位置设为原点”。点击确定后,上一个功能菜单(挤出机位置)中的当前位置数值会被重置为0。虎哥我认为,这个功能主要是用于挤出头校准的过程中。平时应该很少需要用到。

image016

第五节,风扇速度

这一组功能非常简单明了。首先,是直接控制风扇速度的菜单项。如果当前风扇速度不是0,下面还会出现“关闭风扇”这个选项。

image017

再下面,是一组预设值设置。可以快速调整风扇的速度,到达25%、50%、75%或者全速。

image018

当风扇处于运行状态的时候,主界面上的风扇图标会以一个动画效果表示风扇正在运行。

第六节,SD卡

如果3D打印机开机的时候,并未插入SD卡,那么进入SD菜单项时,界面将如下图所示:

image019

此时,可以插入SD卡,并点击“挂载SD卡”选项。挂载完成后,界面将产生一些变化。SD卡菜单项内部变为这样:

image020

在这里,就可以打印SD卡上的文件了。另外还附加了删除文件的功能(感觉上这功能有点鸡肋啊)。同时,顶级菜单上也同时附加了打印文件菜单项,方面用户操作。再有一个变化,就是在主界面上,增加了一个SD卡的显示区,提示用户已经有SD卡挂载了。

进入打印文件或者删除文件功能,就会显示出SD卡上的文件列表。使用旋转按钮,就可以轻松选择文件,点击文件后,就会对文件执行相应的操作了(打印,或者删除操作)。

image021

有几点需要注意一下。首先是建议大家把gcode文件,放在SD卡的根目录。这样选择起来比较容易。当然在子目录内的g-code文件也是可以用的。

另外,建议所有的文件名,使用英文命名。中文文件名是没办法正确显示的。特殊符号也尽量避免。

还有一点就是建议使用比较短的文件名。虽然界面提供了长文件名的滚动显示,但效果还不尽人意,不如干脆使用短名字更方便些。

打印开始之后,SD卡菜单还会发生进一步的变化:

image022

从图中可以看到,3D打印机工作时,菜单中出现了暂停打印和停止打印功能。这两个功能很简单,大家需要的时候直接使用就可以了。

第七节,调试

调试菜单下面的选项很简单,一共有四项,每项都是开或者关两种状态:

image023

回显指的是在串行口(COM口)上,PC端给3D打印机端发送的命令,是否会被3D打印机回显(Echo)回PC端。打开时,可以确认一条指令是否确实被3D打印机端所接收到了。

信息、错误两项指的是3D打印机是否把运行信息或是错误信息发送传回给PC端。

空运行,是指3D打印机不实际执行PC端所发送过来的指令,但内部数值状态会随之发生改变。当3D打印机发现严重错误时,比如启动时发现热敏电阻报告的值在可能范围之外,则自动进入空运行状态。

所有这些选项,都是用来对3D打印机进行调试时使用的。平时正常使用状态下,用到的机会不多。

最后需要提及的是,在Repetier-host PC端3D打印控制软件中,手动控制面板中有一个大家比较少用到的功能区,就是下图红色方框中的按钮,这四个按钮的作用,与我们这里讲解的调试菜单中的四个选项,是一一对应的,功能完全相同。大家完全可以选择自己方便的方式来使用这一组功能。

image024

第八节,配置

最后一个菜单项“配置”,是最复杂的一个菜单项。很多原来需要在刷入固件时确定的参数,现在都可以在这里进行配置工作了。这一方面方便了用户,但另一方面也造成了一定的麻烦,有些用户不清楚的数值,如果发生了改动,有可能会造成3D打印机工作不正常。因此,如果你需要修改这里面的参数设置,请尽量先搞明白它的意义。

image025

第一项是常规配置。这不是一个选项,而是一组选项。点击进入之后,是下一级菜单项。其中主要包含了波特率、步进电机节能和3D打印机节能3项。

image026

波特率是3D打印机固件和PC端控制软件比如Repetier-host之间进行连接的重要参数。这个参数最好保持在缺省的115200不要修改。

步进电机节能选项,点击进入之后,是这样的界面:

image027

左右旋转旋钮,可以调整步进电机在无动作多少秒之后被自动关闭。缺省是360秒,也就是6分钟的时间。

3D打印机节能与步进电机节能是类似的,但关闭硬件的范围更广,不仅包括了步进电机,而且也包括了热床、挤出头这些耗能大户。但毕竟这样会造成使用不便,因此缺省情况下的设置是0,也就是常开不关闭。

回到上一级,在配置菜单中,第二项是“加速度”。这一选项,点击进入之后,是这样的菜单选项:

image028

这里面又分为几组。第一组,是打印时(也就是挤出头正在挤出耗材时)的加速度设置(不要急,下面还有速度设置)。这里的单位都是mm/s^2(毫米每二次方秒)。

第二组,是移动时的加速度设置。同样,单位也都是mm/s^2(毫米每二次方秒)。

image029

第三组,是抖动(Jerk)设置。这个又分为XY轴方向的抖动,以及Z轴方向的抖动。所谓抖动,实际上是当3D打印机挤出头运行方向改变的时候,所产生的速度改变量。如果在方向改变的时候所产生的速度改变量过高,就会产生一个冲击,甚至会造成步进电机失效。因此这个值必须保持在一个可以接受的范围之内。如果还想知道关于Jerk更多的细节,可以参考Repetier的官方文档

再回到上一级。在配置菜单中,第三项是“速度”。这一项事实上比上面的加速度选项更加常用。其中又分成两组功能,一组是最大速度:

image030

这一组数字的单位,都是mm/s(毫米每秒)。

下面一组,是归零速度:

image031

因为涉及到触发限位开关,因此归零速度要慢一些。

所有这些速度值,都可以通过旋转按钮进行调整。调整方法与前面介绍的其他值的调整方法完全一致,就不再讲解了。

回到上一级。在配置菜单中,第四项是“挤出机”。挤出机相关的配置参数比较多。第一屏是这样的:

image032

步进数/MM,意思是步进电机前进多少步,对应了耗材前进1mm。关于步进数本身,是一个比较大的话题。我们曾经专门写过一篇文章,讲解如何计算步进数的问题。如果有需要,大家可以参考【打印虎原创】RepRap_Prusa_i3_3D打印机步进电机设置图解。当然,对于挤出头来说,步进数还有一定的校准空间,具体可以参考【打印虎原创】RepRap_Prusa_i3_3D打印机校准图解教程系列之二。我们这里就不详细介绍步进数的设置问题了。

下面,是挤出头步进电机的起始速度、最大速度以及加速度设置。这些实际上与XYZ轴步进电机是类似的,我也就不再重复了。

挤出机菜单的第二屏,是这样的:

image033

温度稳定时间,是指在多少秒之内,温度一直处在某一个值的范围内,就认为温度已经达到标准了。缺省值是1,代表1秒。

预热回抽长度,是预热阶段回抽耗材的毫米数。缺省值是0,也就是不回抽。

预热回抽温度,是达到这个温度之后进行回抽动作。如果不回抽的话,这里的值就无所谓了。我这里是缺省的150℃,大家如果需要启动这个功能的话,请把这里设置为一个合适的温度值。

下面一组选项,都是与温度控制相关的内容。一共有7项,包括了挤出机菜单第二屏的最后两项,以及第三屏的所有内容。先给出第三屏的内容:

image034

在这一组选项中,最重要的是温控模式的选择。温控模式一共有四种,通过旋转按钮可以在这四种选项之中进行切换。这四种选项,分别是“简单模式”、“PID模式”、“慢速简单”、“空载时间”。按照虎哥我的使用经验,实际上这些模式时间的差别不算太大,使用任何一种都基本上可以满足你的需求。如果你特别想了解这些温度控制模式之间的异同,可以参考【打印虎原创】Repetier-firmware深度配置图解教程这篇文章。这篇文章其中有一段,比较详细的解释了这四种温度控制模式。

下面的具体参数,主要是为了PID模式所使用。如果你选择了简单模式,那下面这些参数应该都是不起作用的。如果希望使用PID模式,那么请大家参考具体的PID控制资料,相关的参数应该都可以找到对应的解释了。

下面返回到配置菜单中,最后两项如下图所示:

image035

所有这里可以调整的参数,实际上都是3D打印机启动时,从EEPROM中读取出来的。如果你希望把最新的设置保存下来,那么选择保存至EEPROM就可以了。这时,LCD上会显示出配置已经保存的信息:

image036

如果你感觉自己把配置调整乱了,那么也很简单,只要选择从EEPROM载入,就可以舍弃当前的数值,重新从EEPROM中读取所有的数值,恢复到启动时的状态。

image037

第九节,结束语

好了,到此为止,我们已经详细讲解了所有关于LCD液晶显示屏模块的功能和用法。大家可以看到,有了这个模块的帮助,你的3D打印机将更容易使用。特别是,以后完全可以在没有PC机的情况下,使用3D打印机了。3D打印机方面,不论是方便程度,还是可靠性,都得到了有效的增强。如果你正在使用以Melzi为主板的3D打印机,而且对它感兴趣,可以直接点击这个链接进入打印虎淘宝小店选购

最后,祝大家玩机愉快,每天都有好心情。有任何相关的问题,请

联系打印虎 QQ 2404959972

 

【打印虎】零基础自制RepRap Prusa i3图解全攻略

第一节,介绍

3D打印技术,特别是面向普通用户的桌面级3D打印,在最近几年间得到了快速的发展。很多国内外DIY爱好者,都可以利用3D打印机,自己设计、改进机械零件,并把自己的设计快速、低成本地制造出来,这极大地释放了DIY爱好者的想象力。随着桌面级3D打印机技术的普及,对于DIY爱好者来说,拥有一台自己的3D打印机,已经逐渐从一个奢侈的梦想,变成了一项基础工具。作为一名DIY爱好者,如果你现在还没有拥有一台属于自己的3D打印机,实在是有些落伍了。我们必须立即着手,搞到一台。

虽然市面上已经可以买到多个品牌的3D打印机,但动辄上万的售价,还是会让很多DIY爱好者望而却步。实际上,如果你想购买的是一台FDM(熔融沉积制造)工艺的3D打印机,花费上万元进行购置,实在是有些不值得。因为到目前为止,所有的FDM工艺3D打印机,不管是开源设计,还是商业产品,都源自2005年开始RepRap.org组织的一个开源软件、硬件计划。这个计划,旨在制造一台能够“自复制”的3D打印机。

所谓“自复制”开源3D打印机,就是整台3D打印机,不需要昂贵复杂的定制零件,全部采用3D打印塑料零件加上工业标准零件的方法,允许并鼓励DIY用户自行搭建、复制并进一步改进。随着这个计划的深入,参与的人数逐年增多,市面上已经出现了各种各样的改进产品。下面的图表,来自RepRap.org,绘制了到2012年为止已知的各种RepRap派生3D打印机。如果看不清楚,可以访问http://reprap.org/wiki/RepRap_Family_Tree。可以看出,几乎所有最有名的3D打印机都列在了图中,包括了目前商业上最成功的Markerbot Replicator和Ultimaker等产品。

image002

因此,如果你的动手能力比较强,又感觉市面上的3D打印机过于昂贵,或是自己除了想使用3D打印机之外,还想做进一步改进,那么你完全可以根据RepRap的开源图纸,自行搭建一台完全属于你自己的3D打印机。也许你会怀疑,这样一台3D打印机是否真的能用?打印效果又如何呢?其实,上面已经提到,只要是FDM工艺的3D打印机,都具有类似的功能和精度。虽然自己搭建一台3D打印机只有1000~2000元的成本,但相对于上万元的产品,只要选择的配件达到了我们需要的性能,最终的效果是十分相似的。

RepRap.org的开源3D打印机,经过多年的发展,现在已经开发出几个主要版本。按照主分支来说,第一代产品称为Darwin(达尔文):

image001

第二代产品称为Mendel(孟德尔):

image003

从前两代的RepRap都选择遗传生物学科学家的命名方式可以看出,RepRap开源计划,从一开始就是奔着“自复制”这一目标前进的。这也为RepRap开源桌面级3D打印机博采众长,充分吸收各种良好的设计,并进而广泛应用打下了很好的基础。第三代产品,本来预想的主干,叫做Huxley(赫胥黎):

image004

很可惜,这代产品并没有得到非常广泛的认可,反而是Mendel的一个派生产品,Prusa Mendel,由于其更简单、稳定的设计,变成了影响力最大的第三代产品:

image005

因为Prusa Mendel名字太长,逐渐大家就把这款机器名字简化,只叫做Prusa了。因为不是原本设计的第三代产品,Prusa也不是一个著名生物学家的名字,而是这款机器的设计者(Josef Průša,应该是捷克人)的名字。这款机器设计出来之后,又进行了几次迭代,目前最新的版本是iteration 3(迭代3),通常的叫法,就是Prusa i3。

image006

前面啰嗦了一大堆,到这里终于出现了我们这篇教程的主角,Prusa i3。我们这篇教程的目的,就是假设你是一个零基础的DIY爱好者,希望组装自己的3D打印机,在这篇教程的指导下,把这个看似困难的任务,分解为可以操作的步骤,只要你跟着教程的指导做,就一定可以顺利完成。

在我们开始动手之前,先打个小广告。打印虎日前已经开始销售RepRap Prusa i3 3D打印机套件,如果你自己或周围的朋友对搭建3D打印机感兴趣,不妨选择打印虎。我们提供的元件,经过严格筛选,品质优良。3D打印机的关键部件都做了专门的优化,包括采用了优质步进电机、全铝挤出头、铝基板热床以及改进的梯形丝杆Z轴,让你的3D打印机达到更高的精度,并且经久耐用。不光硬件质量有保障,打印虎还特别提供免费的固件升级服务,从购买之日开始,打印虎承诺每季度一次,至少四次固件升级,给你的3D打印机提供无限助力。另外,打印虎还提供最好的3D打印机技术支持服务,与顾客做朋友,让你没有后顾之忧。如果想了解更多,请访问我们的产品页面http://www.dayinhu.com/products

第二节,设计与改进

从上一节的介绍中,大家已经可以看出,作为开源3D打印机,从项目最初的Darwin开始,相关的派生设计是非常多的,形成了一个大的派系。发展到Prusa i3之后,这个趋势继续延续了下去,在Prusa i3这个设计下面,同样有着大量的派生设计和细节改进。

Prusa i3的基础设计,大量使用了标准零件。标准零件既便宜,又有着高可靠性,是搭建桌面级3D打印机的不二之选。除了标准件之外,主要使用了两种定制零件,激光切割板材和3D打印件。实际上,根据我的经验,只要琢磨透了这两种定制零件,就算是把3D打印机的设计搞清楚了。

激光切割板材,作为Prusa i3的骨架,起到了支撑整个3D打印机的作用。在使用的材料方面,主流设计通常会采用木板、铝合金板或者亚克力板。经过大家的反复试验对比,最终发现还是亚克力板切割既经济,又精确,还足够结实,因此目前以亚克力板作为主要支撑材料的设计最多。

在选定了材料之后,我们对比了很多种不同的设计,最终选定了Prusa i3 Improved for laser cut(为激光切割准备的Prusa i3改进型)作为基础。这种设计,不仅包括了最基础的门型框架和X形热床支撑板,还包括了大小三角支撑板。这些改进设计,可以极大的方便3D打印机整机安装和使用。

打印虎不仅采用了这个基础设计,还在它上面做出了进一步的改进。这些改进包括了

(1) 这个设计的Y轴运动空间不够大,因此需要增加三角支撑板宽度;

(2) Y轴的步进电机端,我希望使用一个亚克力板部件,代替目前的打印件;

(3) 我希望将Z轴传动部分改为运动更流畅的M8梯形丝杆,而梯形丝杆螺母需要比较大的安装空间,因此需要增大步进电机主轴和光杆之间的距离;

(4) 现在的热床支撑板使用3D打印件与直线轴承连接,我希望改为更简单的直接连接直线轴承方式;

(5) 现有设计,所有亚克力板之间的连接处都使用了四方螺母,我希望修改设计,使其可以适用于更常见的六边形螺母;

这些改进是如何实现的,这里就不详细介绍了,有兴趣的朋友,可以参考【打印虎】用QCAD修改RepRap Prusa i3 3D打印机框架设计图解这篇文章。里面非常详细的讲解了如何对基础设计进一步改进。最终,我们得到了这样一套亚克力板设计图:

image007

使用亚克力板激光切割机,就可以把这套图纸变为一组亚克力板零件了。

除了使用激光切割亚克力板定制零件之外,Prusa i3 3D打印机还使用了一组3D打印零件。这组零件的制造材料和制造方法很简单,就用常见的ABS耗材进行3D打印就可以了,关键问题还在于设计上。

上面提到的Prusa i3 Improved for laser cut(为激光切割准备的Prusa i3改进型)设计文件中,也有一组STL文件。我们使用这组STL文件,就可以直接打印输出所需的3D打印件。但是,STL文件很不便于修改,这使我无法在这个基础上再进行改进。实际上,在Prusa i3 Improved for laser cut文件包中,还有一个.zip文件,解压之后,就可以得到一个.STEP文件。经过我的研究,这个文件,是SolidWorks的设计文件,可以用SolidWorks软件打开,并进一步进行编辑修改。但是,SolidWorks非常复杂,学习周期很长,而且是收费软件,想用起来也不那么容易。难道最初的Prusa i3也是这样设计的吗?

再观察Prusa i3原始作者Josef Prusa在github上提供的vanilla版本Prusa i3文件包,会发现其实所有的3D打印件有另外一种建模的方式。这就是利用OpenSCAD建模软件,通过一组脚本语句,计算出一个3D打印件的空间构成,并输出相应的STL文件。这种方式,不同于AutoCAD或者SolidWorks所使用的可视化工程图纸编辑方式,确实更加简陋一些。但考虑到OpenSCAD是开源免费的软件,这个优势又是商业软件所不能相比的了。

我们使用OpenSCAD,也对Prusa i3的设计做出了一点修改。这些修改主要包括了:

(1) Z轴丝杆的安装位,由原来的M5丝杆,改进为梯形丝杆。这个改进增加了Z轴的稳定性,同时安装位要比原来大了不少。

(2) X轴步进电机安装位,从原来的三个螺丝位的不封闭圈,改为了四个螺丝位的封闭圈。同时,为了让顶部很长的悬空部分能够顺利打印,增加了两个支撑板。

(3) 给X轴光轴增加了压力释放缝。更加便于X轴光轴的安装。

同样,篇幅所限,我们这里也不介绍这些修改是如何实现的。如果对此感兴趣,大家可以参考【打印虎】用OpenSCAD修改RepRap Prusa i3 3D打印机打印件设计图解这篇文章。最终,我们得到了一组改进的3D打印STL文件。下图展示了其中最复杂的X轴步进电机端3D打印件在OpenSCAD中的设计状态:

image008

这样,我们通过QCAD改进了亚克力板的设计,通过OpenSCAD改进了3D打印件的设计。整个Prusa i3中,除了全铝挤出头,已经没有什么我们不能修改的部分了,虎哥对这个现状表示很满意。我的整套设计,都可以从刚才提到的两篇教程内附带的链接下载。至于挤出头部分,我想未来再进行深入的研究和改进,暂时先不深究,而是采用已有的成熟产品。完成了设计,下面我们就开始3D打印机的搭建工作。

第三节,搭建框架和机械部件

从这一节开始,我们就正式进入Prusa i3 3D打印机的搭建工作。我们把搭建过程分解成很多个步骤。每一步的开头,都有一个清单,列出了所需的部件名称、数量、质量要求以及所需的安装工具。如果你认真按照这个清单来准备,完全是可以自己搞定一台完整的3D打印机的。当然,完全自己准备这些材料还是很麻烦的,作为小买家也比较难于控制零部件质量。如果你想试着装一台,又怕麻烦,可以到打印虎的网站上购买我们准备好的套件。下面我们正式开始。

第一步,我们先搭建3D打印机的亚克力框架部分。这一步的搭建过程中,我们需要的材料包括:

部件 数量 备注
亚克力激光切割部件 9 厚度6mm,使用13块中的9块。Y轴步进电机支架、热床支架以及两块Z轴顶板后面再使用
M3*16螺丝、垫片、螺母 16

这一步中对所使用部件最关键的质量要求,是亚克力板一定要切割整齐,不能有1毫米的误差。一旦出现误差,后面的安装很难继续,即使勉强安装上,3D打印机也会因为内部受力变形,引发各种问题。工具方面,这一步很简单,只需要合适的十字螺丝刀一把就可以了。上一节中,我们已经谈到了亚克力板的设计修改和激光切割。按照打印虎的设计,切割好的亚克力板一共13块,如下图所示:

pic_mod_1

在这一步中,我们会使用这13块亚克力部件中的9块。剩下4块在后面的步骤中再安装。

使用螺丝刀以及M3*16螺丝、垫片和螺母,组装起这9块亚克力板,如下图所示:

image010

这时,9块亚克力板组成的框架,已经可以站起来了。由于我们使用的亚克力板是透明的,所以图中部件的前后顺序可能会看不太清楚。以图中的红色箭头所指为Y轴正方向,大三角支撑板位于Y轴负方向一侧,而用于固定Z轴步进电机的小支撑板,位于Y轴的正方向一侧。注意不要把它们安装到同一侧。另外,要特别注意的是左上角红色圆圈处的线缆穿孔。这个孔一定要在图示的位置,如果安装反了,最好立刻纠正,否则越拖到后面越麻烦。其他零件都是对称的,没有方向的问题。

第二步,搭建框架Y轴部分。这一步的搭建过程中,我们需要的材料包括:

部件 数量 备注
3D打印件 5 这一步使用Y轴四角、Y轴惰轮端以及Y轴同步带固定件共5件
亚克力板激光切割件 2 这一步使用Y轴步进电机支架和热床支架
光杆 2 465mm*2
丝杆 6 495mm*2, 275mm*1, 210mm*3
LM8UU直线轴承 3
MF105ZZ轴承 2
M8螺母、垫片 38
M5*20螺丝、螺母 1
M3*16螺丝、垫片、锁紧螺母 2
小扎带 7

这一步对零件的质量要求,是光杆、丝杆一定要足够直。特别是光杆,由于直线轴承在光杆上运行,如果光杆不够直,必然会造成直线轴承运动阻力过大,失灵的情况。同时,轴承也不能是劣质产品,需要有良好的润滑和一定的耐久度。工具方面,除了需要螺丝刀之外,这一步还需要两把用于M8螺母的扳手(通常是14号)。

Prusa i3 3D打印机的Y轴部分,是由光杆、丝杆以及四角的打印件组成的。为了保证3D打印范围的Y轴尺寸足够大,我们在这里采用了465mm的直线光轴和495mm的丝杆。这一步中,我们在丝杆上准备好M8螺丝和垫片(共8对),在光杆上准备好LM8UU直线轴承。如下图所示:

image011

从上面的图片中,可能看的不是很清晰,丝杆上螺母和垫圈的排列顺序,从左到右是(1)垫片(2)螺母(3)螺母(4)垫片(5)垫片(6)螺母(7)螺母(8)垫片。两根丝杆是同样的。

这样准备好丝杆和光杆之后,把这两对金属杆,安装到四角打印件支撑上,打印件外侧再加上M8螺丝和垫片(共4对),用扳手把两端固定用的螺母拧紧,并用小扎带固定好:

image012

准备Y轴的惰轮,需要Y轴惰轮端打印件,以及一对M5*20螺丝、螺母,再加两只MF105ZZ轴承。MF105ZZ是带法兰边的轴承,要把带边的两端向外侧,不带边的两端向内侧安装,形成一个限制同步带运动的沟槽:

image013

接下来,找到剩下的4根丝杆,长度分别是1根275mm和3根210mm,加上用于安装Y轴步进马达的亚克力板,以及用于安装Y轴同步带轴承的打印件:

image014

可以看到,较长的275mm丝杆,以及亚克力板,都位于3D打印机的Y轴负方向一侧。而用于安装Y轴同步带轴承的打印件,位于3D打印机的Y轴正方向一侧。这时,我们就可以用M8螺母和垫片将它们固定起来:

image015

这次的螺母,先不要用扳手拧紧,用手拧上就可以了。等一下和亚克力板框架安装到一起,调整好之后,再拧紧。在Y轴后侧比较长的那根丝杆上再加4对M8螺丝、螺母之后,亚克力板框架和Y轴框架就能够安装到一起了:

image016

先把亚克力板和Y轴框架摆成图中的状态。这时要注意图中四个红圈内的亚克力板与Y轴框架结合部的状态。如果没有问题,就把Y轴框架沿箭头所指的方向推入。调整各个部位的螺丝状态之后,就可以使用扳手拧紧了。拧紧螺母之后的3D打印机框架如图所示:

image017

接下来,我们就可以安装热床支撑了。这一步非常简单,首先使用M3*16螺丝、垫片以及锁紧螺母(带尼龙防滑圈的螺母),将Y轴同步带固定装置打印件固定在热床支撑亚克力板上。注意这里要使用锁紧螺母,以防在热床运动中螺丝逐渐松脱。下图是Y轴热床支架翻过来的样子:

image018

之后,只要用三根小扎带把亚克力板热床支架固定住就可以了:

image019

这时,Y轴热床支架应该已经可以在Y轴上自由滑动了。如果上图看不清楚小扎带是如何绑的,可以看这张高清大图:

image020

第三步,搭建框架X轴部分。这一步的搭建过程中,我们需要的材料包括:

部件 数量 备注
3D打印件 3 这一步使用X轴步进电机端、X轴惰轮端以及X轴移动平台三个3D打印件
光杆 2 385mm
全铝挤出头的铝制框架 1 全铝挤出头的一部分
梯形丝杆配套螺母 2 梯形丝杆步进电机的一部分
LM8UU直线轴承 3
MF105ZZ轴承 2
M5*20螺丝、螺母 1
M3*10螺丝、四方螺母 4
M3*16螺丝、螺母 8
小扎带 6

这部分对零部件的要求,同样是光杆要直。这里的光杆,直接影响到未来3D打印机X轴的运转是否顺畅。工具方面,这一步只需要螺丝刀就可以了。

在Prusa i3 3D打印机的设计中,X轴连接着挤出头,并在Z轴的支撑下移动,因此是一个比较复杂的部分。我们先把X轴与挤出头的连接部安装起来。首先,我们使用6条小扎带将3个LM8UU直线轴承固定在X轴与挤出头连接用的3D打印件上。如果先进行后面的步骤,再返回头做这步,有可能会遇到麻烦:

image021

这里要注意一点,使用6条小扎带安装3个直线轴承的时候,一定要完全按照打印件预设的穿孔走线,否则会给后期的安装带来困难。这步之后,我们使用4个M3*10螺丝以及对应的四方螺母,连接这个部件与全铝挤出头的铝制框架:

image022

这个部件完成之后,我们就可以组装整个X轴了。类似Y轴的做法,我们先准备好X轴的惰轮。这里需要X轴惰轮端打印件,以及一对M5*20螺丝、螺母,再加两只MF105ZZ轴承:

image023

因为我们希望使用梯形丝杆作为Z轴,X轴的步进电机端以及惰轮端两个打印件,都需要先安装好与梯形丝杆配套的螺母。这里我们需要M3*16螺丝、螺母8对。工作在Z轴的四个LM8UU直线轴承,也在这时候塞入X轴步进电机端以及惰轮端两个打印件中:

pic_mod_2

这一步中需要注意的是,梯形丝杆配套的铜质螺母是与梯形丝杆配套的零件,通常发货时会套在梯形丝杆上,而不是和其他螺丝螺母放在一起。安装这个铜质螺母时,因为是和打印件固定在一起,通常要多费些力气,但一定要注意安装到位。一旦没有安装到位,X轴和Z轴连接部很可能会不够垂直,导致X轴整体无法顺利升降。

然后,使用两根385mm直线光轴,连接X轴步进电机端打印件、X轴惰轮端打印件以及X轴与挤出头连接用打印件。如图:

image025

因为缺少Z轴步进电机的支撑,X轴暂时还不能与主框架对接在一起。到此为止,3D打印机的框架部分已经完成。

检查一下目前还剩下的元件。亚克力板方面,应该还剩下两块Z轴的顶板。所有的打印件,除了用于限位开关的3个小卡子之外,应该都已经被使用了。同时,除了两根Z轴光杆之外,所有光杆、丝杆以及轴承,应该已经都被安装在正确的位置上,手边不应该有空闲的轴承了。如果你不幸发现跟我的情况不一样,应该停下来检查一遍,及早解决问题。

如果经过检查,确定到目前为止一切正常,下面我们开始步进电机以及电子系统的安装。

第三节,步进电机和电子系统

完成了框架和机械部件的搭建之后,我们得到了两个大的模块。一块是3D打印机的主体结构,另一块是3D打印机的X轴。下面,我们开始安装步进电机和电子系统。

第一步,Z轴步进电机的安装。这一步的搭建过程中,我们需要的材料包括:

部件 数量 备注
光杆 2 320mm
Z轴梯形丝杆步进电机 2 梯形丝杆长度300mm
亚克力板激光切割件 2 两块Z轴顶板
M3*16螺丝、垫片、螺母 4
M3*10螺丝、垫片 8

从这一节开始我们要使用步进电机。步进电机是整个3D打印机的动力来源,因此步进电机的质量,对于3D打印机的工作状态是很关键的。根据打印虎的测试表明,不同厂商的步进电机,质量差异很大,而且与售价关系不大。有些步进电机卖的不便宜,但质量却也很难让人满意。好的步进电机,工作噪音小,发热量小,运行平滑稳定,扭矩也足够大。对于梯形丝杆步进电机来说,梯形丝杆还要足够直。满足以上全部这些要求,才能算是好的步进电机。这么好的步进电机哪里去找?自然是到打印虎的网上商店啦,哈哈哈哈。工具方面,仍然非常简单,一把螺丝刀应该就够用了。另外,整个第三节中,有多个地方需要处理导线,而处理导线几乎一定要用剥线钳,关于剥线钳后面就不再重复了。

我们先把两只步进电机安装在Z轴底部的步进电机安装架上。这一步需要8个M3*10螺丝、垫片。安装步进电机的时候,要注意把步进电机引线从亚克力板预留的孔中穿过。如图:

image026

然后,将上一节已经制作好的X轴框架通过两个梯形丝杆螺母与梯形丝杆步进电机连接上。很明显,这里要先把X轴两个梯形螺母间距调整好,然后搭在Z轴梯形丝杆顶部,用双手同步轻轻旋转步进电机的梯形丝杆,将X轴与Z轴连接好。

image027

这一步的最后,我们把Z轴光杆穿入,并把Z轴的顶部亚克力板安装上。这里需要4组M3*16的螺丝、垫片和螺母。安装的时候,要注意顺序,先插入光杆,再安装Z轴顶部的亚克力板。安装亚克力板,会帮我们最终固定两个Z轴步进电机的距离,使它们的梯形丝杆保持垂直状态。

image028

完成Z轴的安装之后,可以再次尝试用双手同步旋转Z轴,使X轴框架沿Z轴方向上下移动,检查双手所需用力是否均匀,X轴框架移动是否平稳。

第二步,安装Y轴步进电机。这一步的搭建过程中,我们需要的材料包括:

部件 数量 备注
42步进电机 1 5mm轴,出轴长度22mm
同步轮 1 自带无头紧固螺丝
同步带 1
同步带锁紧弹簧 1
M3*10螺丝、垫片 4 使用内六角头螺丝便于安装
小扎带 2

这一步的主要工具是内六角扳手、螺丝刀和尖嘴钳。内六角扳手用于安装同步轮。而没有尖嘴钳的帮助,同步带锁紧弹簧还是很难安装上的。

驱动Y轴的步进电机在安装之前,需要先套上同步轮,并用同步轮自带的黑色无头紧固螺丝固定。如图:

image029

然后,使用4个M3*10内六角螺丝、垫片固定。因为这里的操作空间比较小,我们特别使用了内六角螺丝,这种螺丝可以用小扳手拧紧。

image030

这里要特别注意Y轴步进电机的安装方向。如果看起来和我的照片不同,那么很可能是安装反了。虽然反向安装也可以通过固件设置的方法使其正常工作,但那毕竟是给自己找麻烦了,不如这里就把问题解决。

最后,用同步带连接步进电机、惰轮以及热床。同步带的接头,应该位于热床下面。如果有必要,还应该加上同步带锁紧弹簧。在锁紧之前,要注意Y轴同步带的三个支撑点,包括同步轮、惰轮以及热床支撑,需要在同一条直线上。两个方向的同步带之间不要直接摩擦。调整好之后,把两端的M8螺母拧紧,最终完成Y轴的传动部分。

image031

第三步,安装X轴步进电机。这一步的搭建过程中,我们需要的材料包括:

部件 数量 备注
42步进电机 1 5mm轴,出轴长度22mm
同步轮 1 自带无头紧固螺丝
同步带 1
同步带锁紧弹簧 1
M3*20螺丝 4
小扎带 2

X轴与Y轴非常相似。首先也是把步进电机套上同步轮,并且固定好。这与刚刚做的Y轴动作完全一样,就不给图片了。

下一步是把带同步轮的X轴步进电机安装到X轴上。这步需要用M3*20螺丝4个,安装好之后如图:

image032

这里需要注意的是,未来同步带将在打印件中运行。这样就要求同步轮上的齿,要和打印件的槽口大体对应上。如果偏差太多,运行起来就会引起不必要的摩擦。

与Y轴类似,用同步带连接步进电机、惰轮以及X轴与挤出头的连接部。同步带的接头,应该位于X轴与挤出头的连接部后面。如果有必要,也应该加上同步带锁紧弹簧。

image033

第四步,安装三轴限位开关。这一步的搭建过程中,我们需要的材料包括:

部件 数量 备注
3D打印件 3 三轴限位开关卡子
限位开关 3 型号为SS-5GL
M2*20螺丝、垫片、螺母 6
细红黑导线 若干
热缩管 若干

在这一步中,限位开关是否灵敏,关系到3D打印机的定位准确性。三个轴中,最关键的是Z轴的定位。Z轴是否能够准确定位,与最终打印质量的关系很大。建议使用欧姆龙的限位开关,别用杂牌子的。安装这些限位开关,主要需要使用螺丝刀。当然,在安装之前,可能需要用电子焊接设备(电烙铁、焊锡、助焊剂)连接上红黑细导线。

三个轴的限位开关安装并不复杂。如果你是从零开始的散件安装,需要在安装之前先给限位开关焊接上足够长的导线。导线有多种不同的接法,我建议接COM和NC两端,这样开关未触发时,是连通状态。三个轴的安装方法都是类似的,各需要限位开关打印件1个、限位开关1个、M2*20螺丝、垫片和螺母2组。安装完成之后,可以看到如下图所示的状态:

image034

第五步,安装热床。这一步的搭建过程中,我们需要的材料包括:

部件 数量 备注
热床 1 建议使用3mm铝基板热床
热敏电阻 1
热床支撑弹簧 4
M3*20螺丝、垫片、锁紧螺母 4
粗红黑导线 若干 建议使用1.5平方毫米线材
Kapton胶带 若干

常见的热床,分铝基板和PCB基板两种。铝基板更平整,导热更快更均匀,因此我们建议大家使用铝基板热床。如果用不够平整的PCB基板热床,一张附加的高硼硅玻璃几乎就是必须的了,而这样的话整体造价可能就更贵了,而且玻璃还比较易碎,使用维护都比较麻烦。因此还是铝基板热床更优一些。这步的安装,仍然需要焊接设备,以及螺丝刀。

热床在安装之前,需要先经过处理。处理包括了焊接电线、在上面粘贴kapton胶带,以及在反面粘贴热敏电阻。如果是常用的12V电源,要把红色线焊接到1号焊点,黑色导线同时焊接到2号和3号焊点。如果想做的更完美,还可以焊接上电阻和发光二极管。这样,热床通电的时候发光二极管会亮,对用户来说是一个提示。完成这些处理后的热床,如下图所示,引出四根线:

image035

安装并不复杂。只要在热床支架上,利用四组穿过弹簧的M3*20螺丝、垫片、锁紧螺母,将热床固定在热床支架上即可。方向要稍微注意一下,把引出的导线,指向Y轴的负方向就可以了。这里利用了弹簧,使热床既能稳定地支撑在热床支架上,有能有一定的向下压缩的空间。这样,即使挤出头校准不够好,也不会和热床硬碰硬,造成挤出头或热床的严重损坏。安装好热床的Prusa i3如图:

image036

第六步,安装挤出头。这一步的搭建过程中,我们需要的材料包括:

部件 数量 备注
全铝挤出头套件 1

挤出头是3D打印机的一个关键部件。这部分是否能够可靠运转,直接决定了3D打印机能否正常使用。当然,这部分也可以使用3D打印件完成,这可以方便我们对其做随时的设计修改。但一旦设计定型,我们还是希望使用更可靠的铝合金部件。因此,我在这里使用了一套全铝挤出头套件。这里主要还是用螺丝刀,以及几种不同型号的内六角扳手,没有复杂的工具要求。

在安装之前,我们要把挤出头套件拆开为几个部分,以便接下来的安装。这几个部分分别是挤出机部分、挤出头部分、一个M4螺丝、加热头和热敏电阻、挤出头风扇(需要M3*20螺丝两只)。如下图所示。

image037

首先,我们把挤出机部分安装好。在已经安装在X轴上的U型铝架的上下两侧,分别是挤出机和挤出头。把它们安装到一起。然后,再用M4螺丝固定。这里的每一个螺丝,都必须拧紧。因为一旦开始加热,原本很小的缝隙将变大,一来部件之间可能会变得很容易活动,二来如果内部有塑料流动的部件,还很可能会溢出液体的塑料。如下图,注意加热铝块的方向。如果方向错误,下面的加热头和热敏电阻会很难安装。

image038

接下来,安装加热头和热敏电阻。这两个部件,都是插在加热铝块中,使用其中的无头紧固螺丝固定。下图是安装好之后的样子:

image039

最后,把侧面的风扇固定好。注意风扇出风口和挤出头喷嘴之间的相对位置。这个风扇是专门给挤出头喷嘴处降温的。所有这些部件安装好之后,用小扎带把这一组线扎起来。

image040

第七步,安装电源,并把所有的电子部件连接到Melzi电路板。这一步的搭建过程中,我们需要的材料包括:

部件 数量 备注
12V 350W电源 1 带三芯电源线
Melzi电路板 1 带USB线
M4*12螺丝、垫片 4
粗红黑导线 若干 建议使用1.5平方毫米线材
各种颜色细导线 若干

电源和主板的重要性,我在这里就不用多讲了。Melzi是整个3D打印机的大脑。因此,这两个部件,也需要讲求质量,千万不要图便宜,用劣质产品。

在连接之前,需要先检查一下各个部件的引线长度是否足够。如果不够,这时需要用焊接的方式延长引线。不能确定的时候,可以先连到Melzi电路板,之后在整理电线的一步中,再根据情况适当增减。

首先,我们给电源连上线。把+12V红线连到+V,直流地线连到-V。220V交流电源线,把外皮剥开之后,棕色火线连接L,蓝色零线连接N,黄绿色地线连接地。如下图所示。你的开关电源的接线排列和我的不一定完全相同,要注意正确接线。

由于热床、加热挤出头电流较大,3D打印机的整体电流可能达到20A甚至30A,这里一定要使用比较粗的线。我使用了1.5平方毫米的线材。

image041

连好线之后,就可以把电源模块安装到3D打印机框架上了。使用4个M4*12螺丝、垫片,如图所示安装好。

image042

现在,所有的部件都准备好了,就差核心的主板了。把所有部件都按照顺序连接到主板上,整个工作就完成了。在打印虎搭建的Prusa i3中,我们选择了更为紧凑、专用的Melzi作为主板。在开始连线之前,我们有一项尽量要提前完成的操作,就是调整Melzi主板上的步进电机电流。虽然通常卖家在卖给我们Melzi主板的时候,已经把这个地方调整好了,但我们自己最好确认一下,免得安装好了之后发现问题再调,就麻烦的多了。具体的步进电机电流调整方法,可以参考【打印虎】RepRap 3D打印机步进电机电流调整图解,我们这里就不再重复了。

下面,我们拿着已经调整好步进电机电流的Melzi电路板,按照Melzi电路板从左至右的顺序连接每一条线。最左边是X, Y, Z, E四个步进电机接口X-MOTOR, Y-MOTOR, Z-MOTOR, E-MOTOR。所有的步进电机,要按照A+ A- B+ B-的顺序接线。如下图所示,可以看出,对于我的步进电机来说,是黄、蓝、绿、红的线序。

image043

这里需要特殊说明的,是Z轴步进电机。由于Z轴有两个步进电机,我们需要把它们串联起来使用。从Melzi主板出发,接线的顺序是:第一个接线柱接左侧步进电机A+,左侧步进电机A-接右侧步进电机A+,右侧步进电机A-接第二个接线柱;第三个接线柱接左侧步进电机B+,左侧步进电机B-接右侧步进电机B+,右侧步进电机B-接第四个接线柱。通过这样的连接方式,可以实现左右两个Z轴步进电机完全同步工作。需要说明的是,上面的左侧和右侧完全是为了描述方便,两个步进电机的连接是可交换的。可以参考下面的逻辑图:

pic_mod_3

下面POWER连接电源。从开关电源出来的粗线连接到这里。同时,把挤出机散热风扇电源线连接到这里。挤出机散热风扇不同于吹挤出头的风扇,是一个常开的风扇,不能通过程序调节,因此,就直接连接到12V电源上了。

image045

再下面的三个端口HOTBED, HOTEND, FAN,分别连接热床加热、挤出头加热和挤出头风扇。可以明显的看出,根据不同元件消耗功率的不同,采用了不同粗细的电线。

image046

接着,标记了XSTOP, YSTOP, ZSTOP的三个位置,分别连接三个轴的限位开关。可以看到,整个板子上所有红黑两线的接头,都是红线在左黑线在右。虽然限位开关实际上正接反接都可以,但我们还是保持了这个习惯。最后,只要把热床热敏电阻接入BTEMP,把挤出头热敏电阻接入ETEMP,就完成了。

image047

全部完成之后,我的3D打印机全貌。

image048

看起来连线是不是非常杂乱?没关系,收拾一下就会变好。不过,在收拾之前,也许你已经迫不及待尝试运行它了。如果想开始试运行,可以跳过本节下面的部分,直接开始下一节。如果你更有耐心,可以先跟我一起,把线整理好。

第八步,整理线缆,并最终把Melzi电路板安装到亚克力支架上。这一步的搭建过程中,我们需要的材料包括:

部件 数量 备注
M3*8双通尼龙柱 4
M3*8+6尼龙螺柱 4
M3*10螺丝、垫片 4
小扎带 若干
粗细缠线管 若干

首先把Melzi电路板用两个尼龙柱、两个尼龙螺柱和两套M3*10螺丝垫片固定在外侧。这不是Melzi电路板的最终位置,但在这个位置上操作空间比较大,比较适合我这样不太灵巧的人。从下图可以看出,我在做的过程中把很多线都压在了电路板下面,这也不是最终的状态,下面我们要逐一理顺这些电线。

image049

下面整理Y轴步进电机、Z轴远离Melzi电路板一边的步进电机以及电源的引线。Y轴的步进电机4根引线,要从下图下面箭头指向处用小扎带绑住;Z轴远离Melzi电路板一遍的步进电机,有2根引线要连到步进电机,加上2根12V电源线,再加上汇集到一起的Y轴步进电机的4根引线,一共8根线,要从下图上面箭头指向处用小扎带绑住。这里还可以用缠线管,把这些线绕起来,显得更加整齐。

当然,你应该已经发现,做这步之前,这8根线一定要从Melzi电路板上拆下,从我们设计的Prusa i3门型框架的上方通过之后,再重新连接到Melzi电路板上。

image050

搞定了远离Melzi电路板一侧的走线之后,下面我们处理挤出头。类似地,挤出头上所有的线,也都要汇集到Melzi电路板,把这些线都用缠线管绕在一起。这些线包括了挤出头步进电机4根线、加热头2根线、热敏电阻2根线、挤出头散热风扇2根线和喷嘴散热风扇2根线一共12根线。

把上面所有处理过的线汇集到一起之后,在红色箭头处用小扎带固定。要注意,这时候最好把挤出头移动到最远端,保证留出了足够长的挤出头电缆。在红色箭头指向的小扎带右边,有我们预留的导线通孔,把所有的线从这个孔导出。很明显,所有的线都要从Melzi电路板上拆下,才能完成这一步。

image051

除了上面两股电缆之外,还有热床相关的第三股电缆。同样用绕线管把这些电缆缠绕起来,这里包括了2根加热电线以及2根热敏电阻线。这股电缆就不需要任何固定了。

image052

别忘了,两侧Z轴步进电机之间,还有两根连接线。我们在下方框架,也预留了红色箭头指向处两个用于小扎带的孔,可以把这两根电线剪裁到合适的长度,并且用小扎带固定在框架上。如下图所示。

image053

上面我们把所有的导线,都从远离Melzi主板的一端开始整理,最后自然就是重新连接到Melzi主板了。逐一把导线修剪成合适的长度,重新固定在Melzi的接口上。最后,把Melzi从我们开始整理导线时临时固定在的靠外的两个螺丝孔位,移动到靠内的两个螺丝孔位。再把剩下的X轴步进电机以及三轴限位开关套上绕线管,就全部完成了。如下图所示。

image054

图中可以看到,我故意把挤出头和热床都放在了远端。这样,就可以确认即使他们运行到最远端的时候,也不会拉扯到导线,3D打印机可以完全正常运转。

到了这里,整个3D打印机已经完全准备好了。我们可以尝试用手提起3D打印机,并轻轻摇晃,检查是否还有尚未固定好的部件。如果还有,那可能就有问题了,应该回头查一下我们的教程,看看是否有哪一步没有做好。如果确认3D打印机没有任何问题了,下面我们将给3D打印机安装软件,并进行初步的测试,让它运转起来。

第四节,软件安装和测试

关于Prusa i3的软件安装,打印虎之前已经制作了比较详细的教程【打印虎】RepRap Prusa i3 3D打印机软件安装图解教程 第二版,正适合这里使用。其中的内容我们就不再重复,对此不熟悉的朋友,一步一步照着做就可以了。

在跟着图解教程做的过程中,我们首先加电,验证了电源是否正常工作,然后连接USB接口,验证了Melzi主板是否能连接。接下来,还给Melzi主板刷了卖家提供的固件,并且安装好Repetier-Host软件,一切就绪了。

唯一需要注意的,是最后一节手动控制。因为我们的3D打印机还没有进行最基础的测试,因此手动控制阶段一定要多加小心。如果你没有经验,就按照下面我们的具体介绍来做。

下面切换到手动控制面板。到此为止,所有动作都与Prusa i3 3D打印机软件安装图解教程中介绍的一致。这时我们能看到Repetier-Host界面如图所示:

image055

这里需要注意的是,左上角的“无任务”提示处,如果长时间显示的是“x条命令等待发送”,那通常说明通讯中出现了问题,请先检查一下固件和PC端设置的波特率是否一致。

第一步,测试三轴步进电机

到目前为止,我们还没有指挥3D打印机做任何动作。按下手动控制面板的X轴正方向1按钮,如下图所示。这时,步进电机应该发出声音,并向正方向(远离限位开关的方向)前进1毫米。当然,现在我们还不需要去精确测量是否前进了1mm,只要观察到步进电机的动作就算测试成功了。

image056

之所以只让步进电机前进1mm,是怕万一动作受到阻碍,损毁设备。如果这个动作没有问题,可以继续尝试前进、后退更多的距离。这时候要注意各种线缆,不要阻碍到挤出机的动作。

尝试了X轴的动作之后,可以继续检查Y轴和Z轴。与X轴同样,限位开关的方向是负向。如果步进电机的运行方向与期待的相反,只要把步进电机的四根引线按照逆序重新连接就可以了。

步进电机的运行,应该顺畅没有异响。如果有这方面的问题,应该立即停下来分析原因。继续操作很可能会损害设备。

在这一步,由于挤出头还没有加热,因此我们先不测试挤出机的步进电机。等到下面第五步再测试。

第二步,测试限位开关

当三个轴的步进电机都可以顺畅运行之后,我们可以按下Repetier-Host手动操作界面上的小房子按钮,对步进电机进行复位操作。

这个操作是一个长距离运行步进电机。应该注意限位开关是否能够被正确触发。如果限位开关在适当的时候没有被触发,应该立即用手或者工具触发限位开关。否则,在被卡死的状态下,步进电机一直运转,会发出很大的噪音,并且有损坏的可能。

如果你实在不知道如何去手动触发限位开关,也可以考虑采取拔下电源的暴力方法。

正常情况下,限位开关被正确触发,Repetier-Host也进入复位状态。与初始状态最大的不同,在于X轴的坐标不再是红字显示,而变成了黑字的绝对坐标状态。

image057

第三步,测试挤出头风扇

挤出头的风扇测试很简单,只要点击风扇一行最左边的图标,红色斜线就会消失,风扇启动。这时应该能够听到明显的风扇运转的声音。再点击,就回到最初的关闭状态。通过右侧的控制条,还可以控制风扇风力的大小。

image058

这里通常不会有大的问题。如果风扇的声音太大,可以检查是否已经固定好,没有风扇整体的震动。如果已经固定好,可能是因为风扇本身的质量不佳造成的。这种情况下,只能忍受或者更换风扇了。

第四步,测试热床加热和挤出头加热

在这一步,由于我们要加热挤出头,因此要首先保证挤出头没有和任何东西接触,包括热床。如果现在是归零的状态,你需要先把Z轴升起30mm,再进行这一步的测试。

测试本身很简单,只要操作Repetier-Host手动控制面板的“热床温度”和“挤出头1”两栏就可以了。

image059

操作方法与上面对风扇的操作类似,可以分别打开加热,并观察温度变化。

在加热之前我们首先要观察室温下热床和挤出头分别报告出来的温度值。从上图可以看到,他们分别报告了21.61℃和21.41℃,差别不大,而且确实是我室温的温度,那么就没有问题了。如果此时发现报告值有问题,那么就不要再进行下一步,请立刻检查问题的所在,以免下一步出现事故。在这里,热敏电阻断路或者短路,都是常见的问题原因。另外,固件设置也会影响到热敏电阻所报告的温度值。关于这方面的问题,请参考【打印虎】RepRap 3D打印机热敏电阻设置图解,其中有详细的讲解。

在确认了室温报告值是正确值之后,我们就可以开始加热了。加热过程中,特别需要注意的是,热床和挤出头都是高功率部件,因此要持续关注它们的加热状态。这里比较容易出现的问题,是热敏电阻贴合不紧。这样,虽然温度已经上升到指定温度,但3D打印机得到的报告值仍然不够,因此认为需要继续加热。特别是挤出头,一旦出现了冒烟的情况,要立即停止加热,否则容易引起火灾等重大事故!

image060

为了清晰地观察热床和挤出头的加热情况,我们可以打开Repetier-Host左侧的温度曲线面板。在测试阶段,最重要的是观察挤出头输出和热床输出这两行。可以看到绿色的部分代表了挤出头和热床的功率输出。一开始由于需要从室温快速到达指定温度,因此两者都是满负荷输出。一旦到达了指定温度,就开始断断续续的输出,以保持在这个温度附近。

如果发现这两个输出都一直不停,那很可能是出问题了,要关闭热床和挤出头的加热,分析问题并解决之后再继续。

第五步,挤出头入料测试

我们建议的测试材料,是相对更容易控制的PLA塑料。PLA塑料,一般在185°左右就可以正常工作了。因此,在入料测试之前,打印虎建议先调整挤出头温度。调整到合适的温度之后,把塑料丝的前端,用剪子剪成比较尖的形状,并尽量板直,以便于进入入料口。

然后一只手按住挤出机弹簧,另一只手送料。如下图。

image061

由于入料通道结构比较复杂,因此很可能需要多试几次,才能把塑料丝送入。送入之后的一个现象,就是挤出头出丝了。如果观察到出丝,就可以进行下面的测试了。

测试仍然使用Repetier-Host的手动控制面板完成。如下图。

image062

这个控制器,就是用来手动控制挤出机的。先按下向下的1,观察是否可以顺利挤出。如果有丝吐出,可以再尝试其他手动控制按钮。

这里需要注意的是,如果吐丝不均匀、流畅,很可能是挤出机内部弹簧力量不足,导致基础齿轮不能紧紧的握住入料。这时候,需要增强弹簧的力量。总的来说这是一个比较大的话题,无法在这里展开了,如果遇到这样的问题,您可以直接咨询打印虎QQ。未来我们也会就这个问题专门写一篇文章,详细讲解。

第五节,完成

到这里,所有的3D打印机安装、测试过程都已经完成了。在正式开始打印我们的3D作品之前,还需要进行热床找平。关于热床找平,又是一个相对比较大的话题。这方面请直接参考文章【打印虎】RepRap Prusa i3 3D打印机热床找平图解教程。如果你是首次接触3D打印机,可以先不要执着于把热床找平做到极致,我建议开始时只要做到大体找平就可以开始尝试打印了。在打印过程中如果发现问题,再解决问题就好。未来如果需要打印高难度的作品,再对3D打印机做更好的找平,可能是一个更合适的时机。

第一次打印时,与上面的建议一致,我们认为PLA是更合适的材料。不仅因为PLA更容易控制,而且还由于PLA更加环保。使用软件方面,同样建议使用Repetier-host 3D打印控制软件。在【打印虎】3D打印控制软件Repetier-Host使用基础图解教程 第二版文章中,我们比较详细的介绍了Repetier-host软件的使用方法,如果感觉这个软件比较难以上手,可以先参考这篇文章进行学习。另外,这篇文章的最后,打印示例中,我们使用了“站立的猫”3D模型,这个模型也是难度较低,特别适合初学者测试3D打印机使用的模型。在这里我也再次推荐一下。

image063

当第一件3D打印机作品在我们自己搭建的3D打印机上完成的时候,我们必须要一起庆祝一下!这是非常不容易的一个大工程。我们不仅完成了这个工程,还从此拥有了3D打印机这个特别有用的工具。未来的世界有多大,就看你的想象力了。

祝大家玩机愉快,每天都有好心情。有任何相关的问题,请

联系打印虎 QQ 2404959972

 

【打印虎】用QCAD修改RepRap Prusa i3 3D打印机框架设计图解

玩开源3D打印机的朋友,一般都听说过Prusa i3,这是RepRap.org从2005开始的开源软件、硬件3D打印机计划的最新一代设计。目前,Prusa i3已经是最广泛使用的桌面3D打印机机型。打印虎在之前的系列教程中,也都是以Prusa i3作为最主要的学习对象。如果你还没有自己的3D打印机,马上参考【打印虎】零基础自制RepRap Prusa i3图解全攻略,低成本搭建一台属于自己的3D打印机。

有些朋友,在搭建、使用了原始设计的Prusa i3之后,会发现有些设计不能满足自己需求,或者希望进一步提升特性。这时候,Prusa i3开放源代码的特征就变得非常有价值,我们可以对其进行有针对性的改进了。

那么我们该如何对我们手里的Prusa i3进行改进呢?从Prusa i3的整体设计上可以看出,这台3D打印机大量采用了标准部件。非标准的部件,主要包括两部分:一部分是亚克力板(或者铝板)框架;另一部分是3D打印的零件。对这两大部分,打印虎会分别写一篇教程,讲解如何在已有源代码(或者原始文件)的基础上,对其进行编辑、修改,进而满足自己的需求。本篇教程,我们专门讲解亚克力板的设计和改进。如果需要了解如何修改3D打印件,大家可以参考【打印虎】用OpenSCAD修改RepRap 3D打印机打印件设计图解

想对亚克力板框架进行编辑修改,首先你需要有一个2D CAD软件。这方面,虎哥我推荐大家采用QCAD,这个软件免费,开源而且使用起来比较简单,是一种不错的选择。当然,如果你已经有使用熟练的2D CAD软件,那么完全可以继续使用。这种情况下,你可以跳过讲解QCAD使用的地方,直接看我对Prusa i3框架进行了哪些修改就行啦。

QCAD的最新版本可以从这里下载(打印虎本地下载百度云下载)。下载完成之后,请大家按照软件的提示进行安装,下面的教程,我们假设大家已经安装好这个软件。需要注意的是,这篇文章并不是QCAD的使用教程,因此不会详细介绍每一个QCAD的功能。我对QCAD的介绍,都会围绕着我们的任务进行,尽量使用简单的QCAD操作命令,以完成对Prusa i3的改造作为主线。那么,我们的具体任务是什么呢?

在第一节开始之前,先给自己做个广告。打印虎日前已经开始销售RepRap Prusa i3 3D打印机套件,如果你自己或周围的朋友对搭建3D打印机感兴趣,不妨选择打印虎。我们提供的元件,经过严格筛选,品质优良。3D打印机的关键部件都做了专门的优化,包括采用了优质步进电机、全铝挤出头、铝基板热床以及改进的梯形丝杆Z轴,让你的3D打印机达到更高的精度,并且经久耐用。不光硬件质量有保障,打印虎还特别提供免费的固件升级服务,从购买之日开始,打印虎承诺每季度一次,至少四次固件升级,给你的3D打印机提供无限助力。另外,打印虎还提供最好的3D打印机技术支持服务,与顾客做朋友,让你没有后顾之忧。如果想了解更多,请访问我们的产品页面http://www.dayinhu.com/products

第一节,需求分析

在观察了几种派生的RepRap Prusa i3设计之后,我认为Prusa i3 improved for laser cut(为激光切割准备的Prusa i3改进型),是最适合的工作基础。这个文件,由作者上传到Thingiverse网站共享。大家可以从这里下载(打印虎本地下载百度云下载)。下载、解压Zip压缩包之后,我们可以看到一组文件。这组文件大部分都是3D模型,用于3D打印制造3D打印机零件用。只有两个DXF文件是用于激光切割亚克力板准备。再仔细观察这两个文件,就会发现它们只是切割零件的排布顺序不同而已。因此我们只使用其中一个文件,Prusa_i3_Frame_V2_Laser_Cut_Layout.DXF。我把这个文件复制了一份,改名为Prusa_i3_dayinhu.DXF,并用QCAD打开这个文件:

image001

从这张图上我们可以观察到,整个切割设计,包含了12个零件。由大到小来看,门型主框架1块;三角支撑板2块;热床支撑板1块;Z轴顶板2块;Z轴步进电机小支架共6块。

而虎哥我的需求,是这样的:

(1)     这个设计的Y轴运动空间不够大,因此需要增加三角支撑板宽度;

(2)     Y轴的步进电机端,我希望使用一个亚克力板部件,代替目前的打印件;

(3)     我希望将Z轴传动部分改为运动更流畅的M8梯形丝杆,而梯形丝杆螺母需要比较大的安装控件,因此需要增大步进电机主轴和光杆之间的距离;

(4)     现在的热床支撑板使用3D打印件与直线轴承连接,我希望改为更简单的直接连接直线轴承方式;

(5)     现有设计,所有亚克力板之间的连接处都使用了四方螺母,我希望修改设计,使其可以适用于更常见的六边形螺母;

当然,这些需求并不是我盯着这个亚克力板的设计图纸凭空想出来的。实际上,这些需求都是我在搭建、使用Prusa i3 3D打印机的过程中,由实际问题引发的。同时,为了解决这些需求,也需要反复试验。虽然我们下面主要讲的都是如何修改这个设计图,但你要知道,这些内容只是一项特定的技术,而并不是我的思考问题、解决问题的过程。想要学到更深入的内容,还需要多动手实践,并在实践中勤于思考。

第二节,放大螺母安装空间显示

好,废话少说,我们下面就开始干活了。因为考虑到大家对QCAD软件的使用并不熟悉,需要一个由浅入深的过程,因此我的修改从最简单的一项需求,也就是上面我列出的需求(5)开始做起。经过我的测量和试验,支持六边形螺母对图纸的改动很小,现有的螺母安装空间,宽度增大1mm就可以了。当然,图纸上螺母安装空间比较多,每一个都要进行同样的改动。下面我们正式开始做。

我们上来遇到的第一个问题,就是每个螺母的安装空间,在整个图面上是一个很小的局部。在初始状态下,我们很难有效的选择需要修改的线段,并观察到修改的结果。因此,我们需要先放大一个螺母的安装空间显示,然后再进行具体的修改操作。

让我们以整个图面的最左上角的位置为例,进行操作。把鼠标移动到图面的左上角位置,然后将鼠标滚轮向上推。这时,你应该能够看到,整个工作空间以鼠标位置为中心,进行了放大操作。完成结果如下图所示:

image002

可以看到,整个图面的左上角清晰的展示了出来。这时,我们再进行下面的操作,就方便的多了。如果你的显示效果与我这里不同,请向反方向推动鼠标滚轮,以实现缩小操作,然后移动鼠标位置,再次尝试放大。在进行下一步操作之前,请多试几次此操作,以达到比较熟练的程度。

好了,这里出现了一个新的概念,“视口(Viewport)”。首先需要大家理解的,是刚才我们的所有操作,虽然使图纸在屏幕上产生了大小变化,但是,图纸所表达的内容并没有任何的改变。这就像我们使用不同比例尺的地图,虽然看起来大小不同,但地图表达的都是完全一样的意思。另一方面,虽然我们图纸的大小可以任意的缩放(比画在纸上方便多了),但显示器的大小的固定的。当我们把图纸放大之后,虽然图纸上的细节非常清晰,但我们就不能看到全貌了。这样,我们工作用的显示空间,就叫做“视口”,在“视口”之外,还有很多暂时我们看不到的图纸部分。

如果你在操作过程中,出现了失误,无法再调整回最初的状态,也不用着急。在键盘上键入Z, A两个字母,或是选择菜单的View – Auto Zoom,图面就恢复到最初的状态了。

搞明白缩放操作之后,我们再介绍一下滚动条。在视口的右侧和下侧,分别是垂直滚动条和水平滚动条。用鼠标拖放这两个滚动条,可以在保持现有显示比例的情况下,查看模型的不同部分。你可以试试看。

当然,滚动条只是移动视口的一种方法。在编辑过程中,另一种非常方便的方法,是按下键盘Ctrl键+鼠标左键的同时,拖动鼠标。这时,视口会随着鼠标的移动而移动。虽然最初看上去这个方法比使用滚动条麻烦,但真正使用起来就会发现,这个方法其实更容易和其他操作配合起来。虎哥非常建议大家一定要掌握这个方法。

缩放视口和移动视口这两个操作,在QCAD中是非常基础的操作。对图纸的编辑工作中,我们会极其频繁的使用这个功能。以至于我在后面不能再详细的描述这两个动作,只能说“请大家把视口移动到某位置处”。因此,需要大家对这一组操作非常熟练。如果你感觉还不太熟,可以在这里再练习一下。下面我们要继续前进了。

第三节,编辑一条线段

利用刚才我们展示的放大视口功能,继续放大上一小节的视口内容,直到我们得到一个大大的螺丝安装孔。用鼠标单击这个孔螺母安装位左侧的线段,线段变为暗红色,并带有蓝色的控制点,代表它已经被选定。如下图所示:

image003

这个时候,我们在之前一直忽略的,在QCAD主窗口之外的属性编辑窗口(Property Editor)里面发生了变化。如下图所示:

image004

如果你找不到这个窗口,很可能是在此之前已经被关闭了。可以通过菜单View – Property Editor将它重新打开。

虽然CAD图纸也是一张图,但和Photoshop这样的工具最大的区别在于,CAD图纸需要精确的标注和修改。因此,属性编辑窗口,就是未来我们经常使用的一个工作区了。

我们这一步的目标,是把这根线的长度增加1mm。从现在的大约2mm,增加到大约3mm。我们先看看直接在属性编辑窗口内修改长度会如何。

image005

这时,左侧主窗口的内容变成了这样:

image006

看起来和我的希望有点差别。我还是希望这条线段上下分别增加0.5mm。对称修改,可能引起的问题也会少些。那么我再次修改,这次先修改启动点的Y轴坐标,再修改长度:

image007

这次看起来可以了:

image008

好了,现在你已经学会了最基础的调整线段两端坐标的方法了。理论上,所有对线段的修改都可以用这样的方法完成。对其他元素,比如圆型的修改,也可以通过类似的方法,修改圆心坐标和半径搞定。但如果所有的操作都这样做,未免过于麻烦。QCAD还提供了很多方便快捷的编辑方法。现在,我们来调整上下两根小线段。

第四节,调整一个螺母安装空间

这两根线段,调整前后长度不会发生变化。因此,我们可以使用移动命令完成。先选定上面的小线段,在键盘上键入M, V两个字母,或是选择菜单的Modify – Move, Copy,进入移动模式。进入移动模式时,菜单栏最左侧,会出现这样的提示:

image009

出现这个图标,就代表我们已经在移动模式中了。把鼠标移动到横线竖线交叉点处,屏幕上会出现Intersection字样,代表QCAD知道,现在我们想选定的,就是这个交叉点。单击鼠标,选定这个点。这是我们进入移动模式之后第一次单击鼠标。

image010

再把鼠标移动到竖线的端点处。QCAD提示End字样,代表它知道我们想选定的,就是这个端点。再次单击鼠标,选定这个点。

image011

这是我们第二次在移动模式下点击鼠标。点击鼠标的时刻,QCAD会弹出一个对话框,如下:

image012

这里是让用户选择如何处理原始位置处的线段。删除原始线段,代表一个移动操作。保持原始线段,就是一个复制操作。我们当然选择删除。直接按下确定按钮。

image013

这样,这条水平线段也完成了编辑工作,移动到了目标位置。

回顾一下,我们在整个移动过程中,点击了两次鼠标。第一次,指定一个原点,第二次,指定一个目标点。实际上,这两个点构成了一个数学上的向量。被移动的对象(在这里是一条线段),就以这个向量的方向进行平移。扩展一点,这个移动向量的指定,不一定非要在原始对象上。可以以完全不相关的另一处对象上的点为基础来指定。这个功能很有趣,如果使用得当会非常方便,大家可以试试。这里就不给例子了。

使用刚才给出的两种方法,直接修改属性编辑器,或者对线段进行移动,完成剩余的所有线段的调整。完成之后如图所示:

image014

这样,我们就完成了一个螺母安装空间的调整。

第五节,调整所有的螺母安装空间

完成了亚克力主框架左上角的螺母安装空间修改之后,我们下一个目标是亚克力主框架右上角的那个。这个螺丝、螺母安装空间,方向和第一个一致,因此我们完全可以用类似刚才的移动功能完成。唯一的不同,是我们这里希望用复制的方式。

首先,把视口移动到主框架右上角。使用从左上角到右下角拖拽的方式,同时选定多条线段。这个动作可以参考下图的绿色方框。这里要注意的是,QCAD选定区域的时候,从左到右画框和从右到左画框的行为是不一致的。具体有什么不同,大家可以多试几次,自己得出结论。

image015

拖拽动作完成之后,会变成下图的样子。仍然是暗红色表示选定的线段,蓝色表示控制点。

image016

因为我们的目的,是把刚才那个已经编辑好的对象,复制到这个位置。因此右上角原有的对象就可以删除了。按下键盘上的Delete键,删除所有选定的对象。如下图:

image017

好了,这时候右上角的位置变成了一个缺口。等待把左上角的内容复制过来。把视口移动回主框架的左上角,用刚才的方法选定所有的相关线段,并再次执行移动命令(键入M, V两键或使用菜单完成)。移动命令中,第一个需要输入的点,使用这个螺丝、螺母空间的左上角的点。如图:

image018

移动命令需要输入两个点。这里,我们需要把视口移动嵌入在对象移动命令之中,先把视口移动回主框架的右上角。然后再点下对象移动命令的第二个点。如下图,这个点要点在缺口的左侧点上,对应于第一个点的位置。

image019

这时会再次出现选项对话框。这次与上次不同,要选择保留原始对象(Keep original)。按下确定按钮就可以了。

image020

这样,主框架右上角的螺丝、螺母安装空间的修改就完成了。

image021

有了前两个修改经验,后面的就非常简单了。只是有些地方,这个安装空间的方向不同。这种情况如何处理呢?比如说,整个图面最左下角的位置处,三角支撑板有一个向下开口的螺丝、螺母安装空间。对于这个问题,我们首先使用刚才的方法将一个已经改好的对象,复制到附近的一个空白处。如下图:

image022

图中空白处的对象,是已经修改好的。我们先用鼠标拖拽的方式,选定这个对象。然后,我们使用键盘命令R, O,或者菜单Modify – Rotate,对其进行旋转操作。旋转操作首先需要输入旋转中心。我们用鼠标单击这个对象右上角开口处的点,以这个点作为中心旋转。鼠标单击完成后,会出现对话框,询问旋转角度,以及是否保留原始对象。如下图:

image023

我们选择删除原始对象,并旋转180度,点确定按钮完成。这时,我们就得到了下图这样的状态:

image024

后面的事情都简单了,使用我们之前的方法,进行选定、删除、移动、复制等等一系列手段,就可以把所有的螺丝、螺母安装位置都修改为合适的形状了。

最后,提示一下,整张图面上,一共有20个类似的安装空间。千万不要漏掉了。

第六节,修改热床支撑板的连接方式

从第二节到第五节,我们详细描述了对螺母安装空间的修改方法。大家如果跟着做下来,也会对QCAD有一个初步的了解。与其他CAD软件类似,QCAD这个软件功能非常多,逐一介绍不是我们这篇教程的主要目的。因此后面几项修改,我们只介绍修改的原因和参数,具体的操作就不再详细列出了。我想如果有这样需要的朋友,一定可以参考QCAD的帮助文档学会的。

在这一节中,我们希望解决最初的需求(4),修改热床支撑板的连接方式。经过简单观察,就可以发现,在我们当前的设计中热床支撑板和Y轴之间,是用3D打印件加螺丝的方式连接的。如下图所示。

image025

实际上,这个位置还有另一种更简单的连接方式,在支撑板上留一个圆角方形口,用小扎带连接支撑板和轴承。

image026

我个人更喜欢第二种连接方式,而这种方式的设计图,其实已经存在于原始Prusa i3的文件中。我只需要将其复制到现在这张图中,就可以了。

首先找到原始设计的文件。https://github.com/josefprusa/Prusa3/。也可以从这里下载(打印虎本地下载百度云下载)。用QCAD打开old_single_plate\src\frame\6mm\Prusa3ALU-FREZOVANY-v4.dxf文件,可以看到,我希望要的支撑板样式,已经在其中了。下面一个问题,就是如何在两个文件之间进行复制操作。

首先,在我们正在编辑的文件中,删除原有的热床支撑板:

image027

然后,我们打开Prusa3ALU-FREZOVANY-v4.dxf文件。两个文件都打开之后,我们会注意到主窗口中的标签页。目前活跃的标签页是Prusa3ALU-FREZOVANY-v4.dxf。等一下,我还会切换回第一个标签页Prusa_i3_dayinhu.DXF。

image028

这个文件中的内容是分层(Layer)的,而且很多层都是锁定的。锁定状态,可以防止用户无意间修改到不应该修改的内容,但也会使我们需要的复制操作不能进行。首先,我们需要解除这些层的锁定。如下图,在主窗口右侧的层列表(Layer List)窗口中,点击这些锁图标。图标变为灰色时,代表目前没有锁定。

image029

这时,我们就可以在主窗口内,选定希望复制的部分。

image030

按下Ctrl-C键,进行对象复制操作。这个操作前面我们没有介绍过,但与对象的移动操作非常类似。一个明显的不同,在于这个操作不需要指定第一个点,第一个点自动被设置在对象的中心点上。下面按下Ctrl-V进行粘贴时,我们只需要指定第二个点,也就是目标对象的中心点,就可以了。

切换到目标模型的工作窗口,按下Ctrl-V。在合适的位置按下鼠标左键,完成复制操作。因为QCAD可以连续复制多个对象,这时还需要按下ESC键,退出粘贴状态。

下图是完成之后的样子。请大家注意热床支撑板与轴承连接的部分,已经变成一个圆角矩形开口了。

image031

在实际亚克力板切割、组装之后,我发现了一个问题:由于热床支架与Y轴框架的连接方式的改变,热床之间的高度稍稍变低了一点,进而导致固定热床和热床支架的螺丝,在Y轴上运动时,会撞到主框架板上。解决这个问题也很容易,只要把主框架上会碰到的部分变矮一点就可以了。下图展示了主框架左下角修改后的结果,右下角也要同样修改才行。

image032

第七节,修改Z轴传动部分定位孔

在虎哥我对Prusa i3 3D打印机的改造中,参考了一些已有的Prusa i3设计。其中,对Z轴的修改,是我认为比较关键的一项。Prusa i3的原始设计中,Z轴使用5mm丝杆,驱动固定在X轴两端的M5螺母。很显然,5mm丝杆以及M5螺母,原本并不是用于传动设计,在这里如此应用,还是非常勉强的。下图所示,就是Prusa i3的原始设计,红色箭头指向了M5螺母,这个螺母是从下方嵌入到X轴步进电机端3D打印塑料件中的。

image033

而更加理想的方式,是使用梯形丝杆,配上专用的M8铜质螺母。如下图所示:

image034

采用这样的配置,Z轴运动会更加顺滑,也更加符合机械设计的标准。

那么问题就来了,梯形螺杆配套的铜质螺母,是比较大的一个零件,如果想用这样的设计,必须要对X轴的两端3D打印件进行修改。增加丝杆和光杆之间的距离。我们这篇教程中不涉及3D打印件的修改,如果对此有兴趣,可以参考【打印虎】用OpenSCAD修改RepRap 3D打印机打印件设计图解。修改好了3D打印件之后,对应地,Z轴底端和顶端的亚克力部件,也必须做相应的修改才行。

具体来说,就是步进电机的主轴,与轴承所在的光杆之间,距离要由原来的17mm,改为20mm。如下图的上方零件所示。

image035

但很不幸,如果简单的修改,光轴会和小三角支撑板的连接部重叠。很明显这是不行的。为了解决这个问题,我们还需要修改小三角支撑板的固定孔的位置。经过试验,我发现只要把螺丝孔和下方的方孔向下移动5mm,把上方的方孔向上移动5mm,所有的问题就都解决了。如图:

image036

当然,对应的小三角支撑板也要相应的修改。Z轴顶部的亚克力部件也要相应的修改。这些都不要忘记。

小三角支撑板变成了这样(另外两个也要同样修改):

image037

Z轴顶端的亚克力板变成了这样(另外一个也要同样修改):

image038

这里还需要专门提一下,Z轴的顶板,因为两个孔的方向,并不是在X轴和Y轴的方向上,光轴圆心移动的位置,没法口算出来了。我们需要用初中数学学到的方法计算一下,光轴的孔沿步进电机丝杆到光轴的方向延伸3mm之后的圆心位置。得到新的光轴孔圆心位置之后,别忘记用勾股定理验算一下,丝杆孔圆心到光轴孔圆心之间的距离,是否正好是20mm。

经过真实的亚克力板切割、组装之后,发现这个设计是可行的,但还有一个小问题:那就是现在我们有两组不一样的小三角支撑板。一组是用于内侧,没有修改安装口的;另一组是用于外侧,修改了安装口。这样的情况,不论是在切割,还是安装阶段,都很容易搞混,提高了出错的概率。很明显,这不是一个好的工程实践。为了避免混淆,我们干脆把左右两边的小三角支撑板都改为不对称的安装口设计。这样就不会产生搞混问题了。

最终,我们的Z轴底端的亚克力板变成了这样:

image039

可以看到,我在对称方向上也加上了一个光杆安装孔。这是为了避免由于用户分不清方向导致安装时出错的容错设计。

第八节,增加Y轴步进电机的支撑板

Y轴步进电机的固定,在原本的Prusa i3设计中,是一个打印件。但其实这里完全可以用一个亚克力板切割件代替。只要我们把各种机械参数都搞清楚,就很容易做到。

首先是步进电机方面,如图。

image040

从图中我们可以看出,步进电机的四个角,都是由M3螺丝固定。四个螺丝孔排列为正方形,边长31mm。轴的突起圆台,直径在22mm。

3D打印机的Y轴框架方面,我们知道所有的支撑梁,都采用了M8螺杆。从3D打印件的设计文件(.scad)中,我们也很容易可以发现,两根支撑梁之间的间距,是20mm。

有了这些信息,这个亚克力部件就可以很容易绘制出来。如下图:

image041

图中,用于配合步进电机轴的突起圆台的大圆,直径23mm。用于穿过M8螺杆的中圆,直径8mm。用于穿过M3螺丝的小圆,直径3.2mm。步进电机的轴,与支撑梁上方梁的圆心高度一致。M8的孔和M3的孔之间的横向距离,只要保证在安装了步进电机的情况下,M8螺母可以顺利转动,就可以了。

第九节,三角支撑板Y轴方向延长

最后一项需求,是把三角支撑板在Y轴方向延长。根据我的实际测量,这块三角支撑板,再增加50mm的长度,就可以支持3D打印机在Y方向全尺寸利用20*20的热床了。这样,两块三角支撑板最后被我修改为这样的形状:

image042

除了三角支撑板本身要在Y方向延长之外,我们还需要相应的延长一些Y轴的安装槽口。同时,我发现原本不太容易搞定的电源和Melzi电路板,也都有相应的空间可以设置安装孔了。真是一举两得。

这里留一个问题给大家:虎哥我是如何获得电源和Melzi电路板的安装孔距离的?请大家自己思考,如果实在想不出来,可以加我QQ我悄悄告诉你。

第十节,结束语

到此为止,所有的亚克力板方面的修改已经完成,这个设计文件,可以送去切割亚克力板了。这篇教程,虽然整体上是以我们最初的需求为导向写成的,但如果你认真做下来,应该已经初步掌握QCAD的操作,并且有信心做出自己的进一步改进了。当然,也可以下载打印虎已经修改完成的版本Prusa_i3_dayinhu.DXF直接使用(打印虎本地下载百度云下载),或者在上面进行进一步的修改。

回顾一下,我们这篇教程中所需的文件都包括:

文件名 描述
qcad-3.7.1-win-installer.exe QCAD安装包
Prusa_i3_Improved_for_laser_cut.zip 为激光切割准备的Prusa i3改进型源文件包
Prusa3-master.zip 原始设计Prusa i3源文件包
Prusa_i3_dayinhu.DXF 打印虎修改的Prusa i3亚克力板切割CAD设计文件

所有的这些软件包,都可以在这里下载到(打印虎本地下载百度云下载)。

大家如果对修改Prusa i3 3D打印机的设计感兴趣,既可以参考我们这篇文章,以原始的Prusa i3设计为基础进行修改,也可以在虎哥我已经完成的基础上再进一步。按照Prusa i3 3D打印机发布的GPL v3的规则,对其所有的改动,都会继续保持开源。如果大家对GPL规则不够熟悉的,可以参考wikipedia上面的相关主题

当然大家也知道,国内有不少做3D打印机的公司或者个人,并没有遵循这样的规则,做了一点点改进,就把源代码藏起来,只是售卖成品。如果大家是利用自己的资源,从头开始研发,这当然无可厚非。但在别人的成果基础上做开发,而不遵守别人预先设定的规则,这显然是不合适的,虎哥决意不做这样的事情。从第一天起,打印虎就定下了自己的标准,不仅崇尚开源精神,而且完全遵循GPL开源规则。希望能够为国内的开源3D打印机领域带来一股新鲜空气,同时也希望能够得到广大3D打印机爱好者的支持!打印虎愿意和大家一起贡献自己的智力,让开源社区更加繁荣,让知识传播更加容易!

祝大家玩机愉快,每天都有好心情。如果有任何问题,请

联系打印虎 QQ 2404959972

 

【打印虎】用OpenSCAD修改RepRap Prusa i3 3D打印机打印件设计图解

玩3D打印机,特别是桌面级3D打印机的朋友都知道,3D打印机里面,有一些关键的部件,是靠3D打印技术设计、制造的。可以说,3D打印机是目前真正深入应用了3D打印技术的产品,让3D打印技术有了一定的用武之地。

最近打印虎希望改造一台自己的RepRap Prusa i3 3D打印机(搭建过程详见【打印虎】零基础自制RepRap Prusa i3图解全攻略),这时候问题就来了。3D打印机中使用的大部分标准零件都比较好办,直接到市场上采购就可以了。用作框架的亚克力板,也可以使用CAD软件进行改进,再利用激光切割机进行切割。如果对亚克力板的改造比较感兴趣,可以参考【打印虎】用QCAD修改RepRap Prusa i3 3D打印机框架设计图解这篇文章。还剩下一类零件,就是采用3D打印技术生产的3D打印件。我们今天要讨论的主要内容,就是如何改进这些3D打印件。

类似于其他的机械零件设计工作,设计、修改、查看Prusa i3的3D打印零件,也需要CAD软件的辅助。同时,Prusa i3 3D打印机是一个开源硬件、软件设计,它不仅为全世界的技术爱好者提供了一个很好的3D打印机设计方案,而且需要吸引开源社区的回馈,贡献力量帮助其发展、壮大。因此,Prusa i3的设计者并没有基于售价昂贵的工业级CAD工具进行开发,而是采用了一个开源、免费的CAD工具,OpenSCAD。

OpenSCAD的官方网址,在http://www.openscad.org/。在官网的页面上,可以看到它的简单介绍。简单来说,OpenSCAD开源、免费,是一个面向机械零件设计的CAD软件。它与其他CAD软件不同点在于它不是一个交互式的CAD建模工具软件,而是采用一种脚本语言定义模型的形状。这样的好处,是用户可以完全控制3D模型的所有参数,并且特别有利于使用源代码管理工具,对3D模型的历史修改进行记录。但也是因为这样的特征,它不适合进行3D艺术类型的创作,如果有这方面的需求,还是应该使用一个交互式的建模工具。

可能大家都没怎么听说过OpenSCAD,更不会使用,这没有关系。我们这篇文章,与打印虎的系列文章采用了同样的思路,就是以我们的一个实际需求为例子,介绍OpenSCAD的使用方法。这样,只要你跟着我们的例子一步一步做下去,就不仅学会了OpenSCAD的基础使用,而且还明白了如何对你的Prusa i3进行改进。从此,不管你对你的3D打印机有任何不满,都可以自己动手不求人了。

做事情的第一步,我们需要准备好工作环境。OpenSCAD软件尺寸不大,只有8M多(打印虎本地下载百度云下载)。下载完成后,按照软件提示进行安装即可。下面的教程,会假定大家已经安装好了这个软件。如果你已经准备好了,我们就要开始对Prusa i3 3D打印件的改造工作了。

在我们开始动手之前,先打个小广告。打印虎日前已经开始销售RepRap Prusa i3 3D打印机套件,如果你自己或周围的朋友对搭建3D打印机感兴趣,不妨选择打印虎。我们提供的元件,经过严格筛选,品质优良。3D打印机的关键部件都做了专门的优化,包括采用了优质步进电机、全铝挤出头、铝基板热床以及改进的梯形丝杆Z轴,让你的3D打印机达到更高的精度,并且经久耐用。不光硬件质量有保障,打印虎还特别提供免费的固件升级服务,从购买之日开始,打印虎承诺每季度一次,至少四次固件升级,给你的3D打印机提供无限助力。另外,打印虎还提供最好的3D打印机技术支持服务,与顾客做朋友,让你没有后顾之忧。如果想了解更多,请访问我们的产品页面http://www.dayinhu.com/products

第一节,需求分析

经过我的仔细研究和多方对比,我最终决定,以Prusa i3的一种改进型Prusa i3 vanilla (网址在https://github.com/josefprusa/Prusa3-vanilla)作为我的工作基础。这组文件,大家既可以从原始网站下载,也可以从本地下载(打印虎本地下载百度云下载)。下载、解压Zip压缩包之后,我们可以看到两个文件夹,一个是distribution(分发用),里面保存了所有完成的.stl文件。想要做3D打印的朋友,直接拿这个打印就可以了。另一个文件夹是src(源代码),里面的一组文件,除了一个.dxf文件(用于激光切割的平面CAD设计)之外,剩下的都是.scad文件。这些.scad文件,就是用于OpenSCAD的源代码了。大家都知道,如果只有.stl文件,虽然是可以打印的,但要改造起来就有难度了。有了.scad文件,对3D打印件的改造就容易多啦。

我把这组.scad文件复制了一份,放到了自己的文件夹中,然后双击x-end-motor.scad,我们来看看Prusa i3中最复杂零件的情况吧。

image001

双击x-end-motor.scad之后,出现了OpenSCAD的主窗口。窗口分为三个主要的区域。左侧是代码区,展示了正在处理的OpenSCAD脚本代码。我们可以直接在其中对代码进行编辑。右下是信息输出区,所有的OpenSCAD的输出信息,都会列在其中。未来我们会对脚本代码进行修改,如果出了错,会在这个区得到提示。认真研究出错提示,对快速解决问题是很有帮助的。最后,右上角是3D展示区。由于CAD算法很复杂,3D计算需要不少时间,因此不能实时展示用户对代码的修改,程序刚刚启动的时候,是一片空白的状态。

想看到3D效果展示,也不难。这时候,我们按下F6键,就会在提示栏出现一个进度条。等一会,当进度条前进到100%的时候,我们就可以在3D展示区看到完整的零件模型了。这时候,我们可以用鼠标右键拖放对视口进行平移操作,左键拖放对视口进行旋转操作。还可以通过菜单View – Show Axis展示坐标轴。当我们把零件调整到一个合适观察的位置后,我们可以看到窗口变成了这样:

image002

了解了我们的工作基础之后,就需要看一下我们的目标了。首先还是上图,这是我在完成了所有的修改之后,x-end-motor的样子:

image003

实际上,打印虎对这个零件做了不少的改进。主要的改进有

(1)     Z轴丝杆的安装位,由原来的M5丝杆,改进为梯形丝杆。这个改进增加了Z轴的稳定性,同时安装位要比原来大了不少。

(2)     X轴步进电机安装位,从原来的三个螺丝位的不封闭圈,改为了四个螺丝位的封闭圈。同时,为了让顶部很长的悬空部分能够顺利打印,增加了两个支撑板。

(3)     给X轴光轴增加了压力释放缝。更加便于X轴光轴的安装。

必须说明的是,这些需求,并不是凭空出现的,而是我在搭建、使用Prusa i3的过程中,由实际的问题引发的。同时,为了解决这些需求,也需要反复试验。虽然我们下面主要讲的都是如何修改OpenSCAD源代码,但你要知道,这些内容只是一项特定的技术,而并不是我的思考问题、解决问题的过程。想要学到更深入的内容,还需要多动手实践,并在实践中勤于思考。

第二节,源代码分析之一,bearing.scad文件

上一节我们已经把对Prusa i3 3D打印机的打印件的修改需求列清楚了,那下面具体该从何入手呢?很明显,想对3D打印机的打印件进行改进,就需要懂一些OpenSCAD。能读懂目前已有的代码,是最基础的一项要求。下面,我们就用x-end-motor.scad这个模型文件作为例子,一条一条语句学习。很快你就会发现,看似晦涩难懂的语句,其实相当容易掌握。

image004

源代码的第一段,并不是真正的脚本语句,而是一些注释信息。和很多种编程语言类似,注释信息是用两个斜线符号开始的一行。编辑器还很贴心的用绿色字体显示,以示区别。这些注释信息,说明了这个文件的内容、版权信息(GNU GPL v3)、作者以及相关信息的网址。这些内容,对于帮助我们理解源代码,是很有帮助的。接下来,是这样的一行:

image005

这一段只有一句话,是一条use语句。Use语句的作用,是引入另一个.scad文件。基本上,我们可以认为,就是把另一个.scad文件的全部内容,嵌入到use语句的位置处。既然这里引用了x-end.scad,我们就必须要看一下这个文件了。打开x-end.scad,一看不要紧,开头又是一行use语句。这次,被引用的文件,是bearing.scad。这样,我们要处理的就不是一个文件了,而是三个文件组成的一个文件组:

image006

这下,我们要先从bearing.scad开始了。深呼吸一口气,打开bearing.scad,并按下F6键计算3D模型之后,可以看到这样的内容(手工调整角度之后):

image007

容易发现,这其实就是x-end-motor中,垂直的容纳LM8UU轴承的管道。因为与LM8UU轴承的配合,是这套打印件的一项重要内容,因此不论是这样垂直的轴承托架,还是其他零件中使用的水平的轴承托架,都被归纳到了bearing.scad文件中。

我们还是集中于我们的任务,只看bearing.scad文件中与垂直托架相关的部分。其他部分有需要的朋友请自己研究。这样一个简单的零件(部分),首先定义了轴承的外径:

image008

使用卡尺测量,或者找一下资料,都能够容易得知,LM8UU的外径是15mm。在这里使用常量bearing_diameter表示。

image009

然后,定义了托架的壁厚3mm,使用常量thinwall表示。那么。这个零件总的直径,就是LM8UU的外径加上两个壁厚,这个常量保存于bearing_size之中。到此为止,都是一些常量定义,很容易懂。下面就要稍微复杂一点了。

image010

这一段代码,首先使用module定义了一个模块。这个模块的名字叫做vertical_bearing_base。这种模块,类似于编程语言中的函数。这里只是定义,如果后面没有人使用它,是不起任何作用的。那么,这里定义的这个函数,是什么作用呢?

新开启一个空的OpenSCAD,把前面的常量定义,以及这个模块中的一行(cylinder开头的一行),抄写过去,并按下F6键,可以看到:

image011

这样,我们就知道了,cylinder这一行的作用,就是建立一个高度为58,半径为bearing_size/2的圆柱体。注意图中,这个圆柱体以原点(0, 0, 0)作为底面的中心。$fn的作用,是说明这个圆柱体由多少个平面拟合而成。可以看出,90个平面拟合的圆柱体,已经非常圆了。这里,大家可以任意修改这几个值,看看结果会有什么样的变化,以加深对这条语句的理解。

下面再加入原来模块中的另一语句:

image012

这条语句,分为了两个部分。有了刚才的经验,就容易理解,后面一部分,就是建立一个立方体。这个立方体的尺寸,X方向是圆柱半径+4,Y方向是圆柱直径,Z方向也就是高度仍是58。最后的center=true参数,说明我们要把这个立方体的中心,放在原点(0, 0, 0)的位置上。

如果只有这部分,很明显圆柱和立方体两个部分是无法匹配的。但最前面的translate语句起了作用。这个语句只对同一行中的cube起作用,具体的作用,是在3D空间中的一个平移。这个平移,使立方体处于了正确的位置上。再配合上圆柱体,可以得到这样的结果:

image013

很明显,这就是我们所需要的零件的基础了。再取出不需要的部分,就可以得到所需的零件。仍然与前面一样,希望大家调整每一个参数,观察图中所起的变化。这非常有助于我们快速学习和掌握这种建模方法。熟练了之后大家就会发现,这种方法相比于交互式的建模方法,更加精确和可靠。

基础有了,中间的空洞部分如何生成呢?很简单,继续看bearing.scad文件的下一段:

image014

这里,又定义了另一个模块。这个模块也是两行。我们类似于上面的方法,我们建立一个新的工程,把这常量定义和这两行代码提出来,单独看看:

image015

仔细阅读一下就会明白,第一行代码,建立了一个高度为62,直径为15的圆柱体。第二行代码,建立了一个细长的立方体,并旋转了一个特定的角度。使用rotate函数,旋转角度的方法,是我们第一次见到。这个函数也很简单,只有一个参数,就是沿着x, y, z轴旋转的角度向量。在这个例子里,立方体沿着Z轴旋转了-70度。两行效果叠加,就形成了图中所示的结果。

看起来虽然已经明白,这第二个模块里面的内容,就是被切除的部分。但具体如何做到了切除,还要继续往下看代码。继续看bearing.scad文件:

image016

这个文件的最后,是一个difference函数。从名称也可以看出,这个函数完成了我们所需要的“减法”操作。需要注意的是,在difference函数的大括号里面,完成了对以上定义的两个模块的引用。到此为止,垂直轴承托架部分就完成了:

image017

第三节,源代码分析之二,x-end.scad文件

看完了bearing.scad文件,我们已经得到了一个垂直轴承托架。下面,我们继续第二个文件,x-end.scad。由于X轴步进电机端和X轴惰轮端有很多共同需要用的公共组件,因此设计者把这部分内容抽出来,形成了x-end.scad文件。这个文件,经过3D渲染之后的样子,是这样的:

image018

可以看出,这里包含了除了固定步进电机的部分的X轴步进电机端的所有部分了。下面我们就开始分析这个源代码文件。分析的方法与上一节类似,我们会把每个模块、每一行单独取出来,观察它的作用效果,就可以知道这一行的作用和意义了。因为我们已经有了些基础的经验,所以这一节我们会加快一些速度进行介绍。

首先是x_end_base模块。在观察这个模块的工作方式时,我们不仅需要在一个空白的.scad文件中先定义好常量,而且还需要把bearing.scad中预定义的两个模块,也一起复制进来。最后,放入x_end_base模块中的内容:

image019

可以看出,这里先调用cube函数,定义了一个大的高度为58的立方体,再调用预定义的vertical_bearing_base模块,加入垂直方向的轴承托架的基础部分。然后,使用cube函数和cylinder函数,完成下方的Z轴丝杆固定装置的基础定义。

这里需要注意的是,cylinder函数出现了不同的用法。这个函数除了能够定义“圆柱”之外,还能再$fn取6的时候,方便地定义六边形。

这样,通过组合一系列简单的3D几何形状,我们就得到了这个零件的基础。与上一节的方法类似,这里同样是要靠difference函数,来实现零件内部形状的切除。

下面的模块x_end_holes比较长。它整体都是在做零件内部形状的定义。为了清晰,我们把这个模块的内部再分成几个部分,单独讲解。首先,第一行很简单,就是调用了预先定义的vertical_bearing_holes()函数,把垂直方向的轴承托架内部形状定义出来:

image020

这部分之前我们已经测试过了,就不再次测试了。下面一段,需要整体处理。这一段定义了同步带运行所需的空间。包括主体的方形孔、主方形孔四个角的倒角以及为了释放压力所添加的缝隙。如下图所示:

image021

这里需要注意的是,这段代码,包括了一个difference函数,用于四个倒角的处理。再想到这段代码本身,就是在定义一个孔洞,因此未来将会被包含在另一个difference函数中。这清晰的说明了,difference函数是可以嵌套使用的。

再下面一端,定义了两根光杆的插孔位置,已经Z轴丝杆螺母的镶嵌位置。光杆的插孔,一方面为了缓解精度问题,另一方面为了让打印效果更理想,在圆柱的上方,增加了一个梯形台面。这样,也让原本简单的代码,发展成了另一个模块,pushfit_rod模块。这个模块我们就不再详细讲解了,相信有了之前的经验,大家都能够自行看懂了。

image022

到这里,大家可以发现,所有的代码,基本都是几种简单的几何形体,加上平移或者旋转,再加上一个difference“减法”函数,组合而成的。只要有耐心,足够细心,再加上准确的数字,不管有没有编程经验,大家都可以充分理解这种脚本语言。

这样,所有的内容都准备好了之后,再加上一个大的difference函数,执行基础部分和孔洞部分的“减法”,我们就得到了x-end.scad脚本执行的最终结果。

image018

第四节,源代码分析之三,x-end-motor.scad文件

看到这里,我们已经完全了解x-end-motor.scad所依赖的两个源文件,bearing.scad以及x-end.scad的内容与渲染结果了。现在,只剩下主文件,x-end-motor.scad等待着我们。在这个文件中,原本完全不能理解的代码,现在也已经变得可以阅读了。

首先,还是一个模块,定义了整个X轴步进电机端零件的基础。这个基础是在已经定义的模块x_end_base的基础上,再加上一个大的立方体得到的。

image023

与之前的方法类似,打开一个新的OpenSCAD窗口,把所需的常量定义、模块定义都准备好(注意这次我使用了use语句,避免杂乱的代码过多),然后独立执行这个模块,可以得到这样一个渲染结果:

image024

还是与之前的情况类似,下面是一个大的模块,定义了如何从已有的基础3D对象上切除一部分,以得到我们希望的结果。我们一部分一部分来。

image025

首先使用在x-end.scad文件中已经定义好的模块,切除除了右侧步进电机位之外的部分。单独使用这个模块,会得到这样的结果:

image026

然后的一大段代码,都被一个translate函数所包围了。我们把这一大段代码的每一部分单独挑出来,配合上translate函数,看看执行的效果如何。

第一段仍然是用于穿过同步带的空间。这部分没有另一侧精致,只是一个立方体,不带四个角的倒角了。

image027

接下来是四个螺丝孔位。这段代码看起来虽然很长,但其实内容很简单,每个螺丝孔位是两个圆柱,重复了四次,得到了四个螺丝孔位。

image028

再往下是两个巨大的立方体,切除了步进电机槽位的右上角和右下角。

image029

最后,是一个大的六边形柱体,切除了步进电机的轴位。

image030

以上的所有内容,拼合在一切,经过适当“加法”和“减法”,最终得到了我们所需的零件3D模型,如下图所示:

image031

到这里,虽然我们还没能完全掌握OpenSCAD的使用,但最基础的部分,以及其中所蕴含的方法,应该已经比较熟悉了。如果想比较系统的学习,也很容易,只要点击菜单上的Help – Documentation,就可以到达OpenSCAD的官方文档网站,那里有完整的相关资料。

除了OpenSCAD的技术之外,我们也已经把一直在研究的这个Prusa i3 3D打印机零件x-end-motor.scad的设计搞清楚了。下面,我们要根据自己的需求,对它进行一些修改。

第五节,源代码修改

在前面几节,我们学会了基础的OpenSCAD脚本语言,已经可以读懂现有的X轴步进电机端建模脚本文件x-end-motor.scad了。现在,可以再回头看一下第一节中列出的需求,下面我们要逐一解决它们了。

首先是需求(1),关于Z轴丝杆安装位的问题。现有的位置,是供嵌入一个M5螺母的大小。这个位置,对于下图所示的梯形丝杆螺母来说,确实是太小了。因此,我们首先需要扩大这个位置。

image032

经过试验,我发现对于x-end.scad部件底部的六边形螺母固定基座,要从原来的8mm半径,变为13mm半径。同时,要把这个部件的中心,向远离垂直轴承安装管的方向移动3mm。这样,Z轴相邻的两根杆(一根光杆,一根梯形丝杆)之间的距离,由17mm变为20mm。按下F6键重新渲染之后,可以得到如下图的结果。

image033

很明显,其他几个相关的部件,也需要相应的调整才行。这个调整也不复杂,如下图所示,先把零件主体立方体和梯形螺母固定基座的立方体两个地方,调整长度,配合已经调整了位置和大小的梯形螺母固定基座六边形。

image034

然后,把现有的六边形M5螺母嵌入位置去掉,改为用于梯形螺母的嵌入位,如图:

image035

这时候,出现了一个问题,就是四个M3螺丝孔,其中两个靠近零件主体的螺丝孔被挡住了一点点。这样别说螺丝的头部没有地方安装,就连螺丝杆都不一定能钻过去。但是,如果再修改梯形螺杆的X方向坐标,还要联动修改整个机器架构,未免显得太过于麻烦。不如就再扩大一些螺丝的安装位置算了。

基于这样的思路,我又补上了两个圆台,一个立方体,把用于安装螺丝的位置空了出来。如下图所示:

image036

到此位置,我的需求(1),关于Z轴丝杆安装位的问题已经得到了解决。当然,由于梯形丝杆和光杆之间的距离加大了3mm,必须同时修改亚克力板的相应设计才可以。这点请模仿我修改设计的朋友不要忘记了。

关于需求(2),X轴步进电机安装位的问题,会更加简单一点。由于这个需求,并不是一个功能性需求,而仅仅是为了美观的考虑,因此,不设计到任何限制尺寸方面的调整。同时,所有修改的内容都位于x-end-motor.scad文件中。

还是一步一步来做。首先,在x-end-motor.scad文件中,注释掉对模型右上角的切除语句。结果如下图所示:

image037

然后,把步进电机轴轴位切除口,由原来的一个简单的六边形,变为一个更美观的鼓型。这里,我们使用了一个前面没有介绍过的intersection函数。这个函数的作用,是求两个或多个立体几何形状的交集。我们这里使用的鼓型,就是一个立方体和两个圆柱体的交集。如果想知道更具体的细节,大家可以参考文档,或是按照我们前面介绍过的方法,把语句单独提出来渲染,观察它们独立的形状。

image038

再接下来,我们还使用一个立方体和一个圆柱的difference函数,调整了右上角的形状,去除了原始的直角,让它变成了一个更加优雅的弧形。

image039

在我把X轴步进电机位置修改成这样之后,就发现它在设计上确实变得美观了一点,但3D打印过程中,会造成一个超长的过桥动作,导致打印效果很差。为了解决这个问题,我在建模阶段,增加了两个用于支撑的平板,既节省材料,又让顶部的过桥距离大大缩短,只有原来的三分之一了。这样再尝试打印,首先过桥的地方完全没有了问题。同时,这个支撑非常容易去除,只要用手轻轻一掰,就可以在根部断掉。这样,我们就得到了让人满意的近乎完美的结果。

image040

最后要解决的是需求(3),给X轴光轴增加了压力释放缝。

对于这个问题,我们要再回到x-end.scad文件。在上下两个光杆的构造代码后,需要再增加两个细长的立方体,就可以解决这个问题了。如图:

image041

这里需要补充说明一点的是,这个缝隙的大小,也是经过了几次试验最终得到的。它既不能太大从而导致光杆安装松懈,又不能过小导致打印后实际粘在了一起。同时,为了使光杆能够真正顺利安装,打印虎还有一个建议,就是使用8毫米的钻头,对已经成型的打印件进行清理操作。我们的实践证明,使用钻头是非常有效的方法。

第六节,结束语

到此为止,我们所有的工作都已经完成。如果你是跟着虎哥我一步一步做到这里的,那现在你应该已经初步掌握OpenSCAD的使用方法了。相信在这个基础上,再经过简单查阅OpenSCAD帮助文档,各种复杂的3D机械零件建模都难不住你了。

当然,我们这篇教程,只具体介绍了一个3D零件的修改方法(虽然是最复杂的一个)。如果你想要所有经过打印虎修改的Prusa i3 3D打印机打印件模型文件,可以从这里下载(打印虎本地下载百度云下载)。受到开源精神的鼓舞,我们非常乐于见到大家在我们工作的基础上继续改进。

回顾一下,我们这篇教程中所需的文件都包括:

文件名 描述
OpenSCAD-2014.03-x86-32-Installer.exe Open SCAD安装程序
Prusa3-vanilla-master.zip Prusa i3 vanilla版,本教程参考的基础文件
Prusa-i3-dayinhu-scad.zip 经过打印虎修改的Prusa i3 .scad框架设计文件

所有的这些软件包,都可以在这里下载到(打印虎本地下载百度云下载)。如果有的朋友觉得自己弄还是太麻烦,希望直接购买到一套,那么打印虎也可以提供。只要到打印虎网站上的产品页面上购买就可以了。

最后,祝大家玩机愉快,每天都有好心情。有任何关于文章的问题,请

联系打印虎 QQ 2404959972

 

【打印虎】RepRap 3D打印机热敏电阻设置图解

玩3D打印机的朋友,可能会希望装配自己的3D打印机,或者改进已有的3D打印机设计(有这方面需求的朋友,可以参考【打印虎】零基础自制RepRap Prusa i3图解全攻略)。在这个过程中,经常会遇到关于热敏电阻方面的问题。热敏电阻看似简单,但其实很有门道,在设置固件的时候,它常常是最复杂的一项设定。固件设置的过程中,我们得提供一组热敏电阻的配置参数,或是更复杂,提供一个温度-阻值的对应表,才能完整整个设置。但是这些参数的意义是什么,从哪里能得到这些参数,却又没有人告诉我们。这可真是难为了3D打印机爱好者。打印虎经过仔细研究,终于摸清了跟热敏电阻有关的方方面面,今天就给大家仔细讲解一下。

在我们正式开始之前,先打个小广告。打印虎日前已经开始销售RepRap Prusa i3 3D打印机套件,如果你自己或周围的朋友对搭建3D打印机感兴趣,不妨选择打印虎。我们提供的元件,经过严格筛选,品质优良。3D打印机的关键部件都做了专门的优化,包括采用了优质步进电机、全铝挤出头、铝基板热床以及改进的梯形丝杆Z轴,让你的3D打印机达到更高的精度,并且经久耐用。不光硬件质量有保障,打印虎还特别提供免费的固件升级服务,从购买之日开始,打印虎承诺每季度一次,至少四次固件升级,给你的3D打印机提供无限助力。另外,打印虎还提供最好的3D打印机技术支持服务,与顾客做朋友,让你没有后顾之忧。如果想了解更多,请访问我们的产品页面http://www.dayinhu.com/products

第一节,热敏电阻基础

3D打印机上常用的热敏电阻,是NTC(Negative Temperature Coefficient,也就是负温度系数)热敏电阻。所谓负温度系数,就是当温度上升时,热敏电阻的阻值减小。在3D打印机上,最常见的是玻璃封装的热敏电阻。不论是轴向导线的玻封NTC热敏电阻:

image001

还是单端的玻封NTC热敏电阻:

image002

这些都在3D打印机上很常见。

对于一个普通电阻,它的阻值是最关键的一个参数。而对于一个热敏电阻来说,最关键的参数是温度-阻值对应曲线。有些公司生产的热敏电阻,会在对应的数据手册(Datasheet)上,详细列出一个表格,上面的信息就是这个温度-阻值对应曲线。当然,表格肯定只能列出有限的采样点,但如果采样密度足够大,就可以足够精确地表示这条曲线了。

总是使用一个表格的方式表示热敏电阻的特征,还是过于麻烦了。为了简化参数,前人研究出了多种热敏电阻的数学模型。其中最简单,对于3D打印机也足够用的一种模型,是把热敏电阻的关键参数简化为三个:第一个参数是T0表示一个参考温度,通常是25℃;第二个参数是R0表示参考温度下的阻值;第三个参数是beta(也可以写做希腊字母β),它是一个描述热敏电阻阻值变化特征的参数,使用beta值可以计算出热敏电阻一个特定的阻值所对应的温度。这种热敏电阻参数模型,经过长期使用,得到了广泛的认可。有些热敏电阻的厂商,甚至不再给出热敏电阻的温度-阻值对应曲线,而是直接给出这三个参数,就算是完整地提供了热敏电阻的资料。

热敏电阻的特点,是稳定性、一致性都很好。不同的热敏电阻个体,只要他们的参数相同,就会表现出完全一致的电子特性。甚至不同厂商生产的热敏电阻,也会有几乎完全一样的特征曲线。这个特点非常重要,在下面,我们就会看到,很多与热敏电阻相关的数据和设置安排,都表现和利用到了这个特征。

如果我们拿到一个热敏电阻,却不知道它的内部参数,希望通过测量的方式得到,也是可能的。这种情况下,我们需要使用这个公式:

image003

其中,R0和T0我们已经都讲过了。T和R代表一个比较高的测量温度(比如85.5℃)下测量的阻值(比如5000欧姆)。同时假如T0是22℃,R0是115700欧姆,则可以计算beta值等于5237。

这样的方法从理论上完全可行,但实际操作需要一些设备,非常的麻烦。打印虎建议大家,在有可能的情况下,还是尽量从卖家获取热敏电阻的参数信息,就不要自己测量了。

在RepRap Prusa i3 3D打印机上,两个地方用到了热敏电阻。一个用于测量挤出头的温度,另一个用于测量热床的温度。用于测量挤出头温度的热敏电阻可见下图。红圈内的黑色导线头部,3mm金属套内的,就是使用无头螺丝固定的热敏电阻了。

image004

用于测量热床温度的热敏电阻可见下图。这里的热敏电阻,直接使用了玻封形式,用kapton胶带粘贴在热床的底部。尽量与热床紧密贴合。

image005

第二节,热敏电阻在电路板上的连接

在上一节中,我们了解了热敏电阻的基础知识,以及它在RepRap Prusa i3 3D打印机中的使用方法。那么从电路的角度,热敏电阻是如何连接的呢?在Melzi上,电路板最右上角的两个连接口BTEMP和ETEMP,就是为热敏电阻专门准备的:

image006

同时,图中两个小红圈内的,就是R2。关于R2,我们下面会详细解释。

只知道在电路板上如何连接,还不够我们解决问题。实际上,热敏电阻部分的电路图也非常简单,是这样的:

image007

其中R就是热敏电阻,而R1总是不连接。Vref通常是是+12V电压,被R和R2分压得到的Vmeasured的值经过ADC转换,就可以被单片机读取。那么如何计算热敏电阻的分压,R2是一个关键。不幸的是。在不同的电路板设计中,R2有着不同的取值。我见过两种不同的Melzi电路板,他们分别使用了4.7K和10K的阻值。后面我们就会看到,不同的阻值,对应了不同的热敏电阻计算发放和温度-ADC值对应表,不能搞错。

第三节,热敏电阻的设置(Repetier-firmware)

上面讲了很多理论上的东西,那么如果我用Prusa i3 3D打印机,应该如何设置固件呢?这里我们以Repetier-firmware和Marlin两种最常见的固件为例进行说明。

如果你使用的是Repetier-firmware,请首先参考【打印虎原创】Repetier-firmware深度配置图解教程。假如大家对它的在线配置工具已经初步了解,那么可以在“温度设置”一栏,找到这项设置:

image008

这个下拉框看似简单,但如果尝试使用,就会发现其中的玄机。我们先看一下其中的选项都有哪些,如下图所示:

image009

首先,这个下拉列表中,先列出了一系列给定型号的热敏电阻。根据我的调查,虽然这些型号在国内不好找,但应该是美国市场上常见的元件型号。这里面,有些型号非常的具体清晰,比如第一项Epcos的100K热敏电阻,就列出了非常具体的型号。但另一些,比如第二项热敏电阻,就只列出了一个非常模糊的名字。光看到名字,完全无法搞清楚它对应的beta值。即使我使用一个R0=200K的热敏电阻,也无法确定使用这项设置就是正确的。

既然这些预定义选项的热敏电阻在国内不太常见,现在我们又不了解他们的情况,不如先跳过,继续看后面的选项。这些预定义的热敏电阻,我们留到下一节再具体讨论。从AD8494这一行开始,就不是热敏电阻了,而是一些具有温度感应功能的芯片。我在国内还没有见过配置这种测温芯片的3D打印机,同时我们这篇文章主要讨论热敏电阻,所以这种类型也就略过不谈了。

再接下来,是用户自定义表格(User defined table)。当我们选择到这一个选项的时候,在页面底部会出现下图所示的一段:

image010

在这里,我们可以通过一个表格的形式,定义正在使用的热敏电阻。这里需要指定的数值,包括了R1(通常是0,代表未连接,不是短路哦),R2(根据所使用的电路板具体情况而定),以及一组温度-阻值的对应关系表。第一节已经谈到,这组温度-阻值的对应关系表,有可能由元器件厂商在元器件数据手册中提供。每当加入一行数据之后,ADC一列会展现出自动计算出的ADC数值。虽然我们在这里填写的是温度-阻值对应表,但实际生成的配置文件中,已经转化为温度-ADC值关系表了。而根据图中的分压电路,温度-ADC值关系表中的值,是与R2直接相关的,因此这里的R2的值必须填写正确,否则不能计算出正确的温度。

当然,有些热敏电阻的厂商,并没有在数据手册中直接给出温度-阻值对应关系表,而是按照简化模型,直接给出了一组三个参数,T0, R0和beta。如果是这种情况,我们可以直接使用下面的选项,通用热敏电阻表格(Generic thermistor table)就可以了。选择这个选项之后,页面底部也会相应的变化:

image011

可以看到,在这种情况下,固件设置就不需要用户提供完整的温度-阻值对应关系表,而是改为提供一组简化参数。如果你的热敏电阻厂商直接提供了T0, R0和beta参数,那么直接填入也就可以了。这三个关键参数之后的的温度范围(Min/Max Temperature)不会对计算产生实际影响,只是确定了计算温度的最小和最大值;而最后的R1/R2前面已经介绍过了,虽然不是热敏电阻的内部参数,同样也必须填写正确才能最终得到正确的温度值。

第四节,热敏电阻的设置(Marlin)

用过Marlin固件的朋友们都知道,Marlin是没有类似于Repetier-firmware的在线配置工具的。配置Marlin固件,还必须使用更为原始的直接编辑配置文件的方法,相对要困难一些。如果没有这方面的经验,首先请参考【打印虎原创】RepRap_Prusa_i3_3D打印机固件Marlin firmware配置教程。在对Marlin配置有了初步了解之后,可以在Marlin的配置文件中发现这样一段,是直接与热敏电阻相关的:

image012

可以看出,这段其实与Repetier-firmware配置工具中的下拉框内容类似,也是分为

(1) 负值是温度感应芯片;

(2) 0是未使用

(3) 100以下是常用的热敏电阻,也就是我们这篇文章讨论的内容;

(4) 100以上是Pt100/Pt1000温度传感器,我没实际用过,不太清楚具体情况,需要的朋友请自己查资料吧;

最遗憾的一件事情,是Marlin似乎并不支持用户直接使用T0, R0以及beta值来定义一个热敏电阻。这让事情变得麻烦了很多。下面,我们只有两个选择了,要么在预定义的热敏电阻中选择一个并使用,要么自己列一个热敏电阻的温度-ADC值表格并使用。

先说使用预定义的热敏电阻。预定义的热敏电阻,每个都在Marlin中对应了一个温度-ADC表格。这样的每个表格,实际上都对应了不同的T0, R0, beta这三个热敏电阻参数以及R2这个电路参数。要想找到对应的表格,必须把这四项内容都对应上。如果没有完全对应,测量出的温度,就肯定不是正确的。

仔细看一下configuration.h中提供的注释,再加上定义热敏电阻温度-ADC值对应表格的文件thermistortables.h中提供的注释,就会发现上面提到的这四项参数在注释中给出的很不全面。有些有beta值,有些没有给。有些指明了一种特定型号的热敏电阻,而另一些则含糊其辞。因此,想全面利用这个表格,我感觉是很困难的。想找到表格中的各种热敏电阻,在国内似乎也是困难重重。

好在这个表格的其中一个选项,也就是选项60,对应了最最常见的一种热敏电阻。经过我们的分析和测试,这种热敏电阻T0=25, R0=100k, beta≈3950, R2=4.7k。如果你的配置正好是这个情况,那么恭喜你,你可以直接在

#define TEMP_SENSOR_0

#define TEMP_SENSOR_BED

后面,填写60这个数字。否则,打印虎的建议是,不要使用预定义的表格了。这个表格引起的麻烦会比你的实际收获多。

好了,到此为止,如果你要用Marlin作为固件,并且使用了并非最常见的可以对应于选项1的热敏电阻作,那大概只剩下最后一条路可以走了,那就是自定义温度-ADC表格。做这件事需要几个步骤:

第一步,创建温度-ADC表格;

第二步,给这个表格赋予一个编号;

第三步,使用这个编号。

参考thermistortables.h文件中的各个表格,要创建一个温度-ADC表格并不算特别困难。为了满足C语言的规范,我们自己创建的表格,也必须满足一定的要求。首先,表格的位置,要放在这里:

image013

然后,表格要以

image014

这样一行作为开头;要以

image015

这样一行作为结尾。

中间的部分,就是这个表格的数据了。同样参考已有的表格,左侧的数字,是由低到高的ADC值;右侧的数字,是由高到低的温度值。

如果你的数据来源,是数据手册中提供的温度-阻值表,那么需要考虑到R2的分压效果,并把分压比例乘以1024(这是10-bit ADC的精度),得到某一温度下阻值对应的ADC值。

如果你的数据来源只有数据手册中列出的T0, R0以及beta值,那么反而好办些,可以利用下一节中介绍的工具,从这三个参数计算得到整个表格。

表格已经搞定了之后,我们要给这个表格赋予一个编号。我感觉99是一个合适的数字,因此把表格的第一行改为

image016

这一步就完成了。

最后,要使用这个编号。使用这个编号的方法也很简单,回到configuration.h文件,把热敏电阻的一段,修改为这样:

image017

当然,这里我们假设了你在挤出头和热床上使用了同样型号的热敏电阻,因此这两个地方都使用了我们自定义的热敏电阻编号99。如果你使用了两种不同的热敏电阻,那么你可能还需要启用数字98,再做一次自定义热敏电阻表格的工作。

第五节,热敏电阻表格计算脚本的使用

在上两节我们已经看到,相比于Repetier-firmware固件,Marlin固件没有直接提供通过T0, R0以及beta值设置一个热敏电阻的方法。如果所使用的热敏电阻在预定义表格中不存在,用户就必须通过一个自定义表格,设置一个热敏电阻。这对于只知道热敏电阻三参数的朋友来说,显然是一个麻烦事。好在RepRap.org提供了一个小工具,可以在一定程度上帮助我们。这个工具叫做createTemperatureLookup.py(打印虎本地下载百度云下载)。

一个坏消息是这个工具是Python语言编写的,如果你用的是Windows,则还需要另外安装Python语言的运行环境。而且,这个脚本只兼容Python 2,对于最新版本的Python 3,则还需要一些修改才行。为了简化,我们这里还是用Python 2.7.8吧(打印虎本地下载百度云下载)。

准备好了环境,我们就可以运行了。在Windows中运行cmd.exe,进入命令行模式。在命令行下,先切换到createTemperatureLookup.py所在的目录(我的是D:\work目录),然后键入命令:

C:\Python27\python.exe createTemperatureLookup.py –t0=25 –r0=100000 –beta=3950 –r1=0 –r2=4700

这一行命令的参数,含义都很明确,包含了热敏电阻内部参数T0, R0和beta,以及电路上的参数R1和R2,完全与上面我们的讨论相同,就不重复解释了。结果如图:

image018

好了,表格已经得到,同样地,左侧的数字,是由低到高的ADC值;右侧的数字,是由高到低的温度值。与我们所需的状态完全匹配。如果用在Marlin中,唯一的不同是在文件thermistortables.h中,左侧的值需要再*OVERSAMPLENR。这里可以理解为一个格式问题,只要大家把格式搞对,最终就可以得到正确的结果了。

第六节,Marlin预置选项设置的对比

上面几节,我们已经介绍并反复使用了在温度-阻值(以及温度-ADC值)数据表。在已知这个数据表,或者已知T0, R0, beta三项关键参数的情况下,我们已经可以正确配置Repetier-firmware和Marlin固件。最后的这一节,我想讨论一下Marlin中预定义的数据表。这纯粹是为了满足和虎哥我一样有好奇心的朋友。如果没有兴趣,就可以不再继续阅读本文了。

如果还有兴趣,那我们继续。话说Marlin固件中,列出了一大堆预定义的热敏电阻的温度-ADC值对应表。根据注释,这些表格,有些我们知道热敏电阻的具体型号,有些知道了关键的三个参数T0, R0和beta,有些则更模糊,只知道其中部分信息。那么我们如何理解这些预定义的热敏电阻表格呢?

首先,上文已经谈到神奇的选项60。它对应了最常见的一种热敏电阻。经过我们的分析和测试,这种热敏电阻T0=25, R0=100k, beta≈3950, R2=4.7k。我们看一下60对应的注释:

image019

这里只提到了R0=100k以及beta=3950,在thermistortables.h中,还有更多的注释:

image020

所以这个表格,其实就是通过createTemperatureLookup.py生成的!和我们在上一节所举的例子完全一样。看到这里,你就知道我们为什么选择了60这个选项了吧。

事实上,再深入研究,就会发现不仅选项60是最常见的热敏电阻,选项7、选项11都是。简单观察数字,其实还很难得到这个结论,如果你把这个表格绘制出来,情况就不同了:

image021

看到这张图,是不是觉得很有趣?红色的点,是选项7;绿色的点,是选项11;蓝色的点,是选项60。可以看出,这三条由采样点构成的曲线,非常完美的匹配在了一起,简直就是一条线。再看选项7的注释:

image022

和选项11的注释:

image023

 

image024

 

可以看出几个特点:

(1) 这三条曲线,数据来源确实不同,60来自脚本计算的数据;7和11,应该是来自于各自公司提供的数据手册;

(2) 它们的R2都是4.7k电阻;

(3) 它们的beta都在约等于3950,其中11和60都等于3950,而6根据数据手册beta=3974;

有些朋友,在设置热敏电阻的时候,图省事把选项设置为1。那么1和60的差别有多大呢?大家可以从下图得到一些启发:

image025

图中红色点是选项1,绿色点是选项60。可以看出,在低温区,这着两条曲线差别不大。但当加热到了200℃的时候,如果使用选项1,但实际使用的热敏电阻是选项60的话,会因为热敏电阻设置不当,报告为180℃左右,产生了不小的误差。

最后,我们再比较一下当采用完全相同的热敏电阻,但电路板上的R2不同的时候,会产生什么样的效果。下图两条曲线,都是同样的热敏电阻,T0=25℃, R0=100000, beta=3950,配合不同的R2时,会有这样的结果:

image026

图中红色点R2=10K,而绿色点R2=4.7K。从图中可见,整条曲线都发生了比较大的偏移。这样,使用了不正确的配置,即使在低温区,也会发现明显的温度问题。

第七节,结束语

希望你把整篇文章看完之后,会感觉到对3D打印机热敏电阻设置的理解加深了很多。如果下次再遇到热敏电阻的设置问题,你很有信心能够容易地解决掉,那就说明你已经很好的掌握了这篇教程希望教给大家的东西。

如果读完了之后一头雾水,那很可能是我们的教程讲的还不够清楚,也希望你能跟打印虎联系,告诉我们你的问题。我们希望能持续改进教程,写的越来越清晰易懂。

回顾一下,我们这篇教程中所需的文件都包括:

文件名 描述
createTemperatureLookup.py 热敏电阻表格计算脚本
python-2.7.8.msi Python 2.7.8 脚本运行环境

所有的这些软件包,都可以在这里下载到(打印虎本地下载百度云下载)。

祝大家玩机愉快,每天都有好心情。如果有任何问题,请

联系打印虎 QQ 2404959972

 

【打印虎】RepRap 3D打印机步进电机电流调整图解

玩3D打印机的朋友,可能会希望装配自己的3D打印机,或者改进已有的3D打印机设计(有这方面需求的朋友,可以参考【打印虎】零基础自制RepRap Prusa i3图解全攻略)。在3D打印机搭建完成之后,我们需要对步进电机进行固件设置,这方面的问题,在【打印虎原创】RepRap_Prusa_i3_3D打印机步进电机设置图解中我们已经讨论过了。但有时我们会发现即使设置正确,步进电机的工作似乎还是有些问题。有的情况是步进电机转动没有力量,不能带动负载运动,出现异常声响;有的情况是步进电机发热过度,非常烫手,温度超过100℃,如果过热时间太长,甚至会导致步进电机退磁报废。

这两种极端的情况,其实都与步进电机的电流强度有关。第一种情况是由于电流过于小导致步进电机达不到设计的工作状态。如果负载小还好,若负载较大,就会出现失步的情况,不能正常工作了。第二种情况则刚好相反,是由于电流过于大导致步进电机发热增加,超过正常的工作温度范围,损毁设备。

那么为了保证步进电机工作在一个正常的温度范围内,我们需要对3D打印机的输出电流进行调整。Melzi或者RAMPS主板,都使用A4988系列芯片对3D打印机进行控制。这类芯片,通过一个参考电压,决定输出电流的大小。而这个参考电压,是通过一个微调电位计分压得到的。因此,通过调整这个微调电位计,并观察这个微调电位计的分压电压,就可以知道输出电流的大小了。

如下图所示,图中是一个RAMPS使用的A4988驱动电路板,青色圈内的就是微调电位计。使用小螺丝刀转动它,就可以在一个电压范围内进行选择了。

image001

Melzi主板上A4988芯片的右下方,也有一个类似的微调电位计。下面的图展示了如何调整这个参考电压:

image002

做这个操作的时候需要注意以下几点:

(1) 把电路板平放在一个绝缘桌面上;

(2) 断开12V主电源,连接USB口;

(3) 把红色箭头指向处的跳线,跳到USB供电一侧,也就是图中状态的下侧;

(4) 把万用表的负表笔连接地,一个简单的不用手的办法如图所示;

(5) 一只手控制小螺丝刀,另一只手控制正表笔,小螺丝刀和正表笔都接触到电位计表面的金属盖上;

image003

调整的过程中观察万用表的读数。根据RepRap wiki的建议,应该调整到0.8V。根据我自己的经验,调整在0.8V~1.0V之间都是没有问题的,电压高一些,步进电机会稍微热一些,但3D打印机整体会更稳定些。大家根据自己的实际情况决定吧。

这里需要注意的一点是电位器的金属帽上,可能会存在氧化层,或者是焊接时留下的助焊剂。如果万用表没有读数,可以用表笔戳几下,保证接触到金属部分。

调整好的步进电机,应该转动轻快有力,噪音和发热量都在一定的程度内。如果是Prusa i3,工作过程中X轴和Y轴步进电机应该是最热的,但也应该能允许手在步进电机表面短时间停留,温度在70℃以内。如果感觉温度达到手不能接触的程度,那很可能就是过热了。这时应该增加散热措施,比如降低环境温度,或者增加散热片等。

这次的步进电机电流调整教程比较简单,希望大家喜欢。下面又到了我们的广告时间。打印虎日前已经开始销售RepRap Prusa i3 3D打印机套件,如果你自己或周围的朋友对搭建3D打印机感兴趣,不妨选择打印虎。我们提供的元件,经过严格筛选,品质优良。3D打印机的关键部件都做了专门的优化,包括采用了优质步进电机、全铝挤出头、铝基板热床以及改进的梯形丝杆Z轴,让你的3D打印机达到更高的精度,并且经久耐用。不光硬件质量有保障,打印虎还特别提供免费的固件升级服务,从购买之日开始,打印虎承诺每季度一次,至少四次固件升级,给你的3D打印机提供无限助力。另外,打印虎还提供最好的3D打印机技术支持服务,与顾客做朋友,让你没有后顾之忧。如果想了解更多,请访问我们的产品页面http://www.dayinhu.com/products

最后,祝大家玩机愉快。有任何问题,请

联系打印虎 QQ 2404959972

 

【打印虎】3D打印控制软件Repetier-Host使用基础图解教程 第二版

玩3D打印机,特别是RepRap这一类3D打印机的朋友,一般都听说过Repetier-Host这个软件。这个软件功能丰富,界面友好,是玩3D打印机入门的好选择。今天我就给大家介绍一下这款软件。

Repetier-Host软件目前版本是1.0.6(打印虎本地下载百度云下载)。我们在【打印虎】RepRap Prusa i3 3D打印机软件安装图解教程 第二版中,介绍了如何安装、设置这个软件,还有如何连接3D打印机。所以这里我就不再重复介绍了。需要说明的是,以下所有截图来自于Repetier-Host的上一个小版本1.0.5,由于这个软件升级比较频繁,这两个小版本之间界面上也没有什么差别,因此就不再重新截图了,请大家谅解。

假如你已经安装好软件,并且设置好了与3D打印机的连接,我们就可以开始了。Repetier-Host软件主界面是这个样子的:

image001

虽然界面看起来比较简单,但实际上Repetier-Host具有很丰富的功能,是一个相当复杂的软件。下面我逐步介绍给大家。

第一节,模型的载入和查看

既然是玩3D打印机,那一定要有3D模型啊。Repetier-Host软件可以载入已有的3D模型。虽然没有3D建模软件3ds Max之类的强大功能,但它也可以对3D模型做一定的调整。想了解Repetier-Host有哪些功能,可以跟着我一步一步做:

第一步,载入一个模型

按下窗口左上角的“载入”按钮,就可以打开文件选择对话框,载入一个模型文件了。

image002

Repetier-Host支持很多种格式的3D模型文件格式。其中最常见的还是.stl格式。.stl格式是一种非常简单的3D模型文件格式,而且是基于文本的格式。对于特别简单的.stl文件,甚至可以直接用文本编辑工具打开查看、编辑。.stl格式具体是怎样的,以后打印虎会再独立介绍。现在,我们只要知道Repetier-Host是支持.stl格式的模型就可以了。

这里的例子是我从打印虎3D模型库下载的“坐着的猫”3D模型。下载这个文件之后,就可以用Repetier-Host打开了:

image003

最容易发现的是,左侧的3D窗口里面,猫模型已经被载入了。另外,右侧的模型列表中,也出现了相应的一项(红圈圈里面)。这时候如果按下键盘上的F4键,可以将视图状态调整为“适合打印体积”视图,如下图。反之,需要近距离观察模型的话,就再按下F5键,变回“适合对象”视图。

image004

在“适合打印体积”视图下,有一点需要特别注意到。那就是左侧的3D窗口,与一般的3D建模软件有些不同,它的辅助平面上面有一个框框。这个加上框框的辅助平面,形成了一个立方体,代表的就是你的3D打印机所能打印的最大范围。如果3D打印机的设置是正确的(还是要看之前那篇文章哦),那么就代表只要3D模型在这个框里面,就不用担心3D模型超出可打印范围,打印的过程中出问题了。

第二步,使用各种角度各种方法观察模型

image005

缺省状态下,工具栏里面的“旋转”是激活的状态,这代表我们可以用鼠标旋转这个模型,在不同的角度查看它。尝试在3D窗口里面按下鼠标左键,不松手的情况下拖动鼠标,就可以看到整个3D盒子跟着鼠标的方向转动了。

如果鼠标有滚轮的话,还可以同时缩放这个模型。可以发现,不论是旋转,还是缩放,都是以3D盒子的中心点为中心进行的。盒子的中心点处,有一个小小的星作为标示。

如果我们不想以盒子的中心为中心进行缩放操作,而是想以模型为中心,放大观察模型的话,就需要用到工具栏的第二个按钮,平移功能了。

image006

选定平移功能,把鼠标放在3D盒子上,按下鼠标,不要松手,往上移动鼠标,完成一个鼠标拖放的动作。把表示中心的星大致对准猫的身体。再使用鼠标滚轮,这时可以发现缩放操作变为以猫模型为中心的操作了。

再把工具栏调整回“旋转”,用拖放的方式改变模型角度。可以发现,这时的旋转中心,已经变为平移后的中心了。这时候,再通过旋转、缩放的方式观察模型,就方便多了。

image007

其实,也许你已经发现,与其这么麻烦从“适合打印体积”视图开始调整到合适的位置,不如直接按下F5键,从“适合对象”视图开始调整。因为在“适合对象”视图下面,旋转中心直接被设定在了对象的中心处。不用平移了,只要旋转就可以达到合适的角度,这个动作一下子就容易多了。

下面的第三个按钮等会再说。先说第四个按钮。

image008

第四个按钮就是用鼠标左键完成缩放功能。其实和刚才我们已经用了的滚轮功能完全一样,只是方便那些没有鼠标滚轮的人。(image009真的还有这样的鼠标吗?)

再下面三个按钮,实际上就是方便用户,快速将视点重置到一个特定的位置上。实际上,视图菜单里面不仅有这三个按钮,而且还有更多的选择。大家可以逐一试试。前面我们已经反复试验过的F4/F5快捷键,在这里也有对应的菜单选项。

image010

再回到3D窗口的工具栏,最下面一个是平行视图按钮。按下这个按钮之后,3D窗口将从缺省的透视投影状态变为平行投影状态。以这种方式观察模型,就不是近大远小了,感觉不是那么真实,但也有一些好处,比如更容易测量、比较两条线的长短。学过机械、建筑的同学自然就懂了。

image011

所有这些按钮,除了那个没介绍的第三个按钮,都是只看不改的。也就是说,改变的只是视点的位置,不会对模型产生任何实际影响。记住这一点,就可以乱来了。额,不是,是不怕乱来了。不管现在的视点状态如何奇怪,按下视点重置的三个按钮之一,或者直接按下键盘F4/F5键,都可以将视点复位。

第二节,模型调整

上面一节,讨论的都是如何有效地观察3D模型。其实,如果你对3ds Max建模工具熟悉的话,这些都是很简单的基础了,和3D打印关系不大。

这一节,我们要深入讨论一下与3D打印直接相关的模型调整方面的功能。首先我们先试试工具栏上的第三个按钮“移动物体”。

image012

按下这个按钮,再拖动3D窗口里面的猫模型,就可以看到猫在X-Y平面上移动了。与很多3D软件不同,这个移动物体功能,不论观察的位置、角度如何变化,都不会在Z轴上改变物体的位置,只是在X-Y轴上移动。很明显,这与3D打印过程中的实际(物理)限制是密切相关的。不管最终是什么样的模型,打印时也必须建立在Z为0的打印平面上。

在较旧的Repetier-Host版本(1.0版以前)中,用户仍然可以沿Z轴手动调整3D物体位置。但也许是由于这个功能用处太少了,在最新版本中已经找不到了。如果你真的需要这样的功能,也许说明你的3D模型文件还没有完全准备好,最好回到3D建模工具里面再调整一下。

其实,X轴和Y轴方向的平移,也并不是特别常用的功能。当载入多个模型的时候,Repetier-Host会自动帮我们搞定平移的事情。当我按下物体放置面板上面的“增加物体”按钮

image013

再载入一次猫模型的时候,就可以看到原来的猫被平移了一点,新的猫被放置到了合适的位置上。

image014

当然,“增加物体”功能,主要还是为了再载入一个不同的模型用的。如果要的就是相同的模型,只要按下“复制物体”按钮就行了。

image015

大多数情况下,自己平移3D模型的意义不大。还不如载入所有的模型之后按下“自动布局”按钮,让Repetier-Host自行安排每个3D模型的位置。

image016

下面几个功能,只能针对一个3D模型进行操作。当我们已经载入了2个模型之后,应该怎么办呢?很简单,在下图所示的3D模型列表中,鼠标单击蓝色的区域,就可以实现只选定一个3D模型了。

image017

试一下之后,你就会发现,虽然选定一个3D模型很简单,但如果想恢复为初始的两个3D模型都选定的状态就没那么容易了。其实这也好办,你只要按住Ctrl键,再用鼠标单击那个没选定的3D模型,一下子就搞定了。两个3D模型的情况学会了,更多3D模型的操纵也难不倒你了。

好,搞明白如何选定一个3D模型,我们就回到3D模型调整功能的学习上来。选定“对象组1”之后,按下“物体对中”按钮。

image018

这时候,左侧3D视窗里面看到的两个猫模型是这样的:

image019

由于我们把“对象组1”的猫模型居中摆放,它不可避免的和“对象组2”的猫模型相交了。这种相交,会导致两个模型都无法正常打印,因此是一定要避免的情况。出现这种情况时,Repetier-Host为了提醒用户,特别把模型用很亮的浅蓝色绘制出来。除了相交的情况,如果你的3D模型出界了,也就是进入了可打印范围之外的区域,同样也会变为这样的颜色。

想解决这个问题,也很简单。只要如上面说的方法,在按下Ctrl键的同时,鼠标单击“对象组2”,把两个对象组同时选定,然后再按下前面已经介绍过的“自动布局”按钮,一切就都恢复原状了。

再下面,是“缩放物体”功能。

image020

按下这个按钮后,会在物体放置面板上增加一块控制面板,供用户输入缩放数据。

image021

有的时候载入的模型尺寸不对,太大或者太小,这时候就需要使用缩放功能了。缺省情况下,X, Y, Z三个轴是锁定的,也就是在X里面键入的数值,比如1.2倍,会同时在三个轴方向上起作用。

image022

如果用鼠标点一下锁图标,把锁打开,就可以分别调整三个轴的缩放比例了。

右边的两个按钮,“缩放到最大”和“复位”,含义都非常明确,就不再具体讲解了。

“旋转物体”功能与上一个“缩放物体”功能很类似,也是展开一块控制面板,供用户输入旋转数据。

image023

按下旋转物体图标,打开旋转物体控制面板。

image024

旋转物体的时候,可以参考3D视窗左下角的坐标轴方向,如下图。对话区域中的XYZ数值,意义是沿着XYZ轴旋转的角度值。通过设置这些数值,可以实现你需要的旋转角度。

image025

右侧的“放平”功能,是一个比较高级的功能。这个功能是Repetier-Host帮助用户计算当前状态的物体旋转能尽可能的贴近打印平面。计算后的旋转角度,会自动填入到XYZ输入框中。“重置旋转”就很简单了,只是把0重置到XYZ输入框,让3D物体恢复到没有旋转之前的状态。

先跳到最后的按钮,“镜像”功能上。这个功能就很简单了,只是把3D物体做镜像处理。本来向左偏的猫头,会改为向右偏。这个功能就没有可用的参数了。

image026

再回过头来看神奇的“切割物体”功能。

image027

这个功能,可以指定一个切割平面,3D物体会被这个切割平面分为两部分,一部分展示出来,另一部分消失掉。但千万别以为3D物体被修改成了这个样子。仔细查阅了英文文档之后,虎哥我确定了一个悲惨的现实,就是这个功能只能看不能用。也就是说,用户只能通过这个功能增强对3D物体的查看,而不能对3D物体进行修改。这……真是一个神奇的功能啊。

image028

最后还有一个基础功能,就是3D模型对象的删除。这个功能也很简单,只要按下上图红圈内的小垃圾桶,即可删除对应的3D模型了。

上面逐一介绍了Repetier-Host为用户提供的模型调整功能,其中最有用的就是平移和缩放功能了。很明显的是,虽然这些功能都为了方便用户使用而设计,但也相对比较简单,不能处理复杂的情况。如果有对3D模型比较复杂的修改要求,建议还是使用3D建模工具完成。

实际上,上面的讲解中,我还省略了很多Repetier-Host提供的高级功能的介绍。这些功能主要包含了对多挤出头3D打印机的支持,以及一些计算得到的模型信息。对这些高级功能真正感兴趣的用户比较少,就留给大家自己发掘吧。

第三节,切片与代码生成,使用Slic3r

把3D模型载入,放置到合适的位置上之后,下面就该执行“技术含量”最高的一项工作了,那就是模型切片。这步操作,实际上就是把用三角面片描述的3D模型,通过特定的算法,翻译为3D打印机能执行的指令组。这个3D打印机指令翻译算法非常关键,它决定着3D打印出来的东西形状是不是够精细,速度是不是够快,塑料材料是不是够省等等一系列关键指标。

了解了这些内容,就知道这一步是很重要的了。废话少说,先切换到切片软件面板观察一下。

image029

可以看出这里的配置还是很复杂的,这里我们先看红圈圈住的几个关键点。我们在上面已经提到,切片生成算法是个很高科技的东西。这么高科技的东西,自然就会有人对它进行专门研究。就像有人专门制造汽车,有人专门制造引擎,同一个汽车,还可能配不同厂家制造的引擎。这里也是类似的情况。“切片软件”那里,就是对切片引擎的选择。Repetier-Host安装的时候,带了两个不同的切片软件。这一节我们先介绍缺省的Slic3r,下一节我们会介绍另一个切片引擎CuraEngine。

截图最下面的红圈圈,是一个Repetier-Host给出的提示信息,说明Slic3r是一个独立的软件,可以在它的网站http://www.slic3r.org访问到更详细的信息等等。

好,选定了Slic3r,就可以按下image030按钮了。按下这个按钮之后可能不会立即有反应,可能要稍微等个10秒钟左右,Slic3r的主窗口才会弹出来。如果你是第一次进入Slic3r,同时弹出的还有Slic3r的配置向导窗口。因为配置向导中包含了所有最重要的配置信息,因此我们就从这里开始看。

image031

首先是第一页,欢迎页,没什么特别的,直接点Next。

image032

第二页,选择固件的G-code风格。就像大家说话南腔北调一个道理,虽然3D打印机各种固件都使用G-code与上位机交换信息,但仍然存在很多种不同风格的G-code。如果上位机和固件使用的G-code风格不同,就可能造成无法正确理解对方的意思。因此这个选择是很重要的。因为我们使用的都是RepRap类型的3D打印机,当然选择第一项了。点Next继续。

image033

第三页是热床尺寸。这个很简单,大家按照实际尺寸填写就可以了。点Next继续。

image034

第四页是加热挤出头的喷头直径。这个值通常在0.2到0.5之间。大家根据自己的实际情况填写。我使用的3D打印机加热挤出头是0.4mm直径,因此把这里改为0.4,点Next继续。

image035

第五页是塑料丝的直径尺寸。塑料丝目前有两种标准,3mm和1.75mm,我的3D打印机使用的是1.75mm塑料丝,把输入框中的数字改为1.75,点Next继续。

image036

第六页是挤出头加热温度。上面的提示写,PLA大约要设置在160℃到230℃,ASB大约要设置在215℃到250℃。粗略一想,这范围也太宽了点吧,特别是PLA材料,竟然有上下70℃的范围。但这实际上是符合虎哥我的经验的,不同耗材厂商供应的材料差异很大,同时大部分3D打印机的温度感应器都没有仔细校准过,因此这里只能是根据大家自己的试验,找出最合适的温度值了。需要注意的是,如果打印PLA耗材时温度过高,会产生焦化的现象并且堵住喷头,这就比较麻烦了。因此我建议还是从比较低的温度开始进行试验,对于PLA材料,初始设置在185℃可能是一个比较合适的值。如果发现无法顺利出丝,再适当调高温度。根据自己的情况设置好加热温度之后,点Next进入下一步。

image037

第七页是设定热床温度。这个就简单很多了,我使用PLA材料,就填入数字60,点Next继续。如果你用ABS材料,填入110就好。

image038

最后一页没有需要设定的参数了。按Finish结束整个设置。

到此为止我们已经完成了切片软件所有最基础参数的设置。进入主窗口之后,我们先简单浏览一下。Slic3r的主界面有三个标签页。Print Settings用来设置打印相关的参数;Filament Settings用来设置与耗材相关的参数;最后Printer Settings是关于打印机的硬件参数。

image039

先看最后一个标签页Printer Settings,很容易发现,我们刚刚在向导里面设置的G-code风格以及打印机热床尺寸参数,都在这里了。

点左栏窗口的Extruder 1,看看挤出头的参数设定:

image040

在挤出头的设定中,可以看到刚刚在向导中设置的0.4mm参数。

下面切换到第二个标签页,看一下耗材相关的参数:

image041

这里又可以看到最初在向导中设定的耗材塑料丝直径1.75mm,以及185℃/60℃的挤出头/热床温度设定。

到此为止,所有设置向导中出现过的参数,我们都在主窗口中找到了对应的地方。除了这些最基础的参数之外,还有哪些参数比较重要呢?下面我们再看一下第一个标签页。

image042

我们回到第一个标签页,Print Settings,与另外两个标签页类似,左侧是一组打印相关的参数类型,目前在Layers and perimeters上。右侧主窗口第一栏就是一个重要的参数,层高(Layer height)。为了达到最好的效果,层高最大不应该超过挤出头喷嘴直径的80%。比如我使用的0.4mm的喷嘴,这里最大可以设定为0.32mm。由于我们使用了Slic3r向导设置了喷嘴的直径是0.4mm,层高这里就被自动计算成了现在的值0.3mm。很明显这是符合我的需要的,我就不需要再修改了。

如果你使用一个非常小的层高值(小于0.1mm),那么第一层的层高就应该单独设置。这是因为一个比较大的层高值,使得第一层更容易粘在加热板上,有助于提高整体3D打印的质量。在这里我的层高值并不是一个特别小的值,因此首层层高没有使用更大的层高值,实际设定与层高相同,0.3mm。

Slic3r切片软件可以自动计算挤出头喷嘴直径和层高之间的关系,调整实际挤出的塑料量。因此层高是没有下限的,根据RepRap wiki上的说法,即使设置到0.005mm也是没有问题的。

image043

设置完成之后,左上的下拉列表中,就会显示出如图的“My Settings (modified)”字样。My Setting是当前配置的名字,(modified)代表这个配置刚刚被修改了,需要点击右侧挨着的保存按钮,就可以把修改后的配置保存下来了,同时(modified)也就消失了。

在最重要的地方设置好了之后,我觉得还有必要了解一下一组比较常用的配置项,填充Infill。在左侧选择Infill条目,窗口右侧会出现如下图所示的选项。其中填充密度、填充图样都可以根据具体的需求进行调整。我建议大家可以多试验几种方案,看看打印出的3D模型有什么不同。这里可以提示大家一下,由于PLA本身有一定的透明度,因此填充率对打印出的塑料件的质感有很大的作用。如果不嫌浪费材料,可以尝试用100%填充率打印一些模型,会有惊喜哦。image044

至此,所有关于Slic3r的基础设定都完成了。关闭Slic3r的配置窗口,回到Repetier-Host主窗口,现在我们可以点击那个巨大的“开始切片Slic3r”按钮了。

image045

按下之后可以看到界面变为以进度条为主的状态了,等待进度条跑完。

image046

代码生成过程完成之后,窗口会自动切换到预览标签页。

image047

可以看到,左侧是完成切片后的模型3D效果,右侧是一些统计信息。在我们这个例子中,需要52分48秒之久才能完成这个模型的3D打印。

这里还有一项非常有用的高级功能,就是逐层预览3D打印的方式。当我选择“显示指定的层”并设定结束层为40的时候,我们就可以观察到第40层及以下的模型。这里我们可以清晰的看到3D模型内部为了填充所使用的蜂窝状网格。

image048

我们还可以选择Gcode编辑子标签,直接观察、编辑G-code代码。

image049

这个标签页的内容,就是我们的3D模型经过切片之后得到的G-code了。这些G-code在打印过程中被传送到3D打印机,逐条执行之后,一个完整的3D模型就生成了。

关于G-code,未来打印虎会单独写一篇教程说明,请关注打印虎的更新内容。在第五节中,我们会说明如何把G-code送到3D打印机,完成整个3D打印任务。

第四节,切片与代码生成,使用CuraEngine

CuraEngine的加入实际上是Repetier-Host 1.0版最重要、最吸引人的改进。CuraEngine原本是在Cura 3D打印机控制软件中自带的切片功能,而Cura软件最吸引人的特色,就是它的高速切片功能。很多3D打印机爱好者,就因为Cura切片功能特别好用,会不惜繁琐,先使用Cura进行切片,然后再把G-code导入Repetier-Host进行打印。从这一点,就可以看出Cura的切片功能是多么的受欢迎了。

他山之石,可以攻玉,既然Cura和Repetier-Host都是开源软件,那么好的功能自然也要与大家分享了。从Repetier-Host 1.0版本开始,开发者充分满足了玩家的心愿,把好东西集成到了一起,让3D打印机玩家不用再麻烦地在Cura和Repetier-Host之间切换,而是一站式服务,在同一个界面下完成所有的操作。

image050

为了使用这么神奇的CuraEngine进行切片,我们首先回到切片软件面板。在切片软件选项下,选择CuraEngine作为我们下面要使用的切片软件。同样,按下image030按钮,这时候CuraEngine的设定页面将会在窗口的左侧出现,而不是类似Slic3r那样弹出一个新的窗口。

image051

下面的两个选项应该是打印机的热床尺寸和加热挤出头的喷头直径。这两个选项CuraEngine并没有再独立列出来,而是直接采用了Repetier-Host的全局设置。这个设置在哪里呢?很简单,按下Repetier-Host主窗口右上角的打印机设置按钮。

image052

打印机设置对话框将弹出来,切换到“打印机形状”这个标签页,就可以看到与Slic3r热床尺寸对应的打印区域了:

image053

实际上,这是我们在文章最开头就假定大家已经设置好的部分。如果你发现这里使用的参数与你的打印机不符,现在赶紧修改也还来得及。

这里另一个标签页“Extruder”就是专门用来设定挤出头的,其中就包含了挤出头喷头直径参数。

image054

确认了打印机形状(也就是热床尺寸)和挤出头喷头直径参数之后,点“确定”关闭打印机设置对话框,回到CuraEngine的设定标签页上。

点击“材料”标签页,这里我们可以设定材料直径、打印温度和热床温度几项。按照你的实景情况设定就好了。与上面介绍Slic3r时的情况一样,关于温度总是比较麻烦的一件事儿,需要大家用自己的真实材料试验几次才行。

image055

到这里为止所有基础信息都已经设置完毕。下面一项比较关键的设置项是3D打印层高。在“打印”选项卡的“速度和质量”子选项卡里面可以设定:

image056

设定时,首先点击左侧蓝色的条目,否则右侧编辑框是灰色的,处在不能编辑的状态下。编辑框由灰色变为白色,就可以改写名称(只是助记,取任何名字都可以),层高以及第一层层高了。

全部配置完成后,点击“保存”按钮,就会保存刚才的修改。再点击右上角的“关闭”按钮,关闭CuraEngine设定选项卡。

细心的朋友可能发现了,对应于上面Slic3r的介绍,这里并没有讲解如何设置填充率。实际上,因为填充率的修改是一个很常见的操作,所以CuraEngine的设定中把这个选项提到了外侧。回到窗口右侧的“切片软件”选项卡:

image057

可以看到填充密度选项直接列在了这里。这下大家可以更加方便地修改了。

全部设定完成后,就可以按下开始切片CuraEngine按钮了。

image058

按下按钮之后最大的变化,就是比Slic3r切片软件速度快了很多。经过我的对比,对于猫模型来说,在我的电脑上Slic3r要花7秒钟完成切片,而CuraEngine只需要2秒钟就完成了。对于更复杂的模型来说,效果会更加明显,有时候CuraEngine会比Slic3r快10倍以上呢。

切片完成之后,就回到Repetier-Host的领域了。同样的预览功能,与上面介绍的完全一样,我们这里就不再重复了。

第五节,运行任务

我们在另一篇教程【打印虎】RepRap Prusa i3 3D打印机软件安装图解教程 第二版中,专门介绍了如何连接电脑和3D打印机。3D打印机光连接好还不够,正式打印任务之前应该先进行基本的校准,这个可以参考【打印虎】RepRap Prusa i3 3D打印机热床找平图解教程。当你确定你已经准备好了之后,就可以开始在Repetier-Host中运行任务了。

运行任务本身很简单,首先确定Repetier-Host已经和Prusa i3 3D打印机连接好了。按下左下角红色的连接按钮,如果按钮的颜色变为绿色,说明电脑和3D打印机的连接已经成功。

image059

然后按下“运行任务”按钮,任务就开始运行了。

按钮按下之后,除了状态栏上有些基础信息之外,似乎程序没什么动静。是出什么问题了吗?其实没有问题,打印最开始的阶段,实际上是在加热热床和挤出头。因此也就没什么声音,挤出头可能也不会移动。目前加热的状态,可以从状态栏上看到:

image060

可以看到,除了加热的状态,状态栏上还有打印时长信息,以及当前打印的层的信息。所有跟3D打印相关的最基础的状态信息,都可以在这里看到了。

如果嫌状态栏显示的信息还不够,可以切换到“3D窗口”标签页旁边的“温度曲线”标签页。这个窗口中,包含了非常详细的与温度控制相关的信息。

image061

这张图是我的打印开始不久的一张截图。下面我们来研究一下这张图里面的信息。

首先,我们看一下图例,了解一下这张图能告诉我们哪些信息。

第一条,红色的曲线,表示挤出头的温度。图中这条曲线快速上升,说明目前正在对挤出头进行加热,刚刚达到目标的185℃。

第二条,青色的曲线,表示热床的温度。这条曲线在前面从22℃左右上升到60℃,并且维持在60℃一小段时间了。

第三条,浅绿色的曲线,表示目标温度。目标温度的实际线有两条,都是绿色,但还有点深浅不同,一条从0直接指向185℃,另一条从0指向60℃。这两条线都不是渐变的,而是直接指向目标温度。

后面几项下一张图继续解说。

image062

这一张图,是3D打印过程已经进行了10分钟左右的状态。可以看出,挤出头、热床的温度已经分别稳定在了目标温度上。

第四条,橙色的粗线,表示挤出头的平均温度,可以看出这个就比较稳定了。

第五条,深绿色,表示挤出头的“输出”。所谓“输出”,大体上可以理解为这个加热器的开/关状态。整个图的第二栏可以看出,加热器并不是一直处在打开的状态,而是时开时关,保证温度大体稳定。

第六条,深绿色,表示热床的“输出”。与上面挤出头输出的概念相同。

这个图最上面标题处,一直维持着一句“已过60分钟”,实际上这里是一个翻译得不太好的地方,原本的英文是Past 60 Minutes,翻译为“过去的60分钟”似乎更妥当。它的意思是Repetier-Host的数据展示是以过去的60分钟为基础的。在“温度曲线记录时长”选项中,除了这种模式之外,还可以选择以自然时间整小时为基础的数据展示方式。需要注意的是,当选择了以自然时间整小时为基础的数据展示方式时,右侧的“温度视窗时间缩放”选项一定要改为60分钟,否则产生奇怪的效果,明明有记录但却无法展示出来。

image063

这个时候,猫模型的底座基本上已经打印好了。

如果你的打印机不出问题,后面的打印过程就没什么特别的事情了。随着时间的推移,塑料模型被一层一层垒高,逐渐成型。一个小时过去了,整个模型逐渐显形,最终的成果给大家展示一下。

image064

第六节,手动控制

在完成了整个3D打印的过程之后,我们已经对Repetier-Host 3D打印控制软件有了一个基础的了解。整个软件里面,我们没有用过的地方已经不多了。最后一个大块的功能,就是我们这一节将要讲解的,手动控制功能。

在电脑和3D打印机断开连接的情况下,手动控制是关闭的。必须先连接上3D打印机才能开始使用这些功能。

image065

连接成功之后,把右侧窗口切换到“手动控制”面板,可以看到这样的界面。如果你屏幕不够大,可能只能看到这个窗口的一部分,使用右侧滚动条上下滚动窗口即可。

image066

这个界面上,最上面的箭头和小房子按钮,都是用来手动调整挤出头位置的。现在可以试一下,先按下标记X的小房子按钮,如果一切正常的话,你的3D打印机应该在X方向复位了。

程序开始运行时,XYZ三个当前坐标值都是红色的。这代表所有轴向还没有复位过,这些坐标值只是估计值,还不能确定。如果按下一个方向的小房子按钮,这个坐标值就会变为黑色,代表这个轴向已经复位过了,之后的操作可以比较放心,不会“出界”了。

image067

再按下X/Y箭头的向右(也就是X正向)第三格,鼠标在这一格上面的时候,四个箭头中间就会显示出10,代表这一次将向X正方向移动10mm距离。按下试试看。需要提一句的是,Repetier-Host在这里的贴图明显出现了错误,最下面很多内容没有展现出来。不过还好,不影响使用,具体哪些被裁了一半的图标代表的是什么,相信你可以轻松地试验出来。

你可以再尝试按下其他按钮。我的打印机在每个方向上,负向都有轻触开关,步进电机不会越位,正向没有这样的硬件保护措施了。如果坐标值是红色的状态,就有可能产生“越界”的情况。如果已经复位,我们之前在打印机设置里面填写的打印机形状,就会在这里起作用。还记得吗?我的打印机是200mm x 200mm x 180mm的大小。这样,当你操作挤出头向X轴正向移动超过200mm时,Repetier-Host程序会自动忽略你的指令,不会超出这个预设的范围。

手动控制面板的下面一栏,是“速度倍率”。这一栏很简单,控制着打印头移动速度和挤出头挤出速度的倍率。以100%为基础,可以在一定的范围内设置。比如,我们把打印头移动色度倍率设为200,再尝试用上面的方法在X, Y, Z轴上移动,可以看出,打印头的移动速度明显加快了。

image068

接下来是挤出头相关的手动控制。在这里我们可以通过点最左边的黑白图标实现开关加热挤出头,图中的162.77℃和200这个数字分别代表挤出头的当前温度和目标温度。对于有多个挤出头的3D打印机而言,在这里还可以分别对每一个挤出头进行设置。当然,我的3D打印机上只有一个挤出头,因此只能对“挤出头1”进行设置了。

image069

除了加热,挤出头上还有一个步进电机,也就是E轴电机,控制着耗材的挤出、回退长度以及速度。按下图中的上、下箭头,就可以手动进行耗材的挤出、回退操作。我的建议是,不要在挤出头达到正常温度(对于我使用的PLA来说是185℃)之前,就对这里进行操作。那样的话,耗材本身肯定是动不了的,结果只会是挤出头里面的无谓磨损。另外,从图中可以看出,挤出操作又分了两种,对应了不同的挤出速度,当然,两个箭头的肯定更快一些啦。

image070

加热床这里就更加的简单了,只有开关这一种操作,同样是通过点击最左边的黑白图标实现。图中所示目前是关闭的。当然,仍然能看到加热床的当前和目标温度。

image071

最后就是风扇控制了。这里的风扇,指的不是加热挤出头上常开的那个风扇,而是侧面专门吹挤出头头部,可以控制开、关状态以及风速的那个风扇。打开这里的按钮试试就知道了。

image072

当然,手动控制这里,还有一个大杀器,就是最上面的一行,直接发送G-code。这个内容比较专业,我不打算在这里详细讲解了。

image073

这已经是我们这篇教程里面第二次提到G-code了。看来G-code确实是比较重要的内容,想玩好3D打印机一定要对G-code有一定的了解。想知道G-code是什么,如何读懂甚至直接写出G-code代码,请继续关注打印虎未来的内容更新。

最后祝大家玩机愉快,想看更多的打印虎教程,请访问打印虎原创教程专区。

联系打印虎 QQ 2404959972

【打印虎】RepRap Prusa i3 3D打印机软件安装图解教程 第二版

最近闲来无事,安装了一台RepRap Prusa i3。硬件很容易就安装好了,软件部分看起来比较麻烦,怎么搞呢?

第一步,开机

第一步当然是打开3D打印机了。对于很多Prusa来说,所谓的“打开”,就是把电源插在接线板上,这些简易版本的3D打印机并没有一个开关按钮。如何判断电源是否已经连接了呢?一个办法是观察打印挤出头上的风扇。这个风扇是常开的,所以只要电源连接好了,这个风扇就应该工作了,能够看到扇叶是转动的,而且多多少少会有些噪音。

image001

另一个方法就是观察电路板了,电路板上有一个LED,可以指示电路板是否已经接通电源。下图箭头指的就是Melzi电路板上的电源指示灯的位置。如果你用的是Arduino + RAMPS电路,Arduino MEGA 2560电路上也有相应的LED,就不给图了。但这个方法有一个缺陷,这个LED灯是否是亮的,除了电源是否插好之外,还取决于固件的版本和行为。有些固件即使在正常工作的状态下,这个LED也不会亮起来。因此,这个LED只能作为Prusa 3D打印机是否加电的一个参考,并不是决定性的标志。

image002

第二步,给Melzi安装USB驱动

这一节我们首先需要说明的是,不同的硬件,对应着不同的USB驱动程序。如果你的3D打印机使用了Melzi电路板(如上图所示,如果你的3D打印机电路板看起来不太像,那肯定不是Melzi了),那么你应该阅读这一节。如果你的3D打印机使用的是Arduino + RAMPS,那么直接按照下一节提到的方法就可以搞定USB驱动了。如果你使用3D打印机电路更加小众一些,不是这两者之一,那这里的方法只能供你参考,具体如何安装你的USB驱动只能找卖家或者自行百度搜索解决了。

另外,这里只介绍在最常见的64位Windows 7系统下的安装方法,以后有机会再介绍其他操作系统。

在安装驱动程序之前,要先把开机之后的3D打印机用USB线连上电脑。第一次用USB线把Melzi电路板的3D打印机和电脑之后,屏幕右下角会出现提示:

image003

Melzi电路板的USB接口,采用了FTDI公司的FT232R芯片。这款芯片现在已经得到了微软Windows 7操作系统的充分支持,不再需要用户手动安装驱动程序。用户需要做的,仅仅是把Windows电脑联网,打开Windows Update就可以了(缺省就是打开的)。

因为Windows需要从网络下载最新的驱动程序,因此这里需要等一会。驱动自动下载安装完成之后,Windows会提示

image004

这就代表Melzi的驱动程序完全安装好了。如果你已经不是第一次插入3D打印机,Windows就不会再这样提示了,而只有一个USB设备插入的音效。这种情况下,我们可能会想在Windows系统里面确认一下已经安装好的设备。要确认3D打印机已经连接好了,可以在开始菜单中,用鼠标右键单击“计算机”,再选择“管理”菜单。

image005

这时“计算机管理”窗口就打开了。单击“计算机管理”窗口左侧的“设备管理器”,再展开右侧的“端口(COM和LPT)”以及“通用串行总线控制器”两组。这时候3D打印机所提供的两个设备,一个是USB串口转换器(USB Serial Converter),另一个是串行口(USB Serial Port (COM3)),都已经安装好了设备驱动,如下图所示。

image006

如果两个设备都显示为正常,那就说明设备驱动程序安装成功啦。当然,根据具体环境的不同,USB Serial Port不一定会对应COM3,也可能是COM2,或者COM5,这都是有可能的。你需要记住你的USB Serial Port对应的COM口编号,后边还要多次用到的哦~

驱动安装好了,意味着电脑和Prusa之间的通信通道已经打开,它们随时可以对话了。对话的内容,当然是围绕着3D打印啦,比如电脑会通知Prusa,把打印头移动到某个特定的地方,或者现在开始加热挤出头,之类的。Prusa也会回答电脑的提问,比如加热板、挤出头现在的温度,等等啦。当然这些对话的内容是有严格的规范的,电脑和Prusa两边也必须同时了解这些规范。假如通信的两边对话的基础语言都不同,出错就在所难免了。你可能已经有所了解,这种电脑和3D打印机之间的语言,就是G-code。关于G-code的细节,不是我们这里的内容,未来我们会写专门的文章对此进行介绍,如果你对此有兴趣,可以关注打印虎原创文章。

刚才已经提到,Melzi电路的USB接口芯片,是FTDI公司出品的FT232R芯片。这种芯片应用十分广泛,也同时被很多小厂商山寨。2014年10月开始,很多使用Melzi以及其他用FT232R进行USB连接的设备用户都发现,自己的设备无法被Windows识别了。经过论坛上大家的讨论和分析,现在一个大家比较认可的说法,是微软和FTDI公司为了打击山寨盗版产品,修改了山寨FTDI USB芯片的USB产品识别代码(USB Product ID),这样设备就无法直接使用FDTI公司提供的驱动程序了。驱动安装不上,自然设备也无法被识别了。

如下图所示,如果你的Melzi插到电脑上之后是这样的,驱动程序没有被Windows自动安装好,在“设备管理器”中点开设备,“详细信息”面板,属性下拉菜单改为“硬件Id”,观察“值”列表,如果与图中所示相同,第一行是USB\VID_0403&PID_0000&REV_0600,那么恭喜你,你用的Melzi板子上焊的FT232R芯片就是山寨货了。

image007

为了解决这个问题,我们只好用手工安装的方式,安装一个改版的FTDI驱动。如果你需要这个驱动,可以从这里下载CDM_2.08.28_R.zip(打印虎本地下载百度云下载)。这个驱动也没有合法的数字签名,安装过程中Windows会弹出红色的警告框,如果你安装了360安装卫士之类的软件,还可能在安装过程中被杀死。唉,谁让这是山寨货呢,只好凑合了。安装的详细过程可以参考【打印虎】Melzi USB设备不能识别解决办法。这里就不详细介绍了。

第三步,给Prusa刷固件

看到这一步的标题,可能就人就有问题了。什么叫“固件”啊?看起来好神秘的样子。其实固件一点也不神秘,所谓“固件”,其实就是芯片里面的软件。相比于电脑里面的软件,芯片里面的软件修改起来更加麻烦,需要专门的工具才能做到,看起来是“固定”的,所以就得到了“固件”(Firmware)这个名字。

上面说了,电脑和Prusa两边的通信,必须精确地符合同一种规范,3D打印机才能有效的工作。保证两边符合同一种规范最好的方法,就是两边同时用已经被验证兼容的软件、固件版本。当前3D打印机发展比较快,可能过不了几个月,原来的规范就会被新版规范所代替,因此给Prusa刷固件,也就是升级,就成了一项必须的工作。

因为Prusa上可以操作的界面很有限(image008真的有可以操作的地方吗?),因此刷固件这件事,还得借助电脑才能完成。光有电脑还不行,还需要专门的软件工具,这个刷固件的工具就是Arduino软件环境了。这个软件环境的尺寸可不小,大约有52M。我下载使用的是最新稳定版本arduino-1.0.5-r2-windows.exe(打印虎本地下载百度云下载)。

下载完成之后,运行起来,安装界面是这样的。这里点“I Agree”按钮,接受Arduino的用户协议。

image009

如果你用的是Melzi,在上面一节已经安装好了驱动程序,则在选择安装组件的页面上,可以把Install USB driver的勾去掉,这样就不用安装Arduino自带的USB驱动了(这个USB驱动与Melzi是不兼容的,安装了也没有用)。但如果你用的是Arduino + RAMPS电路板的3D打印机,这里就是你的驱动的安装方法了,一定要打勾再继续哦。点Next继续。

image010

下面是选择安装路径

image011

我就在缺省的C盘安装了。这时候按下Install开始安装。安装到最后,出现这个窗口

image012

按下Close按钮,Arduino安装过程就全部完成了。这时,我们可以在桌面找到Arduino的图标,并双击打开它:

image013

Arduino软件运行起来的样子:

image014

话说Arduino其实是一大家子,Melzi只是个养子,不是亲生的就没有地位啊,想要给Melzi刷固件,光有Arduino环境还不够,还需要加一套与硬件相关的配置文件sanguino_melzi.zip(打印虎本地下载百度云下载)。

把zip文件下载下来,解压,拷贝到C:\Program Files (x86)\Arduino\hardware目录下,就是图中那个sanguino文件夹了。

image015

有个这套与硬件相关的配置文件,再重新启动Arduino,就能在Arduino的菜单里面看到一个新菜单项了。看到了菜单最下面的Melzi 1284p 16mhz了吗?就是它。别忘了选定它!如果你打开之后这个菜单项没有出现,说明前面一步做错了,回去再检查一下吧。

image016

刷固件工具Arduino准备好了之后,就该准备固件程序了。由于Prusa是完全开源的3D打印机,各种变种特别多,所以固件是否适合你的打印机,是一个比较麻烦的问题。这个问题打印虎已经写过两篇文章,【打印虎原创】Repetier-firmware深度配置图解教程专门介绍了一种常用固件Repetier firmware的配置,【打印虎原创】RepRap_Prusa_i3_3D打印机固件Marlin_firmware配置教程则介绍了另一种非常常见的固件Marlin。如果这两篇文章还不能满足你,请在网站上查找打印虎QQ并加我,如果需求量比较大我会尽快写教程满足大家。

不论哪种固件,下载、配置完成之后,会得到一个本地目录。我为了后面的文章方便,假设固件代码位于D:\PRUSAi3。现在,我们可以用刷固件工具Arduino打开它了。在Arduino的菜单上,选择File-Open…,在文件打开对话框中,把路径切换过去,双击进入PRUSAi3文件夹,往下拉滚动条,就能看到一个???.ino文件了。在这里,是PRUSAi3.ino文件,打开它。

image017

马上出现了一个新窗口,如图。这才是我们要的窗口。直接点Upload,也就是那个向右的箭头就可以了。

image018

实际上,在Upload之前需要先选择正确的COM端口。我的3D打印机连接在COM3上,你需要先确定你的3D打印机连接的端口号。如果你不记得了,参考上面的文章,回到设备管理器里面去看看应该就知道了。如图。

image019

COM端口选择好之后,点Upload按钮。注意右下角红圈里面的文字,Board设置和Serial Port设置这两项必须都正确才行。

image020

这一步需要的时间比较长,可能要等待一分钟左右,进度条消失的时候,如果你的结果跟我的一样,那说明Arduino刷固件成功了。否则,就是出问题了。比如这样:

image021

这是一个典型的出错的情况。说明COM端口指定错误,或者你的Prusa 3D打印机还没有连到电脑,需要检查一下先!

第四步,安装Repetier-Host软件

固件刷好之后,就意味着3D打印机已经完全准备好了。下面我们安装电脑端Windows上的控制软件Repetier-Host。安装文件是setupRepetierHost_1_0_6.exe(打印虎本地下载百度云下载)。需要说明的是,以下所有截图来自于Repetier-Host的上一个小版本1.0.5,由于这个软件升级比较频繁,这两个小版本之间界面上也没有什么差别,因此就不再重新截图了,请大家谅解。

下载完成之后,就可以开始安装了。先选择语言,好多种语言里面没有中文,只好选择英文了。(选择语言的这个地方有点诡异,这里没有中文的选择,但安装完成之后软件里面其实是有的,而且会自动与操作系统的语言做匹配,调整为中文界面)

image022

第一步简单介绍,按next进入下一步。

image023

第二步是许可条款,点“I accept the agreement”接受条款,按next进入下一步。

image024

选择安装的路径。我就在缺省路径上安装了。按下Next。

image025

选择需要安装的部件。缺省的选择包括主程序和两个切片器。保持缺省的状态就可以了。点Next继续。

image026

可以重新设定程序在开始菜单里面的名字。有这个必要吗?按下Next继续。

image027

是否在桌面上建立一个图标?建一个吧。点Next继续。

image028

正式安装前的信息总结。没问题就开始吧。点Install开始安装!

image029

很快安装就完成了,这时会看到

image030

点Finish就完成整个安装过程了。Repetier-Host会在安装完成之后自动启动。当然,以后你可以在桌面找到Repetier-Host的图标,鼠标双击启动它:

image031

第五步,Repetier-Host软件打印机设置

刚刚安装完成的Repetier-Host软件还不能直接使用,还需要根据具体情况进行配置。

首先是按下软件右上角的“打印机设置”按钮

image032

打印机设置对话框会弹出来:

image033

这个页面的关键,是画着红圈的几项。通讯端口,要选择为我们的3D打印机驱动安装时显示出的COM端口号。通讯波特率要设定在3D打印机固件使用的波特率上,对于Repetier-firmware来说缺省是115200,对于Marlin来说缺省是250000。连接时复位要选择“关闭”。

image034

切换到第二个面板打印机,关键点画着红圈的几个位置。一个是停机位,通常就设定在0, 0, 0处。然后是“任务中断结束后关闭加热床”,建议不打勾,也就是不关闭加热床。还有“任务中断结束后关闭电机”,建议打勾,方便手动操作步进电机进行调整。

这几个选项都不是特别关键的选项,不论设置为什么值,3D打印机都应该可以正常工作。

image035

第三个面板是加热挤出机(Extruder)。估计因为这个面板是新版本添加的内容,还没有来得及完整翻译,很多界面还是英文的。这个面板的关键是要设定挤出头的喷头直径。这是一个关键参数,要根据实际的情况设定好。

image036

第四个面板是打印机形状,也就是实际打印机的长宽高。根据打印机的实际情况设定就可以。我的打印机是200, 200, 180。

最后一个标签页“高级”通常用不上,所以到这里对打印机的配置就结束了。其中,最关键的还是第一个面板里面的内容。如果没填对,可能会造成电脑和3D打印机根本连接不上,所以一定要好好填写对。最后,按下“确定”按钮,完成整个设置过程。

第六步,手动控制测试

到这里为止,我们已经完成了所有的步骤!但要验证电脑和3D打印机是否确实连接到一起了,还需要简单测试一下。因为目标是检查电脑和3D打印机的连接是否成功,我们就不用打印复杂的3D模型了。这里我们介绍一下手动控制,用手动控制的方式进行这项测试。

回到Repetier-Host主界面,先按下左上角的连接按钮,等到按钮变绿,就代表连接已经成功了。这是还没有连接上的状态:

image037

这样就代表已经连接好了:

image038

然后把右侧窗口切换到“手动控制”面板,可以看到这样的界面。如果你屏幕不够大(像我一样),可能只能看到这个窗口的一部分,使用右侧滚动条上下滚动窗口即可。

image039

这个界面上,左上的箭头和小房子按钮,都是用来手动调整挤出头位置的。现在可以试一下,先按下标记X的小房子按钮,如果一切正常的话,你的3D打印机应该在X方向复位了。

image040

再按下+X箭头的第三格,鼠标在这一格上面的时候,四个箭头中间就会显示出10,代表这一次将向X正方向移动10mm距离。按下试试看。

image041

你可以再尝试按下其他按钮。我的打印机在每个方向上,负向都有轻触开关,步进电机不会越位,正向没有这样的硬件保护措施了,但我们之前在打印机设置里面填写的打印机形状,会在这里起作用。还记得吗?我的打印机是200mm x 200mm x 180mm的大小。这样,当你操作挤出头向X轴正向移动超过200mm时,Repetier-Host程序会自动忽略你的指令,不会超出这个预设的范围。

在这个界面上,还可以单独操作挤出头、加热床以及风扇等3D打印机部件,但这些都不是我们这个安装教程所关心的了。想要了解这些内容,可以看打印虎的另一篇教程,【打印虎】3D打印控制软件Repetier-Host使用基础图解教程 第二版,这里就不再继续深入了。只要你的打印机能连接上,基础的操作能够按照指令进行,就可以充分说明现在的连接是正常的了。

第七步,总结

经过一整套折腾,我的电脑和3D打印机终于快乐的生活在一起了。回顾一下,这里面需要的软件包包括:

文件名 描述
CDM_2.08.28_R.zip 山寨FTDI USB设备驱动程序
arduino-1.0.5-r2-windows.exe Arduino环境,刷固件工具包
sanguino_melzi.zip Arduino环境Melzi配置文件包
setupRepetierHost_1_0_5.exe 3D打印PC端控制软件Repetier-Host 1.0.5

所有的这些软件包,都可以在这里下载到(打印虎本地下载百度云下载)。

新买来的Prusa 3D打印机,仅仅是安装好,还不能直接开始进行3D打印。如果直接就开打,估计打出来的东西质量会很成问题。想得到高质量的打印结果,必须先对打印机进行校准。【打印虎】RepRap Prusa i3 3D打印机热床找平图解教程里面,详细讲解了校准方法,需要的话可以参考一下。祝大家玩机愉快~

联系打印虎 QQ 2404959972

【打印虎】Melzi USB设备不能识别解决办法

RepRap Prusa i3是一种开源软硬件设计,允许用户二次开发的3D打印机。目前这种3D打印机用户在国内越来越多,是一种非常受欢迎的机型。2014年10月以来,一部分RepRap Prusa i3 3D打印机用户发现,他们的3D打印机无法连接到PC上。打印虎也遇到了类似的情况,原本工作的好好的3D打印机,一夜之间就无法运转了。这可怎么办呢?

故障现象

出现问题的3D打印机,大部分都使用了Melzi电路板。

image001

这些3D打印机本来工作的很好,但十一假期过后,再通过USB连接到电脑上时,就出现了奇怪的现象。从设备管理器里面看,不再是安装好驱动的状态,而是变成了一个未安装驱动的设备状态。如图。

image002

设备上带有了惊叹号标志,代表目前没有驱动程序。双击设备,可以看到出错提示“该设备的驱动程序未被安装。(代码28)”。

很多朋友看到这种情况,反复重试几次,重新安装几遍FTDI CDM驱动程序,还是不行,就只好自认倒霉,认为是硬件坏了,找卖家商量维修的事儿了。

问题原因

经过分析,打印虎发现问题实际上是出现在Melzi电路板所使用的USB接口芯片上。Melzi电路的USB接口芯片,是FTDI公司出品的FT232R芯片。这种芯片应用十分广泛,也同时被很多小厂商山寨。2014年10月开始,很多使用Melzi以及其他用FT232R进行USB连接的设备用户都发现,自己的设备无法被Windows识别了。不光是国内用户,国外用户也广泛出现了问题。在国外论坛上,经过各方用户的讨论和分析,现在一个大家比较认可的说法,是微软和FTDI公司为了打击山寨盗版产品,修改了山寨FTDI USB芯片的USB产品识别代码(USB Product ID),这样设备就无法直接使用FDTI公司提供的驱动程序了。驱动安装不上,自然设备也无法被识别了。

如下图所示,如果你的3D打印机Melzi电路板插到电脑上之后是这样的,Windows自动安装驱动程序提示FTDI设备“未能成功安装设备驱动程序”。在“设备管理器”中点开设备,“详细信息”面板,属性下拉菜单改为“硬件Id”,观察“值”列表,如果与图中所示相同,第一项是USB\VID_0403&PID_0000&REV_0600,那么恭喜你,你用的Melzi板子上焊的FT232R芯片就是山寨货了。

image003

解决方案

知道了问题的原因,解决起来就比较容易了。由于只是USB设备的PID发生了改变,设备本身并没有任何变化,因此完全可以通过修改驱动程序inf文件的方法,搞定这个问题。

但修改inf文件毕竟比较麻烦,打印虎为了方便大家,专门提供了修改好的驱动程序包。这个驱动程序包可以适用于32位或者64位的Windows XP、Windows 7或者Windows 8操作系统。大家可以访问百度云网盘地址http://pan.baidu.com/s/1gdeQVmj,下载这个文件。下载得到CDM_2.08.28_R.zip文件之后,将它解压,假设我们把这个文件解压到D:\ CDM_2.08.28_R位置。下面回到设备管理器,在FT232R设备的对话框中,单击“更新驱动程序”按钮。

image004

在弹出的更新驱动程序对话框中,点击“浏览计算机以查找驱动程序软件”。

image005

然后在驱动软件路径编辑框里面,输入我们解压zip包的位置。对于我们这里示例的情况,就填入D:\CDM_2.08.28_R就可以了。点击“下一步”按钮。

image006

接下来,Window会弹出一个警告,原因是这个驱动没有合法的数字签名。如果你安装了360安装卫士之类的软件,还可能在安装过程中被杀死。唉,谁让我们用了山寨货FT232R芯片呢,只好凑合了。在这里点击“始终安装此驱动程序软件”,继续安装过程。

image007

这样山寨FT232R的驱动程序就安装好了。为了区别于正规的FT232R芯片,这里的设备名称最后加了一个R字母,叫做USB Serial ConverterR。

image008

关闭这个对话框之后,我们就会发现设备管理器中“其他设备”处又出现了一个新的不能识别的设备。

image009

再一次使用刚才的方法手动安装驱动程序,就可以解决这个问题。类似的,安装好的设备名称,为了清晰标示,变为了USB Serial PortR。两个设备都安装完成之后,在设备管理器中可以看到两个设备都可以工作了:

image010

出现了串行COM端口之后,就代表着Melzi电路板的设备驱动安装好了。记下这个COM端口编号,在3D打印机控制软件里重新设定一下这个串行口端口号,就全部完成了。现在,3D打印机应该已经恢复正常,可以使用了。大家赶快打开Repetier-Host试验一下吧,祝大家玩机愉快。

联系打印虎 QQ 2404959972

【打印虎原创】RepRap_Prusa_i3_3D打印机固件Marlin_firmware配置教程

上次打印虎介绍了Repetier-firmware的配置方法(见【打印虎原创】Repetier-firmware深度配置图解教程),一部分网友表示抗议,表示自己使用的是Marlin固件,看那个文档有很多地方对不上。没关系,打印虎今天这篇文章,就详细解说了Marlin firmware的配置方法。希望大家喜欢。

Marlin固件和Repetier-firmware固件类似,都由原始的Sprinter固件派生而来。Sprinter固件已经超过1年没有人维护了,但Marlin和Repetier-firmware目前(2014年9月)仍然非常活跃,是国内用户很常用的两款固件。实际上相比于Repetier-firmware,Marlin的使用更加普遍。对于常见的3D打印机控制软件Cura来说,Marlin固件兼容程度也更高。虽然有人报告说Marlin在打印过程中有很小的机会会出现计算溢出错误,但它毕竟是更加通用的固件,这种问题一定会很快被修正。

Marlin固件的github地址,在https://github.com/ErikZalm/Marlin,我写这篇文章的时候,最新的版本是2014年8月30日提交的1d62309,如图。

image001

我们就在这个版本的基础上,说明如何对它进行配置,让它在你的3D打印机上转起来。

第一节,准备环境

想使用Marlin,首先第一步是把它从github上下载下来。完成这一步很简单,打开上面给出的github地址,可以看到页面右侧栏最下面的一个按钮image002。按下这个按钮就可以把整个源代码ZIP包下载下来了。如果怕麻烦,也可以直接从这里下载(打印虎本地下载百度云下载)。

编译、上传这套源代码到3D打印机,需要Arduino环境的支持。Arduino环境如何使用,我们就不详细介绍了。目前Arduino的最新版本,是1.0.5 r2版,只要下载、安装好这个版本的Arduino环境,把Marlin源代码包载入,应该就可以编译成功了。如果你还没有安装Arduino,可以从这里下载(打印虎本地下载百度云下载)。当然,对于使用不同硬件的朋友,Arduino的设置会稍有不同。

Marlin的缺省配置,是针对Ultimaker的。因此如果你用的是Arduino Mega 2560或者兼容的电路板,那么不需要做任何事情了,在菜单Tools-Board中选择Arduino Mega 2560 or Mega ADK,然后按下工具栏最左边的对勾按钮“Verify”,就可以完成编译了。如下图。

image003

但如果你和我一样,使用的电路板是Melzi,那你需要先把Marlin压缩包中解压出来的文件夹Marlin-Marlin_v1\ArduinoAddons\Arduino_1.x.x\hardware\Sanguino拷贝到Arduino下面。我的Arduino安装在C:\Program files (x86)下面,因此要拷贝到这个目录:C:\Program Files (x86)\Arduino\hardware\Sanguino。

重新启动Arduino,菜单Tools-Board下面会出现几项Sanguino相关的选项。对于Melzi来说,选择Sanguino W/ATmega1284p 16mhz就对了。

在Arduino环境中选择好主板之后,还要在源代码的配置文件Configuration.h中进行对应的修改。找到

#define MOTHERBOARD 7

这一行,将数字7改为63,根据上面的注释,这样就把目标主板型号从缺省的Ultimaker改为Melzi。全部搞定之后,同样是按下工具栏最左边的对勾按钮“Verify”,就可以完成编译了。如下图。

image004

确认编译没有问题之后,我们把3D打印机打开,把USB线连好,确认驱动程序已经安装好了,并且3D打印机所在的串口号我们已经知道了(比如我这里是COM3),就使用菜单Tools-Serial Port,配置好3D打印机所在的端口。

image005

端口也配置好之后就可以进行上传,也就是刷固件。按下工具栏的Upload按钮,等一会,上传工作就完成了。完成上传时,可以看到消息栏上面的提示(红圈中)Done uploading。如果出了问题,检查一下窗口的右下角,看看电路板类型和端口号是否都选对了。

image006

如果一切顺利,现在固件就已经刷入3D打印机了。下一步我们就用Printrun手动测试3D打印机,观察固件是否能够正常工作。看到这里有朋友要问了,Repetier-Host也有手动控制功能,为什么用Printrun而不是Repetier-host呢?这是因为Repetier-Host和Repetier-firmware在普通3D打印机协议的基础上,增加了些特别的东西。这一方面当然是两者配合更加好用了,但另一方面兼容性就打了折扣。为了保证我们的操作不被奇怪的问题打扰,我认为还是用最普通最规范的软件来测试是最好的。基于这样的原因,我会使用Printrun进行下面的测试工作。最新版的Printrun可以从这里下载(打印虎本地下载百度云下载)。

在Printrun的主界面上,选择好端口(Port),波特率(@后面的数字,Marlin缺省是250000,这和其他的固件比如Repetier-Host可能不同)之后,按下连接(Connect),等一会,右侧信息窗口内就会出现PC与3D打印机之间的通信信息。从下图可以看到,我们成功的连接了PC和3D打印机,但3D打印机不能正常工作,原因是达到了挤出头的最大温度MAXTEMP!可现在明明是室温啊,这是为什么呢?想一想,应该还是配置的原因。估计是由于挤出头温度传感器的配置,导致3D打印机误以为现在达到了很高的温度,强制停机了。

image007

既然这样,我们第一轮的初始试验就只能到这里为止了。我们完成了PC和3D打印机之间的连接,但很遗憾3D打印机完全不能工作。下面,让我们开始研究配置文件,争取让3D打印机尽快工作起来。

第二节,基础配置

如果你对3D打印机固件配置有些经验,或者读过我们之前的Repetier-firmware配置教程,你就会知道对于一台3D打印机而言最关键的几项配置,都是关于3D打印机基础硬件的。这些配置项目如果没有正确配置,3D打印机很可能完全不能工作。其他配置项目就不是那么关键了,即使配置有些问题,也是局部问题,顶多是某个功能不能正常工作,不影响3D打印机的整体。

其他下面的表格列出了最重要的基础配置项目。与这个表格类似的内容,曾经在Repetier-firmware的配置教程中出现过,我再把它列在这里,以强调这个表格的重要性。

编号 项目 说明
1 主板 一定要改为自己使用的主板类型
2 XYZ轴长度 应该改为实际的尺寸
3 XYZ轴步进电机分辨率 重要,一定要根据自己使用的步进电机参数以及打印机的机械设计进行修改
4 限位开关的连接方式 按照实际情况选择选项
5 挤出头步进电机分辨率 同上,要根据具体情况修改
6 挤出头步进电机方向 有些机械设计方案,需要步进电机反向运行
7 挤出头温度感应器 要根据具体情况修改
8 热床温度感应器 要根据具体情况修改

相比于其他固件,我认为Marlin的一个特色,就是它的配置文件Configuration.h有相当好的结构。从主到次,每个模块相关的参数都放在一个段落中,这本身就为我们对3D打印机的配置工作提供了很好的线索。下面,我们就从这个配置文件出发,逐步配置好整个3D打印机。当然,在这一节里,我们还是把精力集中在最基础的配置项上。

从开始看Configuration.h文件,最开始的两行非注释(在C语言里,注释由//开始,因此所有的以//开始的行都是注释,不会影响到代码的行为)行,指明了固件的版本和作者。

#define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__
#define STRING_CONFIG_H_AUTHOR "(none, default config)"

可以看出,缺省的版本号就是编译的日期和时间,这个就不用改动了。我们只要把第二行作者,一对引号里面的内容,改为自己的名字就好了。为了避免麻烦,就不要用中文了,还是写拼音就好:

#define STRING_CONFIG_H_AUTHOR "www.dayinhu.com"

接下来,为了让3D打印机和PC机顺利通讯,要定义好串行口的端口号和波特率。串口号不是指PC端的串口号,而是3D打印机端的串口号,因此保持缺省的0就对了。Marlin的缺省波特率是250000,这不是一个标准的ANSI标准波特率,如果你的PC端不支持这个波特率,需要修改到一个标准的ANSI波特率值,比如115200。经过试验,我的PC机支持这个波特率是没有问题的,所以我就不修改了:

#define SERIAL_PORT 0
#define BAUDRATE 250000

再下来就是选择3D打印机主板种类了,其实第一节我们已经修改过这个值。因为不同的硬件,决定了不同的接口名称、数量,所以如果这个值和Arduino环境中定义的硬件类型不匹配,就会导致编译不通过。因为硬件的种类很多,这里不建议通过试验的方法确定,比较靠谱的方法还是向卖家咨询。我这里使用的是Melzi电路板,因此这几行要被改为这样:

#ifndef MOTHERBOARD
#define MOTHERBOARD 63
#endif

再往下还有两个选项,分别定义了挤出头的个数和电源种类。我的3D打印机就只有一个挤出头,用的电源也是普通电源,因此这两个选项就保持原样不变了:

#define EXTRUDERS 1
#define POWER_SUPPLY 1

到此为止,Configuration.h配置文件的第一段我们已经完成了。这些设置,是3D打印机硬件最基础的一组设置。对应到上面的表格,这里解决的主要问题,就是上面表格中(1)主板类型的问题。这里处理好了之后,我们继续往下看配置文件。

第三节,温度控制与温度感应

Configuration.h配置文件的下面一段,是关于加热与温度感应的设置。开始的一组设置,是关于温度感应器的。根据代码上面的注释,可以看出这里既可以使用温度测量芯片,也可以使用热敏电阻。虎哥我自己的经验,目前的3D打印机主要使用热敏电阻,没见过使用高级的温度测量芯片的情况。在使用热敏电阻的情况下,有一大堆选择,这时候就得询问你的卖家,到底使用的是哪种热敏电阻了。如果你的卖家也说不清楚(很不幸我就遇到了这样的卖家),那选择1就好。看上面的注释部分,可以知道1代表的是:

// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)

经过我的仔细对比,实际上各种热敏电阻的输出值都是很接近的,就算选择了不同型号的热敏电阻,最后得到的温度值也相差不大。在挤出头工作状态下(200℃左右),通常上下相差不到10℃,对于我们比较粗略的测量够用了。另外,根据RepRap wiki,几乎所有3D打印机都使用了4.7K的热敏电阻上拉电阻。我还检查了Melzi的电路图(如下图),确实使用了4.7K电阻,这个地方是很确定的,不用犹豫了。

image008

我的3D打印机只有一个挤出头,因此TEMP_SENSOR_1和TEMP_SENSOR_2(第二个、第三个挤出头的温度感应器)应该设为0,代表不存在。而同时我的3D打印机热床是有温度感应器的,因此这里应该不是0。因为我不知道我的热敏电阻的具体型号,就填1了,如下:

#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1

下面的这些选项,就是温度控制算法的一些参数了。没有特殊要求的情况下,这些参数保持缺省的值就好,这样3D打印机的温度控制既能快速高效,又能保持相对稳定的温度。

#define TEMP_RESIDENCY_TIME 10
#define TEMP_HYSTERESIS 3
#define TEMP_WINDOW     1

再下面的选项是最低、最高温度。如果当前温度在这些温度范围之外,3D打印机就会自动保护停止工作。这些值也不需要再修改,保持原样就好。

#define HEATER_0_MINTEMP 5
#define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
#define BED_MINTEMP 5
#define HEATER_0_MAXTEMP 275
#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define BED_MAXTEMP 150

温度段落最后一组设置,是关于PID温度控制模式(算法)的。首先

#define PIDTEMP

决定了目前的温度控制模式使用PID模式。如果把这行注释掉,就代表不用PID,而是用简单控制模式(Bang bang)。简单控制模式的特点就是简单,没有控制参数,基本上加热器的工作方式就是当前温度小于目标温度就打开,反之就关闭。

而PID模式(PID controller,比例-积分-微分控制器)是历史悠久的温控方式,相比于简单控制模式,PID模式温度比较稳定。但我觉得可能是因为3D打印机的加热器的热容量都不大,因此这个好处不太能体现出来。

了解PID模式的话就会知道,虽然PID模式有三个关键参数(Kp, Ki, Kd),以及很多周边的参数,但这些参数的值主要是影响了温度控制曲线的形状。基本上不论这些参数如何设置,最终都会达到目标温度,区别只是速度和稳定性。因为我的目标是把3D打印机转起来,所以这里我也不再细调PID模式的控制参数了,不论是挤出头还是热床,都保持缺省值就可以了。

略过了一大段关于PID的设置之后,我们可以看到

#define PREVENT_DANGEROUS_EXTRUDE
#define PREVENT_LENGTHY_EXTRUDE
#define EXTRUDE_MINTEMP 170
#define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH)

这几个选项作用主要是保护挤出机,在温度不够的情况下不要工作,在遭遇到有问题的指令(特别长的挤出命令)时也不要工作。这种有问题的指令,有可能是指令在传输过程中出错导致的。虽然几率很低,但一旦出现,3D打印机也严格执行的话就很麻烦了。

好,到这里为止,与温度控制相关的一段就结束了。对应到第二节的表格,这里解决的主要问题,就是(7)和(8)两项已经完成。这里处理好了之后,我们继续往下看配置文件。

第四节,限位开关机械设定

Configuration.h下面的一组配置项,都是关于限位开关的。如果是最常见的上拉电阻形式的电路,如图:

image009

限位开关连接在常闭触点上。这样连接的限位开关,在未触发情况下(图中状态),保持低电位;触发情况下,切换为高电位。这样的情况下,下面的配置行

#define ENDSTOPPULLUPS

就保持原状就好了。这样,紧接着的一段代码

#ifdef ENDSTOPPULLUPS
  #define ENDSTOPPULLUP_XMAX
  #define ENDSTOPPULLUP_YMAX
  #define ENDSTOPPULLUP_ZMAX
  #define ENDSTOPPULLUP_XMIN
  #define ENDSTOPPULLUP_YMIN
  #define ENDSTOPPULLUP_ZMIN
#endif

就能起作用,代表所有XYZ轴限位开关全部是这样的连接方式。

同时,限位开关这样的连接方式,也就意味着触发信号是正向而非反向的。所谓正向,就是说当未触发时单片机得到低电位信号0,触发时单片机得到高电位信号1。因此对限位开关并不需要取反,这里的缺省值设置需要改成这样:

const bool X_MIN_ENDSTOP_INVERTING = false;
const bool Y_MIN_ENDSTOP_INVERTING = false;
const bool Z_MIN_ENDSTOP_INVERTING = false;
const bool X_MAX_ENDSTOP_INVERTING = true;
const bool Y_MAX_ENDSTOP_INVERTING = true;
const bool Z_MAX_ENDSTOP_INVERTING = true;

看到这里又有一个问题了,我的3D打印机,并没有6个限位开关,而是只有3个,处于XYZ轴的最小值处(MIN)。这种情况下,上面的六行设置,只有前三行是有必要修改的,后三行没有意义。同时,需要修改下面的配置行:

//#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS

因为限位开关位于最小值处,我们要把这两行的第一行的注释//去除。变为:

#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS

这时,XYZ轴三个最大值处(MAX)限位开关都被忽略(DISABLE)了,这样我们就得到了正确的配置。

这一小节的限位开关设置,让我们完成了第二节表格中的第(4)项设置。现在只剩下最后(2)(3)(5)(6)这四项与步进电机相关的设置了。下面我们会继续完成这些设置。

第五节,步进电机机械设定

步进电机的设置段,Configuration.h中上来就是一组开关选项。因为我的3D打印机很普通,XYZ轴以及挤出头步进电机E轴都存在,而且都是普通的连接方式,因此就使用缺省的设置就好了:

#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0
#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false
#define DISABLE_E false
#define DISABLE_INACTIVE_EXTRUDER true

下面的一组正、反设置,就和具体的3D打印机设计相关了。

#define INVERT_X_DIR false
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false
#define INVERT_E0_DIR false
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false

因为我的3D打印机是RepRap Prusa i3,按照注释,我就把这几个选项改成了上面的样子。但实际测试表明,这个设置是不对的,Y轴的步进电机运动方向与预期相反。改正这个问题也很简单,只要再把第二行由true改回false即可:

#define INVERT_Y_DIR false

紧接着是归零(HOME)的方向。XYZ都向小值方向做归零动作就好了。这样我就不用修改这组配置了:

#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

再来,是关于固件如何确定步进电机已经达到边界的设置。如果设置为软件限位(software endstops),则根据单片机运行起来之后内部计算得到的值确定是否已经越界。否则就根据硬件开关的指示确定是否已经越界。很明显,因为我的限位开关安装在每个轴的最小值位置处,这两个配置项应该这样选择:

#define min_software_endstops false
#define max_software_endstops true

接下来,为了软件比较目前是否已经超过最大限位值,我们必须指定好3D打印机的XYZ轴范围大小,把三个MAX_POS改为实际的值就可以了。比如,我的3D打印机是20cm * 20cm * 18cm的工作空间,换算为毫米(mm)填在下面:

#define X_MAX_POS 200
#define X_MIN_POS 0
#define Y_MAX_POS 200
#define Y_MIN_POS 0
#define Z_MAX_POS 180
#define Z_MIN_POS 0

这样就全部搞定了。再下面是一大组跟自动找平(Auto leveling)相关的配置项。我的3D打印机比较土,没这功能,所以就都略过了。再往下就是与步进电机运动相关的配置项了。首先是两行:

#define NUM_AXIS 4
#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0}

这两行说明了步进电机的个数是4个(分别对应于XYZE轴,E轴是挤出头步进电机),并且列出了四个轴的归零速度。这些缺省值都没什么问题,不用修改了。再下面是关键的一行,单列出来:

#define DEFAULT_AXIS_STEPS_PER_UNIT   {100, 100, 407, 95}

这一行里面,给出了XYZE四个轴的分辨率。所谓分辨率,就是在真实世界中前进1毫米,所对应的步进电机步数。步进电机的分辨率设置,是需要计算的一个问题。如果你购买的是3D打印机套件,那直接采用卖家直接告诉你的数值就好了。如果你想用自己购买的散件,那就得自己计算这个数值了。计算的方法可以参考【打印虎原创】RepRap_Prusa_i3_3D打印机步进电机设置图解,我们这里就不再重复了。

我这里列出的,就是我的3D打印机,经过我计算得出的数值。这个值不能乱设。如果和真实值差别太大的话,特别是Z轴的值与所需的真实值差别太大的话,有可能会损坏硬件,尝试时一定要小心谨慎才行。万一你的硬件真的损坏了,请自行购买配件维修,千万不要和打印虎联系……

再下面的一组配置值,因为都是使用mm或者mm/s^2进行描述的,只要你上面的分辨率没有设错,直接使用缺省值就好,不会有什么问题了。

#define DEFAULT_MAX_FEEDRATE          {500, 500, 5, 25}
#define DEFAULT_MAX_ACCELERATION      {9000, 9000, 100, 10000}
#define DEFAULT_ACCELERATION          3000
#define DEFAULT_RETRACT_ACCELERATION  3000
#define DEFAULT_XYJERK                20.0
#define DEFAULT_ZJERK                 0.4
#define DEFAULT_EJERK                 5.0

到此为止,Configuration.h中所有重要的配置项都已经配置完成,第二节开始处表格中的所有重要配置项也都有了对应的配置。如果你跟着我完成了上面所有的设置步骤,就可以开动3D打印机,把修改过配置文件的Marlin固件重新刷入了。第一节中准备好的Arduino环境不用重新配置了,只要再次按下上传Upload按钮就可以了。

第六节,测试与改进

上传完成之后,建议再使用第一节中介绍的Printrun软件手动控制3D打印机的每个功能进行测试。如果每个功能都可以用了,说明这里的配置已经基本上完成,没什么大问题了。我自己的测试结果,表明我的3D打印机的各种基础功能都已经可以正常工作了,包括XYZ轴步进电机的移动距离和方向、限位开关的工作、挤出头和热床的加热这些功能。注意我在这里没有测试挤出机步进电机的方向和挤出的塑料量的多少,因为我需要先保证温度感应器的正常工作,再在合适的温度下操作挤出机步进电机。否则,不论是温度太低还是温度太高,都有可能对挤出机造成损坏。

再提示一下:上面的两节,关于限位开关和步进电机的设置,特别是关于方向的设置,由于可能的选择很少,基本上只有正、反两种设置,如果不太清楚需要选择哪种的话,完全可以用试验的方法确定。这么简单的东西就不用麻烦卖家了,哈哈。

当然,在我们的配置过程中,还是略过了不少可以精细调整的参数的。这些参数的设定,一方面要对我们所使用的硬件有更多的了解(可以通过卖家了解,也可以自己亲手测定),另一方面也需要在使用中根据具体的表现不断优化。3D打印机可以做的参数调整非常丰富,如果真的深入下去,可以说是一条漫漫不归路。如果大家有什么心得,欢迎大家找我深入交流。

回顾一下,这篇文章中需要的软件包包括:

文件名 描述
Marlin-Marlin_v1.zip Marlin固件包,2014年8月30日版本
arduino-1.0.5-r2-windows.exe Arduino环境,刷固件工具包
Printrun-Win-Slic3r-10Mar2014.zip 3D打印机控制软件Printrun

所有的这些软件包,都可以在这里下载到(打印虎本地下载百度云下载)。

最后,祝大家玩机愉快,想查看本教程的最新版本,或是想看更多的打印虎教程,请访问打印虎原创教程专区。有任何相关的问题,请

联系打印虎 QQ 2404959972

【打印虎原创】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

【打印虎原创】3D打印控制软件Repetier-Host_1.0新功能图解

 

 

2014年8月,3D打印最常用的PC端控制软件Repetier-Host正式升级到1.0版,结束了长达两年多的0.x版本,进入了1.0正式版时代。3D打印玩家最关心的事情,就是这个版本到底改进了什么?下面,打印虎在第一时间带您一探究竟,揭秘Repetier-Host 1.0的新功能。

你可以从这里下载Repetier-Host 1.03(打印虎本地下载百度云下载)。下载软件之后,首先安装过程并没有什么变化。比较明显的不同是,Skeinforge Slicer不再作为缺省安装,同时增加了CuraEngine Slicer切片器。特别是,CuraEngine Slicer排在第一位。这个切片器有什么特别的,等一下虎哥我会给大家详细介绍。让我们先完成安装过程,进入主界面瞧一瞧。

一、主界面UI提升

image001

进入主界面之后,首先一个感觉就是界面清爽干净了不少。用户界面的提升,是Repetier-Host 1.0的一项比较重要的改进。原来位于界面下方的记录窗口缺省状态下被取消了(对于高级用户,还可以关闭Easy Mode,找到打开按钮),只剩下左右两栏。左边是可视化的3D窗口,打印时可以切换成温度曲线窗口。右边仍然是各种工具的操作界面,原来的四个标签页增加到五个,前四项与原来大体相同,增加了第五个标签页“SD卡”,提供了相关的辅助功能,这方面我们下面也会详细介绍。

另一项界面方面的改进,是图标的重新绘制。不光是工具栏上的图标,手动控制整个界面都重新制作了。新的界面更加直观和易用。不幸的是,手动控制界面在我的电脑上显示有些错位,不知道大家是否有和我一样的问题。

除了界面布局、图标方面的变化,还能看到右上角增加了绿色的“简单模式(Easy Mode)”按钮,这个按钮有两个状态,绿色状态说明现在已经处于简单模式下,一些高级用户才需要的功能,在这个状态下是被隐藏起来的。这个按钮的出现,也说明Repetier-Host软件在逐渐向傻瓜易用的方向进化。

二、切片软件CuraEngine

CuraEngine的加入实际上是Repetier-Host 1.0版最重要、最吸引人的改进。CuraEngine原本是在Cura 3D打印机控制软件中自带的切片功能,而Cura软件最吸引人的特色,就是它的高速切片功能。很多3D打印机爱好者,就因为Cura切片功能特别好用,会不惜繁琐,先使用Cura进行切片,然后再把G-code导入Repetier-Host进行打印。从这一点,就可以看出Cura的切片功能是多么的受欢迎了。

他山之石,可以攻玉,既然Cura和Repetier-Host都是开源软件,那么好的功能自然也是要大家分享了。Repetier-Host 1.0,充分满足了玩家的心愿,把好东西集成到了一起,让3D打印机玩家不用再麻烦地在Cura和Repetier-Host之间切换,而是一站式服务,在同一个界面下完成所有的操作。

想使用CuraEngine是很简单的,只要切换到“切片软件”标签页,然后在下面的“切片软件”选择下拉框中,选择第二项CuraEngine就可以了。缺省的切片软件仍然是Slic3r,习惯了Slic3r的老用户也要照顾一下嘛。

image002

选择了CuraEngine之后,就可以对其进行配置了。其中各个选项的意义,都与Cura软件中的配置方法一样。如果你想知道细节,可以参考【打印虎原创】3D打印控制软件Cura使用基础图解教程。如果只是想快速的试用一下,除了全局的打印机设置设好了之后,只要把CuraEngine设置里面材料标签页中与材料相关的“材料直径”、“打印温度”和“热床温度”三项设置好,就没什么大问题了。

image003

为了观察一下CuraEngine到底有多快,我就用Repetier-Host 1.0自带的3D模型tablet.amf,把Slic3r和CuraEngine的层高都设置为0.2mm,在我的电脑上做了一个简单的试验。先用Slic3r切片,整个过程用了35秒,切片完成后预计打印时间要7个多小时。再用CuraEngine切片,只要8秒钟切片就完成了,预计的打印时间也只要2个多小时了。

当然,Slic3r和CuraEngine的打印时间差异,不仅仅是因为两者的算法差异,还与缺省设置下的填充度、步进电机最大速度等相关,所以不能简单比较。但不管怎样,CuraEngine切片动作本身还是快多了,以后玩3D打印更爽了。

三、TF卡(MicroSD卡)的支持

3D打印机发展到现在,不少型号都支持TF卡作为存储模型的介质,实现脱机打印功能。但是,使用TF卡也不是很方便,需要在3D打印机和PC机之间来回插拔存储卡。一般的使用流程是,先在PC机上准备好切片之后的G-code文件,然后把TF卡插在PC机上(一般还得通过一个读卡器),把G-code文件拷贝到TF卡上,再把TF卡插回到3D打印机上,再启动3D打印机,开始脱机打印操作。

这样的方法,只能说对于一部分需求是有价值的,但更多情况下,大家还是会选择使用USB接口进行联机打印,3D打印机对TF卡支持的优势,并没有体现出来。

Repetier-Host 1.0,对这个问题作出了自己的回答。新增加的SD卡标签页,让用户可以直接在PC机和3D打印机联机的情况下管理TF卡内容,提供了“载入文件”(在TF卡上生成一个文件,将切片完成的G-code存入)、“删除文件”、“打印文件”、“停止打印”等功能。我的感觉就是,直接在Repetier-Host里面操作TF卡文件,相比之前的繁琐操作,是一个很大的进步,让用户的体验上了一个台阶。

image004

不过可能是因为这个功能还处于不太成熟的阶段,使用过程中还是有很明显的问题的。我遇到了两个问题,一是TF卡原来的内容可能是保不住的,我第一次试用的时候,TF卡里面的原始文件莫名其妙的消失了,这个大家一定要小心。第二个问题是向TF卡里面保存文件的时候,速度比直接用读卡器读写TF卡慢的太多了,这个问题不知道是跟目前的模拟串行连接方式有关,还是跟3D打印机上的TF卡读写程序还不够成熟有关。

总的来说,TF卡互操作功能很好,但距离实用还有一段距离,希望Repetier-Host快快改进,让我们3D打印机爱好者早日能够把TF卡充分利用起来。

除了上面着重介绍的三项改进之外,Repetier-Host还有不少其他改进。比如增强了对多头打印机的支持等。因为文章篇幅有限,我的3D打印机也没有多个打印头,所以就不再深入研究了,有需要的朋友请发挥你的钻研精神,自己搞定吧。

我们这篇文章,主要介绍了Repetier-Host的新功能。如果你对3D打印或者这个软件感兴趣,还想详细学习Repetier-Host的完整操作方法,可以到打印虎网站,参考文章【打印虎原创】3D打印控制软件Repetier-Host使用基础图解教程,更系统的学习Repetier-Host 3D打印控制软件。

最后祝大家玩机愉快,想看更多的打印虎教程,请访问打印虎原创教程专区。有任何相关的问题,请

联系打印虎 QQ 2404959972

 

【打印虎原创】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专门提供了一个在线配置工具(访问http://www.repetier.com/firmware/v091),这个工具提供了结构化配置的UI界面,把3D打印机固件配置划分成了几个模块,方便用户理解。用户逐一配置完成之后,下载配置好的可以直接使用的Repetier-firmware代码。这么好的工具我们一定要仔细研究一下,它是我们成为3D打印高手玩家的捷径。

第一节,开始

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

image001

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

我们这里,不需要上传上次的配置文件,直接按下下一步(Next step)。

第二节,通用配置

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

image002

第一项,配置级别(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打印机可以实现更快速平稳的加热挤出头运动。如下图,三个红色的并联臂,都可以上下移动,移动的位置决定了位于中心的加热头的位置。很明显,在这种结构设计下,步进电机的运动方式与笛卡尔式设计会完全不同。

image003

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

image004

好,看过了两种不同于笛卡尔式的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。

第三节,机械设置

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

image005

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

第一项,允许侧隙游隙补偿(Enable backlash compensation)。所谓侧隙,是一个机械专业用语,指齿轮齿廓之间为了避免摩擦膨胀而卡死预留的间隙。类似的,轴承有类似的游隙。我们DIY的低端3D打印机,并没有在硬件层面上对这些细小的误差进行补偿,但Repetier-firmware允许我们在软件层面做出补偿。当然这里的软件补偿也是很简单的,只是在已有的移动量上增加一个小量。如果这个选项打了勾,那么在下面的XYZ轴的设置上,分别会增加一个Backlash量编辑框,可以对三个轴分别输入一个补偿值。

image006

第二项,允许四倍步进(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打印机,可以参考【打印虎原创】RepRap_Prusa_i3_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轴的某一个步进电机的驱动命令,以同样的方式发送到另一个端口上。这个功能还是很奇特的,应该是用于某种特殊的目的。缺省值是不打勾。

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

image007

第十七项,总是检查限位开关(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打印挤出头接近极限位置时(这极少发生),限位开关不会因为误差被触发。这个缺省值用起来还是可以的,不需要修改。

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

第四节,温度设置

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

image008

第一项,稳定温度区间(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℃。

第四项,打开挤出机风扇温度(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),这个选项很简单,通常是否关闭都无所谓。

image009

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

第十一项,启用加热床功能(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模式温度曲线

image010

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

image011

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

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

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

image012

加热挤出头的开始部分可以看到有两个按钮,用来增加或者减少挤出头。因为我的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就很好了。

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

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

第五节,功能设置

image013

第一项,允许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)。

image014

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

image015

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

  • 下载所有的固件文件,包括设置
  • 下载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的源代码,仔细地研究了每个选项对代码执行过程的影响。跟那些简单地按照文字本身解释一下的资料相比,希望我的这份教程能给你不一样的感觉。

最后祝大家玩机愉快,想看更多的打印虎教程,请访问打印虎原创教程专区。有任何相关的问题,请

联系打印虎 QQ 2404959972

 

【打印虎原创】3D打印控制软件Cura使用基础图解教程

玩3D打印机的朋友,在上位机控制软件方面,通常的选择是Repetier-Host,这个软件功能丰富,允许用户对3D打印机进行比较细致的控制。但是,Repetier-Host中自带的两个切片插件Slic3r和Skeinforge却都不算好用。它们运行速度慢,内存占用高。有没有办法解决这个问题呢?幸好我们还有Cura。Cura的特点是切片速度快,用户体验好,用起来感觉非常爽。打印虎在之前的文章 【打印虎原创】3D打印控制软件Repetier-Host使用基础图解教程里面,已经详细介绍了Repetier-Host的用法。今天,我们来介绍Cura,希望大家能够喜欢这款3D打印控制软件。

在安装运行Cura之前,我假设你已经把3D打印机正确连接到你的电脑(可以参考【打印虎原创】Prusa_i3_3D打印机软件安装图解教程),并且已经对3D打印机进行过基础的校准工作(可以参考【打印虎原创】Prusa_i3_3D打印机校准图解教程-基础篇)。做过这些准备工作,下面的教程就可以顺利完成了。

Cura软件最新的版本是14.07(打印虎本地下载百度云下载)。这个版本编号,直接对应了发布的年月,因此14.07代表这个版本是2014年7月的版本。这种版本号命名方式,可以让用户直接知道发布的时间,很方便吧。下载好了之后,我们就开始这次的Cura之旅了。

第一节,软件安装

双击Cura安装程序,安装过程就开始了。因为Cura安装程序没有发布者的电子签名,因此Windows会提示用户小心。如果你确信下载的渠道是没问题的,就按下“是”按钮。

image001

这时,Cura安装程序正式启动,第一步是选择安装的目标位置。按下Next进入下一步。

image002

下一步是选择需要安装的Cura功能。Cura主程序是一定要安装的,没法取消。Arduino驱动我们之前的准备工作中已经安装好了,就不需要安装了。把“Install Arduino Drivers”的勾去掉。STL, OBJ和AMF是三种3D模型格式。STL是最常见的格式,其他两种比较少见,按照缺省的选择不打勾也挺好。这时按下Install就开始正式安装了。

image003

整个安装过程需要一些时间,等待进度条达到100%,文件复制步骤就结束了。这时按下Next按钮。

image004

这时安装过程就结束了,在最后一页上直接按下Finish就好了。

image005

第二节,Cura首次启动设置向导

安装过程结束之后,Cura就自动启动了。因为是首次启动,设置向导会弹出来,帮你进行初步的设置工作。这个设置向导第一页很简陋,按下Next就好。

image006

按下Next之后,设置向导会问你的打印机机型。因为Cura是Ultimaker公司开发的软件,所以Ultimaker肯定是排在最前面啦。但虎哥我用的是RepRap Prusa i3,因此只能选择Other那项了。选好之后,按下Next键进入下一步。

image007

这时设置向导会再问我具体的3D打印机机型,这时就有Prusa Mendel i3了,选择这项。然后Next进入下一步。很明显,如果你跟我用的3D打印机不同,你需要按照具体情况进行设置。

image008

这个时候Cura设置向导会弹出最后一页,告诉大家它已经准备好了。按下Finish,设置向导就会关闭,Cura主界面就弹出来了。

image009

主界面看起来设计的很不错,下面我们一步一步教大家如何使用。第一次启动时,会自动载入作为Cura标志的小机器人。

image010

 

跟主界面一起弹出的,还有Cura的新版本特性提示,详细的介绍了这个版本与上一版本的更新之处。这个对话框只会弹出一次,点OK关闭就好了。

image011

 

第三节,模型的载入和查看

如果你和我一样,关闭了Cura再次打开,就会看到空白的场景。如下图:

image012

图中分为左右两格窗口,左侧有一组面板,主要是用来设置切片器的。右侧是3D浏览窗口,可以载入、修改、保存模型,还可以以多种方式来观察模型。我们这一节主要就是体验一下如何载入、查看3D模型。

首先,按下右侧3D浏览窗口左上角的Load按钮,载入一个模型。

image013

前面安装Cura的时候,我们已经知道,Cura支持多种3D模型文件格式。其中最常见的还是.stl格式。.stl格式是一种非常简单的3D模型文件格式,而且是基于文本的格式,可以直接用文本编辑工具打开查看、编辑。.stl格式具体的怎样的,以后打印虎会再独立介绍。现在,我们只要知道Cura是支持.stl格式的模型就可以了。

这里的例子是虎哥从打印虎3D模型库下载的“坐着的猫”3D模型。下载这个文件之后,就可以用Cura打开了:

image014

模型载入后,马上就可以在主窗口内看到载入模型的3D形象。同时,在窗口的左上角,标着红圈的位置处,可以看到一个进度条在前进。很快,进度条达到100%的时候,就会显示出时间、长度和克数,同时保存按钮(save toolpath)变为可用状态。如图:

image015

刚才那进度条快速前进的过程,就是Cura软件引以为傲的高速切片器的工作过程。在切片器工作结束时,3D打印的时间(21分钟)、需要的塑料丝长度(0.47米)、克数(4克)就都计算好了。同时,我们可以使用save toolpath按钮,把切片的结果保存为gcode文件。要是你用过其他切片软件,比如Repetier-Host软件中缺省的切片器Slic3r,你就知道Cura的切片速度要快的多,简直可以说是神速,而切片的质量并不差。

右面一个标记着YM的按钮,是把打印模型分享到YouMagine网站的功能,对于我们中文用户来说,意义就不大了,不再深入详细介绍。

在这个3D观察界面上,使用鼠标右键拖曳,可以实现观察视点的旋转。使用鼠标滚轮,可以实现观察视点的缩放。这些动作都不改变模型本身,只是观察角度的变化,可以随意使用,不用担心做了无法恢复的动作。

image016

除了旋转缩放的观察方式之外,Cura还提供了多种高级观察方法。这些方法都藏在右上角的按钮中。按下这个按钮,可以看到一个观察模式(View mode)菜单:

image017

可以看出,目前我们用的是缺省的普通(Normal)模式。还可以选择的是悬垂(Overhang)模式,透明(Transparent)模式,X光(X-Ray)模式,以及层(Layers)模式。

悬垂模式下,3D模型悬垂出来的部分,都会用红色表示。这样,可以让用户容易观察出3D打印模型中容易出问题的部分,如果有必要,可以在正式打印之前解决这些问题。

image018

比如我们的坐着的猫3D模型,在悬垂模式下观察,可以看到整个底板都标为红色,以及猫的嘴部有三个红色的点。底板因为有热床的支撑,因此肯定不会有问题。嘴部红点很小,虽然可能出现问题,但也不会对模型整体有大的影响,即使真的出了问题也可以通过后期修正的方式解决,因此经过分析我认为这些红色的提示都是正常可以接受的。

下面是透明模式,透明模式下我们不仅可以观察到模型的正面,还能同时观察到模型的反面,以及内部的构造。特别是内部的构造,对于3D打印来说影响还是比较大的,因此一定要先观察好再开始打印。对于我们的模型,可以看到,内部没有任何特殊的构造。

image019

再下面是X光模式。与透明模式类似,X光模式也用来观察内部的构造。不同之处在于X光模式下对象表面的构造被忽略了。虽然不能看到3D物体表面了,但内部构造可以现实的更加清晰,便于观察。在我们的例子中,由于模型内部没有任何特殊的构造,因此这个观察方式的结果就比较无聊了。

image020

最后是比较重要的层模式。层模式实际上最贴近正式的3D打印过程。在这个模式下,我们可以把整个3D模型分层展示,通过右侧的滑块,可以单独观察每一层的情况。

image021

图中我们正在观察第38层的情况。如图,最外层的红色表示模型的外壳。紧跟着的绿色仍是外壳的一部分,但不直接暴露在外。中间的黄色部分是填充,用于构造实心物体的中心区域。有了这些信息,就可以更好更直观的理解Cura切片后规划出的每一层的3D打印计划。如果出了问题,也可以比较容易的定位解决问题。

第四节,模型调整

下面我们看看左下角的几个按钮。这几个按钮,都具有一定的编辑3D模型的功能。虽然和3DS max之类的3D建模软件的编辑能力相差甚远,但还是可以对模型进行简单的旋转、缩放、镜像等调整操作,方便3D打印用户。

首先看第一个按钮,旋转功能。按下这个按钮后,3D模型周围就出现了红黄蓝三个圆圈。分别代表沿XYZ轴旋转。图中所示,我正在沿着红色圆圈旋转30度角。直接用鼠标操作的时候,这里按照5度为单位进行旋转。如果需要更精细的控制,可以按下键盘上的Shift键,这时就可以按照1度为单位做更细致的操作了。

image022

除了手工旋转3D模型之外,旋转按钮还弹出了两个功能按钮。其一叫做躺平(Lay flat),作用是通过计算,找出最适合3D打印的角度。当然,这个功能没有人那么聪明,比如我们的模型,通过这样的计算,可能就从坐着的猫变成躺着的猫了。如果真这样打印,效果一定没有最初3D模型作者设计的方向好。所以这个功能只能起到辅助的作用。

image023

第二个按钮就简单了,作用是复位(Reset)。按下这个按钮刚才所做的所有修改就都恢复到原装了。

接下来是缩放功能。这个功能也很简单了,就是在XYZ三个方向上缩放模型。你既可以在3D视图上拉动红绿蓝小方块(别忘了Shift键也会让缩放变得更平滑),也可以在弹出的输入框中直接键入数字。这些方法效果相同,你觉得哪种方便就用哪种好了。

image024

另外值得一提的还是那两个弹出的功能按钮。第一个按钮叫做放至最大(To max),按下之后我们的模型就变成了巨型猫,不光是切片时间明显变长,切片后计算得到的各种参数也很惊人。

image025

好了,你是否愿意花10个小时52分钟,6米多长的塑料丝来打印这个巨型猫呢?

这里值得一提的是我们已经习惯了的蓝色立方体。用到这里,我们就可以发现,蓝色立方体实际上指的就是3D打印机的可用打印空间。这个对于一些情况,特别是打印件很大的情况,还是很有用的。

还没说缩放的第二个功能按钮。很简单,这个按钮仍然是复位(Reset)按钮。按下之后一切复原。我觉得,复位功能到处都有还是很贴心的一个设计。

再右面就是镜像(Mirror)功能了。一共只有三个镜像功能按钮,分别是沿着X轴、Y轴、Z轴进行镜像操作。很简单的。

image026

最后,如果希望一次打印多个模型,可以多次使用Load功能。如果载入了不需要的模型,可以选中模型之后,按下键盘的Del键,可以删除模型。到这里,所有3D显示界面上的功能我们就已经都介绍完了。你可以再多试用练习一下,我感觉Cura的界面设计的很好,作为用户可以很容易的上手。

第五节,切片设置(基础)

Cura最大的特色,就是它的高速切片功能。对于一个比较复杂的模型,在slic3r里缓慢的切片过程,常常需要几十分钟时间,可能最后还会内存不足。同样的模型在Cura中往往只需要几十秒到几分钟,而且打印质量没有什么区别。就是这样的一个特色,让Cura在3D打印机软件中脱颖而出,成为很多3D打印玩家的首选。

说到切片,就必须得说切片的参数设置。Cura的切片参数设置的特点,是既足够灵活,可以满足3D打印机用户的需要,又隐藏了对于绝大多数人而言晦涩难懂的内部参数。这一节,让我们来一起研究一下Cura的切片设置。

首先当然是软件一启动就一直在最前面展示的基础(Basic)设置界面了。

image027

质量(Quality)一栏,层高(Layer height)指切片每一层的高度。这个设置最直接影响到打印的速度,很明显层高越小,打印时间越长,同时可以获得相对好的打印精度。外壳厚度(Shell thickness)指的是对于一个原本实心的3D模型,在3D打印过程中四周生成一个多厚的塑料外壳。当然,除了外壳之外的部分,使用网格状的塑料格子填充。外壳厚度很大程度上影响了3D打印件的坚固程度。开启回抽(Enable retraction)指的是在两次打印间隔时是否将塑料丝回抽,以防止多余的塑料在间隔期挤出,产生拉丝,影响打印质量。

质量这一栏,其中的层高和外壳厚度两个选项,都与3D打印机的挤出头直径密切相关。外壳厚度不能低于挤出头直径的80%,而层高不能高于挤出头直径的80%。如果你的设置不满足这一点,Cura将把输入框设置为黄色,提示用户。如果你发现现在的挤出头直径设置有问题,可以先跳到高级设置(Advanced)一栏,将最上面一项挤出头尺寸(Nozzle size)设置好再回来。

image028

填充(Fill)一栏,底/顶厚度(Bottom/Top thickness)与外壳厚度类似,推荐这个值和外壳厚度接近,并且是层厚和喷嘴直径的公倍数。填充密度(Fill Density)指的就是原本实心的3D模型,内部网格状塑料填充的密度。这个值与外观无关,越小越节省材料和打印时间,但强度也会受到一定的影响。通常情况下20%的填充密度也足够了。

速度和温度(Speed and Temperature)一栏,打印速度(Print speed)指的是每秒挤出多少毫米的塑料丝。通常的设置下,这个值在50~60毫米之间就可以了。因为挤出头的加热速度是有限的,因此每秒钟能融化的塑料丝也是有限的,在层高等设置的比较大的时候,这里就只能选择比较小的值,以满足挤出头挤出总量的限制。当你的设置不满足Cura的要求时,这个编辑框会变成黄色,提醒用户有问题需要解决。

下面两项温度相关的设置,就比较简单了。打印温度(Printing temperature)随使用材料的不同而不同。PLA材料通常将这个值设定在185度即可。热床温度(Bed temperature)就更简单了,设定在60度,让打印出来的PLA能比较牢固的粘在热床上就可以了。

支撑(Support)一栏,首先是支撑类型(Support type)可以在无支撑(None)或者接触平台支撑(Touching buildplate)或者到处支撑(Everywhere)之间进行选择。接触平台支撑就是只建立于平台接触的支撑。到处支撑就是模型内部的悬空部分也会建立支撑。平台附着类型(Platform adhesion type)是指是否加强模型与热床之间的附着特性,选择无(None)就是直接在热床上打印3D模型。如果想解决翘边的问题,可以尝试选择边缘型(Brim),这样会在第一层的周围打印一圈“帽檐”,让3D模型与热床之间粘的更好,打印完成时去除也相对容易。如果还不行,可以选择基座型(Raft),这样会在3D模型下面先打印一个有高度的基座,可以保证牢固的粘在热床上,但也不太容易去除了。

支撑之类的东西,即使加了,在普通3D视图中也是不显示的。如果想看效果,需要切换到层模式。比如,我们的猫模型,在打开接触平台支撑之后,就可以得到下图这样的效果。注意猫的嘴部一直延伸到平台的暗青色的柱子。

image029

最后是耗材(Filament)一栏。这一栏要指定好耗材的直径,RepRap Prusa i3似乎只能使用1.75mm的耗材,因此直径(Diameter)要改为1.75。流(Flow)这一栏可以设置挤出塑料量相对于缺省值的百分比。如果打印机已经是校正好的(见【打印虎原创】RepRap_Prusa_i3_3D打印机校准图解教程系列之二),这里就填100%就好了。

第六节,切片设置(高级)

下面我们进入Cura的高级切片设置页。

image030

在这个页面上,首先也是最重要的一栏,是机器相关设置(Machine),其实就是挤出头尺寸(Nozzle size)。我不明白为什么这个重要的设置项放在了这里,其实应该在之前的3D打印机设置中就设好才对啊。我用的挤出头尺寸为0.3mm,显然你应该把它设置为你实际使用的尺寸值。

回抽(Retraction)一栏,可以设定回抽的速度(Speed)和距离(Distance)。就保持缺省值挺好。

质量(Quality)一栏,与上一节基础设置中的质量一栏有些关系,但一般不太需要被改动。首层厚度(Initial layer thickness)一般设置为与层高一样就可以,把它单独出来,其实是因为层高在一些特殊情况下可以被设置为非常小的值(比如0.05mm),但如果第一层也是这样的话就没法和热床很好的粘合了。因为这样的原因,首层厚度可以被单独指定。首层线宽(Initial layer line width)也与3D打印对象和热床之间的粘合相关,一些情况下,可以指定一个大于100%的值,加强这个粘合的强度。剪平对象底部(Cut off object bottom)用于一些不规则形状的3D对象,如果对象的底部与热床的连接点太少,也会造成无法粘合的情况,这时将这个值设置为一个大于0的值,3D对象将被从底部剪平,自然可以更好的粘在热床上了。最后双击出头重叠(Dual extrusion overlap)只对双头的3D打印机有效,两个挤出头的挤出内容,如果有一点重叠,会得到更好的效果。这些通常都保持缺省值就很好了。

速度(Speed)一栏,就是用来指定各种3D打印阶段的打印机运行速度。制冷(Cool)一栏,用来控制制冷风扇的参数。这两栏更少见需要修改的情况,保持缺省值就很好,我就不详细介绍了。

第七节,输出G-code

本来这一节应该是打印的,可悲剧的是,我在我的Prusa i3上试验了多种固件,没有一种可以和Cura的打印功能良好配合使用的。在网上仔细查了资料,也没找到有用的线索。所以,虎哥我只能郁闷的宣布,我没法用Cura打印3D模型。

但这代表我们完全没法用Cura这么好的软件吗?不是的!除了直接用Cura进行打印输出,我们还有另外一条路可以走,那就是输出G-code,然后用其他3D打印控制软件或者脱机打印的方式,打印3D模型。

想输出G-code就非常简单了。只要使用菜单File – Save GCode就可以了。在弹出的文件对话框中,只要把路径切换到希望的地方,按下保存按钮就搞定了。

image031

剩下的操作就很简单了,在Repetier-Host中载入刚刚保存的G-code,再点下运行。3D打印机就开始工作了。如果细致观察的话,可以看出3D打印机的工作方式,与完全用Repetier-Host载入模型、切片、打印时的动作不是完全一致的。这是因为现在Repetier-Host只负责进行连接通讯,而通讯的内容,已经被Cura制定好了。

image032

这就是打印成的猫模型。仔细观察可以发现猫的嘴部表现良好,而猫的耳朵尖有一点拉丝的现象。相对于我们设置的打印速度来说,这样的质量已经非常好了。

第八节,结束语

总体来说,Cura在3D打印切片上有很强的优势,但连接打印机方面彻底悲剧了,完全不能令人满意,因此,可以作为3D打印机玩家的一个补充,但在目前还不能替代Repetier-Host,直接作为上位机软件使用。

虎哥我必须说明的是,对于目前Cura不能直接打印这种情况,我是万万不能接受的。我一定会继续深入研究,集齐七颗龙珠,让神龙满足我顺利运行Cura的愿望。当然,如果有哪位大神已经做到了这一点,也请不吝赐教,请通过QQ联系我,QQ号百度文库不让发,请到打印虎网站最下面查找,拜谢。

最后祝大家玩机愉快,想看更多的打印虎教程,请访问打印虎原创教程专区。有任何相关的问题,请

联系打印虎 QQ 2404959972

 

【打印虎原创】RepRap_Prusa_i3_3D打印机软件安装图解教程(Mac版)

上次打印虎给大家介绍了如何在Windows下安装RepRap Prusa i3 3D打印机的软件,可现在有很多朋友,已经不用Windows,改用高端大气上档次的Mac OS X了,那在Mac机上如何安装3D打印软件呢?打印虎这次给大家带来了详细的图文教程,希望大家喜欢。

第一步,开机

不论是在Windows下,还是在Mac OS X下,想用3D打印机,第一步当然是开机了。对于很多Prusa 3D打印机来说,所谓的“打开”,就是把电源插在接线板上,这些简易版本的3D打印机并没有一个开关按钮。如何判断电源是否已经连接了呢?最简单的办法是观察打印挤出头上的风扇。这个风扇是常开的,所以只要电源连接好了,这个风扇就应该工作了,能够看到扇叶是转动的,而且多多少少会有些噪音。

image001

第二步,安装USB驱动

在苹果Mac OS X下安装Arduino的驱动程序,相对Windows可能会简单很多。如果你和我一样,用的是最新版本的Mac OS X 10.9,那么恭喜你,你什么都不用做,这一步可以直接跳过了。因为Mac OS X 10.9已经自带了Prusa 3D打印机所需的FDTI USB驱动程序。直接把3D打印机的USB口插上,就可以了。

可惜的是,即使3D打印机已经连接成功,Mac OS X的界面上也没有任何提示。那我怎么知道现在是否已经连接好了呢?这还是有办法的,在“应用程序”-“实用工具”里面,打开“终端”,也就是Mac OS X的字符控制界面,键入命令

ls -l /dev/cu*

当然,如果你是Mac的高级用户,iTerm会更好用一些。不知道iTerm是什么?那就还用“终端”程序好了。

image002

可以看到,除了两个蓝牙设备之外,还有一个“/dev/cu.usbserial-A603IK3K”,这个就是我们的3D打印机设备了。你的设备虽然可能跟我的名字不完全一样,但如果出现了类似这样的设备文件,说明打印机驱动已经正常工作,下面我们可以使用它了。

万一你还在用老版本的Mac OS X,发现把3D打印机插在Mac电脑上之后不能直接出现/dev下面的设备文件,可以使用驱动程序安装软件FTDIUSBSerialDriver_v2_2_18.dmg(打印虎本地下载百度云下载)。具体安装的方法不难,就不详细介绍了。

驱动安装好了,意味着电脑和Prusa之间的通信通道已经打开,它们随时可以对话了。对话的内容,当然是围绕着3D打印啦,比如电脑会通知Prusa,把打印头移动到某个特定的地方,或者现在开始加热挤出头,之类的。Prusa也会回答电脑的提问,比如加热板、挤出头现在的温度,等等啦。当然这些对话的内容是有严格的规范的,电脑和Prusa两边也必须同时了解这些规范。假如通信的两边对话的基础语言都不同,出错就在所难免了。第六步的最后,你可以看到,在电脑控制软件Repetier-Host Mac里面,有一个专门的显示记录窗口,里面所列的就是电脑和Prusa之间的对话内容。

第三步,给Prusa刷固件

看到这一步的标题,可能有人就有问题了。什么叫“固件”啊?看起来好神秘的样子。其实固件一点也不神秘,所谓“固件”,其实就是芯片里面的软件。相比于电脑里面的软件,芯片里面的软件修改起来更加麻烦,需要专门的工具才能做到,看起来是“固定”的,所以就得到了“固件”(Firmware)这个名字。

上面说了,电脑和Prusa两边的通信,必须精确地符合同一种规范,3D打印机才能有效的工作。保证两边符合同一种规范最好的方法,就是两边同时用已经被验证兼容的软件、固件版本。当前3D打印机发展比较快,可能过不了几个月,原来的规范就会被新版规范所代替,因此给Prusa刷固件,也就是升级,就成了一项必须的工作。

因为Prusa上可以操作的界面很有限(image003真的有可以操作的地方吗?),因此刷固件这件事,还得借助电脑才能完成。光有电脑还不行,还需要专门的软件工具,这个刷固件的工具就是arduino软件环境了。这个软件环境的尺寸可不小,大约有80M。我下载使用的是最新稳定版本arduino-1.0.5-macosx.zip(打印虎本地下载百度云下载)。

下载完成之后,解压这个zip文件。如果你习惯于在下载堆栈中操作,单击.zip文件就可以了。如果你习惯于在Finder中操作,那就需要双击这个.zip文件。总而言之就是进行解压缩的操作。

image004

解压缩完成之后,并没有像一般情况下产生一个文件夹,而是直接得到了Arduino应用程序。(Mac高手自然知道,这玩意其实就是个文件夹)。这时Arduino已经可以运行了。完美主义者会把Arduino拖到“应用程序”文件夹里面,变成一个“普通的”程序。这时安装就结束了,你随时可以从应用程序中启动Arduino了。

如果Arduino是你非常常用的程序,你还会希望把它加到桌面托盘上。这又是一个拖放操作,非常容易就可以搞定。现在,我们启动Arduino,可以看到:

image005

话说Arduino其实是一大家子,Melzi只是个养子,不是亲生的就没有地位啊,想要给Melzi刷固件,光有Arduino环境还不够,还需要加一套与硬件相关的配置文件sanguino_melzi.zip(打印虎本地下载百度云下载)。

把zip文件下载下来,与刚才一样解压,就是图中那个sanguino文件夹了。(解压缩后的Arduino应用程序已经被我拖走了)。

image006

再开一个新的Finder窗口(最简单的方法是用菜单“文件”-“新建Finder窗口”),切换到“应用程序”文件夹,右键单击Arduino弹出环境菜单,再选择“显示包内容”:

image007

在Contents/Resources/Java/hardware下面,把刚刚解压得到的sanguino文件夹拖进来。如下图所示:

image008

有了这套与硬件相关的配置文件,再重新启动Arduino,就能在Arduino的菜单里面看到一个新菜单项了。看到菜单Tools – Board最下面的Melzi 1284p 16mhz了吗?就是它。别忘了选定它!如果你打开之后这个菜单项没有出现,说明前面一步做错了,回去再检查一下吧。

image009

刷固件工具Arduino准备好了之后,就该准备固件程序了。由于Prusa是完全开源的3D打印机,各种变种特别多,所以固件是否适合你的打印机,是一个比较麻烦的问题。这个问题未来打印虎会单独写一篇教程说明,请关注打印虎的更新内容。对于使用标准Melzi控制板的3D打印机来说,就比较简单了,只要下载Firmware_for_Melzi.zip(打印虎本地下载百度云下载)就可以了。

下载完成之后,还是把这个zip包解压在“下载”文件夹下面,如下图所示。

image010

这时,我们可以用刷固件工具Arduino打开它了。在Arduino的菜单上,选择File-Open…,在文件打开对话框中,把路径切换过去,双击进入PRUSAi3文件夹,往下拉滚动条,就能看到PRUSAi3.ino了。打开它。

image011

马上出现了一个新窗口,如图。这才是我们要的窗口。直接点Upload,也就是那个向右的箭头就可以了。

image012

实际上,在Upload之前需要先选择正确的串行端口。上面说过了,我的3D打印机连接在/dev/cu.usbserial-A603IK3K上,你需要先确定你的3D打印机连接的设备文件名。如果你不记得了,参考上面的文章。如图。

image013

串行端口选择好之后,点Upload按钮。注意右下角红圈里面的文字,Board设置和Serial Port设置这两项必须都正确才行。

image014

这一步需要的时间比较长,可能要等待一分钟左右,进度条消失的时候,如果你的结果跟我的一样,那说明Arduino刷固件成功了。否则,就是出问题了。比如这样:

image015

这是一个典型的出错的情况。说明串行端口指定错误,检查一下先!

第四步,安装Repetier-Host Mac软件

固件刷好之后,就意味着3D打印机已经完全准备好了。下面我们安装电脑端Mac OS X上的控制软件Repetier-Host Mac。安装文件是Repetier-Host-Mac_0_56.dmg(打印虎本地下载百度云下载),3D打印机马上就可以开始工作了哦~

下载完成之后,就可以开始安装了。打开dmg镜像文件,发现是一个很简陋的状态:

image016

虽然简陋,但也足够了。跟上面一样,使用菜单“文件 – 新建Finder窗口”再打开一个Finder窗口,切换到应用程序文件夹,把Repetier-Host Mac图标拖进去,就完成了。如果需要经常使用,可以考虑把应用程序文件夹里面的图标,再拖到桌面托盘上。

启动Repetier-Host Mac程序,会弹出这样一个对话框。很明显,点击“打开”。

image017

主窗口打开的同时,还会再弹出一个对话框,询问是否自动检查更新。选择Check Automatically让软件自动检查就好了。

image018

这时候终于可以看到软件的主界面了:

image019

 

用过Windows版的用户,会发现Mac版的Repetier-Host Mac软件与Windows版本大体上非常类似,3D窗口显得比较简陋一些。这也许是因为Repetier-Host的Windows版本比Mac版本更新的原因。下面我们来配置一下环境,之后就可以开始使用3D打印机了。

第五步,Repetier-Host Mac软件打印机配置

刚刚安装完成的Repetier-Host Mac软件还不能直接使用,还需要根据具体情况进行配置。

首先是按下软件右上角的“Printer settings”按钮image020

 

打印机设置对话框会弹出来:

image021

这个页面的关键,是画着红圈的两项。通讯端口(Port),要选择为我们的3D打印机驱动安装时显示出的串行端口号。通讯波特率(Baud Rate)要设定在115200。

image022

切换到第二个面板“Behaviour”,关键点画着红圈的几个位置。一个是停机位(Dump area position),通常就设定在0, 0, 0处。然后是“任务中断结束后关闭加热床(Disable heated bed after job/job kill)”,建议不打勾,也就是不关闭加热床。还有“任务中断结束后关闭马达(Disable motors after job/job kill)”,建议打勾,方便手动操作马达进行调整。

这几个选项都不是特别关键的选项,不论设置为什么值,3D打印机都应该可以正常工作。

image023

第三个面板是打印机形状(Dimension),也就是实际打印机的长宽高(Print Area Width / Depth / Height)。根据打印机的实际情况设定就可以。我的打印机是200, 200, 180。

最后一个标签页“高级(Advanced)”通常用不上,所以到这里对打印机的配置就结束了。其中,最关键的还是第一个面板里面的内容。如果没填对,可能会造成电脑和3D打印机连接不上,所以一定要好好填写对。最后,按下“OK”按钮,完成整个设置过程。

第六步,手动控制测试

到这里为止,我们已经完成了所有的步骤!但要验证电脑和3D打印机是否确实连接到一起了,还需要简单测试一下。因为目标是检查电脑和3D打印机的连接是否成功,我们就不用打印复杂的3D模型了。这里我们介绍一下手动控制,用手动控制的方式进行这项测试。

回到Repetier-Host Mac主界面,先按下左上角的连接按钮(Connect),等到按钮变绿,就代表连接已经成功了。这是还没有连接上的状态:

image024

这样就代表已经连接好了:

image025

然后把右侧窗口切换到“手动控制”面板,可以看到这样的界面。如果你屏幕不够大,可能只能看到这个窗口的一部分,使用右侧滚动条上下滚动窗口即可。

image026

这个界面上,上面用红色字体列出的的X, Y, Z三行,包括其中的小房子Home按钮,以及后面的带数字的按钮,都是用来手动调整挤出头位置的。现在可以试一下,先按下X行的小房子Home按钮,如果一切正常的话,你的3D打印机应该在X方向复位了。

image027

复位之后,X这一行就不再显示为红色,而变为了黑色。再按下X行的带有数字10的按钮,代表这一次将向X正方向移动10mm距离。按下试试看。

image028

你可以再尝试按下其他按钮。我的打印机在每个方向上,负向都有轻触开关,步进电机不会越位,正向就没有这样的硬件保护措施了,但我们之前在打印机设置里面填写的打印机形状,会在这里起作用。还记得吗?我的打印机是200mm x 200mm x 180mm的大小。这样,当你操作挤出头向X轴正向移动超过200mm时,Repetier-Host Mac程序会自动忽略你的指令,不会超出这个预设的范围。

在这个界面上,还可以单独操作挤出头、加热床以及风扇等3D打印机部件,但这些都不是我们这个安装教程所关心的了。想要了解这些内容,可以看打印虎的另一篇教程,【打印虎原创】3D打印控制软件Repetier-Host使用基础图解教程,这里就不再继续深入了。只要你的打印机能连接上,基础的操作能够按照指令进行,就可以充分说明现在的连接是正常的了。

最后,让我们再看一下,最下面的显示记录窗口。

image029

这个窗口,包含了所有电脑和3D打印机之间的通讯对话。所有对话的具体内容,都一一列在这里了。所以如果我们懂得他们的语言,就可以更好的理解3D打印机,可以更容易的操作它,出了问题也可以深入的分析。在这里,我只想告诉大家电脑和Prusa 3D打印机之间交流的语言叫做G-code。未来我们会给出专门的G-code方面的教程,请关注打印虎的更新内容。

第七步,总结

经过一整套折腾,我的电脑和3D打印机终于快乐的生活在一起了。回顾一下,这里面需要的软件包包括:

文件名 描述
FTDIUSBSerialDriver_v2_2_18.dmg USB设备驱动程序
arduino-1.0.5-macosx.zip Arduino环境,刷固件工具包
sanguino_melzi.zip Arduino环境Melzi配置文件包
Firmware-for-Melzi.zip 3D打印机端固件包,用于Arduino刷固件工具
Repetier-Host-Mac_0_56.dmg 电脑端控制软件Repetier-Host Mac

所有的这些软件包,都可以在这里下载到(打印虎本地下载百度云下载)。

新买来的Prusa 3D打印机,仅仅是安装好,还不能直接开始进行3D打印。如果直接就开打,估计打出来的东西质量会很成问题。想得到高质量的打印结果,必须先对打印机进行校准。【打印虎原创】Prusa_i3_3D打印机校准图解教程-基础篇里面,详细讲解了挤出的校准方法,需要的话可以参考一下。祝大家玩机愉快~

想看更多的打印虎教程,请访问打印虎原创教程专区。有任何相关的问题,请

联系打印虎 QQ 2404959972

【打印虎原创】RepRap_Prusa_i3_3D打印机校准图解教程系列之二

在打印虎的上一篇教程,【打印虎原创】Prusa_i3_3D打印机校准图解教程-基础篇中,我们介绍了最重要、最基础的RepRap Prusa i3 3D打印机校准步骤。其中包括了校准步进电机和校准热床与挤出头之间的距离(也就是热床找平)。把这两项校准做好,3D打印机就可以投入使用了。但是,3D打印机可以进行校准调优的地方,还远不止这两处。想要得到更好的3D打印结果,或者解决3D打印过程中出现的问题,就需要对3D打印机有更深的了解。今天,我们就来给大家讲解更深入一些的3D打印机校准知识。

这篇教程需要大家有Repetier-Host的使用经验。如果你还不太会用这个软件,请先阅读打印虎的另一篇教程,【打印虎原创】3D打印控制软件Repetier-Host使用基础图解教程。特别是其中对3D打印机的手动控制,我们这里需要用到多次,一定要先了解如何使用。

第一节,挤出头挤出速度校准

从Prusa打印机的原理就可以知道,不仅X, Y, Z三个轴上的运动是步进电机控制的,挤出头对塑料丝的挤出,也是由步进电机控制着。控制挤出头挤出动作的步进电机,通常也称作E轴(Extruder)步进电机。

对挤出头的挤出速度的校准,决定了3D打印件的质量。如果挤出头挤出的塑料量过多或者过少,都会造成3D对象的打印质量下降。只有3D打印挤出头输出的塑料量刚好,才能得到高质量的3D打印件。

整个校准过程分为三步。第一步,先获取当前的挤出头挤出速度。这步很简单,只要在Repetier-Host与Prusa 3D打印机连接的情况下,手动输入G-code 3D打印指令即可。因为这些G-code实际上是3D打印机固件解释执行的,因此,固件的版本决定了3D打印机会支持哪些G-code指令。如何知道自己的3D打印机使用的固件版本呢?当你在Repetier-Host软件中连接打印机时,注意观察最初的几条显示记录,其中应该有类似这样的两行:

image001

这两行很长,上面的图没有显示完整,把其中的文本copy出来,是这样的:

08:37:21.852 : FIRMWARE_NAME:Repetier_0.91 FIRMWARE_URL:https://github.com/repetier/Repetier-Firmware/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Mendel EXTRUDER_COUNT:1 REPETIER_PROTOCOL:2
08:37:21.852 : Printed filament:21.02m Printing time:0 days 7 hours 13 min

这段信息报告了使用者当前固件的版本信息、源代码位置、支持的协议版本、3D打印机类型、挤出头个数以及3D打印统计信息。

如果你和我一样,使用的是与Repetier-Host完全兼容的Repetier-Firmware,而且版本是Repetier_0.91,那就非常简单了,当3D打印机空闲状态时,在手动控制的G-code输入框中,输入M205,然后按下发送按钮(如下图)。如果你的固件版本与我不同,我们这里的G-code有可能不能正常运行,这时你只能参考你的固件的说明书了。或者,把你的3D打印机固件刷成Repetier-Firmware也是一种选择。这个操作难度稍大,需要谨慎进行。

image002

输入M205命令后,显示记录窗口会输出很多内容,大致如下。如果动作比较慢,已经输出的结果被后面新的记录内容顶上去了,可以把显示记录窗口往上拉,找到这一段。或者干脆在手动控制的G-code输入框中再输入一遍M205命令。

image003image004

这个表比较长,因此我分成两次截屏。图中标红的那一行,就是我们最关心的内容了。当前记录的内容是,挤出头步进电机的95步,对应了1毫米的送料。这里需要注意的是,这个值是一个与步进电机直接相关的值。随着你的步进电机的型号不同,这个值可能会在比较大的范围内变化。比如,有的人的3D打印机可能是在500~600,这也是正常的情况。我们只相对调整这个值,绝对值的大小在这里是没有意义的。

那么这个值是否需要调整呢?我们用尺子量一量。如下图,用记号笔在塑料上打一个标记。用钢尺量一下这个点的位置。比如,图中这个记号就在钢尺的5厘米处。

image005

回到手动控制,把挤出头的加热按钮打开,等待挤出头温度提高的185度,以便挤出头能正常工作。

image006

达到目标温度时,我们就可以按下挤出按钮了。缺省是挤出10mm,我们这里不用修改缺省值。

image007

再用钢尺测量刚才的记号点位置。很明显,现在记号点在4.2mm处。也就是说,实际塑料丝前进了8mm。

image008

我们希望送入10mm的塑料,实际上仅送入了8mm,很明显,这个差距还是比较大的,如果不进行修正,很可能会影响最终的打印结果。我希望还是调整一下我的3D打印机的挤出头挤出速度参数。根据下面这个公式,计算修正后的挤出头挤出速度。

希望送入长度 / 实际送入长度 = 目标挤出头速度 / 当前挤出头速度

因此,目标挤出头速度 = 希望送入长度 / 实际送入长度 * 当前挤出头速度

对于我们这个情况,目标挤出头挤出速度 = 10 / 8 * 95 ≈ 119。

现在我们把新的挤出头挤出速度计算出来了,如何把这个值送入3D打印机呢?这个时候我们需要用到另一条G-code了。如果你使用的是Repetier-Firmware,你可以在Repetier-Host中输入M206 T3 P200 X119,将这个值调整到119。注意前面的T3和P200这两个参数。这两个参数分别对应了刚才我们用M205命令取出的参数表的两个地方:

image009

需要特别说明的是,这种设定参数的方法,类似于电脑上把数据保存到磁盘,重启3D打印机也不会让这个数据重置为原始值。因此,打印虎强烈建议,在动手修改之前,把原始值先记录在小本本上。如果你的校准过程搞乱了,想恢复到初始状态,还有的救。

假如遇到最极端的情况,这个值没有记录下来,3D打印机的状态还修改乱了,最后只能用刷机的方法将RepRap Prusa i3 3D打印机还原了(见【打印虎原创】Prusa_i3_3D打印机软件安装图解教程)。希望你不会走到这一步。

调整之后,再按照刚才的方法进行送料测量。想要得到更精确的结果,可能经过几轮调整。调整完成后3D打印机就可以以比较标准的挤出头速度运行了。需要说明的一点是,经过我的测试,这个值本身与各种环境因素相关比较大,包括打印机本身、打印材料、环境的温度湿度等等似乎都会对这个值产生一定的影响(毕竟是通过挤出机送料齿轮的摩擦,本身这个方式就不是很精确),大家得到一个大致满意的值就可以,不必过于纠结。这个值是否已经比较合适,可以用下面一节的方法确认。

第二节,使用一个模型对挤出头挤出速度进行验证

我们可以从打印虎3D模型库中找到一个专用的挤出头挤出速度校准验证的3D模型。这个模型本身非常简单,长和宽都是10mm,高3mm。用你的3D打印机打印这个模型,如果挤出头挤出速度正常的话,应该得到这样的结果:

image010

图中的塑料方块,均匀饱满,棱角分明,长宽高都符合设计值。

如果挤出头挤出速度过慢,会是这样的:

image011

初看起来这个塑料块也是正常的,但对比正常结果,就可以发现这个塑料块的塑料丝都偏细,导致顶部最上面一层塑料都没有完全铺满,是一种织物表面的感觉,而不是正常结果中平面的感觉。另外,我从热床上取下这个打印件的时候,不小心造成了图中箭头处的塑料丝脱开。很明显这也是由于挤出头挤出速度设定偏小,塑料丝之间没有紧密贴合造成的。

挤出速度太慢了不行,太快就更不行了:

image012

当挤出头挤出的速度太快了,就会造成塑料过多。多出来的部分就会破坏打印件表面,看图就知道了,不用我多说了。

用这样的方法,我们就可以把挤出头挤出速度校准了。以后每次3D打印都可以很确定,挤出的塑料量刚好合适。当然,3D打印机还有很多其他方面可以通过校准的方式做的更好,想让你的3D打印机更加精准?请继续关注打印虎Prusa 3D打印机系列图解教程。祝大家玩机愉快!

想看更多的打印虎教程,请访问打印虎原创教程专区。有任何相关的问题,请

联系打印虎 QQ 2404959972

【打印虎原创】用RepRap_Prusa_i3_3D打印机打印蝴蝶梳子图解教程

在前面的打印虎教程中,我们已经学会了如何安装RepRap Prusa i3 3D打印机的软件,也搞定了3D打印机的校准,还学会了使用Repetier-Host这款3D打印机控制软件。这次,我们做一个比较实用的生活用品,用3D打印的方式,制造一个蝴蝶梳子。

首先我们先看看蝴蝶梳子模型,大家可以从打印虎3D打印模型库下载到蝴蝶梳子模型。看一下模型所附带的照片,就可以看出,这个模型是由几个部件组成的,把几个部件分别打印,再组合起来之后,就可以得到完整的蝴蝶梳子了。

image001

 

在页面上,点击“下载全部文件”,就可以下载得到全部的模型文件了。这些文件不大,整个Zip包才只有144K,一下子就下载完成了。

用WinRAR或者类似的工具,右键单击刚刚下载的“蝴蝶梳子.zip”文件,选择“解压到 蝴蝶梳子”这项菜单,就可以把Zip压缩包解开了。

这时,下载目录里面会出现一个新的文件夹,名称就是蝴蝶梳子,里面会有四个STL文件,类似于这样:

image002

蝴蝶梳子文件夹里面的四个文件,参考对照网页上的文件名和图片:

image003

可以知道,分别是梳子的齿(Comb.stl),梳子的把(Handle.stl),连接的钉(Pin.stl)和连接的钉帽(Cap.stl)。其中除了梳子的齿部件之外,都需要两份。准备好所有的部件之后,组合起来就可以使用了。

要想知道是不是这么简单,打印组合就OK,我们需要亲自试一试。

打开3D打印机,连上USB连线,启动Repetier-Host。如果你不知道Repetier-Host是什么,请参考【打印虎原创】3D打印控制软件Repetier-Host使用基础图解教程,我们这里就不具体讲解了。

image004

首先点击工具栏第一个红色按钮,连接Repetier-Host与Prusa 3D打印机。上图中所示的状态,是已经连接好的状态,这时按钮变为绿色,提示用户现在可以随时操作3D打印机了。

再按下工具栏第二个按钮,载入刚才用WinRAR解压的压缩包中的Comb.stl文件。按下F5,将3D模型居中显示,发现还有点问题:

image005

这个梳子模型缺省状态是竖着的image006,直接这么打印恐怕不太行啊。先把梳子横过来,在右侧的物体放置一栏里面,把旋转X编辑框填入90。再点F5键。

image007

这时,梳子至少是横着的,比较适合打印的状态了:

image008

感觉上(也是跟Repetier-Host在3D窗口绘制的格子比),梳子似乎有点小。按下右侧窗口物体放置面板上的模型信息按钮看看:

image009

果然,在梳子的最长的方向,Y轴上,也只有4.17毫米,这是给小强用的梳子吧?必须调整一下才行。

image010

经过我的严密调查,测量对比我家里的木质梳子,加上合理的猜测,最终我认为,这个问题的产生,是由于模型的STL文件,与Repetier-Host使用了不同的单位造成的。模型本身很可能使用了英寸(inch)作为单位,但Repetier-Host使用了毫米(mm)作为单位。

在这种情况下,显然在缩放那一栏里面,填入25.4试一试是一个好的选择。填好X的值之后,由于X, Y, Z轴是锁定的,另外两个轴也跟着放大了25.4倍。再按一下上面工具栏上的小按钮“物体对中”

image011

再F5,看看左侧窗口的3D窗口面板,这次看起来对劲了:

image012

下面开始切片,右侧窗口切换到代码生成器面板,按下最大的按钮“开始生成代码Slic3r”。 当然,Slic3r和3D打印机的设置必须先搞好。如果你不知道怎么搞定这个,可以参考【打印虎原创】Prusa_i3_3D打印机软件安装图解教程,这篇文档中有详细的说明。

image013

很快G-code代码就生成好了,同时切换到了下一个面板,代码编辑。

image014

这里没什么需要修改的,看起来一切正常的话,就按下运行任务按钮吧。

image015

任务开始运行后,我们还是把左侧窗口切换到“温度曲线”面板,一边在电脑上监控,一边观察3D打印机上模型的逐渐生成。

image016

第一次打印到第二层或第三层的地方,就感觉到有些不对劲了。赶紧把3D打印机停下来看看。

image017

很明显,有几个梳子齿没有能够很好的附着在热床上,打残废了。重来。

image018

 

第二次打印看起来顺利多了,前几层都很好的附着在热床上了,剩下的层也肯定没问题了。

image019

这回顺利完成了!从热床上取下来仔细观察一下。

image020

这次的打印效果还是很不错的。梳子的齿的部分顺利完成了。

下面,该打印剩下的部件了。先回到右侧窗口“物体放置”面板,按下删除图标,把梳子的齿模型删除。

image021

这次我决定一次多打印一点东西,按照上面同样的方法,载入剩下的三个模型部件。其中,Handle.stl的比例是正确的,不用动了。而另外两个模型,Cap.stl和Pin.stl,都需要与上面同样的操作,延X轴旋转90度并且放大25.4倍。做完这些,用鼠标拖放的方式选中所有三个模型,并按下上面小工具栏中的自动放置按钮,所有三个模型将被放置在合适的位置上。

image022

再按下F5键,3D模型窗口如下面所示:

image023

因为这三个模型都需要双份的,所以我们还需要操作一下右侧的物体放置面板。保持三个stl模型文件都被选中的状态,按下复制物体小按钮。

image024

在弹出的对话框中,直接按下“复制”按钮,复制1份。

image025

按下F5,左侧的3D模型窗口如下所示:

image026

这时就可以开始切片、打印了。与上面的方式完全相同,先切换右侧窗口到“代码生成器”面板,按下“开始生成代码Slic3r”按钮,等一会,切片后的G-code代码就生成好了。没有问题的话,按下主工具栏的“运行任务”按钮,开始这一次3D打印任务。

image027

打了两三层之后仔细观察一下,这次附着在热床上的效果比较好,没出问题。

image028

继续,这是打印到小一半的时候的效果:

image029

继续,可以看一下梳子把上的圆孔合拢时的情况。这步之前一个钉和热床没粘牢,被甩出去了,另一个钉也连带着打残了。不过还好剩下的部分没出问题。

image030

完成时的样子

image031

再把两个钉打印一遍,全部完成之后,尝试着组合起来。组合过程中,我发现梳子齿部件上的孔太小了,用小钻头扩大一些,就可以顺利的安装了。下面是安装完成的定妆照

image032

梳子的把是可以转动的

image033

最终可以完全收在梳子的把里面,方便携带。

image034

好了,到此为止,我们这次3D打印制作顺利完成!明天可以把梳子带给小伙伴们炫耀一下啦!

总结一下,在这次蝴蝶梳子的3D打印过程中,我们学到了:

1. 三维模型载入之后,一定要检查好形态、单位是毫米还是英寸,以免出现尺寸的问题;

2. 打印过程中最开始的两三层是最容易出问题的,一定要看好,出了问题要及时停机;

想看更多的打印虎教程,请访问打印虎原创教程专区。有任何相关的问题,请

联系打印虎 QQ 2404959972

【打印虎原创】Prusa_i3_3D打印机软件安装图解教程

本文已经更新:【打印虎】RepRap Prusa i3 3D打印机软件安装图解教程 第二版


最近闲来无事,安装了一台RepRap Prusa i3。硬件很容易就安装好了,软件部分看起来比较麻烦,怎么搞呢?

第一步,开机

第一步当然是打开3D打印机了。对于很多Prusa来说,所谓的“打开”,就是把电源插在接线板上,这些简易版本的3D打印机并没有一个开关按钮。如何判断电源是否已经连接了呢?一个办法是观察打印挤出头上的风扇。这个风扇是常开的,所以只要电源连接好了,这个风扇就应该工作了,能够看到扇叶是转动的,而且多多少少会有些噪音。

image001

另一个方法就是观察电路板了,电路板上有一个LED,可以指示电路板是否已经接通电源。下图箭头指的就是Melzi电路板上的电源指示灯的位置。但这个方法有一个缺陷,这个LED灯是否是亮的,除了电源是否插好之外,还取决于固件的版本和行为。有些固件即使在正常工作的状态下,这个LED也不会亮起来。因此,这个LED只能作为Prusa 3D打印机是否加电的一个参考,并不是决定性的标志。

image002

第二步,安装USB驱动

开机之后自然就要把USB线连上电脑了。当然先连USB线再开机也是完全没问题的。这里只介绍在最常见的64位Windows 7系统下的安装方法,以后有机会再介绍其他操作系统。安装USB驱动需要先下载驱动文件包CDM_2.08.28_WHQL_Certified.zip(打印虎本地下载百度云下载),解压后得到名称为“CDM 2.08.28 WHQL Certified”的文件夹。下面的操作假设这个文件夹在“D:\Download”下,其他文件夹也是类似的。

连上电脑之后等一会,Windows系统会提示:

image003

很遗憾,Windows 7不能自动找到相关的设备驱动,需要我们手动安装。

在开始菜单中,用鼠标右键单击“计算机”,再选择“管理”菜单。

image004

这时计算机管理窗口将打开,选择其中的“设备管理器”,在主窗口中将看到带黄色惊叹号图标的“FT232R USB UART”设备。这就是PrusaUSB接口设备了。

image005

鼠标右键单击这个设备,选择菜单中的“更新驱动程序软件…”菜单项。

image006

在打开的窗口中,选择“浏览计算机以查找驱动程序软件”。

image007

下一页需要选择驱动程序的位置,当然,选择刚才我们把驱动程序包解压的位置,比如图中所示的“D:\Download\CDM 2.08.28 WHQL Certified”文件夹。注意把“包括子文件夹”前面的勾打上。

image008

点下一步之后,Windows需要一点时间安装驱动程序,安装完成之后,会显示:

image009

这时,第一个驱动就已经安装好了。按下“关闭”回到计算机管理窗口,其中大致上是这样的:

image010

可以看到,USB Serial Converter已经安装好驱动,但又出来了一个新设备,USB Serial Port,还是没有安装好驱动的状态,有一个黄色惊叹号图标。再对这个设备执行一次上面的过程,用鼠标右键单击,选择菜单“更新驱动程序软件”,然后选择“浏览计算机以查找驱动程序软件”。这时驱动文件夹应该已经填好,不需要再修改了,直接点击下一步,就成了。Windows把驱动安装好了之后会显示:

image011

这时候两个设备都已经安装好了设备驱动,按下“关闭”按钮回到设备管理器窗口,

image012

如果两个设备都显示为正常,那就说明设备驱动程序安装成功啦。当然,根据具体环境的不同,USB Serial Port不一定会对应COM3,也可能是COM2,或者COM5,这都是有可能的。你需要记住你的USB Serial Port对应的COM口编号,后边还要多次用到的哦~

驱动安装好了,意味着电脑和Prusa之间的通信通道已经打开,它们随时可以对话了。对话的内容,当然是围绕着3D打印啦,比如电脑会通知Prusa,把打印头移动到某个特定的地方,或者现在开始加热挤出头,之类的。Prusa也会回答电脑的提问,比如加热板、挤出头现在的温度,等等啦。当然这些对话的内容是有严格的规范的,电脑和Prusa两边也必须同时了解这些规范。假如通信的两边对话的基础语言都不同,出错就在所难免了。第六步的最后,你可以看到,在电脑控制软件Repetier-Host里面,有一个专门的显示记录窗口,里面所列的就是电脑和Prusa之间的对话内容。

第三步,给Prusa刷固件

看到这一步的标题,可能有人就有问题了。什么叫“固件”啊?看起来好神秘的样子。其实固件一点也不神秘,所谓“固件”,其实就是芯片里面的软件。相比于电脑里面的软件,芯片里面的软件修改起来更加麻烦,需要专门的工具才能做到,看起来是“固定”的,所以就得到了“固件”(Firmware)这个名字。

上面说了,电脑和Prusa两边的通信,必须精确地符合同一种规范,3D打印机才能有效的工作。保证两边符合同一种规范最好的方法,就是两边同时用已经被验证兼容的软件、固件版本。当前3D打印机发展比较快,可能过不了几个月,原来的规范就会被新版规范所代替,因此给Prusa刷固件,也就是升级,就成了一项必须的工作。

因为Prusa上可以操作的界面很有限(image013真的有可以操作的地方吗?),因此刷固件这件事,还得借助电脑才能完成。光有电脑还不行,还需要专门的软件工具,这个刷固件的工具就是arduino软件环境了。这个软件环境的尺寸可不小,大约有52M。我下载使用的是最新稳定版本arduino-1.0.5-r2-windows.exe(打印虎本地下载百度云下载)。

下载完成之后,运行起来,安装界面是这样的。这里点“I Agree”按钮,接受Arduino的用户协议。

image014

在选择安装组件的页面上,可以把Install USB driver的勾去掉,这样就不用安装Arduino自带的USB驱动了(这个USB驱动与Melzi是不兼容的,安装了也没有用)。点Next继续。

image015

下面是选择安装路径

image016

我就在缺省的C盘安装了。这时候按下Install开始安装。安装到最后,出现这个窗口

image017

按下Close按钮,Arduino安装过程就全部完成了。这时,我们可以在桌面找到Arduino的图标,并双击打开它:

image018

Arduino软件运行起来的样子:

image019

话说Arduino其实是一大家子,Melzi只是个养子,不是亲生的就没有地位啊,想要给Melzi刷固件,光有Arduino环境还不够,还需要加一套与硬件相关的配置文件sanguino_melzi.zip(打印虎本地下载百度云下载)。

把zip文件下载下来,解压,拷贝到C:\Program Files (x86)\Arduino\hardware目录下,就是图中那个sanguino文件夹了。

image020

有了这套与硬件相关的配置文件,再重新启动Arduino,就能在Arduino的菜单里面看到一个新菜单项。看到菜单最下面的Melzi 1284p 16mhz了吗?就是它。别忘了选定它!如果你打开之后这个菜单项没有出现,说明前面一步做错了,回去再检查一下吧。

image021

刷固件工具Arduino准备好了之后,就该准备固件程序了。由于Prusa是完全开源的3D打印机,各种变种特别多,所以固件是否适合你的打印机,是一个比较麻烦的问题。这个问题未来打印虎会单独写一篇教程说明,请关注打印虎的更新内容。对于使用标准Melzi控制板的3D打印机来说,就比较简单了,只要下载Firmware_for_Melzi.zip(打印虎本地下载百度云下载)就可以了。

下载完成之后,把这个zip包解压在D:\Download\Firmware_for_Melzi下,我们可以用刷固件工具Arduino打开它了。在Arduino的菜单上,选择File-Open…,在文件打开对话框中,把路径切换过去,双击进入PRUSAi3文件夹,往下拉滚动条,就能看到PRUSAi3.ino了。打开它。

image022

马上出现了一个新窗口,如图。这才是我们要的窗口。直接点Upload,也就是那个向右的箭头就可以了。

image023

实际上,在Upload之前需要先选择正确的COM端口。我的3D打印机连接在COM3上,你需要先确定你的3D打印机连接的端口号。如果你不记得了,参考上面的文章,回到设备管理器里面去看看应该就知道了。如图。

image024

COM端口选择好之后,点Upload按钮。注意右下角红圈里面的文字,Board设置和Serial Port设置这两项必须都正确才行。

image025

这一步需要的时间比较长,可能要等待一分钟左右,进度条消失的时候,如果你的结果跟我的一样,那说明Arduino刷固件成功了。否则,就是出问题了。比如这样:

image026

这是一个典型的出错的情况。说明COM端口指定错误,或者你的Prusa 3D打印机还没有连到电脑,需要检查一下先!

第四步,安装Repetier-Host软件

固件刷好之后,就意味着3D打印机已经完全准备好了。下面我们安装电脑端Windows上的控制软件Repetier-Host。安装文件是setupRepetierHost_0_95.exe(打印虎本地下载百度云下载),3D打印机马上就可以开始工作了哦~

下载完成之后,就可以开始安装了。先选择语言,好多种语言里面没有中文,只好选择英文了。(选择语言的这个地方有点诡异,这里没有中文的选择,但安装完成之后软件里面其实是有的,而且会自动与操作系统的语言做匹配,调整为中文界面)

image027

第一页简单介绍,按next进入下一步。

image028

第二页是许可条款,按next进入下一步。

image029

选择安装的路径。我就在缺省路径上安装了。按下Next。

image030

可以重新设定程序在开始菜单里面的名字。有这个必要吗?按下Next继续。

image031

是否在桌面上建立一个图标?建一个吧。点Next继续。

image032

正式安装前的信息总结。没问题就开始吧。点Install开始安装!

image033

很快安装就完成了,这时会看到

image034

点Finish就完成整个安装过程了。Repetier-Host会在安装完成之后自动启动。当然,以后你可以在桌面找到Repetier-Host的图标,鼠标双击启动它:

image035

第五步,Repetier-Host软件打印机配置

刚刚安装完成的Repetier-Host软件还不能直接使用,还需要根据具体情况进行配置。

首先是按下软件右上角的“打印机设置”按钮

image036

打印机设置对话框会弹出来:

image037

这个页面的关键,是画着红圈的几项。通讯端口,要选择为我们的3D打印机驱动安装时显示出的COM端口号。通讯波特率要设定在115200。连接时复位要选择“关闭”。

image038

切换到第二个面板打印机,关键点画着红圈的几个位置。一个是停机位,通常就设定在0, 0, 0处。然后是“任务中断结束后关闭加热床”,建议不打勾,也就是不关闭加热床。还有“任务中断结束后关闭马达”,建议打勾,方便手动操作马达进行调整。

这几个选项都不是特别关键的选项,不论设置为什么值,3D打印机都应该可以正常工作。

image039

第三个面板是打印机形状,也就是实际打印机的长宽高。根据打印机的实际情况设定就可以。我的打印机是200, 200, 180。

最后一个标签页“高级”通常用不上,所以到这里对打印机的配置就结束了。其中,最关键的还是第一个面板里面的内容。如果没填对,可能会造成电脑和3D打印机连接不上,所以一定要好好填写对。最后,按下“确定”按钮,完成整个设置过程。

第六步,手动控制测试

到这里为止,我们已经完成了所有的步骤!但要验证电脑和3D打印机是否确实连接到一起了,还需要简单测试一下。因为目标是检查电脑和3D打印机的连接是否成功,我们就不用打印复杂的3D模型了。这里我们介绍一下手动控制,用手动控制的方式进行这项测试。

回到Repetier-Host主界面,先按下左上角的连接按钮,等到按钮变绿,就代表连接已经成功了。这是还没有连接上的状态:

image040

这样就代表已经连接好了:

image041

然后把右侧窗口切换到“手动控制”面板,可以看到这样的界面。如果你屏幕不够大(像我一样),可能只能看到这个窗口的一部分,使用右侧滚动条上下滚动窗口即可。

image042

这个界面上,最上面的箭头和小房子按钮,都是用来手动调整挤出头位置的。现在可以试一下,先按下标记X的小房子按钮,如果一切正常的话,你的3D打印机应该在X方向复位了。

image043

再按下+X箭头的第三格,鼠标在这一格上面的时候,四个箭头中间就会显示出10mm,代表这一次将向X正方向移动10mm距离。按下试试看。

image044

你可以再尝试按下其他按钮。我的打印机在每个方向上,负向都有轻触开关,步进电机不会越位,正向没有这样的硬件保护措施了,但我们之前在打印机设置里面填写的打印机形状,会在这里起作用。还记得吗?我的打印机是200mm x 200mm x 180mm的大小。这样,当你操作挤出头向X轴正向移动超过200mm时,Repetier-Host程序会自动忽略你的指令,不会超出这个预设的范围。

在这个界面上,还可以单独操作挤出头、加热床以及风扇等3D打印机部件,但这些都不是我们这个安装教程所关心的了。想要了解这些内容,可以看打印虎的另一篇教程,【打印虎原创】3D打印控制软件Repetier-Host使用基础图解教程,这里就不再继续深入了。只要你的打印机能连接上,基础的操作能够按照指令进行,就可以充分说明现在的连接是正常的了。

最后,让我们再看一下,最下面的显示记录窗口。

image045

这个窗口,包含了所有电脑和3D打印机之间的通讯对话。所有对话的具体内容,都一一列在这里了。所以如果我们懂得他们的语言,就可以更好的理解3D打印机,可以更容易的操作它,出了问题也可以深入的分析。在这里,我只想告诉大家电脑和Prusa 3D打印机之间交流的语言叫做G-code。未来我们会给出专门的G-code方面的教程,请关注打印虎的更新内容。

第七步,总结

经过一整套折腾,我的电脑和3D打印机终于快乐的生活在一起了。回顾一下,这里面需要的软件包包括:

文件名 描述
CDM 2.08.28 WHQL Certified.zip USB设备驱动程序
arduino-1.0.5-r2-windows.exe Arduino环境,刷固件工具包
sanguino_melzi.zip Arduino环境Melzi配置文件包
Firmware-for-Melzi.zip 3D打印机端固件包,用于Arduino刷固件工具
setupRepetierHost_0_95.exe 电脑端控制软件Repetier-Host V0.95F

所有的这些软件包,都可以在这里下载到(打印虎本地下载百度云下载)。

新买来的Prusa 3D打印机,仅仅是安装好,还不能直接开始进行3D打印。如果直接就开打,估计打出来的东西质量会很成问题。想得到高质量的打印结果,必须先对打印机进行校准。