drzzm32 发表于 2014-10-18 21:43:43

[转载][扫盲]3D打印机控制技术分析探讨

本帖最后由 drzzm32 于 2014-10-28 08:51 编辑

转载来自:http://bbs.kechuang.org/read/67029


前言
本来不想这么频繁的发帖,前几天刚发布了关于切片引擎的简单介绍,效果还不错在科创论坛搞3D打印的人比较少的,居然不到十天有1000+的浏览量是不错了。http://bbs.kechuang.org/attachment/201409/09/063850k5egwplrzmdiii5q.png
暑假干活太多,包括总结3D打印机的控制技术,对marlin固件进行研究高度概括总结了500多页的ppt。按照一个同学说的如果要讲课够讲一学期了。但是发帖很麻烦费时间,发高质量的贴更麻烦。所以只是抽时间,昨天中秋节在家闲着也是闲着就写了一篇啊。希望大家不懂的可以学会,水平高的方家可以指正错误,大家一同进步,不要搞得老是我进步了。
简介
我们做设计的追求的最高理想就是设计出能够自动设计机器的机器,能够制造出自动制造机器的机器。机床被誉为机器之母使我们向能够制造机器的机器迈出了巨大的一步,但是对于自我复制,自己制造自己,快速成型技术弥补了这个缺陷。自从3D打印技术的发明以来,进行过很多自我复制的实验做得最好的无疑是reprap。是reprap让3D打印机由几万十几万美元,变成现在的一千至几千美元。是许多DIY爱好者能够做一些强度不大的非标准件。
http://bbs.kechuang.org/attachment/201409/08/182530n1i9x0xx8d0o19o2.png
2005年,RepRap项目在英国巴斯大学由机械工程高级讲师Adrian Bowyer博士创建。(这可是3D打印技术历史上的大事,各位同学想想自己当时在干嘛)。
         它具有一定程度的自我复制能力,能够打印出大部分其自身的(塑料)组件。(部分自己制造自己)。
第一代的reprap Darwin
http://bbs.kechuang.org/attachment/201409/08/183127k34zuwl7474tr1c3.png
Reprap制造的第一个部件,用来制造一个Reprap。
http://bbs.kechuang.org/attachment/201409/08/183212uxi21owol4wf4iwc.png
右边机器所有的塑料部件,都是被左边机器生产的。
http://bbs.kechuang.org/attachment/201409/08/183252shodzhztcyywkd5w.png
这原型机从软件到硬件各种数据都是免费和开源的,都在自由软件协议GNU通用公共许可证GPL之下发布
现在的reprap家族
http://bbs.kechuang.org/attachment/201409/08/183412wjxxaidmhvj22dah.png
原理
打印原理 :熔融沉积式(fused deposition modeling,FDM)
http://bbs.kechuang.org/attachment/201409/08/183825xtj6e2hha7qaasee.png
3D打印机工作流程
http://bbs.kechuang.org/attachment/201409/08/183909qv3n3ki3vi8xh3lx.png
http://bbs.kechuang.org/attachment/201409/08/184026qs4jz9h3n96n7jf7.png
3D打印控制器
http://bbs.kechuang.org/attachment/201409/08/184830f4co194mx09ec4w0.png
这是RAMPS1.4很常用很简单的盾板,接口也比较多,在SLA也可以用但是要烧录α固件,做SLS也可以,X轴接X轴 Y轴接Y轴 E1 E2接活塞。
机械轴
直角坐标型:XYZ轴成互为直角样子的,XY轴通常是由同步带接步进电机来定位的,Z轴则是由丝杆控制的。
http://bbs.kechuang.org/attachment/201409/08/185408rndgywgwdn5fjivr.png
三角爪型:其数学原理是跟直角坐标型一样,用笛卡尔坐标系原理的。只是将XY轴通过三角函数来映射到三个爪的位置上。
http://bbs.kechuang.org/attachment/201409/08/185412i1g1p056z5poo4gp.png
固件
http://bbs.kechuang.org/attachment/201409/08/185716ovi0idi0vn2d4qnv.png
Grbl
http://bbs.kechuang.org/attachment/201409/08/185954mhvy5vh4voyh64y5.png
Sprinter
http://bbs.kechuang.org/attachment/201409/08/190025a4v3qtqat43w7s41.png
Marlin
http://bbs.kechuang.org/attachment/201409/08/190052kw74gowzgg4x7ev6.png
Repetier-Firmware
http://bbs.kechuang.org/attachment/201409/08/190113ce5qi1wig1r4ng9l.png
Smoothie
http://bbs.kechuang.org/attachment/201409/08/190219yw9xt9299oe8jdpx.png
软件架构
http://bbs.kechuang.org/attachment/201409/08/190418na3o6iz7ih1m11hl.png
G Code 解译
将G Code转换成3D Printer的内部控制命令
EX :
G01 X10 Y15.5 F2000
http://bbs.kechuang.org/attachment/201409/08/190603cx0b0mh0r04zn3z6.png
M109 S180
加热到180度才执行下一行G Code
G Code Interpretation on Sprinter/Marlin
http://bbs.kechuang.org/attachment/201409/08/191030qpnjnm3nz49n7b3x.png
http://bbs.kechuang.org/attachment/201409/08/191031sd2fz2ufdzu205mz.png
Source Code
http://bbs.kechuang.org/attachment/201409/08/192412ocegsccncfzwsghf.png
http://bbs.kechuang.org/attachment/201409/08/192413cqra9aa3irkih53d.png
http://bbs.kechuang.org/attachment/201409/08/192413gsf2e8he2mzhzc78.png
http://bbs.kechuang.org/attachment/201409/08/192414p535n5bukm77ask0.png
http://bbs.kechuang.org/attachment/201409/08/192414h7v3ve7w7c7cka7l.png
字符串解析
G Code, M Code, other…
轨迹规划
温度设定
系统参数的设定
delta结构轨迹
http://bbs.kechuang.org/attachment/201409/08/192953xy694bc8zfiycnbn.png
http://bbs.kechuang.org/attachment/201409/08/192957jlssp771s1m83m8m.png
梯形加减速控制
使用步进电机时,通常會以梯形加減速或是 S 型加减速
Marlin 是使用梯形加減速
http://bbs.kechuang.org/attachment/201409/08/193105fvbjrngbvoyhgh7w.png
http://bbs.kechuang.org/attachment/201409/09/064637uv7blvjl5xjx91vy.png
路径轨迹初速度设定
http://bbs.kechuang.org/attachment/201409/09/064918fnc0hh3ce1ha6n1d.png
步进电机控制轨迹

