【花雕动手做】尝试自制 Arduino GRBL 笔式 2D 绘图写字机

2024-07-317602
AI 快速预览详细 收起
本文介绍了如何使用 2020 和 2040 铝型材自制 Arduino GRBL 笔式 2D 绘图写字机。通过详细的组装步骤和实物照片,展示了从零开始制作的过程。适合 DIY 爱好者尝试。


使用2020和2040铝型材,组装好的机子(V1版本),大致是这个样子

【花雕动手做】尝试自制 Arduino GRBL 笔式 2D 绘图写字机图1





创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(30)
驴友花雕
驴友花雕
作者
实验记录视频
【花雕动手做】尝试自制 Arduino GRBL 笔式 2D 绘图写字机
https://www.bilibili.com/video/BV1AvvbeKEvy/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987
[media=x,500,375]https://www.bilibili.com/video/BV1AvvbeKEvy/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987[/media]
驴友花雕
驴友花雕
作者
通过这个八向控制按钮,测试了一下步进电机

驴友花雕
驴友花雕
作者
连接后,可看到串口监视器里面的回复


驴友花雕
驴友花雕
作者
打开LaserGRBL软件,设置串口号(连接开发板的口)和波特率115200,点连接按钮(Connect)

驴友花雕
驴友花雕
作者
准备好相关测试用的硬件

驴友花雕
驴友花雕
作者
打开LaserGRBL软件,是这个界面,设置为中文


驴友花雕
驴友花雕
作者
LaserGRBL的使用方法:https://lasergrbl.com/usage/

驴友花雕
驴友花雕
作者
驴友花雕
驴友花雕
作者
LaserGRBL的开源仓库:https://github.com/arkypita/LaserGRBL

驴友花雕
驴友花雕
作者
LaserGRBL目前最新版本是V7.12.0,重要的几个链接如下:
LaserGRBL官网:https://lasergrbl.com/

驴友花雕
驴友花雕
作者
1)LaserGRBL
LaserGRBL 是一款开源的控制软件,专门用于激光切割和雕刻机。它提供了一种简单的方法来控制这些设备,非常适合爱好者和小型工作室使用。我偶然先选择它的原因,主要是支持20种语言,重要的是支持中文,便于学习。

驴友花雕
驴友花雕
作者
尝试与实验,涉及到的硬件(主要是Arduino CNC Shield部分),包括:
Arduino UNO开发板,Arduino CNC Shield V3扩展板,A4988或者DRV8825驱动模块,还有42步进电机等。

驴友花雕
驴友花雕
作者
4、尝试各种G-code Sender(PC上位机)软件
在上述展示的流程图中,数据和指令的传递通过四个关键环节来实现:首先是G-code(G语言指令),它们是CNC编程的基本构建块;接着是G-code Sender,它在PC机上运行,负责将这些指令转换为可执行的格式;然后是Arduino GRBL,搭载在UNO开发板上,作为指令的接收器和初步处理单元;最后连接到Arduino CNC Shield,它负责驱动步进电机,实现精确的物理运动。这一系列的连接构成了整个系统的核心通信路径,确保了从设计到制造的每一步都能精确无误地执行。简化的示意图。

驴友花雕
驴友花雕
作者

