Arduino驱动CNC绘图机:从零开始制作绘图机的完整指南
组件与物料清单
| 组件 | 数量 | 备注 |
|---|---|---|
| Arduino Nano R3 | 1 | 核心控制板 |
| 德州仪器 L293D 双H桥电机驱动 | 1 | 驱动两个步进电机 |
| SG90 微型舵机 | 1 | 控制画笔升降 |
| DVD-ROM 步进电机 | 2 | 从废旧光驱拆解获得,用于X/Y轴 |
| JLCPCB 定制PCB | 1 | 集成电路板,简化焊接 |
所需工具与设备
- 激光切割机(用于切割MDF木板结构件)
- 3D打印机(打印画笔夹持器)
软件与在线服务
- Arduino IDE - 固件编写上传
- Inkscape - 矢量图转G-code
- Processing 3 - 发送G-code至机器
- EasyEDA - PCB设计
项目简介
大家好!希望你们已经看过我之前的教程《如何制作Arduino训练平台》,准备好迎接新的挑战了。本教程将手把手教你制作一台低成本CNC绘图机,也称为Arduino CNC绘图机或绘图仪。
网上虽然有很多CNC绘图机教程,但信息往往不全,导致制作困难。因此我决定编写这份详细指南,涵盖从硬件选型、电路设计、机械组装到软件调试的完整流程。得益于JLCPCB定制PCB,整机外观更专业,组装也更简单。整个项目仅耗时5天:3天采购零件与硬件组装,2天编写代码与调试。
你将学到什么
- 根据功能需求选择合适的硬件组件
- 绘制电路原理图连接所有元件
- 完成机械与电子部分的组装
- 机器平衡调整与校准
- 系统操作与调试
步骤1:什么是绘图机?
CNC(计算机数字控制)是指通过计算机程序控制执行机构运动的机器。大多数CNC机器基于步进电机,每个轴对应一个步进电机。我们制作的是双轴绘图机:X轴和Y轴各由一个步进电机驱动,移动工作台在二维平面上运动;第三个执行机构是舵机,控制画笔的升降(Z轴动作)。


步骤2:步进电机——核心执行器
步进电机将完整旋转分割为等角度步进,无需位置反馈即可精确定位(开环控制)。本项目步进电机来源于废旧DVD光驱,每个光驱含一个步进电机及滑轨组件,两个光驱约$2即可获得。

拆解光驱取出步进电机及滑轨:



识别步进电机线圈
每个步进电机有两个线圈,用万用表测量引脚间电阻,每组线圈电阻约10Ω:

确认线圈后焊接导线:


步骤3:电路原理图

Arduino Nano作为主控,通过两个L293D H桥驱动器分别控制X/Y轴步进电机,舵机直接由Arduino PWM引脚驱动。原理图展示了完整连接方式,可根据实际引脚分配调整:

步骤4:PCB制作(由JLCPCB制造)
关于JLCPCB
JLCPCB(深圳嘉立创)是中国最大的PCB原型制造商,拥有10年以上经验,日单量8000+,年产能20万平方米。下单流程简单:上传Gerber文件,设置板厚、颜色、数量,仅需$2即可在5天内收到高质量PCB。

电子设计与下单
将原理图转为PCB设计,通过JLCPCB下单:




相关下载文件
可下载电路图PDF与Gerber文件自行下单。收到的PCB做工精良,丝印标识清晰,便于焊接:



步骤5:机械结构设计

使用SolidWorks设计三个结构件(DXF格式),由FabLab Tunisia激光切割5mm MDF板制作。画笔夹持器采用3D打印制作。所有设计文件可在文末链接下载。

步骤6:物料清单汇总

- JLCPCB定制PCB
- Arduino Nano
- 2× L293D H桥驱动芯片
- 2× DIP-16 IC座 + 1× DIP IC座
- 排针/排母与螺丝端子
- SG90舵机
- 2个DVD光驱(拆解步进电机用)
- 3D打印件、激光切割件、组装螺丝
- 画笔(JLCPCB赠送或普通笔)
步骤7:电子组装与测试

PCB顶层丝印标明每个元件位置,按图焊接即可避免错误:

测试步进电机
组装完成后,将X轴步进电机固定并接线,上传测试代码验证:

/************************************************************************************************************************************************************************
* - Author : BELKHIR Mohamed
* - Profession : Electrical Engineer, MEGA DAS owner
* - License : BSD 2-Clause License
* - Date : 20/04/2017
***********************************************************************************************************************************************************************/
#include <Stepper.h>
const int stepPerRotation = 20; // DVD光驱标准步数
Stepper myStepperX(stepPerRotation, 8, 9, 10, 11);
void setup() {
myStepperX.setSpeed(100);
myStepperX.step(100);
delay(1000);
myStepperX.step(-100);
delay(1000);
}
void loop() {}
电机正反转正常,硬件基础验证通过。
步骤8:机械结构组装
将第二个步进电机固定于Y轴滑板,两轴呈90°安装形成二维平面:



画笔夹持器制作
将小轴置入弹簧,固定3D打印画笔夹,安装舵机,用热熔胶将夹持器粘接于Y轴滑块,工作台粘接于X轴滑块,最后整理走线:




步骤9:软件部分

三大软件协作:
- Inkscape - 绘制矢量图并导出G-code
- Arduino IDE - 烧录机器固件(GitHub下载,需按原理图修改引脚定义)
- Processing 3 - 读取G-code通过串口发送给Arduino
Inkscape生成G-code
设置页面尺寸与单位:


绘制图形,另存为"MakerBot Unicorn G-code"格式(需安装插件),按以下参数导出:





Processing 3 连接机器与G-code
打开GitHub提供的"CNC program",运行后:



弹出窗口按P键选择串口,按G键选择G-code文件,机器即刻开始绘制。

步骤10:测试与成果展示
机器开始绘制,LED指示灯闪烁显示步进序列,成品效果良好:






项目完成!别忘了关注我们的YouTube频道MEGA DAS获取更多精彩教程。坚持每天做电子,下期见!
代码与资源下载
- 固件与软件仓库: GitHub - BEEMB/CNC_Plotter
- STL/DXF结构文件: Thingiverse CAD文件
- 原理图PDF与Gerber文件: schamatic_Z2mcsRwq7L.rar
制造工艺
- 现代铸币:历史沿革、生产工艺与未来走向
- 自制家用作业书写机:Arduino + GRBL 控制的笔绘仪
- 用 Arduino 制作超声波悬浮装置:分步指南
- DIY 钢铁侠人偶:Arduino 控制超声波触发音效与灯光
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- DIY Arduino 加湿器控制器:继电器安全控制高压电路
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- Arduino 101 计步器:集成 DHT11 温湿度 + LCD 显示步数/距离/卡路里
- Arduino RGB 颜色混合器 – 分步制作教程
- 利用 Arduino Nano R3 自制全功能 CNC 雕刻机
- 基于 Arduino 的智能温室监测与自动灌溉系统
- CNC铣床全解析:原理、结构与选型成本