上一篇介绍了使用上位机UGS连接Grbl控制电机的方法,上位机有着明显的优势:
- 可视化操作:提供图形界面、轨迹预览、速度调节等功能。
- 自动化流程:支持文件导入、批量任务处理和错误检测。
- 用户友好:适合非开发者快速上手(如激光雕刻、CNC 加工)。
但劣势也很明显:
- 灵活性差:无法修改 GRBL 固件底层逻辑。
- 依赖性强:需兼容特定 GRBL 版本,更新可能滞后。
所以笔者还学习了除了上位机的另外三种串口通信的软件/方法,接下来一一介绍给大家。
1 Arduino IDE
1.1 Arduino IDE 简介
Arduino IDE是专为 Arduino 开发板设计的集成开发环境,基于简化版的 C/C++ 语言,适合快速开发嵌入式项目。
1.2 连接 GRBL 到 Arduino 的步骤
1.2.1 将Grbl烧录至开发板
从 GitHub 下载源码。以下为源码获取链接:
先依次点击红色框所圈内容,将下载好的zip文件添加到库中,之后再点击黄色部分把添加的库导入到当前项目中。
之后将开发板连接到电脑上,选择所连接的端口,随后点击蓝框中的上传按钮即可把导入的库烧录到开发板后,这样一个Arduino开发板就变成了一个Grbl控制器
1.2.2 测试连接
随后打开串口监视器,发送 $X 解锁电机后即可通过gcode控制移动
1.3 Arduino IDE 的优劣
- 优势:
- 直接控制底层:可以通过修改导入的库以修改Grbl源码,自定义运动算法或引脚功能。
- 调试灵活:通过串口监视器手动发送指令,适合深度调试。
- 轻量化:无需安装额外软件,适合固件开发阶段。
- 劣势:
- 无图形界面:无法预览 G 代码路径或实时监控运动状态。
- 操作繁琐:需手动输入指令,不适合生产环境控制。
1.4 Arduino IDE 的适用场景
适合开发者调试硬件、修改 GRBL 参数(如步进电机脉冲计算),或集成到自定义控制系统中。
2 Minicom
2.1 Minicom 简介
Minicom是 Linux 系统下经典的命令行串口通信工具,常用于调试嵌入式设备(如 Arduino、STM32)或与 CNC 控制器(如 GRBL)交互。其核心特点包括:
- 纯终端操作:无需图形界面,通过键盘指令控制。
- 灵活配置:支持自定义波特率、数据位、校验位等参数。
- 脚本友好:可结合 Shell 脚本实现自动化通信。
- 轻量高效:资源占用低,适合低配设备或远程 SSH 操作。
2.2 Minicom 连接 GRBL 的方法
2.2.1 安装 Minicom
sudo apt install minicom
2.2.2 配置串口参数
- 查找串口设备:
连接 Arduino(已烧录 GRBL)后,通过以下命令确认设备路径
dmesg | grep tty
- 启动 Minicom 配置:
sudo minicom -s
随后进入以下界面,选择Serial port setup来设置连接的串口设备
2.2.3 使用
2.3 Minicom的优劣
- 优势:
- 大部分与Arduino IDE优势相同
- 不限制 GRBL 版本,直接通过串口协议通信。
- 劣势:
- 需记忆指令(如 `$$` 查看参数)、熟悉串口通信协议,新手学习成本高。
- 无图形化辅助(如轨迹预览),调试效率低。
- 无法直接导入/解析 G 代码文件,需手动粘贴或借助外部工具传输。
- 缺少加工状态监控(如剩余时间、错误弹窗)。
- 需了解基本 Linux 操作(如权限配置、设备路径查找)或 Arduino 开发知识。
3 Python + pySerial 脚本自动化控制
在了解了以上两种以及上一篇介绍的UGS后,我们可以发现他们有一个共同的缺点,那就是他们只能通过输入一组路径来执行。可是如果我需要电机来执行一个复杂的工作时,它们都显得力不从心。
而脚本控制Grbl这种方法就可以解决以上的问题。我可以通过对内部代码的加工来让我的功能复杂多样,即使在书写这种代码时需要耗费更多的时间精力,但却可以制作出更符合我实际工作需要的自动化Grbl执行器。
由于该方法不像前几种方法是一个现成的应用或者工具,所以笔者将在接下来的几章介绍一个使用该方法实现的利用写字机完成打靶任务的项目。通过该项目不仅可以清楚的了解各方法在具体项目中的实际情况,也可以获得一定的Grbl项目经验,为我们在Grbl的学习中完成一个漂亮的收尾。
4 不同Grbl控制方法的对比
场景
|
推荐工具
|
理由
|
---|---|---|
调试 Grbl 固件底层参数
|
Minicom / Arduino IDE
|
直接发送指令修改脉冲计算、限位开关逻辑等。
|
快速执行雕刻/切割任务
|
上位机软件(如 UGS)
|
可视化操作、拖放文件、实时监控加工状态。
|
集成到自动化系统
|
Python + pySerial
|
脚本控制 GRBL,灵活定制通信逻辑。
|
以上便是本篇的全部内容啦!
欢迎大家一起交流学习!