直线轨迹的规则
圆弧轨迹的规则
轨迹的梯形加减速规则
轨迹预览 (look ahead)
对两条轨迹连接处的规则
在Plan motion lib寻找
http://bbs.kechuang.org/attachment/201409/09/065948r99a3alp6pvsgpvk.png
部分代码,详细可以到marlin固件寻找。

http://bbs.kechuang.org/attachment/201409/08/193419x40dzuq9k70dz3kw.png
http://bbs.kechuang.org/attachment/201409/08/193419td00hgec050dq0oe.png
将planner的连续轨迹,转化成步进电机所需的离散脉波
关于直线插补圆弧插补这是marlin固件中的内容,要写在这篇贴中,就有点没有抓住主要矛盾了。
利用Timer ISR来控制脉波的宽度(频率)
用硬件的GPIO产生High & Low
温度控制
http://bbs.kechuang.org/attachment/201409/08/193549veaaokykgoygyeam.png
控制周期约为16mS
http://bbs.kechuang.org/attachment/201409/08/193715nyhlvl88llbtblsv.png
PID控制图像
http://bbs.kechuang.org/attachment/201409/08/193724ucng857nsemmbgpv.png
http://bbs.kechuang.org/attachment/201409/08/193723qivzi6k1rgc1v6ik.png
代码
http://bbs.kechuang.org/attachment/201409/08/194047vfa8usnioeiuup1a.png
http://bbs.kechuang.org/attachment/201409/08/194048h7rru39gfrzurnz2.png
http://bbs.kechuang.org/attachment/201409/08/194049xsm02h4g00jj5zjd.png
http://bbs.kechuang.org/attachment/201409/08/194049nqewvv7d3od48drn.png
http://bbs.kechuang.org/attachment/201409/08/194051v8e83yse8usewp5s.png
http://bbs.kechuang.org/attachment/201409/08/194052a0y3l5i7jqiiv6hi.png
利用热敏电阻或者热电偶,获取当前温度,用PWM控制电流以达到目标温度。
页: [1]
查看完整版本: [转载][扫盲]3D打印机控制技术分析探讨