开源改变世界

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

推推 grbl 3年前 (2022-10-30) 329次浏览 0个评论
关闭
idanielrobert 打开了这个问题 on 18 Apr 2015 · 25 条评论
关闭

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

idanielrobert 打开了这个问题 on 18 Apr 2015 · 25 条评论

注释

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

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

我在主轴控制.c 模块的主轴设置状态()中发现了一些有趣的想法。
我尝试使用 prep.current_speed 和 current_pwm 来检查。但看起来 prep.current_speed 在主轴设置状态()执行时没有更新。

有没有人能帮我在迷宫中找到正确的道路?

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

先感谢您

丹尼尔·罗伯特

用激光驱动的进给速度调节主轴速度 #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
是的当然。这是,我的第一次尝试。我想有可能做得更好。
让我知道你是否可以做得更好。

这是压缩包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

您好 Truehybridx,

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

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

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

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

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

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

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

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

你好,我是意大利人。我试试你的 grbl mod,它在完成 .txt 时挂起(99%),我必须按几次断开连接按钮才能解锁系统。我查看源代码,我在主轴.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:
如果速度为 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 kb 中没有“~”,我在配置中更改它并使用“
 ”报告:
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 时间很饿”,可以对代码行进行注释。我可以帮助你。首先,我必须重新研究这段代码。

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

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

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

抱歉,32 美元是热量不移动时的最低功率。我
添加了这些参数是因为某些激光的功率不是完全
线性的。一些激光驱动器并不完美。如果您认为“uC 时间
很饿”,可以对代码行进行注释。我可以帮助你
。首先,我必须重新研究这段代码。


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

用激光驱动的进给速度调节主轴速度 #660
喜欢 (0)

您必须 登录 才能发表评论!