开源改变世界

用激光驱动的进给速度调制主轴速度 #660

推推 grbl 3年前 (2023-01-22) 91次浏览

关闭
idanielrobert 打开了这个问题 2015 年 4 月 18 日 · 25条评论
关闭

用激光驱动的进给速度调制主轴速度#660

idanielrobert 打开了这个问题 2015 年 4 月 18 日 · 25条评论

注释

用激光驱动的进给速度调制主轴速度 #660

你好,
我用激光代替钻孔机。
激光的功率被调制为带有 PWM 的钻孔机的速度。
我使用 GRBL 的强大加速功能 (ADAPTIVE_MULTI_AXIS_STEP_SMOOTHING)。
如果我为快速移动的头选择了一个好的激光功率,当头最慢(开始和停止阶段)时,功率会高
一些在 Arduino 中进行跟踪和调试。

我在 spindle_control.c 模块的 spindle_set_state() 中发现了一些有趣的想法。
我尝试使用 prep.current_speed 和 current_pwm 来检查。但是看起来 prep.current_speed 在执行 spindle_set_state() 的时候并没有更新。

是否有人可以帮助我在迷宫中找到正确的道路?

来源有据可查且清晰,但我需要一点帮助。

先感谢您

丹尼尔罗伯特

用激光驱动的进给速度调制主轴速度 #660
贡献者

很多人已经在使用激光,对于一些历史你可能想看看这里:#492
但是此时所需的更改不在官方边缘分支中(还),看看我的边缘分支例如看看所需的更改,以便在更改 S 值时 xyz 轴不会停止。
大师...阿尔法研究:边缘

用激光驱动的进给速度调制主轴速度 #660

非常感谢,我会看看你的修改。
我继续工作,我找到了一种解决方案,可以在速度缓慢且成比例时降低功率。
我不能给出行号,因为我已经添加了评论和一些测试更改。
过度燃烧的区域现在非常干净。

在模块 stepper.c 中:

在 st_prep_buffer()
案例中 RAMP_ACCEL:


setLaser() ;
休息 ;

默认情况下: // case RAMP_DECEL:


setLaser() ;
休息 ;

这是 setLaser() 函数:

void setLaser() {
//if ( gc_state.tool > 0 ) { // not yet working ??????
    if ( gc_block.modal.spindle != SPINDLE_DISABLE ) {

        #define SPINDLE_RPM_RANGE (SPINDLE_MAX_RPM-SPINDLE_MIN_RPM)
        float newSpindleSpeed ;
        float speedCoef, laserPart ;
        uint8_t newPwm ;

        speedCoef = gc_state.feed_rate / prep.current_speed ;
        //speedCoef = speedCoef * 1.5 ;  // to test for fine tune
        laserPart = gc_state.spindle_speed / 3 ; // make correction on only 1/3 off the power
        newSpindleSpeed = laserPart / speedCoef ;
        newSpindleSpeed = ( laserPart * 2 ) + newSpindleSpeed ;

        newPwm = floor( newSpindleSpeed * ( PWM_MAX_VALUE / SPINDLE_RPM_RANGE ) + 0.5 ) ;  

        OCR_REGISTER = newPwm ; // Set PWM pin output

    }
//}
}

用激光驱动的进给速度调制主轴速度 #660

用激光驱动的进给速度调制主轴速度 #660

@idanielrobert你能分享你的grbl zip文件吗?
我想在我的激光数控系统上测试您的修改!:)

用激光驱动的进给速度调制主轴速度 #660

@Dikabro
是的当然。这是我的第一次尝试。我想有可能做得更好。
如果你能做得更好,请告诉我。

这里是 zip https://www.dropbox.com/s/r7led3httuxwaqx/grbl.zip?dl=0

这是我第二次进入 Arduino 的 C 语言世界。

如您所见,我的想法是选择工具来激活或停用校正。
T0 表示无校正,另一种工具用于激活校正。但是gc_state.tool 看起来并没有取工具的值。

我想使用一些 $ 变量来更改参数,例如“speedCoef * 1.5”
或“gc_state.spindle_speed / 3”。

现在我的问题是,它是调用 setLaser() 函数的更好位置吗?

