如果你正在思考或你正在制造自己的数控机床的过程中,那么最有可能你会遇到术语GRBL。所以在本教程中,我们将学习什么是GRBL,如何安装和如何使用它来控制基于Arduino的数控机床。

此外,我们将学习如何使用Universal G-code Sender,一个流行的开源GRBL控制器软件。

什么是grbl?

GRBL是一个开源软件或固件,使运动控制数控机床。我们可以很容易地将GRBL固件安装到Arduino上,因此我们立即得到了一个低成本,高性能的CNC控制器。GRBL使用G-code作为输入,通过Arduino输出运动控制。

为了更好地理解,我们可以看一下下图:

GRBL和Arduino CNC机器工作原理

从图中我们可以看到GRBL发生在数控机床工作原理的“大图”中。这是我们需要安装或上传到Arduino的固件,这样它就可以控制数控机床的步进电机。换句话说,GRBL固件的功能是翻译刀位点进电机运动。

需要硬件

  • arduino.- 我们已经说过,我们需要一个Arduino安装Grbl。具体来说,我们需要一个基于Atmega 328的Arduino板,这意味着我们可以使用Arduino Uno或Nano。
  • 步进电机——很明显,步进电机提供机器的运动。
  • 司机- 用于驱动步进电机,我们需要驾驶员和常见的选择,当涉及到较小的DIY CNC机器时(使用NEMA 14或17脚步)是A4988或DRV8825司机。
  • Arduino数控盾- 将步进器驱动程序连接到Arduino,最简单的方法是使用Arduino CNC屏蔽。它采用了所有Arduino引脚,提供了一种连接所有内容,步进电机,主轴/激光器,限位开关,冷却风扇等的简便方法。

请注意,这些只是我们需要了解数控机床如何工作的基本电子元件。

事实上,作为所有事物都需要连接的一个例子我们可以看看我的DIY数控泡沫切割机

Arduino CNC机电路图 - 电子组件必威lol

你可以在这里检查并获得建造这台数控机床所需的主要电子元件:必威lol

必威外围提钱披露:这些是联盟链接。作为亚马逊助理,我从合格购买中获得。

该CNC机器的主要工具是一种热线,可以容易地熔化或切入苯乙烯泡沫塑料并制造我们想要的任何形状。有关更多详细信息,我如何制造机器以及您如何检查特定教程的工作原理。

Arduino数控泡沫切割机

然而,我们将使用这台机器作为一个例子,在这篇文章中,因为同样的工作原理适用于任何其他数控机床,无论是磨或激光。

如何安装grbl

首先,为了能够将GRBL安装或上传到Arduino,我们需要Arduino IDE

然后我们可以下载grblgithub.com的固件

GRBL  - 用于控制CNC机器的GRBL开路源Arduino固件

将其下载为.zip文件,然后按照下列步骤操作:

  • 打开grbl-master.zip文件并解压缩文件
  • 打开Arduino IDE,导航到素描>包含库>添加.zip库...

将新库添加到Arduino IDE

  • 导航到提取的文件夹“grbl-master”,在选择“grbl”文件夹中,然后单击打开文件。现在我们必须担任阿尔迪诺图书馆。

如何在arduino上安装grbl

  • 接下来,导航到文件> Examples > grbl > grblUpload。一个新的草图将打开,我们需要把它上传到Arduino板。代码可能看起来很奇怪,因为它只有一行,但不用担心,所有事情都在后台库中发生。我们只需要选择Arduino板,COM端口然后点击上传按钮,就完成了。

GRBL配置

