第7章基于Arduino控制的3D打印机项目ppt课件.pptx
《第7章基于Arduino控制的3D打印机项目ppt课件.pptx》由会员分享,可在线阅读,更多相关《第7章基于Arduino控制的3D打印机项目ppt课件.pptx(107页珍藏版)》请在三一办公上搜索。
1、第7章基于Arduino控制的3D打印机项目,目录,7.1 设计思想7.2 材料清单7.3 安装过程7.4 固件详解7.5 打印过程的注意事项,7.1 设计思想,3D打印技术的出现,为各行各业乃至于这个世界提供了无限可能。3D打印机让创造离人们生活从未来,它迅速的拉近了梦想构思和现实的距离,同时也快速推进了各行业的创新速度。3D打印机被誉为第三次工业革命重要标志,3D打印以其个性化、低消耗、小批量、高难度的制造新理念,正在颠覆传统的锻造、切削加工制造模式,给大规模生产线的工业组织方式带来了重大变革。目前,3D打印已形成了从数据采集、材料、打印设备到应用服务的较为完整的产业链,被广泛应用于航空航
2、天、汽车制造、医疗器械、个人消费、教育科研和军工生产等领域。,7.2 材料清单,7.3 安装过程,首先将所有的型材进行分类,找出X型材(245mm)、Y型材(385mm)、M5螺丝、M5T螺母和角件,如图7-1所示。用螺丝和螺母穿过角件并固定好X、Y型材,安装图7-2的摆放方式进行固定安装,安装的时候要注意不要将螺丝拧的特别紧,避免出现脱扣的情况出现。应该预留一定的松紧度,方便随时调整对其,确认角度没有问题后将螺丝拧紧,确保结构牢固。,7.3.1 机架安装,图7-1 分类图,图7-2 X、Y型材安装图,找出横梁型材(410mm)1根、Z轴型材(310mm)2根,角件2个,M5螺丝2个,M5T螺
3、母2个,M5扳手1个。将上一步的底座四角朝下,再长轴上找出255mm的位置上安装Z轴,安装的时候要注意两个Z轴型材的位置是一样的,如图7-3所示。,图7-3 X、Y、Z型材安装图,固定好两个Z轴型材后,开始安装横梁。横梁与Z轴固定的位置应该留有62mm的距离,并注意两边距离相同。安装如图7-4所示。,图7-4 横梁安装图,上述步骤完成之后开始安装料架,料架安装在横梁上,应该距离横梁的一侧245mm ,具体安装如图7-5所示。到这步为止铝型材框结构安装完毕。,图7-5 料架安装图,7.3.2 平台安装,1.平台安装 找出铝板、直线轴承3个、打印件4个、M3螺丝8个、M3T螺母8个、扎带6个。首先
4、用扎带固定直线轴承在打印件上,之后减掉多余的扎带。然后将三个直线轴承固定在铝板上。如图7-6所示。,图7-6 直线轴承固定示意图,2.X平台安装 准备直线轴承3个,打印件1个,扎带6个。与X轴安装方法类似,将直线轴承塞入打印件,然后用M3和M3T将其固定在打印件上。如图7-7所示。,图7-7 X平台安装图(1),准备好电机1个,和与其配套的打印件、直线轴承2个、限位开关1个、同步轮1个、热缩管1段。用杜邦线连接限位开关,常开脚并用热缩管包住。如图7-8所示。,图7-8 X平台安装图(2),将电机用M3螺丝和M3T螺母固定在配套的打印件上,确定稳固后将同步轮固定在电机上。这时应该特别注意,同步轮
5、的齿轮一定要在打印件的空隙正中处,并能保证正常转动。上述步骤完成后将处理好的限位开关用扎带固定在打印件上,注意扎带要从打印件的空隙处穿过,完成的电机如7-9所示。,图7-9 X平台安装图(3),找出最短的两根光轴,与上一步的半成件进行组装。此步骤完成后X轴平台安装完毕。完成图如7-10所示。,图7-10 X平台安装图(4),3.Z平台安装,首先按照图7-11准备好想要材料。将联轴器和电机组装到一起,这个过程要注意因为联轴器顶丝打在电机D面内部两端的直径不同,需要插入直径小的部分中,如图7-12所示。完成之后贴近铝型材进行固定,拼装后的完成图如7-13所示。,图7-12 联轴器和电机组装图,图7
6、-11 材料图,图7-13 固定图,找出剩余的两根光轴和丝杆,组装成图7-14的样式。安装过程中要特别注意,光杆要轻缓的穿过直线轴承。如果遇到阻塞,可以适当的调节期间的宽度,但是动作一定要轻缓。,图7-14 光轴与丝杆组装图,找出同步带、扎带、张紧弹簧,按图7-15的方法和Y轴同步带进行组装,一定要注意张紧弹簧的安装位置。,图7-15 与Y轴同步带组装图,4.机械杂件的安装,完成上述安装步骤之后是进行热床的安装,准备好将热板、4个弹簧、4个M3自锁螺母、4个M3螺丝。如图7-16所示。用M3螺丝和螺母插入打印件,将热板固定在铁板上,拧紧4个角的螺丝。然后进行限位开关的安装,注意拧的过程不要太紧
7、,因为打印时可能还需要进行调试。如7-17所示。,图7-16 材料图,图7-17 热板固定图,接下来安装挤出机和电源,这两部分相对较为简单,按照图7-18、7-19进行安装。,图7-18 挤出机安装图,图7-19 电源安装图,7.3.3 控制板安装及布线,1.主控板安装本打印的核心控制单元是Arduino mega 2560, mega 2560板子在3d打印机中相当于大脑,控制这所有的3d打印配件来完成复杂的打印工作,但mega2560不能直接使用,需要上传(upload)固件(firmware)才可以使用,本项目采用的固件是Marlin 固件会在下节进行详细的介绍。此外mega2560需要
8、和Reprap Ramps 1.4扩展板进行组合,通过扩展板完成对3D打印机的控制。 mega2560和Reprap Ramps 1.4只需将后者的引脚插入2560即可,具体如图7-20所示。两者组合的时候要注意不要特别用力,如果某些引脚出现歪了的情况,只需将其掰正即可,不影响正常使用。,图7-20 引脚插入图,组合完成之后需要进行Reprap Ramps 1.4的相关电路连接,具体连接示意图如图7-21所示。,图7-21 连接示意图,7.4 固件详解,7.4.1概述 Sprinter 固件是目前用的比较多的 3D 打印机固件,而 Marlin 固件和Repetier-firmware 固件都
9、是由其派生而来。而且这两款固件的用户群非常活跃,而 Sprinter固件已经没有人维护了。在这二者中,Marlin 固件的使用更加广泛,很多打印机控制软件都兼容 Marlin 固件。一般用户在使用 Marlin 固件的时候只需要改变一下 Configuration.h 文件中的一些参数即可,非常方便。本节主要介绍用户设置的基本信息、怎么运用这些设置、根据不同的需求制定特色功能。Marlin 固件可在本书配套资源中找到。固件实际上是通过特定软件写入ArduinoMEGA 2560内部的,实际上是通过ArduinoMEGA 2560 发送各种控制指令对打印件进行三轴的控制。,7.4.2 Marli
10、n 固件特点,Marlin 相对于 Sprinter 有很多优点,具体为以下几点:1. 预加速功能(Look-ahead): Sprinter 在每个角处必须使打印机先停下然后再加速继续运行,而预加速只会减速或加速到某一个速度值,从而速度的矢量变化不会超过 xy_jerk_velocity。要达到这样的效果,必须预先处理下一步的运动。这样一来加快了打印速度,而且在拐角处减少耗材的堆积,曲线打印更加平滑。2. 支持圆弧(Arc Support):Marlin 固件可以自动调整分辨率去以接近恒定速度打印一段圆弧,得到最平滑的弧线。这样做的另一个优点是减少串口通信量。因为通过 1 条 G2/G3 指
11、令即可打印圆弧,而不用通过多条 G1 指令。,3. 温度多重采样(Temperature Oversampling):为了降低噪声的干扰,使PID温度控制更加有效,Marlin采样16次取平均值去计算温度。4. 自动调节温度(AutoTemp):当打印任务要求挤出速度有较大的变化时,或者实时改变打印速度,那么打印速度也需要随之改变。通常情况下,较高的打印速度要求较高的温度,Marlin 可以使用 M10S B F指令去自动控制温度。使用不带 F 参数的 M109 指令不会自动调节温度。否则,Marlin 会计算缓存中所有移指令中最大的挤出速度(单位是 steps/sec),即所谓的“maxer
12、ate”。然后目标温度值通过公式 T = tempmin + factor*maxerate,同时限制在最小温度(tempmin)和最大温度(tempmax)之间。如果目标温度小于最小温度,那么自动调节将不起作用。最理想的情况下,用户可以不用去控制温度,只需要在开始使用 M109 S B F,并在结束时使用M109 S0。,5. 非易失存储器(EEPROM): Marlin 固件将一些常用的参数,比如加速度、最大速度、各轴运动单位等存储在 EEPROM中,用户可以在校准打印机的时候调整这些参数,然后存储到 EEPROM 中,这些改变在打印机重启之后生效而且永久保存。6. 液晶显示器菜单(LCD
13、 Menu): 如果硬件支持,用户可以构建一个脱机智能控制器(LCD 屏+SD 卡槽+编码器+按键)。用户可以通过液晶显示器菜单实时调整温度、加速度、速度、流量倍率,选择并打印 SD卡中的 G-Code 文件,预加热,禁用步进电机和其他操作。比较常用的有 LCD2004 只能控制器和 LCD12864 只能控制器。,7.SD 卡内支持文件夹(SD card folders): Marlin 固件可以读取 SD 卡中子文件夹内的 G-Code 文件,不必是根目录下的文件。8.SD 卡自动打印(SD card auto print): 若 SD 卡根目录中有文件名为 auto0-9.g 的文件时,
14、打印机会在开机后自动开始打印该文件。9. 限位开关触发记录(Endstop trigger reporting): 如果打印机运行过程中碰到了限位开关,那么 Marlin 会将限位开关触发的位置发送到串口,并给出一个警告。这对于用户分析打印过程中遇到的问题是很有用的。,10. 编码规范(Coding paradigm): Marlin 固件采用模块化编程方式,让用户可以清晰地理解整个程序。这为以后将固件升级到 ARM 系统提供很大的方便。11. 基于中断的温度测量(Interrupt based temperature measurements):一路中断去处理 ADC 转换和检查温度变化,这
15、样就减少了单片机资源的使用。12. 支持多种机械结构: 普通的 XYZ 正交机械,CoreXY 机械,Delta 机械以及 SCARA 机械。,7.4.3基本配置,使用 Arduino IDE 打开 marlin.ino,切换到 Configuration.h 即可查看并修改该文件。或者使用任何一款文本编辑器(notepad,notpad+等)直接打开 Configuration.h 也可以。Marlin固件的配置主要包含一下几个方面:1. 通讯波特率2. 主板类型,所使用的主板类型3. 温度传感器类型,包括挤出头温度传感器和加热床的温度传感器4. 温度配置,包括喷头温度和加热床温度,5. P
16、ID 温控参数,包括喷头温度控制和加热床温度控制6. 限位开关7. 4 个轴步进电机方向8.X/Y/Z 三个坐标轴的初始位置9. 打印机运动范围10. 自动调平11. 运动速度12. 各轴运动分辨率13. 脱机控制器,根据经验来说,Marlin 固件中的 Configuration.h 将各个配置模块化,非常便于读及修改,而且注释非常详细,英文好的同学可以很容易地理解各参数的意义。注意到 Marlin固件使用 C 语言编写,“/”后面的是注释语句,不会影响代码的作用。另外 Marlin 固件中大量使用#define,简单来讲,就是定义的意思,包括定义某个参数的数值,定义某个参数否存在。最开始的
17、两行非注释语句是定义固件的版本和作者。缺省的版本号就是编译时间,这可以不用修改,只需要把作者改为自己的名字即可,注意不能包含中文,不然会乱码。#define STRING_VERSION_CONFIG_H _DATE_ _TIME_ / build date and time#define STRING_CONFIG_H_AUTHOR / who made the changes.,电脑和打印机通过串口进行通讯,要定义好端口和波特率,在此定义的是 3D 打印主的端口和波特率,端口号使用默认的 0 就可以了。Marlin 固件默认的波特率是 250000,可以修改为其他值,比如 115200,这
18、是标准的 ANSI 波特率值。#define SERIAL_PORT 0#define BAUDRATE 250000下面定义主板类型,Marlin 固件支持非常多种类的 3D 打印机主板,比如常见的RAMPS1.3/1.4、Melzi、Printrboard、Ultimainboard、Sanguinololu 等控制板。需要注意的是不同主板使用不同的脚口和数量,如果该定义和 Arduino IDE 中使用的主板不一致,肯定会导致编译不通过。笔者使用的是 RAMPS1.4 并且 D8、D9、D10 控制的是一个喷头加热、一个加热床加热和一个风扇输出,因此定义为 33。#ifndef MOTH
19、ERBOARD#define MOTHERBOARD 3,#endif接下来是定义挤出头的个数及电源类型,笔者使用的是单喷头打印机,因此定义为 1。电源有两种类型可以选择,1 表示开关电源,2 表示 X-Box 360 203 伏电源,一般都使用的是开关电源,因此定义为 1。#define EXTRUDERS 1#define POWER_SUPPLY 1接下来定义温度传感器类型,包括每个喷头使用的温度传感器(如果是多喷头)和加热床的温度传感器类型,常用的温度传感器有电热偶和热敏电阻两大类,热敏电阻又分为很多种。目前的 3D 打印机主要用的是热敏电阻,具体是哪种热敏电阻需要自己判断或询问卖家,
20、不出意外的话,都是 100k ntc 热敏电阻,即 1。根据注释,1 要求 4.7k 的上拉电阻,而根据RepRap wiki,几乎所有的 3D 打印机都使用了 4.7K 的热敏电阻上拉电阻。笔者观察了几种电路板的电路图,发现都使用了 4.7K 的上拉电阻,如图 7-22 所示。,/ 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)笔者的打印机为单喷头,因此第一个喷头的温度传感器配置为 1,其他配置为 0(0 表示没有使用),加热床的温度传感器也配置为 1。#define TEMP_SENSOR_0 1#define
21、 TEMP_SENSOR_1 0#define TEMP_SENSOR_2 0#define TEMP_SENSOR_BED 1器件连接原理图如图7-22所示。,图7-22 器件连接原理图,接下来是温度检测的一些配置,包括双喷头温度差,M109 检测配置,安全温度配置。下面进行一一解释。 首先下面这一句配置双喷头温差最大值,如果温度超过这个数值,那么打印机会终止工作,因此对于双喷头打印机玩家来说,这个参数需要注意。#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 下面这一段配置 M109 指令完成的指标,我们知道,M109 指令设定喷头温度并等待,那么等待到什
22、么时候呢?下面这三个参数控制这个时间。第一个参数表示温度“接近”目标温度必须持续 10 秒才算加热完成,第二个参数表示和目标温度相差不超过 3为“接近”,第三个参数表示从温度与目标温度相差不超过 1 度开始计时,从此刻开始,温度和目标温度持续接近 10 秒钟,则完成加热。,#define TEMP_RESIDENCY_TIME 10 #define TEMP_HYSTERESIS 3 #define TEMP_WINDOW 1 下面配置安全温度范围的下限和上限,包括各个喷头和加热床。如果温度超过下限,那么打印机会抛出 MINTEMP 的错误并终止工作,如果超过上限,那么打印机抛出 MAXTEM
23、P的错误并终止工作。Marlin 用这种方式保护 3D 打印机。下面的配置最小温度都是 5,喷头的最大温度为 275,热床的最大温度为 150。#define HEATER_0_MINTEMP 5#define HEATER_1_MINTEMP 5#define HEATER_2_MINTEMP 5#define BED_MINTEMP 5#define HEATER_0_MAXTEMP 275,7.5打印过程的注意事项,7.5.1翘边的处理方法翘边可以说是3D打印最常见的问题了,没有之一。只要方法得当,也是可以有效减少翘边的,下面介绍5个方法解决翘边的问题。想要解决问题,首先得知道问题的根源
24、,为什么在打印过程中总是会翘边呢?主要原因就是塑料的热胀冷缩,从喷嘴挤出来的塑料在冷却的过程中会收缩,导致模型边缘或者两头翘起来,与平台分离。尤其是ABS,比PLA更易翘边。当模型底部面积不大时,收缩造成的影响并不明显。但面积较大时,每单位面积产生的收缩累积起来,向内产生的拉力就变得相当强大,造成边缘翘起。下面是经过测试的解决办法,同学们可以根据自己遇到的实际情况选择不同的方法。,1.加宽第一层线宽线宽越宽,从挤出孔挤出的料就越多,塑料和打印平台挤压的力量也会越强。这样可以增加模型与平台的黏合力,进而减少翘边的状况。2.首层不开风扇(适用于creator系列和Dreamer系列)风扇吹风可以让
25、模型加速冷却,如果打印的模型很小,来不及冷却就要开始印下一层,很容易就过热了,造成模型变形,所以一般都需要吹风来加速冷却。但是打印较大的模型时,风扇吹风会让塑料冷却过快而收缩,造成边缘翘起。所以,通常模型面积较大时,首层打印可以不开风扇,后面再开风扇。因为首层的打印时间比较长,有足够的时间让塑料冷却,不开风扇也可以。3.减慢打印速度如果你发现自己的打印机总是出现翘边的情况,可以降低一下打印速度试试看。总结大量的打印经验,减慢速度的确有助于减少翘边。这种方法尤其适合三角洲打印机,降低标准速度百分之30左右,处了大大的降低了翘边的可能性,打印质量也有明显的提升,精度明显高于高速打印。,4.使用各种
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Arduino 控制 打印机 项目 ppt 课件

链接地址:https://www.31ppt.com/p-1428873.html