我也尝试使用
————–
laserPart = gc_state.spindle_speed / 2 ;

newSpindleSpeed = ( laserPart * (1) ) + newSpindleSpeed ;
————–

好事是用
————–
x = $n…
laserPart = gc_state.spindle_speed / x ; 改变这两行;


newSpindleSpeed = ( laserPart * (x-1) ) + newSpindleSpeed ;
——————

但正确的 x 值将介于 2 和 4 或 5 之间(最大值)。

用激光驱动的进给速度调制主轴速度 #660

嗨 idanielrobert,你在你发布的 mod 的工作流程中使用什么 CAM?

用激光驱动的进给速度调制主轴速度 #660

您好,

我不知道在这种情况下什么是“CAM”。我刚刚发布了一个问题!通过等待答案,我继续寻找解决方案。当我找到解决方案(可能不是最好的解决方案)时,我只是将其作为一个简单的建议发布。我对其他更好的解决方案持开放态度。我不知道我是否需要赚更多?
这是我第一次介入 GitHub。我很抱歉我的英语不好。

用激光驱动的进给速度调制主轴速度 #660

我的意思是问你用什么制作了让激光在你的照片中做 MyOpale 设计的文件。你是如何制作完成它的g代码的

用激光驱动的进给速度调制主轴速度 #660

是的,我如何使用 Vectric 的 Cut2d。首先我矢量化了一个位图文件。然后简单地创建一个铣削路径。G 代码是使用 Grbl 0.8 驱动程序的修改版本创建的。我通过为“暴跌”阶段添加 S 参数来制作我的 Grbl 0.9。如果你想要的话,我可以给你g代码文件。S 参数对于所有文件都是相同的。

用激光驱动的进给速度调制主轴速度 #660

不幸的是,我错误地关闭了这个问题。现在已经重新开放了。

用激光驱动的进给速度调制主轴速度 #660

嗨,我是意大利人。我尝试了你的 grbl mod,它在完成 .txt 时挂起 (99%),我必须多次按下断开连接按钮才能解锁系统。我查看了源代码,在 spindle.c 和 report.c 中看到了 mod;还有其他的吗?它适用于您的数控系统吗?谢谢再见

用激光驱动的进给速度调制主轴速度 #660

.txt 文件末尾是否有空行?
有时这会导致奇怪的行为。

用激光驱动的进给速度调制主轴速度 #660

不,我没有空行。我使用文件 txt。其他 grbl 使用并正确完成。
这个 grbl mod 适合你吗?

用激光驱动的进给速度调制主轴速度 #660
成员

@felixa4: 很可能是 G 代码程序最后一行的 M2 或 M30 程序结束命令。收到这些命令之一后,Grbl 将完成所有缓冲的动作,然后暂停作业以防止机器在作业完成后恢复。旧版本的 Grbl 需要“~”恢复命令才能退出,但我想我最近删除了该要求。

用激光驱动的进给速度调制主轴速度 #660

是的,有M30。我离开它并尝试。
谢谢

用激光驱动的进给速度调制主轴速度 #660

‘〜’在哪里?我的 IT 键盘里没有…..

用激光驱动的进给速度调制主轴速度 #660
成员

@felixa4:如果没有“~”,您可以更改 config.h 中的命令字符。通过 Arduino IDE 上传方法重新编译并刷新更新的构建。

用激光驱动的进给速度调制主轴速度 #660

好的,谢谢,但是现在我认为最好在激光后处理器中修改页脚。
再见

用激光驱动的进给速度调制主轴速度 #660

好吧,我已经测试了这个 grbl,我看到了:
补偿是为 $28=0 或 1, 10, 20…..;
补偿适用于上坡,不适用于下坡;
补偿仅在激光关闭时开始,而不是从停止重启开始;
再见

用激光驱动的进给速度调制主轴速度 #660

您好,感谢您对这个主题的兴趣。在第一个版本中,28 美元是正确的,只是用于激活或不激活。第一个版本远非如此,但它是一个证明的概念。我制作了一个新的完整版本,看起来不错。现在有 3 个参数用于设置阈值和功率补偿。许多文件中有很多修改。我所有的修改都标有 //DRO 之类的注释

最后一个版本在某些重启时将功率设置为高。这可以在某些地方形成一个黑点。

