## CNC简介 CNC(Computer Numerical Control,简称数控)是指通过计算机自动控制机械加工工具和3D打印机的行为。一台使用CNC的机器会根据写好的程序,将一块原材料(金属、木头、塑料、陶瓷、复合材料均可),在无需人类干预的情况下完成制造过程。采用数值控制的机床叫做数控机床。 ## 什么是G代码? G代码(G-code),是最为广泛使用的数控编程语言,有多个版本,主要在计算机辅助制造中用于控制自动机床。G代码有时候也称为G编程语言。使用G代码可以实现快速定位、逆圆插补、顺圆插补、中间点圆弧插补、半径编程、跳转加工。 ## Grbl简介 Grbl是性能高,成本低,基于并行运动的控制器固件,用于CNC雕刻。它可以运行在Vanilla Arduino (Duemillanove/Uno) 只要它配备了Atmega 328型芯片。 控制器由C编写并优化,利用了AVR 芯片的每一个灵巧特性来实现精确时序和异步控制。它可以保持超过30kHz的稳定、无偏差的控制脉冲 它接受标准的G代码而且通过了数个CAM工具的输出测试。弧形、圆形和螺旋的运动都可以像其他一些基本G代码命令一样完美支持。函数和变量并不支持,但是会作为预处理器包含在将来发布的版本之中。 Grbl 包含完整的前瞻性加速度控制,意味着控制器将提前16到20个运动来规划运行速度,以实现平稳的加速和无冲击的转弯。 2009 年,Simen Svale Skogsrud 受惠于开源社区的贡献编写并向所有人发布了 Grbl 的早期版本(灵感来自于 Mike Ellery 的 Arduino G 代码解释器)。2011 年以来,Grbl 在 Sungeun K. Jeon 博士务实的领导下作为一个社区驱动的开源项目在推进。 ## 材料准备 ### 硬件准备 1. **CNC套件:** Grbl固件的运行需要Arduino单片机,步进电机驱动器,步进电机,限位开关,主轴电机等,如果需要查看最终的运动效果,这些`硬件`是需要准备的,最好是一个完整的CNC套件。 通常我们能买到的套件是类似如下图片的Arduino CNC Shield V3: ![CNC Shield](./images/arduino-cnc-shield-v3.5.png) 它包含一个Arduino uno开发板及数据线,一个扩展板和一些跳线帽,3-4个步进电机驱动。常用的步进电机驱动有A4988和DRV8825,如果你购买的是DRV8825,请在使用前调整电流,因为它默认的电流配置是3.2A! 它是由protoneer的工程师设计的,它本来也是开源的,但是由于其他工厂没有经过允许直接生产,并且价格卖的非常低,导致作者非常生气并声称不再开源后续设计,因为这些生产者并没有对该项目有贡献。以下是原话: Due to Chinese Clones being sold for less than $5 and pricing me completelly out of the market(and them not contributing to the project) I have decided to not publish future versions design files. 希望大家支持开源,不要“白嫖”别人的工作成果,否则我们面临的开源环境会越来越差。 1. **步进电机** 你还应该至少需要3个步进电机,42(指的是它的外形尺寸为42mm*42mm,对应NEMA17)的步进电机最为常见,如下图: ![步进电机](./images/nema17-stepper-motor.jpg)。 1. **主电源** 步进电机工作时需要较大电流,有的步进电机驱动还要求有较高的电压,对于本书,我是用的是12V的电源。 1. **运动机构**另外还需要一些运动机构比如丝杆或同步带之类,因为涉及到角度转直线运动的计算方法。 ### 软件准备 Grbl的源码需要编译成单片机可以运行的代码,所以还需要 **编辑器**、**编译器**、**上位机**等`软件`支持。本书编辑器和编译器使用的是`virtual studio code` 加 `platformio` 组合, 上位机用的是 `LaserGRBL`, 为什么使用他们而不是ArduinoIDE等等问题,没有别的原因,也没有倾向性,只是习惯而已,如果你习惯其他方式,完全可以。本书假定你会安装这些软件,如果碰到特殊操作,会在相应位置指出,至于如何安装,因篇幅有限,请搜索对应教程。 ### 技能准备 1. **C语言基础** Grbl是用C语言实现的,因此要求你具备C语言的基础编程能力,遇到C对应的术语能够理解。 1. **单片机基础** Grbl运行在单片机上,需要你有一些单片机的使用经验,知道什么是烧录,以及如何烧录单片机,对于Arduino,这个很简单,本书也会提供简单说明。 ## 启程出发 最后,让我们一起整装出发,一起体验Grbl这个“世外桃源”吧。