此时,我们应该将GLBL配置或调整到我们的机器。我们可以通过Arduino IDE的串行监视器来实现这一点。一旦我们打开串行监视器,我们就会收到一条消息,如“grbl 1.1h ['helver]。如果您无法看到此消息,请确保将波特拉特更改为115200。

如果我们键入“$$”,我们将获取命令或当前设置列表,它们显示出这样的内容:

$ 100 = 250.000(x,步骤/ mm)
101美元= 250.000 (y,步骤/毫米)
$ 102 = 3200.000(z,步骤/ mm)
110美元= 500.000(x最大速率,mm / min)
$111=500.000 (y最大速率,毫米/分钟)
$ 112 = 500.000(z最大速率,mm / min)
$ 120 = 10.000(X Accel,MM / SEC ^ 2)
$ 121 = 10.000(Y Accel,MM / SEC ^ 2)
$ 122 = 10.000(Z Accel,MM / SEC ^ 2)

所有这些命令都可以或应根据我们的数控机床进行调整。例如,使用First命令,$ 100 = 250.000(x,步骤/ mm),我们可以调整每mm的步骤,或者我们可以指定电机应使我们的X轴移动到1 mm的步骤。

但是,我建议留下这些设置。使用控制器软件根据我们的机器调整它们的更简单方法,我们将在下一节中解释。

GRBL控制器

所以一旦我们安装了GRBL固件,我们现在我们的Arduino就知道如何阅读G代码以及如何根据其控制CNC计算机。但是,为了向Arduino发送G代码,我们需要某种界面或控制器软件,该软件将告诉Arduino该做什么。实际上,有许多开源和商业计划的目的。当然,我们将坚持开源,所以作为一个例子,我们将使用Univarsal G代码发件人

用于控制Arduino CNC机器的通用G代码发件人

如何使用通用G代码发件人

对于此示例,我将使用2.0平台版本。下载后,我们需要提取ZIP文件,转到“Bin”文件夹并打开任何可执行的“UGSplatfrom”文件。这实际上是一个Java程序,所以为了能够运行这个程序,首先需要安装Java运行时环境

一旦我们打开Universal G-code发送器,首先我们需要配置机器,或者配置前面显示的GRBL参数。为此,我们将使用UGS安装向导,这是更方便的手动输入命令,通过Arduino IDE的串行监视器。

通用G-code发送器- GRBL配置

这里的第一步是选择波特率,应该是115200,以及Arduino连接到的端口。一旦我们把Universal G-code sender和Arduino连接起来,下一步我们就可以检查电机的运动方向。

设置电机的旋转方向

如果需要,我们可以通过向导反转方向,或者手动翻转Arduino CNC Shield上的电机连接。

在下一步中,我们可以调整我们前面提到的步骤/ mm参数。在这里,了解如何调整它是更容易的,因为设置向导将计算并告诉我们我们应该更新参数的值。

设置每个MM参数的步骤

默认值为250步/ mm。这意味着,如果我们单击“X +”按钮,电机将制作250步。现在根据电机的物理步骤数量,所选步进分辨率和传输类型,机器将移动一定距离。使用统治者我们可以测量机器所做的实际运动并在“实际移动”字段中输入该值。基于此,向导将计算并告诉我们要更改步骤/ mm参数的值。

为数控机床设置每毫米参数的步骤

在我的情况下,对于我制造的DIY数控机器,机器移动3mm。据此,向导建议将步骤/ mm参数更新为83的值。

GRBL步骤校准

使用此值更新,机器现在正常移动,软件中的1毫米均为1 mm,用于CNC机器。

在UGS控制台中,当我们制作每个操作时,我们可以看到执行的命令。我们可以注意到通过更新步骤/ mm参数,UGS程序实际发送到Arduino,或者我们前面提到的命令的GLBL固件。这是默认值:$ 100 = 250.000(x,step / mm),现在我们更新为每mm:$ 100 = 83的值83步。

在下一步中,我们可以启用限位开关并测试它们是否正常工作。

CNC机器限位开关设置

根据它们是常开连接还是常闭连接,我们也可以在这里把它们倒档。

这里值得注意的是,有时我们需要禁用z轴限制开关。这是我的DIY CNC泡沫切割机的情况,其中我不需要Z轴限制开关,我必须禁用它,以便能够正确归属机器。因此,要做到这一点,我们需要编辑位于Arduino库文件夹(或文档\ Arduino \ Libraries)中的Config.h文件。

编辑GRBL配置文件,用于关闭Z轴限制开关

在这里,我们需要查找归位循环线并注释3轴数控机床的默认设置,并取消注释安装2轴机器的设置。为了使更改生效,我们需要将文件保存并重新加载GRBlupload草图到我们的Arduino板。

尽管如此,在下一步中,我们可以启用或禁用数控Macing的归位。

我们数控机床的归位设置

使用“尝试归位”按钮,机器将开始朝向极限结束开关移动。如果它相反的方式,我们可以轻松地反向方向。

最后,在安装向导的最后一步,我们可以为我们的数控机床启用软限制。

为CNC机器启用软限制

软限制可防止机器超出设定的工作区域。

结论

因此,多亏了GRBL固件和Arduino,我们可以很容易地设置和得到我们的DIY数控机器运行。当然,我们在本教程中只涵盖了基础知识,但我认为这已经足够理解事情如何工作,以及如何让我们的第一台数控机床启动和运行。

Arduino Uno和Arduino CNC Shield

当然,有许多其他设置和功能可用,因为GRBL真的有能力的CNC控制器固件。GRBL文档详细说明了所有这些,因此您可以始终检查它们github.com上的wiki页面

此外,还有许多其他开源GRBL控制器程序,如通用G-code Sender,这里是少数几个:GRBLweb (Web Browser), GrblPanel (Windows GUI), grblControl (Windows/Linux GUI), Easel(基于浏览器)等。你应该探索它们,看看哪一个最适合你。

4回复

  1. 吉姆绿色

    这个问题真的很快。你能谈谈3D打印和CNC之间的联系和区别吗?

    回复
  2. 基督教

    嗨,德扬,

    感谢本教程!我真的很感激,但我有一些问题…

    您使用哪种CNC屏蔽?在图片中,它看起来您使用的v3.0与Grbl 1.1 Afaik不兼容。我使用相同的盾牌,实际上使用grbl 0.8来获取电机运行。您是否对GRBL 1.1和Shield v3.0有任何问题/错误?

    谢谢!

    回复
    • 德扬

      嘿,谢谢!那么我使用的数控盾牌是v3.0,或者这就是它在董事会上所说的。我没有遇到任何问题/错误,所以我可以说什么。

      回复
  3. Jacobus De啤酒

    嗨,这是一个非常有帮助的电影像Me.的电影的解释。我已经建立了我的迷你数控雕刻,但努力使机器移动。然而,只有我缺乏对Arduino和Grbl Coding的知识。然而,我将在那里。感谢您对everthing如何合适的探讨。

    回复

留下一个回复

您的电子邮件地址不会被公开。

推荐

2019年面向初学者和爱好者的最佳入门级示波器

为初学者和爱好者最好的示波器

推荐

2019年针对初学者的8个最佳Arduino入门工具包

初学者的8个最佳Arduino Starter Kits

推荐

最佳3D打印机初学者和爱好者- 3D打印

最好的3d打印机初学者和爱好者