自制通用 CNC 机器完整指南 — 可切换激光/铣削/绘图多功能头
元件与材料
| NEMA 17 步进电机 (DFRobot) | × | 3 |
| 微动开关 (回零用, DFRobot) | × | 3 |
| 5-8mm 联轴器 (DFRobot) | × | 1 |
| 同步带轮 & 同步带 | × | 1套 |
| 轴承 8-16mm | × | 10 |
| V 槽滑轮 | × | 3 |
| 2020 铝型材 500mm | × | 1 |
| Arduino UNO | × | 1 |
| GRBL CNC 扩展板 | × | 1 |
| DRV8825 步进驱动模块 | × | 3 |
所需工具
- 3D 打印机 (打印结构件)
- 电烙铁
软件工具
- Autodesk Fusion 360 (设计建模)
- Arduino IDE (烧录固件)
- GRBL 固件
- Inkscape (矢量转 G-code)
- Universal G-Code Sender (UGS, 发送 G-code)
项目背景
作为资深 Maker,已有 3D 打印机和 CNC 雕刻机,但想要激光雕刻、PCB 铣削等功能。决定自制一台低成本、模块化、通过 G-code 统一控制的通用 CNC 平台。
设计演进
最初设想自由滑轮无限 Y 轴,但精度不足。最终采用 V 槽导轨 + V 槽轮方案。Fusion 360 设计了完整 X/Z 轴结构件。
Y 轴 (工作台)
两根 500mm (或 800mm) V 槽导轨平行铺设。4 个 3D 打印件各装 2 个 V 槽轮承载工作台。同步带绕过工作台底部,Y 轴步进电机驱动。

X 轴
单根导轨承载一个 3D 打印滑块 (4 个轮子),同步带卡在滑块两侧实现左右移动。

Z 轴
滑轮系统:步进电机转动带动滑块上下,适配不同加工头 (激光/主轴/笔)。

电子电路
Arduino UNO + GRBL 扩展板 + 3×DRV8825 + 3 个限位开关。DRV8825 电流调节匹配 12V 6A 电源。限位开关 COM 接 GND,NO 接对应引脚。注意 Z 轴限位引脚为 D12 (非默认 D11)。

软件流程
- Arduino IDE 烧录 GRBL 固件 (例程中自带)
- 使用 Universal G-Code Sender (UGS) 连接控制
- 校准步进距离:默认 200 steps/mm,实测移动 5mm,按公式
新步进 = 旧步进 × 5 / 实测距离修改$100/$101/$102 - Fusion 360 或 Inkscape 设计生成 G-code


代码/固件
GRBL 固件:GitHub
3D 打印模型
Thingiverse 仓库 (见项目页面)
原理图

制造工艺