如果你正在思考或正在制作自己的数控机床,那么你很可能会遇到GRBL这个术语。所以在本教程中,我们将学习什么是GRBL,如何安装和如何使用它来控制基于Arduino的数控机床。
此外,我们将学习如何使用通用G-code Sender,一个流行的开源GRBL控制器软件。
GRBL是什么?
GRBL是一个开源软件或固件,使数控机床运动控制。我们可以很容易地将GRBL固件安装到Arduino上,因此我们立即得到一个低成本、高性能的数控控制器。GRBL使用G-code作为输入,通过Arduino输出运动控制。
为了更好的理解,我们可以看看下面的图表:
从图中我们可以看到GRBL发生在CNC机床工作原理的“大图”中。这是一个固件,我们需要安装或者上传到Arduino上,这样它就可以控制数控机床的步进电机。换句话说,GRBL固件的功能就是翻译ag亚博网站 进电机运动。
所需的硬件
- Arduino-如前所述,我们需要Arduino来安装GRBL。具体来说,我们需要一个基于Atmega 328的Arduino板,这意味着我们可以使用Arduino UNO或Nano。
- 步进电机——很明显,步进电机提供机器的运动。
- 司机- 用于驱动步进电机,我们需要驾驶员和常见的选择,当涉及到较小的DIY CNC机器时(使用NEMA 14或17脚步)是A4988或DRV8825司机。
- Arduino数控盾- 将步进器驱动程序连接到Arduino,最简单的方法是使用Arduino CNC屏蔽。它采用了所有Arduino引脚,提供了一种连接所有内容,步进电机,主轴/激光器,限位开关,冷却风扇等的简便方法。
请注意,这些只是基本的电子元件,我们需要了解数控机床如何工作。
事实上,作为一个所有东西都需要连接的例子我们可以看看我的DIY数控泡沫切割机.
您可以在这里查看并获得建造这台数控机床所需的主要电子元件:yabo7. com
- 步进电机- NEMA 17..................亚马逊/伯格多德/阿里巴巴全球速卖通
- A4988步进司机...................... ...亚马逊/伯格多德/阿里巴巴全球速卖通
- Arduino CNC Shield ............................亚马逊/伯格多德/阿里巴巴全球速卖通
- Arduino Uno .........................................亚马逊/伯格多德/阿里巴巴全球速卖通
yaboAG娱乐城披露:这些是附属链接。作为一个亚马逊助理,我从合格的购买中赚取。
该CNC机器的主要工具是一种热线,可以容易地熔化或切入苯乙烯泡沫塑料并制造我们想要的任何形状。有关更多详细信息,我如何制造机器以及您如何检查特定教程的工作原理。
尽管如此,我们在这篇文章中将以这台机器为例,因为它的工作原理适用于任何其他数控机床,无论是铣床还是激光机床。
如何安装grbl
首先,为了能够安装或上传GRBL到Arduino,我们需要Arduino IDE.
然后我们可以下载GRBL从github.com固件.
下载它的。zip文件,然后按照以下步骤:
- 打开grbl-master.zip文件并解压文件
- 打开Arduino IDE,导航到Sketch > Include Library > Add .ZIP Library…
- 导航到解压的文件夹“grbl-master”,在那里选择“grbl”文件夹并点击打开文件。现在我们要把GRBL作为Arduino图书馆。
- 接下来,导航到文件>示例> grbl > grblUpload。一个新的草图会打开,我们需要把它上传到Arduino板。代码可能看起来很奇怪,因为它只有一行,但不用担心,所有的事情都在库的后台发生。我们只需要选择Arduino板,COM端口然后点击上传按钮,就完成了。
GRBL配置
此时,我们应该配置或调整GRBL到我们的机器上。我们可以通过Arduino IDE的串行监视器来实现。一旦我们打开串行监视器,我们将得到一个像“Grbl 1.1 1h [' $ ' for help]”的消息。如果您看不到此消息,请确保将波特率更改为115200。
如果我们输入" $$ ",我们将得到一个命令或当前设置的列表,它们看起来像这样:
100美元= 250.000 (x,步骤/毫米)
101美元= 250.000 (y,步骤/毫米)
$ 102 = 3200.000(z,步骤/ mm)
110美元= 500.000(x最大速率,mm / min)
111美元= 500.000(y最大速率,mm / min)
$ 112 = 500.000(z最大速率,mm / min)
$ 120 = 10.000(X Accel,MM / SEC ^ 2)
$121=10.000 (y加速,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-code,以及如何根据G-code控制数控机床。然而,为了将G-code发送到Arduino,我们需要某种接口或控制器软件来告诉Arduino该做什么。实际上,有许多开源和商业程序都是出于这个目的。当然,我们将坚持开源,所以作为一个例子,我们将使用Univarsal刀位点发送方.
如何使用通用G代码发件人
对于此示例,我将使用2.0平台版本。下载后,我们需要提取ZIP文件,转到“Bin”文件夹并打开任何可执行的“UGSplatfrom”文件。这实际上是一个Java程序,所以为了能够运行这个程序,首先需要安装Java运行时环境.
我们打开通用G代码发件人后,首先我们需要配置机器,或配置前面所示的GRBL参数。为此目的,我们将使用UGS设置向导,通过Arduino IDE的串行监视器,可以更方便地手动键入命令。
这里的第一步是选择波特率,应该是115200,以及我们的Arduino所连接的端口。一旦我们将Universal G-code sender与Arduino连接起来,下一步我们就可以检查电机的移动方向。
如果需要,我们可以通过向导反转方向,或者手动翻转Arduino CNC Shield上的电机连接。
在下一步中,我们可以调整我们前面提到的步骤/ mm参数。在这里,了解如何调整它是更容易的,因为设置向导将计算并告诉我们我们应该更新参数的值。

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

在我的情况下,对于我制造的DIY数控机器,机器移动3mm。据此,向导建议将步骤/ mm参数更新为83的值。
随着这个值的更新,机器现在可以正确地移动,软件中的1毫米意味着数控机床的1毫米。

在UGS控制台中,当我们执行每个操作时,我们可以看到所执行的命令。我们可以注意到,通过更新steps/mm参数,UGS程序实际发送到Arduino,或GRBL固件的命令,我们前面提到。这是默认值:$100=250.000 (x,步长/毫米),现在我们更新为每毫米83步长:$100=83。
在下一步,我们可以启用限位开关,并测试它们是否工作正常。
取决于它们是常开连接还是常闭连接,我们也可以在这里将它们倒置。
这里值得注意的是,有时我们需要禁用Z轴限位开关。这是我的DIY数控泡沫切割机的情况下,我不需要Z轴限制开关,我不得不禁用它,以便能够正确地回家的机器。因此,要做到这一点,我们需要编辑位于Arduino库文件夹(或Documents\Arduino\libraries)中的config.h文件。
在这里,我们需要找到归位循环线和注释的默认设置为3轴数控机床和取消注释的设置为2轴机床。为了使更改生效,我们需要保存文件并将grblUpload草图重新加载到我们的Arduino板。
然而,在下一步,我们可以启用或禁用的归航数控加工。
使用“尝试归位”按钮,机器将开始朝向极限结束开关移动。如果它相反的方式,我们可以轻松地反向方向。
最后,在安装向导的最后一步,我们可以为我们的数控机床启用软限制。
软限制可防止机器超出设定的工作区域。
结论
所以,多亏了GRBL固件和Arduino,我们可以很容易地设置和让我们的DIY数控机床运行。当然,在本教程中我们只介绍了基础知识,但我认为这足以理解事情是如何工作的,以及如何让我们的第一台数控机床启动和运行。

当然,还有许多其他设置和功能可用,因为GRBL是真正有能力的CNC控制器固件。GRBL文档详细解释了所有这些,所以你可以随时查看他们的github.com上的wiki页面.
此外,还有许多其他的开源GRBL控制器程序,如通用g代码发送器,这里有几个:GRBLweb (Web浏览器),GrblPanel (Windows GUI), grblControl (Windows/Linux GUI), Easel(基于浏览器)等。你应该探索它们,看看哪一个最适合你。
这个问题真的很快。你能谈谈3D打印和CNC的联系和区别吗?
嗨Dejan,
感谢本教程!我真的很感激,但是我有一些问题…
您使用哪种CNC屏蔽?在图片中,它看起来您使用的v3.0与Grbl 1.1 Afaik不兼容。我使用相同的盾牌,实际上使用grbl 0.8来获取电机运行。您是否对GRBL 1.1和Shield v3.0有任何问题/错误?
谢谢你!
嘿,谢谢!那么我使用的数控盾牌是v3.0,或者这就是它在董事会上所说的。我没有遇到任何问题/错误,所以我可以说什么。
嗨,这对像我这样的电影来说是一个很有帮助的解释。我已经建立了我的迷你数控雕刻机,但努力使机器移动。但这只是因为我对arduino和grbl编码的了解不够。我无论如何都会到达那里。谢谢for explonation on how everthing fits together.
非常感谢。非常有用。
NPS
乍一看,这篇文章似乎很全面。我很感激你为我的生活付出的时间和努力。虽然我现在对雕刻、激光印刷或制造数控机床制造小零件没有兴趣,但我一直在做一个绘图仪,用于印刷PCB板,我可以在氯化铁溶液中蚀刻。我设计并3D打印了我的CNC绘制仪PLA零件,从各种来源订购了必要的零件,如不锈钢棒,NEMA 17步进电机,方法兰直线轴承等。我的组装几乎完成了,我需要一个“大脑”的机器,我希望这篇文章提供了我。所以,非常感谢你的这篇见解深刻的文章。
你好,感谢分享这个信息,我问你一个问题,我有一个“核心XY”数控激光,工作很好,但我不得不关闭限位开关,因为他们造成了随机错误打印,即使他们没有按下。
您是否对固件进行了任何修改?谢谢
嘿,谢谢!好吧,问题可能是触发开关的电噪声。您可以尝试将1K到4.7K拉动电阻连接到5V和解耦电容,以用于过滤噪声。