delta(rostock型)d打印机算法解读及调试步骤

delta(rostock型)d打印机算法解读及调试步骤

ID:15617262

大小:66.00 KB

页数:16页

时间:2018-08-04

delta(rostock型)d打印机算法解读及调试步骤_第1页
delta(rostock型)d打印机算法解读及调试步骤_第2页
delta(rostock型)d打印机算法解读及调试步骤_第3页
delta(rostock型)d打印机算法解读及调试步骤_第4页
delta(rostock型)d打印机算法解读及调试步骤_第5页
资源描述:

《delta(rostock型)d打印机算法解读及调试步骤》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Delta(rostock型)3d打印机算法解读及调试步骤一、前言Delta机型是一种并联式运动结构的3d打印机,delta机型实际上是分为两大类,一种是工业上用的并联式机器人;另外一种是rostock的运动结构。这两种结构做出来的打印机给人的感觉都是非常cool的。所以大伙都偏好这类型的打印机,目前主流的固件marlin和repetier都支持rostock结构的3d打印机。这里鸭哥就谈谈自己对rostock机型的运动算法的理解,继而从运动算法中推算一下如何调试一台rostock的参数。二、基础知识要理解rostock的全部运动算法所要涉及的数学知识不是太多,如

2、果不记得的话,是时候找高中数学老师喝喝茶吃个小饭啦。1)三角函数sincos这个是理解rostock计算过程的基础知识2)笛卡尔空间坐标转换/线性代数,这个嘛是属于进阶内容,如果懂那就更好啦,如果不懂也没关系,在把所有的外界条件全部设置为理想情况下,这个笛卡尔空间坐标转换可以不用精通的。(包括鸭哥也不敢说对笛卡尔空间坐标转换和线性代数精通哦)3)marlin程序的结构逻辑结构(对于arduinoide/arduino程序基本教程,这里就不展开了,不懂的小白们可以先学一下arduino的基础教程先,饭要一口一口得出,路要一步一步的走)一、Marlin程序解读这里鸭哥

3、不打算讲marlin的整个loop()函数的流程,讲讲delta机型的核心部分。对于marlin来说,delta机型和非delta机型在对于温控、看门狗、电机运动甚至空间坐标等方面都是一样的。区别在哪里呢?区别就在与delta多了一个笛卡尔坐标转换的函数Marlin的loop()主体流程Voidloop(){Get_command();//从sd卡或者串口获取gcodeProcess_command();//解析gcode并且执行代码Manage_heater();//控制机器的喷头和热床的温度Manage_inactivity();//checkHitEndst

4、ops();//检查endstop的状态Lcd_update();//更新lcd上面的信息}在这个过程中process_command()是控制的核心,各位仔细研读一下process_command()的代码就发现arduino的厉害了。简单说一下process_command()的流程,说白了,process_command()就是一个巨大的case结构,这里讲讲G1命令的大致逻辑(G1命令不知道的自己搜索去):Process_command(){Case0://g0->g1Case1:{if(Stopped==false){get_coordinates();

5、//获取当前的坐标,这里是指打印件的世界坐标哦,不是delta的xyz电机的坐标哦!普通结构的打印机则是一样的。#ifdefFWRETRACTif(autoretract_enabled)if(!(code_seen('X')

6、

7、code_seen('Y')

8、

9、code_seen('Z'))&&code_seen('E')){//获取命令中xyze轴的参数Floatechange=destination[E_AXIS]-current_position[E_AXIS];//这里是算最小回抽值的,如果移动距离小于最小回抽值就不回抽了。这里是一个辅助功能。简单了解可以

10、了。if((echange<-MIN_RETRACT&&!retracted)

11、

12、(echange>MIN_RETRACT&&retracted)){//moveappearstobeanattempttoretractorrecovercurrent_position[E_AXIS]=destination[E_AXIS];//hidetheslicer-generatedretract/recoverfromcalculationsplan_set_e_position(current_position[E_AXIS]);//ANDfromtheplanner

13、retract(!retracted);return;}}#endif//FWRETRACTprepare_move();//执行移动命令return;}}从上面的代码来看呢,对于运动类的Gcode,marlin会在process_command()函数中获取xyze各轴的参数后算出目标坐标(destination[_AXIS]),也会使用get_coordinates()来获取当前坐标(current_position[E_AXIS])(再次强调,这个坐标是打印件的世界坐标),当我们知道了目标坐标和当前坐标以后,空间中移动的距离就可以算出来了(不会算的,请自觉请

14、高中数学老

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。