如何使用Arduino设置GRBL和控制CNC机器
如果您正在考虑或正在制造自己的CNC机床,那么很可能会遇到GRBL一词。因此,在本教程中,我们将学习什么是GRBL,如何安装以及如何使用它来控制基于Arduino的CNC机器。
此外,我们还将学习如何使用通用G代码发送器,这是一种流行的开源GRBL控制器软件。
什么是GRBL?
GRBL是一种开源软件或固件,可以对CNC机器进行运动控制。我们可以轻松地将GRBL固件安装到Arduino,因此我们可以立即获得低成本,高性能的CNC控制器。GRBL使用G代码作为输入,并通过Arduino输出运动控制。
为了更好地理解,我们可以看一下下图:
从图中可以看出,在数控机床工作原理的“大图”中,GRBL发生在哪里。这是我们需要安装或上传到Arduino的固件,以便它可以控制CNC机器的步进电机。换句话说,GRBL固件的功能是将G代码转换为电机运动。
所需的硬件
Arduino –正如我们已经说过的,我们需要一个Arduino来安装GRBL。具体来说,我们需要一个基于Atmega 328的Arduino开发板,这意味着我们可以使用Arduino UNO或Nano。
步进电机 –显然,步进电机使机器运动。
驱动器 –对于驱动步进电机,当需要小型DIY CNC机器(使用NEMA 14或17步进器)时,我们需要驱动器和常见选择,其中包括A4988或DRV8825驱动器。
Arduino CNC Shield –为了将步进驱动程序连接到Arduino,最简单的方法是使用Arduino CNC Shield。它利用了所有Arduino引脚,并提供了一种简单的方法来连接所有东西,步进电机,主轴/激光器,限位开关,冷却风扇等。
请注意,这些只是基本的电子组件,我们需要了解CNC机床的工作原理。
实际上,作为如何连接所有物体的示例,我们可以看一下我的DIY CNC泡沫切割机。
您可以在此处检查并获取构建此CNC机器所需的主要电子组件:
披露:这些是会员链接。作为亚马逊合作伙伴,我从符合条件的购买中赚钱。
这台数控机床的主要工具是一根热线,可以很容易地将聚苯乙烯泡沫熔化或切开,并做成我们想要的任何形状。有关我如何制造机器以及一切工作方式的更多详细信息,请查看特定的教程。
不过,我们将在本文全文中以该机床为例,因为相同的工作原理适用于任何其他CNC机床,无论是铣床还是激光机床。
如何安装GRBL
首先,为了能够将GRBL安装或上传到Arduino,我们需要Arduino IDE。
然后,我们可以从github.com下载GRBL 固件。
将其下载为.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.1h ['$'for help]”的消息。如果看不到此消息,请确保将波特率更改为115200。
如果我们键入“ $$”,我们将获得命令或当前设置的列表,它们显示如下:
$ 100 = 250.000(x,step / mm)
$ 101 = 250.000(y,step / mm)
$ 102 = 3200.000(z,step / mm)
$ 110 = 500.000(x max rate,mm / min)
$ 111 = 500.000(y max rate, mm / min)
$ 112 = 500.000(z max rate,mm / min)
$ 120 = 10.000(x accel,mm / sec ^ 2)
$ 121 = 10.000(y accel,mm / sec ^ 2)
$ 122 = 10.000(z accel,mm /秒^ 2)
所有这些命令都可以根据我们的CNC机床进行调整。例如,使用第一个命令$ 100 = 250.000(x,step / mm),我们可以调整机器每毫米的步长,或者我们可以指定电动机应该执行多少步,以使我们的X轴移动1 mm。
但是,我建议保留这些设置不变。有一种更简单的方法可以使用控制器软件根据我们的机器进行调整,我们将在下一部分中对其进行说明。
GRBL控制器
因此,一旦我们安装了GRBL固件,现在我们的Arduino就知道如何读取G代码以及如何根据它控制CNC机器。但是,为了将G代码发送到Arduino,我们需要某种类型的接口或控制器软件来告诉Arduino该怎么做。实际上,为此目的有许多开源程序和商业程序。当然,我们将坚持开源,因此,作为示例,我们将使用Univarsal G代码发送器。
如何使用通用G码发送器
对于此示例,我将使用2.0平台版本。下载后,我们需要解压缩zip文件,进入“ bin”文件夹并打开任何可执行的“ ugsplatfrom”文件。这实际上是一个JAVA程序,因此为了能够运行该程序,首先我们需要安装JAVA Runtime Environment。
打开通用G代码发送器后,首先我们需要配置机器,或配置前面显示的GRBL参数。为此,我们将使用UGS设置向导,它比通过Arduino IDE的串行监视器手动键入命令要方便得多。
第一步是选择波特率(应为115200)以及Arduino连接到的端口。将通用G代码发送器与Arduino连接后,在下一步中,我们可以检查电机的移动方向。
如果需要,我们可以通过向导反转方向,也可以通过手动翻转Arduino CNC Shield上的电机连接来改变方向。
在下一步中,我们可以调整前面提到的steps / mm参数。在这里,更容易理解如何进行调整,因为设置向导将计算并告诉我们应更新参数的值。
默认值为250步/毫米。这意味着,如果我们单击“ x +”移动按钮,则电动机将步进250步。现在,根据电机的物理步数,所选的步进分辨率和传动类型,机器将移动一段距离。使用标尺,我们可以测量机器的实际运动,并在“实际运动”字段中输入该值。基于此,向导将计算并告诉我们应更改step / mm参数的值。
就我而言,对于我制造的DIY CNC机器,机器移动了3mm。据此,向导建议将steps / mm参数更新为值83。
更新该值后,机床现在可以正确移动,软件中的1毫米表示CNC机床为1毫米。
在UGS控制台中,当我们执行每个操作时,我们可以看到执行的命令。我们可以注意到,通过更新steps / mm参数,UGS程序实际发送到了Arduino或GRBL固件,这是我们前面提到的命令。这是默认值:$ 100 = 250.000(x,步长/毫米),现在我们更新为每毫米83步长的值:$ 100 = 83。
在下一步中,我们可以启用限位开关并测试它们是否正常工作。
根据它们是常开还是常闭连接,我们也可以在这里将它们反转。
在这里值得注意的是,有时我们需要禁用Z轴限位开关。我的DIY CNC泡沫切割机就是这种情况,我不需要Z轴限位开关,因此必须禁用它才能使机器正常复位。因此,为此,我们需要编辑位于Arduino库文件夹(或Documents \ Arduino \ libraries)中的config.h文件。
在这里,我们需要查找归位循环线,并注释3轴CNC机床的默认设置,并取消注释2轴机床的设置。为了使更改生效,我们需要保存文件并将grblUpload草图重新上传到我们的Arduino开发板。
但是,在下一步中,我们可以启用或禁用CNC锤头的归位。
使用“尝试归位”按钮,机器将开始向限位开关移动。如果情况相反,我们可以轻松地反转方向。
最后,在设置向导的最后一步,我们可以为我们的CNC机床启用软限制。
柔和的限制可防止机器移动超出设定的工作区域。
结论
因此,借助GRBL固件和Arduino,我们可以轻松设置并运行DIY CNC机器。当然,我们仅在本教程中介绍了基础知识,但是我认为这足以理解工作原理以及如何启动和运行我们的第一台CNC机床。
当然,还有许多其他设置和功能可用,因为GRBL确实具有强大的CNC控制器固件功能。GRBL文档详细解释了所有这些内容,因此您始终可以在github.com上其Wiki页面上对其进行检查。
另外,还有许多其他开源GRBL控制器程序,例如通用G代码发送器,这里很少:GRBLweb(Web浏览器),GrblPanel(Windows GUI),grblControl(Windows / Linux GUI),Easel(基于浏览器)等您应该对它们进行探索,看看哪一个最适合您。