第7章基于Arduino控制的3D打印机项目课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第7章基于Arduino控制的3D打印机项目课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Arduino 控制 打印机 项目 课件
- 资源描述:
-
1、第7章基于ARDUINO控制的3D打印机项目目录7.1 7.1 设计思想设计思想7.2 7.2 材料清单材料清单7.3 7.3 安装过程安装过程7.4 7.4 固件详解固件详解7.5 7.5 打印过程的注意事项打印过程的注意事项7.1 设计思想3D打印技术的出现,为各行各业乃至于这个世界提供了无限可能。3D打印机让创造离人们生活从未来,它迅速的拉近了梦想构思和现实的距离,同时也快速推进了各行业的创新速度。3D打印机被誉为第三次工业革命重要标志,3D打印以其个性化、低消耗、小批量、高难度的制造新理念,正在颠覆传统的锻造、切削加工制造模式,给大规模生产线的工业组织方式带来了重大变革。目前,3D打印
2、已形成了从数据采集、材料、打印设备到应用服务的较为完整的产业链,被广泛应用于航空航天、汽车制造、医疗器械、个人消费、教育科研和军工生产等领域。7.2 材料清单序号元器件名称型号参数规格数量参考实物图1型材2020铝材 246mm(X)2根2020铝材 410mm(Z)2根2020铝材 385mm(Y)2根2020铝材 410mm(横梁)1根2020铝材 230mm(横拉)2根2020铝材 150mm(耗材架竖)1根2020铝材 100mm(耗材架横)1根2光杆 6根3丝杆 两根4电源+线12V/25ma1个5热床 1套6Arduino 主控板 MEGA2560 1套 7电机控制板Reprap
3、Ramps 1.41套8电机驱动板HR-A49883 9打印件详见教材配套资料32个10角件 15个11螺母5T1袋124T1袋13直线轴承 10个14燕尾夹 4只15联轴器 2只16限位开关ss-5g3只17T8铜螺母 2个18轴承M52个19弹簧 4只20张紧弹簧 2只21同步轮 2个22同步带 2根23USB线 1根24电源线12V1根25热缩管 1根26扎带 若干27杜邦线 3根28风扇 2只29固体胶 1支30喷嘴组件 1套31螺丝M5*821个32M5*103个33M5*252个34M3*84个 35M3*1011个36M3*143个37M3*1613个38M3*202个39M3*
4、254个40M3*404个41M4*1022个42包线管 1卷43电机+线17HD40005-22B5个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
5、螺丝2个,M5T螺母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.1.平台安装平台安装 找出铝板、直线轴承3个、打印件4个、M3螺丝8个、M3T螺母8
6、个、扎带6个。首先用扎带固定直线轴承在打印件上,之后减掉多余的扎带。然后将三个直线轴承固定在铝板上。如图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螺母固定在配套的打印件上,确定稳固后将同步轮固定在电机上。这时应该特别注意,
7、同步轮的齿轮一定要在打印件的空隙正中处,并能保证正常转动。上述步骤完成后将处理好的限位开关用扎带固定在打印件上,注意扎带要从打印件的空隙处穿过,完成的电机如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-11
8、 材料图图7-13 固定图 找出剩余的两根光轴和丝杆,组装成图7-14的样式。安装过程中要特别注意,光杆要轻缓的穿过直线轴承。如果遇到阻塞,可以适当的调节期间的宽度,但是动作一定要轻缓。图7-14 光轴与丝杆组装图找出同步带、扎带、张紧弹簧,按图7-15的方法和Y轴同步带进行组装,一定要注意张紧弹簧的安装位置。图7-15 与Y轴同步带组装图4.4.机械杂件的安装机械杂件的安装完成上述安装步骤之后是进行热床的安装,准备好将热板、4个弹簧、4个M3自锁螺母、4个M3螺丝。如图7-16所示。用M3螺丝和螺母插入打印件,将热板固定在铁板上,拧紧4个角的螺丝。然后进行限位开关的安装,注意拧的过程不要太紧
9、,因为打印时可能还需要进行调试。如7-17所示。图7-16 材料图 图7-17 热板固定图 接下来安装挤出机和电源,这两部分相对较为简单,按照图7-18、7-19进行安装。图7-18 挤出机安装图图7-19 电源安装图7.3.3 7.3.3 控制板安装及布线控制板安装及布线1.1.主控板安装主控板安装本打印的核心控制单元是Arduino mega 2560,mega 2560板子在3d打印机中相当于大脑,控制这所有的3d打印配件来完成复杂的打印工作,但mega2560不能直接使用,需要上传(upload)固件(firmware)才可以使用,本项目采用的固件是Marlin 固件会在下节进行详细的
10、介绍。此外mega2560需要和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 固件详解固件详解7.4.17.4.1概述概述 Sprinter 固件是目前用的比较多的 3D 打印机固件,而 Marlin
11、固件和Repetier-firmware 固件都是由其派生而来。而且这两款固件的用户群非常活跃,而 Sprinter固件已经没有人维护了。在这二者中,Marlin 固件的使用更加广泛,很多打印机控制软件都兼容 Marlin 固件。一般用户在使用 Marlin 固件的时候只需要改变一下 Configuration.h 文件中的一些参数即可,非常方便。本节主要介绍用户设置的基本信息、怎么运用这些设置、根据不同的需求制定特色功能。Marlin 固件可在本书配套资源中找到。固件实际上是通过特定软件写入ArduinoMEGA 2560内部的,实际上是通过ArduinoMEGA 2560 发送各种控制指令
12、对打印件进行三轴的控制。7.4.2 MARLIN 7.4.2 MARLIN 固件特点固件特点Marlin 相对于 Sprinter 有很多优点,具体为以下几点:1.预加速功能(Look-ahead):Sprinter 在每个角处必须使打印机先停下然后再加速继续运行,而预加速只会减速或加速到某一个速度值,从而速度的矢量变化不会超过 xy_jerk_velocity。要达到这样的效果,必须预先处理下一步的运动。这样一来加快了打印速度,而且在拐角处减少耗材的堆积,曲线打印更加平滑。2.支持圆弧(Arc Support):Marlin 固件可以自动调整分辨率去以接近恒定速度打印一段圆弧,得到最平滑的弧
13、线。这样做的另一个优点是减少串口通信量。因为通过 1 条 G2/G3 指令即可打印圆弧,而不用通过多条 G1 指令。3.温度多重采样(Temperature Oversampling):为了降低噪声的干扰,使PID温度控制更加有效,Marlin采样16次取平均值去计算温度。4.自动调节温度(AutoTemp):当打印任务要求挤出速度有较大的变化时,或者实时改变打印速度,那么打印速度也需要随之改变。通常情况下,较高的打印速度要求较高的温度,Marlin 可以使用 M10S B F指令去自动控制温度。使用不带 F 参数的 M109 指令不会自动调节温度。否则,Marlin 会计算缓存中所有移指令中
14、最大的挤出速度(单位是 steps/sec),即所谓的“maxerate”。然后目标温度值通过公式 T=tempmin+factor*maxerate,同时限制在最小温度(tempmin)和最大温度(tempmax)之间。如果目标温度小于最小温度,那么自动调节将不起作用。最理想的情况下,用户可以不用去控制温度,只需要在开始使用 M109 S B F,并在结束时使用M109 S0。5.非易失存储器(EEPROM):Marlin 固件将一些常用的参数,比如加速度、最大速度、各轴运动单位等存储在 EEPROM中,用户可以在校准打印机的时候调整这些参数,然后存储到 EEPROM 中,这些改变在打印机重
15、启之后生效而且永久保存。6.液晶显示器菜单(LCD Menu):如果硬件支持,用户可以构建一个脱机智能控制器(LCD 屏+SD 卡槽+编码器+按键)。用户可以通过液晶显示器菜单实时调整温度、加速度、速度、流量倍率,选择并打印 SD卡中的 G-Code 文件,预加热,禁用步进电机和其他操作。比较常用的有 LCD2004 只能控制器和 LCD12864 只能控制器。7.SD 卡内支持文件夹(SD card folders):Marlin 固件可以读取 SD 卡中子文件夹内的 G-Code 文件,不必是根目录下的文件。8.SD 卡自动打印(SD card auto print):若 SD 卡根目录中
16、有文件名为 auto0-9.g 的文件时,打印机会在开机后自动开始打印该文件。9.限位开关触发记录(Endstop trigger reporting):如果打印机运行过程中碰到了限位开关,那么 Marlin 会将限位开关触发的位置发送到串口,并给出一个警告。这对于用户分析打印过程中遇到的问题是很有用的。10.编码规范(Coding paradigm):Marlin 固件采用模块化编程方式,让用户可以清晰地理解整个程序。这为以后将固件升级到 ARM 系统提供很大的方便。11.基于中断的温度测量(Interrupt based temperature measurements):一路中断去处理
17、ADC 转换和检查温度变化,这样就减少了单片机资源的使用。12.支持多种机械结构:普通的 XYZ 正交机械,CoreXY 机械,Delta 机械以及 SCARA 机械。7.4.37.4.3基本配置基本配置使用 Arduino IDE 打开 marlin.ino,切换到 Configuration.h 即可查看并修改该文件。或者使用任何一款文本编辑器(notepad,notpad+等)直接打开 Configuration.h 也可以。Marlin固件的配置主要包含一下几个方面:1.通讯波特率2.主板类型,所使用的主板类型3.温度传感器类型,包括挤出头温度传感器和加热床的温度传感器4.温度配置,包
18、括喷头温度和加热床温度5.PID 温控参数,包括喷头温度控制和加热床温度控制6.限位开关7.4 个轴步进电机方向8.X/Y/Z 三个坐标轴的初始位置9.打印机运动范围10.自动调平11.运动速度12.各轴运动分辨率13.脱机控制器根据经验来说,Marlin 固件中的 Configuration.h 将各个配置模块化,非常便于读及修改,而且注释非常详细,英文好的同学可以很容易地理解各参数的意义。注意到 Marlin固件使用 C 语言编写,“/”后面的是注释语句,不会影响代码的作用。另外 Marlin 固件中大量使用#define,简单来讲,就是定义的意思,包括定义某个参数的数值,定义某个参数否存
19、在。最开始的两行非注释语句是定义固件的版本和作者。缺省的版本号就是编译时间,这可以不用修改,只需要把作者改为自己的名字即可,注意不能包含中文,不然会乱码。#define STRING_VERSION_CONFIG_H _DATE_ _TIME_/build date and time#define STRING_CONFIG_H_AUTHOR made the changes.电脑和打印机通过串口进行通讯,要定义好端口和波特率,在此定义的是 3D 打印主的端口和波特率,端口号使用默认的 0 就可以了。Marlin 固件默认的波特率是 250000,可以修改为其他值,比如 115200,这是标准
20、的 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 MOTHERB
21、OARD#define MOTHERBOARD 3#endif接下来是定义挤出头的个数及电源类型,笔者使用的是单喷头打印机,因此定义为 1。电源有两种类型可以选择,1 表示开关电源,2 表示 X-Box 360 203 伏电源,一般都使用的是开关电源,因此定义为 1。#define EXTRUDERS 1#define POWER_SUPPLY 1接下来定义温度传感器类型,包括每个喷头使用的温度传感器(如果是多喷头)和加热床的温度传感器类型,常用的温度传感器有电热偶和热敏电阻两大类,热敏电阻又分为很多种。目前的 3D 打印机主要用的是热敏电阻,具体是哪种热敏电阻需要自己判断或询问卖家,不出意外
22、的话,都是 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 TEMP_SEN
23、SOR_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 指令设定喷头温度并等待,那么等待到什么时候呢?下面这三个参
24、数控制这个时间。第一个参数表示温度“接近”目标温度必须持续 10 秒才算加热完成,第二个参数表示和目标温度相差不超过 3为“接近”,第三个参数表示从温度与目标温度相差不超过 1 度开始计时,从此刻开始,温度和目标温度持续接近 10 秒钟,则完成加热。#define TEMP_RESIDENCY_TIME 10#define TEMP_HYSTERESIS 3#define TEMP_WINDOW 1 下面配置安全温度范围的下限和上限,包括各个喷头和加热床。如果温度超过下限,那么打印机会抛出 MINTEMP 的错误并终止工作,如果超过上限,那么打印机抛出 MAXTEMP的错误并终止工作。Marl
25、in 用这种方式保护 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 2757.57.5打印过程的注意事项打印过程的注意事项7.5.17.5.1翘边的处理方法翘边的处理方法翘边可以说是3D打印最常见的问题了,没有之一。只要方法得当,也是可以有效减少翘边的,下面介绍5个方法解决翘边的问题。想要解决问题,首先
展开阅读全文