一、Arduino平台的GRBL
如果使用的Arduino来做控制器,GRBL源码在这里下载:https://github.com/grbl/grbl ,下载下来后,把它解压成一个文件夹。接着打开Arduino IDE,“项目”-“加载库”-“添加.ZIP库”
选择grbl-master文件夹中的名为grbl的文件夹
接着“文件”-“示例”-“grbl”-“grblUpload”,就把grbl工程打开了,编译下载即可。
二、STM32平台的GRBL
下载源码后:,编译下载到自己的控制板上即可,要注意GRBL中的端口与自己的硬件板是否相匹配。
三、GRBL的配置参数
GRBL的配置参数很简单,只有几个,因此一般不在代码中修改,而是通过命名来修改。为了直观,也可以通过控制软件来修改。
首先下载 微雕管家:https://www.lanzous.com/i4nfnej,下载安装好后,连接控制板:
然后进入参数配置页面:
可以看到参数如下:
表1
参数 | 说明 |
---|---|
$0=10 |
(steppulse, usec) STEP信号的高电平时间,建议10us。 如果高电平时间太长,当运行速度很快时,会导致相邻两个脉冲的高电平会相互重叠,出错。 如果太短,电机驱动模块不能可靠的识别STEP信号。 |
$1=25 |
(step idle delay, msec) 步进电机除能延迟时间。 当电机完成一个动作并停止时,经过此时间后,电机驱动模块的ENABLE引脚会拉高,除能电机锁定来节能。把该值设为最大值255来禁用电机延迟除能功能。 某些步进驱动器不会记住他们停止在哪个微步上,因此,当使能电机驱动器后再重新启用时,可能会丢步。在这种情况下,只需通过$1=255禁用本功能即可。 |
$2=0 |
(stepport invert mask:00000000) 步进脉冲信号反相掩码 该设置将步进脉冲信号反相。默认情况下,步进信号从正常低电平开始,并在发生步进脉冲事件时变为高电平。在经过$0设置的步进脉冲高电平时间后,该引脚又复位为低电平,直到发生下一步进脉冲事件为止。 反转后,步进脉冲的行为会从正常高电平切换为脉冲期间的低电平,然后再回到高电平。大多数用户不需要使用此设置,但是对于某些有特殊要求的CNC步进驱动器来说,此设置很有用。例如,方向引脚和步进脉冲之间的人为延迟可以通过使步进引脚反相来产生。 如果要反转X轴和Z轴,发送$2=5。发送的值,看下面的表2。 |
$3=0 |
(dirport invert mask:00000110) 步进电机方向信号反相掩码 此设置反转每个轴的方向信号。默认情况下,Grbl假定当方向引脚信号为低电平时,轴沿正方向移动;当方向引脚信号为高时,轴沿负方向移动。 反转掩码设置的工作原理与步进端口反转掩码完全相同,而且发送的值也是相同的,都可以看表2。例如,如果只想反转Y轴方向,则发送$3=2 |
$4=0 |
(stepenable invert, bool) 步进电机使能信号反相设置 默认情况下,步进使能引脚为高电平是禁用电机驱动,而低电平是使能电机驱动。如果需要相反的操作,只需输入$4=1即可反转步进使能引脚的电平。(可能需要重新启动电源以加载更改。) |
$5=0 |
(limit pins invert, bool) 限位IO口信号反相设置 默认情况下,限位引脚通过Arduino的内部上拉电阻保持在高电平状态。当限位引脚为低电平时,Grbl将其解释为触发。对于相反的行为,只需输入$5=1即可反转触发电平。您可能需要重启然后再加载更改。 注意:为了更高级的使用,可以在config.h文件中禁用限位引脚上的内部上拉电阻。 |
$6=0 |
(probe pin invert, bool) 探针IO口信号反相设置 默认情况下,探针由Arduino的内部上拉电阻保持在常高状态。当探针引脚为低电平时,Grbl将其解释为触发。对于相反的行为,只需键入$6=1即可反转探针。您可能需要重启然后再加载更改。 |
$10=3 |
(status report mask:00000011) 状态报告掩码 当发送“?”给GRBL时,它会返回当前的实时数据。该数据包括当前运行状态,实时位置,实时进给速度,引脚状态,当前倍率值,缓冲区状态和当前正在执行的g代码行号(如果通过编译时选项启用)。 本设置用于指定位置类型是显示机器位置(MPos:)还是工作位置(WPos:),但不能同时显示两者。在某些情况下,当通过串行终端直接与Grbl进行交互时,启用工作位置很有用,但是默认情况下应使用机器位置报告。 |
$11=0.020 |
(junction deviation, mm) 节点偏差 加速度管理器使用结点偏差来确定它可以在G代码程序路径的线段结点处移动的速度。例如,如果G代码路径急转10度,并且机器以全速移动,则此设置有助于确定机器需要减速多少才能安全通过弯道而不会丢失步数。 我们如何计算它有些复杂,但是通常,较高的值可以使拐角处的运动更快,同时增加了丢失梯级和位置的风险。较低的值会使加速管理器更加谨慎,并会导致谨慎而缓慢的转弯。因此,如果您遇到机器尝试过快转弯的问题,请减小此值以使其在进入转弯时变慢。如果您希望机器通过结点移动得更快,请增加此值以加快速度。对于好奇的人,请单击此链接以了解Grbl的转弯算法,该算法通过一种非常简单,高效且健壮的方法来考虑速度和接合角。 |
$12=0.002 |
(arc tolerance, mm) 圆弧公差 Grbl通过将G2 / G3圆,弧和螺旋细分为细小的细线来渲染G2 / G3的圆,弧和螺旋,以使弧跟踪精度永远不会低于此值。您可能永远不需要调整此设置,因为0.002mm它远低于大多数CNC机床的精度。但是,如果您发现自己的圆太粗或弧形追踪的速度很慢,请调整此设置。较低的值可提供较高的精度,但可能会因过多的细线使Grbl过载而导致性能问题。或者,较高的值会导致较低的精度,但由于Grbl需要处理的线数较少,因此可以提高圆弧性能。 出于好奇,将圆弧公差定义为距线段的最大垂直距离,线段的端点位于圆弧(也称为弦)上。对于一些基本几何图形,我们求解线段的长度以跟踪满足此设置的圆弧。用这种方式对电弧建模非常好,因为弧线段会自动调整长度并按比例缩放,以确保最佳的圆弧追踪性能,同时又不会损失精度。 |
$13=0 |
(report inches, bool) 位置坐标的单位设置 Grbl具有实时定位报告功能,可向用户提供有关当时机器确切位置以及坐标偏移和探测参数的用户反馈。默认情况下,它设置为以mm为单位报告,但是通过发送$13=1命令,将此布尔标志发送为true,这些报告功能现在将以英寸为单位报告。$13=0重新设置为毫米。 |
$20=0 |
(soft limits, bool) 软限位开关 软限制是一项安全功能,可帮助您防止机器行驶太远且超出行驶限制,撞毁或破坏昂贵的物品。它通过了解每个轴的最大行程限制以及Grbl在机器坐标中的位置来工作。每当有新的G代码运动发送到Grbl时,它都会检查您是否意外地超出了机器空间。如果这样做,Grbl会在任何位置发出即时进给保持,关闭主轴和冷却液,然后设置系统警报以指示问题所在。机器位置将在之后保留,因为它不是由于硬限制而立即*停止。 注意:软限制要求启用归位和准确的轴最大行程设置,因为Grbl需要知道它在哪里。$20=1启用和$20=0禁用。 |
$21=0 |
(hard limits, bool) 硬限位开关 硬限制的工作原理与软限制基本相同,但改用物理开关。基本上,您在每个轴的行进结束时或在任何您觉得如果程序移到不应移动的地方可能会遇到麻烦的地方,连接一些开关(机械的,磁性的或光学的)。开关触发后,它将立即停止所有运动,关闭冷却液和主轴(如果已连接),并进入警报模式,这将迫使您检查机器并重置所有内容。 要在Grbl上使用硬极限,必须使用内部上拉电阻将限位引脚保持在高电平,因此您要做的就是将常开开关的引脚与地线连接在一起,并通过启用硬极限$21=1。(禁用$21=0。)我们强烈建议您采取防止电干扰的措施。如果要限制一个轴的行进两端,只需将两个开关与销和地平行地接线,这样,如果其中一个跳闸,就会触发硬极限。 请记住,硬极限事件被认为是关键事件,在这种情况下,步进器会立即停止并且可能会丢失步数。Grbl没有任何位置反馈,因此无法保证它对位置有任何了解。因此,如果触发了硬限制,Grbl将进入无限循环警报模式,这使您有机会检查计算机并强制您重置Grbl。请记住,这纯粹是一项安全功能。 |
$22=0 |
(homing cycle, bool) 归零使能位 GRBL将控制3个轴移动以碰到限位开关,以此位置来作为零点。(归零时的移动方向,由后面的参数设置) 注意:请查看config.h,以获取高级用户的更多归位选项。您可以在启动时禁用归位锁定,配置在归位循环中哪些轴先移动以及以什么顺序等等。 |
$23=1 |
(homing dir invert mask:00000001) 归位方向反相掩码 默认情况下,Grbl假设您的归位限位开关在正方向上,归位过程中会首先将z轴向正向移动,然后将xy轴正向移动,然后再通过在开关周围缓慢地来回移动来精确定位机器零点。 如果限位开关设置在负方向上,则回原点方向应该反相,就像步进脉冲信号反相掩码一样,发送的值也参照表2。 |
$24=50.000 |
(homing feed, mm/min) 归位进给速率,毫米每分钟 归零时首先以较高的速率搜索限位开关,找到限位开关后,再以较低的进给速率移动到机床零位的精确位置。归位进给速度是较慢的进给速度。 |
$25=500.000 |
(homing seek, mm/min) 归位快速速率 归零时首先以较高的速率搜索限位开关,找到限位开关后,再以较低的进给速率移动到机床零位的精确位置。归位快速速率是最开始快的那个速度。 |
$26=250 |
(homing debounce, msec) 归零时限位开关消抖时间 每当开关触发时,开关上会出现一些电气/机械噪声。要解决此问题,您需要使用某种硬件来对信号进行反跳信号调节或通过软件延迟很短的时间使信号弹起。 Grbl是采用的软件延迟消抖。在大多数情况下,5-25毫秒即可。 |
$27=1.000 |
(homing pull-off, mm) 归零后移出限位开关距离 为了更好地利用硬限位功能,归零完成后,GRBL会把电机移出限位开关。它有助于防止在归零后意外触发硬限制。要确保该值足够大以清除限位开关。否则,Grbl将因未能清除错误而引发警报错误。 |
$100=250 |
(x, step/mm) x轴移动1毫米需要多少个脉冲 |
$101=250 | (y, step/mm) y轴移动1毫米需要多少个脉冲 |
$102=250 | (z, step/mm) z轴移动1毫米需要多少个脉冲 |
$110=500.000 |
(x max rate, mm/min) x轴最大速率 毫米/分钟 确定这些值的最简单方法是通过逐渐增加最大速率设置并移动它来一次测试每个轴。例如,要测试X轴,请向Grbl发送G0 X50,行进距离要足够大,以使该轴加速到其最大速度。您会知道,当步进器停转时,您已达到最大速率阈值。会产生一点噪音,但不应伤害您的电动机。输入一个比该值低10-20%的设置,这样您就可以考虑磨损,摩擦以及工件/工具的质量。然后,重复其他轴。 注意:此最大速率设置还可以设置归零时的搜索速率。 |
$111=500.000 | (y max rate, mm/min) y轴最大速率 毫米/分钟 |
$112=500.000 | (z max rate, mm/min) z轴最大速率 毫米/分钟 |
$120=10.000 |
(x accel, mm/sec2) x轴加速度 毫米/(s2) 确定此设置的值的最简单方法是用缓慢增加的值分别测试每个轴,直到电动机停转为止。然后将加速度设置定为低于此绝对最大值10-20%的值。这应该考虑磨损,摩擦和质量惯性。 我们强烈建议您在使用新设置之前对某些G代码程序进行干燥测试。有时在所有轴上一起移动时,机器上的负载会有所不同。 |
$121=10.000 | (y accel, mm/sec2) y轴加速度 毫米/(s2) |
$122=10.000 | (z accel, mm/sec2) z轴加速度 毫米/(s2) |
$130=200.000 |
(x max travel, mm) x轴最大行程 这将以毫米为单位设置每个轴从一端到另一端的最大行程。仅当启用了软限制(和原点复归)时,此功能才有用,因为Grbl的软限制功能仅使用此功能来检查是否已通过运动命令超出了机器限制。 |
$131=200.000 | (y max travel, mm) y轴最大行程 |
$132=200.000 | (z max travel, mm) z轴最大行程 |
表2
设定值 | 掩码 | 反转X | 反转Y | 反转Z |
---|---|---|---|---|
0 | 00000000 | n | n | n |
1 | 00000001 | y | n | n |
2 | 00000010 | n | y | n |
3 | 00000011 | y | y | n |
4 | 00000100 | n | n | y |
5 | 00000101 | y | n | y |
6 | 00000110 | n | y | y |
7 | 00000111 | y | y | y |
表3
报告类型 | 值 | 描述 |
---|---|---|
职位类型 | 0 | 启用WPos: 禁用MPos: 。 |
职位类型 | 1 | 启用MPos: 。禁用WPos: 。 |
缓冲数据 | 2 | Buf:出现“已启用” 字段,其中包含计划程序和串行RX可用缓冲区。 |
$ 30-主轴spindle最高转速,RPM
这将设置最大5V PWM引脚输出的主轴速度。例如,如果要在5V下设置10000rpm,请编程$30=10000。对于5V时的255rpm,编程$30=255。如果程序试图将更高的主轴RPM设置为大于$30最大主轴速度,则Grbl将仅输出最大5V,因为它不能再快得多。默认情况下,Grbl以255个等间隔增量将最大-最小RPM与5V-0.02V PWM引脚输出线性相关。当PWM引脚读取0V时,表明主轴已禁用。请注意,config.h中还有其他配置选项可用于调整其操作方式。
$ 31-主轴最低转速,RPM
这将设置最小0.02V PWM引脚输出的主轴速度(禁用0V)。Grbl接受较低的RPM值,但PWM输出不会低于0.02V,除非RPM为零。如果为零,则主轴被禁用,PWM输出为0V。
$ 32-激光模式,布尔
启用后,当用主轴速度(激光功率)编程时,Grbl将通过连续的G1,G2或G3运动命令连续移动S。主轴PWM引脚将在每次运动时立即更新,而不会停止。使用此模式之前,请阅读GRBL激光文档和您的激光设备文档。激光非常危险。它们会立即永久损坏您的视力并引起火灾。Grbl对固件可能引起的任何问题(由其GPL许可定义)不承担任何责任。
禁用后,Grbl会像往常一样运行,并根据每个S主轴速度命令停止运动。这是铣床的默认操作,允许暂停以使主轴改变速度。