3、什么是Arduino GRBL CNC?
Arduino GRBL CNC 是指将Arduino微控制器结合开源固件GRBL,打造而成的一套低成本、高灵活性的计算机数控(CNC)系统。通过编写G代码指令,我们可以控制连接在Arduino上的步进电机,实现对材料的切割、雕刻等加工任务。
简单来说,就是将一个简单的Arduino板子,改造成了一个能够精确控制工具,在材料上进行加工的小型CNC机床。
1)核心概念
Arduino: 一款开源的电子原型平台,基于简单易用的硬件和软件,为用户提供了一个灵活的实验平台。
GRBL: 一款专为Arduino设计的开源G代码解释器。它可以将标准的G代码指令转化为控制步进电机的信号。
G代码: 一套标准化的数字控制指令集,广泛应用于数控机床。通过G代码,我们可以精确地控制机床的运动、速度、位置等。
CNC: 计算机数控的缩写,是一种利用计算机按照事先编制的程序,控制机床进行加工的自动化制造方式。
2)工作原理
编写G代码: 使用CAM软件(如Fusion 360、Blender)或文本编辑器编写G代码指令,描述加工路径和参数。
上传到Arduino: 将编写的G代码通过串口上传到加载了GRBL固件的Arduino。
GRBL解析: GRBL固件逐行解析G代码指令,将其转换为Arduino可以理解的控制信号。
驱动电机: Arduino根据解析后的信号,驱动连接的步进电机,控制工具(如铣刀、激光头)按照G代码指令的路径运动,完成加工任务。
3)优势
成本低廉: 相比商用CNC机床,Arduino GRBL成本更低,适合DIY爱好者和小型工作室。
灵活性高: GRBL固件可定制性强,可以根据不同的应用场景进行调整和扩展。
开源开放: GRBL是一个开源项目,用户可以自由查看、修改和分享代码,社区活跃,资源丰富。
易于学习: Arduino编程相对简单,G代码的语法也比较容易掌握。
4)应用场景
CNC加工: 切割木材、塑料、金属等材料。
3D打印: 控制喷头移动,逐层堆叠材料,形成三维物体。
激光切割: 利用激光切割各种材料。
绘图仪: 控制绘图笔在纸上绘制图形。
5)注意事项
精度: 相比于商用CNC机床,Arduino GRBL的精度可能受到硬件和软件的限制。
稳定性: Arduino的稳定性可能不如工业级控制器,需要进行适当的优化和调试。
学习曲线: 虽然Arduino和G代码相对容易学习,但要熟练掌握并搭建一套完整的CNC系统,仍需要一定的时间和精力。
总结
Arduino GRBL CNC为DIY爱好者提供了一个低成本、高灵活性的CNC解决方案。通过学习G代码编程和Arduino开发,你可以创建属于自己的个性化CNC机床,实现各种创意。
驴友花雕
驴友花雕
作者
具体解释如下:
这些代码是用于配置 GRBL(一种开源的嵌入式 CNC 铣床控制器)的参数。每个参数的含义是:
$0:步进脉冲宽度(微秒)。这是控制步进电机的脉冲宽度,影响步进电机的运动精度。
$1:步进空闲延迟(毫秒)。设置步进电机在空闲状态下的延迟时间。
$2 和 $3:步进和方向端口反转掩码。这些参数用于配置步进和方向信号的反转。
$4:步进使能反转(布尔值)。设置步进电机使能信号的反转。
$5:限位引脚反转(布尔值)。配置限位开关的反转。
$6:探测引脚反转(布尔值)。设置探测引脚的反转。
$10:状态报告掩码。配置哪些状态报告应该发送给主机。
$11 和 $12:路径规划参数。分别是连接偏差和圆弧容差。
$13:报告单位(布尔值)。设置是否以英寸报告。
$20 和 $21:软限位和硬限位(布尔值)。配置是否启用软件和硬件限位。
$22:回零循环(布尔值)。设置是否启用回零循环。
$23:回零方向反转掩码。配置回零运动的方向。
$24 和 $25:回零速度。分别是回零移动和搜索速度。
$26:回零去抖时间(毫秒)。设置回零传感器的去抖时间。
$27:回零拉离距离(毫米)。配置回零运动后的拉离距离。
$100、$101 和 $102:步进电机的步进/毫米比率。分别是 X、Y 和 Z 轴的步进/毫米比率。
$110、$111 和 $112:轴的最大速度(毫米/分钟)。分别是 X、Y 和 Z 轴的最大速度。
$120、$121 和 $122:轴的加速度(毫米/秒²)。分别是 X、Y 和 Z 轴的加速度。
$130、$131 和 $132:轴的最大行程(毫米)。分别是 X、Y 和 Z 轴的最大行程。
这些参数可以根据你的具体需求进行调整,以适应你的 CNC 机床。
驴友花雕
驴友花雕
作者

串口发送二个美元符号“$$”之后,回复的是:
$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=0 (dir port invert mask:00000000)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.010 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=0 (homing cycle, bool)
$23=0 (homing dir invert mask:00000000)
$24=25.000 (homing feed, mm/min)
$25=500.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=250.000 (x, step/mm)
$101=250.000 (y, step/mm)
$102=250.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/sec^2)
$130=200.000 (x max travel, mm)
$131=200.000 (y max travel, mm)
$132=200.000 (z max travel, mm)
驴友花雕
驴友花雕
作者
具体解释,就是关于 Grbl 的一些常用指令如下:
1、查看 Grbl 设置:
$$:查看 Grbl 的设置。
$#:查看参数数量。
2、查看状态和信息:
$G:查看解析器状态。
$I:查看 Grbl 版本信息。
$N:查看启动块(startup blocks)。
3、保存设置和启动块:
$x=value:保存 Grbl 设置,其中 x 是设置的编号,value 是要设置的值。
$Nx=line:保存启动块,其中 N 是块的编号,line 是启动块的内容。
4、其他操作:
$C:检查 G 代码模式。
$X:解除报警锁定。
H:运行归零循环(homing cycle)。
~:开始运行。
!:暂停进给。
?:查看当前状态。
ctrl-x:重置 Grbl。
这些指令可以帮助你在使用 Grbl 控制器时进行设置、查看状态和执行操作。
驴友花雕
驴友花雕
作者
2、串口之美元符号“$”引出来的G语言
把串口信息简单的翻译了一下:
$$(查看Grbl设置)
$#(查看#参数)
$G(视图解析器状态)
$I(查看构建信息)
$N(查看启动块)
$x=值(保存Grbl设置)
$Nx=行(保存启动块)
$C(检查gcode模式)
$X(关闭报警锁)
H(运行归位循环)
~(循环开始)
! (进料保持)
? (当前状态)
ctrl-x(重置Grbl)

驴友花雕
驴友花雕
作者
再发送二个美元符号“$$”,可以了解更多参数,至此完成安装grbl库。

驴友花雕
驴友花雕
作者
发送美元符号“$”,询问状态,回复如下