注释
我认为此时的问题是当前 328P 板上的可用存储空间。为了执行您所描述的操作,GRBL 必须存储用于计算 Z-delta 的点数组。它没有的空间。一旦使用/支持新板,它可能会被添加,但自动级别功能已经在多个用户界面中实现。 Sonny 可能对此有更多的洞察力,并且他是新功能的最终决定权。 |
进一步使用 mega board 怎么样 |
是的,如果说为阵列留出 1k,则当前的 328p 可以做到这一点,这提供了 512 个非常有用的点,并且有一些版本的 GRBL 仅使用 1k(更少的串行缓冲区空间)。但除此之外,即使您不同意 RAM 要求,您将如何实现 zdelta 的步进代码? |
由于经过一番思考后没有人回答我的问题,所以我会自己回答。zdelta 可以在主步进 ISR 中得到补偿。
|
谢谢你的回复,但我当然不同意。GUI gcode 修改器采用 2k 文件并可以轻松地将其转换为 80k 文件,这不是最简单的解决方案。你是对的,因为它是一个特定的特征,雕刻,也许不适合更普遍的 GRBL。正如我的初始代码所示,它不会花费很多周期,因为它只是一个不需要计算的查找表。它确实需要一些 RAM 1-2k。 但是感谢您在该项目上所做的所有出色工作。 |
我也不同意。修改后的 g 代码程序变得有多大并不重要。用户通常永远不会看到它,并且可以通过像脚本这样简单的东西来完成。它也可以是更高的分辨率,因为与微控制器相比有无限的资源。顺便说一句,我见过超过几百万行 g 代码的 3D 加工刀具路径,Grbl 可以毫无问题地执行整个程序。 其次,稳健意味着没有潜在的失败点或条件。尽管您的建议可能进展缓慢,但这并不意味着情况总是如此。具有意外应用程序的用户仍然可能被命令比机器的限制更快地运行或创造丢失步骤的情况。一切都需要经过规划器,这样,所有的动作都是加速规划的。 不要误会我的意思。我理解您的论点,即控制器可以轻松地进行这些必要的计算并实时调整其运动。然而,内存仍然是一个关键要求,1-2K RAM 可能不足以满足所有应用程序。另外,还有一个问题是如何在探测点之间进行曲线拟合,因为线性插值不是唯一的方法。还有多种其他方法,哪一种最好通常是特定于问题的。 |
感谢您的答复。应用非常具体,即 PCB 雕刻或平板雕刻,您可以安全地选择适用于所有规划模式的速率。主要问题是如果您超过了 Z 轴的最大跟踪速率,但这确实不是问题,因为有简单的解决方法,即减慢 x 和 y 的进给速率。不需要插值,因为它假定工作空间适度平坦,只需进行非常有效的点校正,比如相距 5 毫米。问题是 RAM 需要 AtMega644p 或类似的 4k RAM。如果探测程序检测到的平坦度超过最大 dz/(dxdy)(请原谅缩写),则可以通知用户。 |
@Moffy如果您仍然感兴趣,我现在开始从事类似的项目。到目前为止,我实现了某种“Marlin G29”解决方案,它自动进行探测并存储在数组中(也提供串行输出)但它不使用数据。我发现这个问题是在寻找相关信息。 |
我已经为 autotrack z 编写了大部分代码,我正在使用基于 SEEED ArchMix 的定制 iMXRT1052 板。该代码尚未经过测试,我修改了 Candle 以进行探测并与微控制器通信。我最近没有上传太多东西,因为我一直忙于制作自己的电路板原型,谁知道 pcb 碳粉转移会如此棘手。 |
GRBL 雕刻模式
我有一个让GRBL能够自动雕刻的想法,即将自调匀整功能加入到GRBL中。
它将从一个由 PC 控制的区域探测器开始。结果将存储在 PC 上,并创建一个双线性插值网格,例如最多 1024 个点。然后该网格将被加载到 GRBL 中并用于根据当前的 x 和 y 位置计算 zdelta。zdelta 将在程序循环中计算并给出偏移量的近似值。我有一些代码来说明:
包括“grbl.h”
//对于具有 4k RAM 的 ATMega644PA
定义 ZOFFSET_MAX_PTS 1024
int16_t zoffsets[ZOFFSET_MAX_PTS];//材料表面的 z 偏移数组
int16_t znew, zold, zdelta; //用于计算当前偏移量
uint8_t x2divisor, xpts;
uint8_t y2除数,ypts;
布尔雕刻;//启用雕刻模式
void zoffset_calc()
{
int32_t x, y;
uint16_t我;
}
//
void zoffset_load(uint16_t i, int16_t z)
{
if(i >= ZOFFSET_MAX_PTS)
return;
}
//
uint16_t zoffset_checksum()
{
uint16_t zchk=0, i;
}
zdelta 将用于步进器部分,以将向上或向下脉冲添加到 z 轴。
需要将一些新命令合并到协议中,例如加载 zoffset 数据,但不要太复杂。雕刻功能将由单个布尔变量“雕刻”控制。
您认为实施它的最佳方式是什么?