3Dprinter控制技术分析探讨
本帖最后由 魂溷 于 2014-9-9 10:11 编辑
作者:黄子帆
前言
本来不想这么频繁的发帖,前几天刚发布了关于切片引擎的简单介绍,效果还不错在科创论坛搞3D打印的人比较少的,居然不到十天有1000+的浏览量是不错了。226489

暑假干活太多,包括总结3D打印机的控制技术,对marlin固件进行研究高度概括总结了500多页的ppt。按照一个同学说的如果要讲课够讲一学期了。但是发帖很麻烦费时间,发高质量的贴更麻烦。所以只是抽时间,昨天中秋节在家闲着也是闲着就写了一篇啊。希望大家不懂的可以学会,水平高的方家可以指正错误,大家一同进步,不要搞得老是我进步了。
简介
我们做设计的追求的最高理想就是设计出能够自动设计机器的机器,能够制造出自动制造机器的机器。机床被誉为机器之母使我们向能够制造机器的机器迈出了巨大的一步,但是对于自我复制,自己制造自己,快速成型技术弥补了这个缺陷。自从3D打印技术的发明以来,进行过很多自我复制的实验做得最好的无疑是reprap。是reprap让3D打印机由几万十几万美元,变成现在的一千至几千美元。是许多DIY爱好者能够做一些强度不大的非标准件。
226436

2005年,RepRap项目在英国巴斯大学由机械工程高级讲师Adrian Bowyer博士创建。(这可是3D打印技术历史上的大事,各位同学想想自己当时在干嘛)。
           它具有一定程度的自我复制能力,能够打印出大部分其自身的(塑料)组件。(部分自己制造自己)。
第一代的reprap Darwin
  226437

Reprap制造的第一个部件,用来制造一个Reprap。
  226438

右边机器所有的塑料部件,都是被左边机器生产的。
  226439

这原型机从软件到硬件各种数据都是免费和开源的,都在自由软件协议GNU通用公共许可证GPL之下发布
现在的reprap家族
226440

原理
打印原理 :熔融沉积式(fused deposition modeling,FDM)
226441

3D打印机工作流程
226442

226443

3D打印控制器
226444

这是RAMPS1.4很常用很简单的盾板,接口也比较多,在SLA也可以用但是要烧录α固件,做SLS也可以,X轴接X轴 Y轴接Y轴 E1 E2接活塞。
机械轴
直角坐标型:XYZ轴成互为直角样子的,XY轴通常是由同步带接步进电机来定位的,Z轴则是由丝杆控制的。
226445

三角爪型:其数学原理是跟直角坐标型一样,用笛卡尔坐标系原理的。只是将XY轴通过三角函数来映射到三个爪的位置上。
226446

固件
226448

Grbl
226449

Sprinter
226450

Marlin
226451

Repetier-Firmware
226452

Smoothie
226454

软件架构
226455

G Code 解译
将G Code转换成3D Printer的内部控制命令
EX :
G01 X10 Y15.5 F2000
226456

M109 S180
加热到180度才执行下一行G Code
G Code Interpretation on Sprinter/Marlin
226457

226458

Source Code
226459

226460

226461

226462

226463

字符串解析
G Code, M Code, other…
轨迹规划
温度设定
系统参数的设定
delta结构轨迹
226464

226465

梯形加减速控制
使用步进电机时,通常會以梯形加減速或是 S 型加减速
Marlin 是使用梯形加減速
226466

226490

路径轨迹初速度设定
226491

步进电机控制轨迹

直线轨迹的规则
圆弧轨迹的规则
轨迹的梯形加减速规则
轨迹预览 (look ahead)
对两条轨迹连接处的规则
在Plan motion lib寻找
226492

部分代码,详细可以到marlin固件寻找。
undefined
226471

226472

将planner的连续轨迹,转化成步进电机所需的离散脉波
关于直线插补圆弧插补这是marlin固件中的内容,要写在这篇贴中,就有点没有抓住主要矛盾了。
利用Timer ISR来控制脉波的宽度(频率)
用硬件的GPIO产生High & Low
温度控制
226473

控制周期约为16mS
226474

PID控制图像
226476

226475

代码
226478

226479

226480

226481

226482

226483

利用热敏电阻或者热电偶,获取当前温度,用PWM控制电流以达到目标温度。
实验室同学
226484

[修改于 4 年前 - 2015-12-25 10:36:57]

+1  学术分    bh,王者归来   2014-09-11   虽然不知道在说什么,但是感觉很厉害的样子.........
+5  科创币    花心大萝卜   2014-09-09   谢谢分享
+100  科创币    qg2010   2014-09-09   大赞
来自 三维打印
 
2
2014-9-9 12:08:26
1楼
终于看见科创有妹纸成员了
折叠评论
加载评论中,请稍候...
折叠评论
2014-9-13 02:31:20
2014-9-13 02:31:20
2楼
本帖最后由 biggigi2002 于 2014-9-13 02:37 编辑

G代码解释器倒是非常简单     核心无非就是2个循环缓冲区    一个用来存储命令     一个用来存储执行脉冲     单片机解析命令脉冲后 直接写入到执行脉冲缓冲里面就可以了     做这个事情STM32比较合适 因为有DMA        51单片机比较着急读文件都要占用CPU时间    会极大的干扰执行脉冲时钟输出稳定         3 D机就解码一个G0  G1  足以  一般低速机器也没必要在加减速上做太多文章        
还有个简单替代方案   就是用MACH3    控制  


大型高速机就不一样了     加减速度的预测  刀路锐角修园    为了保证质量还要尽量维持运行速度均匀   算法难度大    用低速普通机的算法  速度根本提不上去或者震动非常巨大    惯性过大丢步之类的        至于万能工具MACH3这个时候也是个笑话了      由于算法问题  各种速度不均     人都会被搞死掉的
想象下  一个3公斤    1米宽的的X轴系统  运行速度达到1米秒  相当于F60000    相当于小型打印机速度的10倍-15倍    对控制系统的考验该多大

总结下 低速小型难度不大    高速大型比较着急  
折叠评论
加载评论中,请稍候...
折叠评论
2015-1-5 00:39:28
2015-1-5 00:39:28
3楼
学习了!
折叠评论
加载评论中,请稍候...
折叠评论
2015-3-9 16:53:08
2015-3-9 16:53:08
4楼
强大
折叠评论
加载评论中,请稍候...
折叠评论
2015-4-27 17:13:52
2015-4-27 17:13:52
5楼
good , 学习了
折叠评论
加载评论中,请稍候...
折叠评论
2015-5-6 10:26:32
2015-5-6 10:26:32
6楼
marlin固件在梯形加减速的时候怎么进行加速的,是控制的脉冲的频率吗?这个计算加速段进中断的时间是什么意思啊
折叠评论
加载评论中,请稍候...
折叠评论
2015-6-6 23:34:18
2015-6-6 23:34:18
7楼
好东西啊     学习学习
折叠评论
加载评论中,请稍候...
折叠评论
2015-6-29 12:55:01
2015-6-29 12:55:01
8楼
很好 学习了
折叠评论
加载评论中,请稍候...
折叠评论
2015-6-30 12:55:57
2015-6-30 12:55:57
9楼
专业!
折叠评论
加载评论中,请稍候...
折叠评论
2015-7-7 20:39:31
2015-7-7 20:39:31
10楼
牛叉叉啊
折叠评论
加载评论中,请稍候...
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

ID:{{user.uid}}
{{user.username}}
{{user.info.certsName}}
{{user.description}}
{{format("YYYY/MM/DD", user.toc)}}注册,{{fromNow(user.tlv)}}活动
{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png