注释
|
@alpharesearch: 有很多你必须改变,它会涉及一些编码。首先,Grbl 假设您使用的主轴需要在继续之前加快速度。因此,改变激光强度时的停留。更改最小路口速度不应有任何影响。它会一直住下去。 制造 LazerBlade 的DarklyLabs人员已经完成了您正在尝试做的事情。他们使用的是 Grbl 的修改版本,但它是通过 MIT 许可的封闭源代码。要执行此类操作,您基本上必须通过规划器和步进算法保留主轴速度设置。在那里,您需要在执行规划器块时即时更新主轴 PWM。实施起来不是很难,但也不是微不足道的。 |
|
它已经在 CNC 设置上运行良好。此次升级不到 100 美元,安装和调试仅需 2 小时。这是一个有趣的周末项目,它为 ShapeOko 添加了更多选项。 |
|
@PicEngraver感谢您的链接!这些雕刻非常漂亮,人们用 ShapeOko 做的事情总是让我感到惊讶! |
|
@PicEngraver: 很狡猾!不过有一个问题。您是否观察到 Z 轴移动与特定点的预期激光功率之间存在任何滞后? @alpharesearch:我愿意为 Grbl 添加实时主轴控制,但我认为它会比看起来更复杂。至少做对了。就个人而言,我不喜欢添加已发布命令之外的新 g 代码命令。你最终会得到像 Marlin 这样的东西,那里有几十个很难学习的专门 g 代码,你必须为它们定制你的程序。CAM 程序也不知道这些代码是什么,因此您每次都必须手动修改它们。 一个想法是创建一个 Grbl |
|
@alpharesearch: 谢谢!是的,这是我几年前使用绑定到 Z 轴的 MA3 磁轴编码器开发的即时可变激光强度 8 位照片雕刻工艺。使用 Z 轴可以让我根据材料高度将激光移动到正确的焦点。 我从使用 Mach3 的 CNC 路由器开始,现在在 Arduino、9g grbl 和 Shapeoko 2 上对其进行测试。感谢 Sonny 所做的所有开发工作! 我更喜欢使用 MA3,因为它为 8 位 Z 轴深度设置中的调制提供了 0-5 变化模拟电压的 10 位分辨率。我用的是Z0。将 PicLaser Lite 或 PicEngrave Pro 5 beta 图像中的 Z-.0256 设置转换为我使用的 gcode 程序。 US Digital 确实生产了这些编码器的 10 位和 12 位 PWM 版本,但我从未尝试过。我觉得模拟是为激光二极管的不同强度控制调制驱动器的最佳方式。 @chamnit:没有我可以检测或观察到的滞后。我必须注意不要过度锐化图像并保持适度的进给率(大约 60IPM),这样 Z 轴步进器就不会松动任何步骤。我将我的加速度设置为 1000,所有三个轴上的毫米/秒,连接偏差设置为 0.010 毫米。 |
|
我在模拟器中有一些工作,请参阅情节的屏幕截图:http ://alpharesearch.de/?p=259 |
|
做得很好 |
|
@alpharesearch: 做得好!我很高兴您能够如此快速地运行它并且它看起来正在运行。 不过有几件事:
否则,看起来不错! |
|
我从谷歌代码中分叉了一个图像雕刻程序,并做了一些改动以将 Z 轴映射到 S 值。这是代码:https ://github.com/alpharesearch/imagetolaser这是模拟的屏幕截图:http ://alpharesearch.de/?p=267 @chamnit: 谢谢。是的,对于传递这些值的所有 mc 和 planner 函数,#defines 开始变大。我不太喜欢 AVR,我也不知道节省内存的所有技巧,但如果您认为这可以正常工作,那将使代码更具可读性。如果不使用这些值,编译器不应该不注意吗?我想这就是你在暗示什么? |
|
@PicEngraverToo我使用 Linux…但如果您可以发布邮票大小的雕刻 g 代码文件,我想用新固件对其进行测试。只有 XY 运动和 S0 到 S255 才能设置 pwm。谢谢你的帮助。 |
|
@PicEngraverToo: 谢谢 我确实用 grbl 模拟器测试了它,我可以看到一个戴着帽子的女人。它很小,我说的对吗? @chamnit: 我把它从 ISR 的准备中移走了,我可以看到很大的不同。但是我仍然认为还有改进的余地。但至少现在我用新的快速方法和旧的慢方法得到了相同的结果。但是仍然有很小的偏移量。我也需要在真正的微控制器上进行测试。 |
|
@alpharesearch: 你是对的。尺寸为 12.7mm X 12.7mm,X 和 Y 跨距为 .254mm。我首先以 25.4mm X 25.4mm 生成了它,但是有大约 100,000 行代码,我不知道如何附加文件。新手在这里。:-) 弄清楚后,我可以生成一个更大的文件供您测试。 |
|
@alpharesearch: 惊人的。这方面的巨大进步!:) 至于定义,我检查了编译器是否忽略了传递给函数的未使用变量。它没有,但在这一点上,我认为保存每个字节都没有那么重要,因为我们很快就会转向功能更强大的处理器。更重要的是代码库 IMO 的可读性。现在保持原样,但我将开始考虑传递 gcode 解析器结构,这将需要对代码进行一些重构。 无论如何,让我们了解情况!我很喜欢你如何使用 grbl_sim 来完成所有这一切,并获得 Grbl 正在做的事情的那些伟大的可视化! |
|
@PicEngraverToo: 现在这个文件运行很慢。是否有一个选项只具有完整的 S 值,而不是 S69.56 只有 S69。PWM 只有 8 位,我确实将 0 映射到 255,所以任何小数位都无关紧要。如果 S 值没有变化,则不需要处理。 @chamnit:当我将变量复制并粘贴到所有函数时,我也在考虑一个结构…… |
|
@alpharesearch: 我很快看了你的源代码。主轴控制的实现方式不太对,因为你调用的是spindle_run()。函数执行的许多额外操作与步进 ISR 不兼容。相反,我会创建一个单独的函数,它只在 ISR 中设置 PWM OCR 寄存器。执行起来非常快。正确的 OCR 值的计算应该先验地完成,如果可能的话,但你现在可能没有它就可以快速工作。 |
|
@chamnit感谢您的输入!我能够将运行函数分开并将计算移动到准备函数中,并且只在 ISR 中设置位。 这是来自 grbl 模拟器测试的日志,只有 ISR 中的 OCR:
我不确定模拟器中的块编号有多精确,但我猜(或希望)这是真的。当然,我得到的错误越多,进给速度越快。但最让我感到震惊的是更新看起来像是落后了。我期待更喜欢在新块开始之前更新? 这是我用来测试的 g 代码
|
|
@PicEngraverToo:感谢文件…如果这是相同的数据,它看起来像剃掉小数位保存 1.9MB…如果相同的 S 值不改变,主版本中的 g 代码解析器现在可以跳过. 这使得它在旧代码中更快,因为 S 的变化会触发整个缓冲区每次都被清空…… |
|
您好, 我的问题与反冲和车床卡盘正时有关。 谢谢特里 从三星手机发送 – – – – 原始信息 – – – –
来自:Markus Schulz notifications@github.com
日期:22/09/2014 00:24 (GMT+00:00)
至:grbl/grbl grbl@noreply.github.com
@PicEngraverToo:感谢文件…如果这是相同的数据,它看起来像剃掉小数位保存 1.9MB…如果相同的 S 值不改变,主版本中的 g 代码解析器现在可以跳过. 这使得它在旧代码中更快,因为 S 的变化会触发整个缓冲区每次都被清空…… — |
|
@alpharesearch:(如何)您如何根据运动速度调整激光功率?或者假设激光以恒定速度移动是否足够好?S 值不应该调整“每毫米激光能量输出”并且 grbl 管理同步加速/减速和“地面速度”的激光输出的上升/下降? @chamnit:还记得我们关于“流式 S 值”的讨论吗?我非常喜欢在更新主轴值时不必总是清空缓冲区的想法。对于正常的数控操作,我们必须提供一种方法让机器等待主轴达到所需的转速,虽然……可能取决于变化率:如果变化小于 10%,则不等待,否则每 1000rpm 等待 1 秒… @PicEngraverToo: 顺便说一句,你不能压缩掉相同 X 值的“X…”吗?应该将数据/文件大小再减少 ~40%。
|
|
您好
|


就像这里的大多数评论一样,这不是问题,但我想获得一些意见并提供一些反馈。
为了稍微玩一下,我确实在我的 ShapeOko+grbl 上安装了一个 2W 蓝色激光 + MOSFET,它正在工作。
我确实为可变主轴销设置了它,但一开始没有注意到最小/最大 RPM 设置(我想我应该阅读所有评论)。这会引起一些混乱,因为我期望默认为 8 位而不是 0-1000。
在改变激光强度时我确实注意到了一些驻留,但我想 MINIMUM_JUNCTION_SPEED 应该有助于解决这个问题(什么值对激光来说是一个好的开始?)。
现在我的主要问题是激光设置是否还有其他重要设置?