回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【花雕动手做】尝试手搓基于Arduino GRBL的2D笔式绘图写字机 简单

头像 驴友花雕 2024.07.31 166 0

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

 

09 (4).jpg

09 (1).jpg
09 (3).jpg

V2版本有一些小的改动,主要是增加笔夹子

 

10- (1).jpg
10- (2).jpg
10- (3).jpg

关注了二个版本,是因为各有利弊,V1算是开源的(主要指3D打印结构件资料),但组装资料少些;V2的3D结构件资料需要六欧元(无法落实),结构有进步,组装资料比较多(可以供参考)。

 

 

一、Arduino Grbl相关软件安装与选择
Grbl 是一个开源的嵌入式 CNC 铣床控制器,运行在 Arduino 上。以下是关于 Grbl 的一些关键信息:
1)兼容性:Grbl 可以在标准的 Arduino 板(如 Uno)上运行,使用 Atmega 328 处理器。
2)功能:它支持符合标准的 G 代码,包括弧线、圆和螺旋运动。Grbl 包含完整的加速度管理和前瞻性控制,以实现平滑的转角。
3)性能:Grbl 实现了精确的定时和异步操作,保持高达 30 kHz 的稳定、无抖动的控制脉冲。
4)许可证:Grbl 是根据 GPLv3 许可证发布的免费软件。
5)开发者:Grbl 是由国外多位贡献者开发的,包括 Sungeun (Sonny) K. Jeon 和 Simen Svale Skogsrud。

1、安装Grbl库
打开https://github.com/,搜索:grbl

 

01.jpg
02.jpg
03.jpg

 

然后,打开Arduino IDE
项目——加载库——添加.zip库——下载——grbl-master ——打开grbl

 

04.jpg
05.jpg
06.jpg
07.jpg

最后,打开文件——示例——第三方库——grbl——grblUpload
(说明:Do not alter this file!,请勿更改此文件!)

 

08-1.jpg

接上Arduino uno开发板,设置端口,上传文件,烧录成功,见下图

 

08-2.jpg

验证,打开串口监视器,波特率设为115200,显示——Grbl 0.9j ['$' for help],版本为0.9

 

08-3.jpg

发送美元符号“$”,询问状态,回复如下

 

08-4.jpg

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

 

08-5.jpg

2、串口之美元符号“$”引出来的G语言

 

把串口信息简单的翻译了一下:

$$(查看Grbl设置)
$#(查看#参数)
$G(视图解析器状态)
$I(查看构建信息)
$N(查看启动块)
$x=值(保存Grbl设置)
$Nx=行(保存启动块)
$C(检查gcode模式)
$X(关闭报警锁)
H(运行归位循环)
~(循环开始)
! (进料保持)
? (当前状态)
ctrl-x(重置Grbl)

 

08-4.jpg

具体解释,就是关于 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 控制器时进行设置、查看状态和执行操作。

08-5.jpg

串口发送二个美元符号“$$”之后,回复的是:
$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(一种开源的嵌入式 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 机床。

04.jpg

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机床,实现各种创意。

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

 

09.jpg

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

 

10.jpg

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

 

11.jpg

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

12.jpg

LaserGRBL的开源仓库:https://github.com/arkypita/LaserGRBL

13.jpg

LaserGRBL的下载地址:https://github.com/arkypita/LaserGRBL/releases

14.jpg

LaserGRBL的使用方法:https://lasergrbl.com/usage/

15.jpg

 

打开LaserGRBL软件,是这个界面,设置为中文

 

16.jpg
17.jpg

准备好相关测试用的硬件
 

18.jpg

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

 

19.jpg

连接后,可看到串口监视器里面的回复

 

20.jpg
21.jpg

通过这个八向控制按钮,测试了一下步进电机

 

22.jpg

实验记录视频

 

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

 

https://www.bilibili.com/video/BV1AvvbeKEvy/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987

 

 

评论

user-avatar
icon 他的勋章
    展开更多