我可以制作一个包含所有 grbl 的 zip 文件发送给您吗?
我怎样才能给你这个版本?

我希望在多一点帮助的情况下做出完美的补偿:)

用激光驱动的进给速度调制主轴速度 #660

这是我的最后一个版本:https ://www.dropbox.com/s/luzei8ld6lb9h2b/grblLaserDroxx.rar?dl=0

感谢尝试并帮助完善:-)

你会在 // DRO 之后看到我所有的修改

有 3 个新参数:
$30 以 % 定义最高阈值补偿
如果速度高于此 % 补偿将无效
EX:80如果速度为 95% 如果速度为 70% 那么
补偿无效
补偿设置
$31 定义机器人阈值(与 $30 相同的概念,但对于底部)
$32 激光的最小功率。
全部以 % 表示

用激光驱动的进给速度调制主轴速度 #660

嗨,丹尼尔,我很高兴与您合作实现一个完整的激光 grbl。
如果您想将 zip 文件发送给我,我会查看并研究您的解决方案;
我有时间可以试试grbl,….我也必须工作……….!!!
非常感谢,您可以通过 pm 发送 zip/rar,或者我给您发送 mi 电子邮件。
再见

2016-03-31 11:59 GMT+02:00 idanielrobert notifications@github.com

这是我的最后一个版本:
https ://www.dropbox.com/s/luzei8ld6lb9h2b/grblLaserDroxx.rar?dl=0

感谢尝试并帮助完善:-)


你收到这个是因为你被提到了。
直接回复此邮件或在 GitHub
#660(评论)上查看

用激光驱动的进给速度调制主轴速度 #660

嗨丹尼尔,我已经用 accel x =2 测试了你的 grbl,测量激光/主轴
PWM 输出,它工作正常;
我不明白 $32 在做什么,但我必须设置为 1 才能正常工作;
我认为 30 美元将永远是 100% S,所以你会使
MCU 的寿命复杂化;
我的 IT 知识库中没有“~”,我在配置中更改它并报告“
 ”:
在 M30 之后系统挂起,我的“*”不解锁它;
我还怎么换?
非常感谢,再见

2016-03-31 15:17 GMT+02:00 filippo giardina filippogiardina61@gmail.com :

嗨,丹尼尔,我很高兴与您合作实现一个完整的激光
grbl。
如果您想将 zip 文件发送给我,我会查看并研究您的解决方案;
我有时间可以试试grbl,….我也必须工作……….!!!
非常感谢,您可以通过 pm 发送 zip/rar,或者我给您发送 mi 电子邮件。
再见

2016-03-31 11:59 GMT+02:00 idanielrobert notifications@github.com

这是我的最后一个版本:
https ://www.dropbox.com/s/luzei8ld6lb9h2b/grblLaserDroxx.rar?dl=0

感谢尝试并帮助完善:-)


你收到这个是因为你被提到了。
直接回复此邮件或在 GitHub
#660(评论)上查看

用激光驱动的进给速度调制主轴速度 #660

您好,我在流程结束时也有这种行为。我将尝试使用全新的未修改的 Grbl。如有必要,我会非常小心地尝试只对它进行良好的更改。

这将需要几天的时间….
:-)

用激光驱动的进给速度调制主轴速度 #660

对不起,32 美元是热量不动时的最小功率。我添加这些参数是因为某些激光器的功率不是完全线性的。一些激光驱动器并不完美。如果您认为“uC time’s hungry”,则可以对代码行进行注释。我可以帮你。首先,我必须重新研究这段代码。

用激光驱动的进给速度调制主轴速度 #660

嗨朋友,你有这个美丽项目的最新更新吗?
再见,菲利波

2016-04-03 7:24 GMT+01:00 idanielrobert notifications@github.com

对不起,32 美元是热量不动时的最小功率。我
添加这些参数是因为某些激光器的功率不是完全
线性的。一些激光驱动器并不完美。如果您认为“uC time’s
hungry”,则可以对代码行进行注释。我可以帮你
。首先,我必须重新研究这段代码。


你收到这个是因为你被提到了。
直接回复此邮件或在 GitHub
#660(评论)上查看

喜欢 (0)