废旧光驱改造桌面CNC绘图仪:低成本高精度DIY指南
1. 项目概述:从废旧光驱到透明桌面绘图仪
手头有几个从学校淘汰的旧电脑上拆下来的光驱,一直琢磨着怎么把它们利用起来。直接扔掉太可惜,毕竟里面的步进电机和丝杆导轨都是现成的精密机械部件。正好一直想搞一台小型的桌面CNC设备,用来在便签纸或者小木片上画点简单的图案或电路板轮廓。市面上现成的微型绘图仪要么太贵,要么可玩性不高,于是决定自己动手,用这些废旧光驱作为核心运动部件,打造一台独一无二的透明桌面CNC绘图仪。
这台机器的核心目标很明确:成本要低,结构要直观可见,并且能稳定完成小范围的精确绘图。最终成品的有效工作面积是40mm x 40mm,刚好是一张标准便签纸的大小。整个机身外壳采用激光切割的1/4英寸透明亚克力板拼接而成,内部的Arduino控制板、CNC扩展盾、步进电机驱动器和所有接线都一目了然,有种工业美学的感觉。运动部分完全依赖于两个光驱拆出的步进电机和丝杆组成的X轴和Y轴,Z轴(抬笔/落笔)则通过一个微型舵机配合软盘驱动器里拆出的弹簧机构来实现。控制大脑是经典的Arduino Uno,运行着经过修改以支持舵机Z轴的GRBL固件(MIGRBL)。从设计图到G代码生成,再到机器执行,这套方案验证了利用唾手可得的电子废弃物实现精准运动控制的可行性,非常适合想入门CNC和机电一体化的爱好者练手。
2. 核心设计思路与物料清单解析
2.1 为什么选择光驱作为运动核心?
很多人可能没想到,光盘驱动器(CD/DVD Drive)是一个被严重低估的“宝藏”。我们淘汰的光驱,无论是IDE接口还是SATA接口的,其内部都包含了一套完整的精密直线运动系统。这套系统通常包括:
- 双相步进电机:用于驱动激光头或光盘托盘进行精确定位。光驱用的步进电机通常是低电压(5V或12V)、小尺寸、高精度的,虽然扭矩不大,但对于在轻负载下(如移动一支笔)进行精确移动绰绰有余。
- 丝杆和滑动导轨:电机通过一根细密的丝杆将旋转运动转化为激光头载体的直线运动。旁边的金属或塑料导轨保证了运动的平直度。这套机构的重复定位精度通常可以轻松达到0.1mm以内,完全满足我们绘图的需求。
- 金属结构件:光驱的外壳和内部支架大多是钢板冲压而成,结构坚固,本身就是极好的安装平台和受力框架。
选择光驱改造,最大的优势在于极高的性价比和即插即用的精度。我们几乎零成本获得了核心的直线运动模组,省去了自己设计、加工丝杆和导轨的巨大麻烦。另一个关键点是标准化,虽然不同品牌光驱内部结构略有差异,但核心的电机和运动原理相通,使得这个项目具有很好的可复制性。
2.2 整体机械与电气架构设计
整台机器的设计遵循了经典的三轴笛卡尔坐标系结构,但针对我们的微型化和透明化需求做了特殊处理。
- 机械框架:采用激光切割的亚克力板,通过指接榫(Finger Joints)拼装成一个透明的箱体。这种设计不仅美观,让内部电子设备一览无余,而且便于加工和组装,无需胶水或复杂的连接件。亚克力板的厚度选择至关重要,我使用的是标称1/4英寸(约6.35mm)的板,实际测量为5.67mm(0.223英寸),因此在设计指接榫时必须以实际测量值为准,否则无法严丝合缝。
- 运动系统:
- X/Y轴:直接使用两个光驱拆出的“激光头移动模组”。每个模组包含步进电机、丝杆和滑动座。我们将它们垂直正交安装,一个作为X轴(左右移动),另一个安装在X轴的滑动座上作为Y轴(前后移动),共同控制笔尖在平面上的位置。
- Z轴:这是本项目的一个创意点。由于光驱没有现成的第三轴,我们使用一个微型舵机(Servo)来控制笔的升降。舵机的旋转运动通过一个巧妙的连杆机构(我用了旧软驱里的弹簧机构和画框挂钩)转化为笔的上下直线运动。弹簧负责将笔推向画纸(落笔),舵机则克服弹簧力将笔拉起(抬笔)。
- 控制系统:
- 主控:Arduino Uno R3。它价格低廉,社区支持强大,是运行GRBL固件的标准硬件。
- 电机驱动:CNC Shield V3.0扩展板。这块板子可以插在Arduino Uno上,提供了三个A4988或DRV8825步进电机驱动模块的插槽,以及限位开关、主轴/冷却控制等接口,极大简化了接线。
- 电源:12V直流电源。为步进电机驱动器和舵机供电。Arduino Uno可以通过CNC Shield取电,也可以单独通过USB供电(用于烧录和通信)。
- 核心固件:GRBL。这是一个高性能、开源的嵌入式G代码解析器和运动控制器。但标准GRBL的Z轴输出是针对步进电机的,我们需要一个能输出PWM信号控制舵机的版本,因此选用其修改版——MIGRBL。
注意:在开始切割亚克力或焊接电线之前,强烈建议先用面包板或杜邦线连接所有电子部件进行一次“桌面测试”。确保Arduino能通过GRBL控制器软件驱动两个步进电机正反转,并能控制舵机动作。这能提前排除大部分电路和软件问题。
2.3 物料与工具清单详述
以下是构建本项目所需的全部物料和工具。许多部件都可以从旧电子产品中拆取或替代。
电子部件:
- Arduino Uno R3 开发板 x1
- CNC Shield V3.0 扩展板 x1
- A4988 步进电机驱动模块 x3(实际只用2个给XY轴,1个备用)
- 微型舵机(SG90或类似) x1
- 12V/2A以上直流电源适配器 x1(带5.5*2.1mm直流插头)
- 废旧CD/DVD光驱 x2(用于拆解步进电机和丝杆模组)
- 废旧软盘驱动器(Floppy Disk Drive) x1(用于拆解弹簧和滑动机构,可选,可用其他拉簧替代)
- 杜邦线(公对公、公对母)若干
- 细导线(用于焊接步进电机)若干
机械与结构部件:
- 1/4英寸(约6mm)厚透明亚克力板,面积至少30x30cm。
- 从旧电脑上拆下的小螺丝、螺母、垫片一套(M3规格最常见)。
- 画框挂钩或自制的小金属钩 x1。
- 通用签字笔或针管笔(笔杆直径一致为佳) x1。
- 小木块或塑料块(用于制作笔夹和舵机安装座)。
- 热熔胶枪及胶棒。
- (可选)3D打印的笔夹和舵机架,用于替代木块和热熔胶,使结构更稳固美观。
软件与数字资源:
- Arduino IDE
- MIGRBL 固件(来自GRBL-Plotter项目)
- Inkscape 0.48.5 版本(必须此版本,用于矢量图转G代码)
- MIGRBL Inkscape 扩展插件
- 任意G代码发送器(如GRBL Controller, Universal GCode Sender, LightBurn等)
- 激光切割机或能精密切割亚克力的工具(如CNC雕刻机),以及对应的设计文件(DXF格式)。
所需工具:
- 激光切割机/CNC雕刻机(或访问本地创客空间)
- 电脑(用于设计、编程和控制)
- 电烙铁、焊锡、助焊剂
- 螺丝刀套装
- 剥线钳、剪线钳
- 尺子、游标卡尺(用于精确测量光驱安装孔距和亚克力厚度)
- 万用表(调试时非常有用)
3. 分步制作详解:从拆解到联动
3.1 步骤一:拆解光驱与获取核心模组
这是整个项目的物理起点,需要耐心和细心。
- 安全第一:确保光驱完全断电,并且不是从正在保修期的设备上拆下的。
- 拆开外壳:使用合适的螺丝刀卸下光驱底部的所有螺丝。通常外壳由上下两部分组成,小心撬开卡扣。注意内部可能有连接前面板的小排线,轻轻拔下。
- 识别目标:打开后,你会看到光盘托盘、主轴电机、激光头组件和驱动电路板。我们的目标是激光头组件。它通常由一个步进电机通过一根细丝杆驱动,在一个金属或塑料导轨上滑动。
- 分离模组:找到固定激光头组件的螺丝或卡扣,将其从主框架上分离。同时,找到步进电机的接线点(通常是焊在主板上的4个焊点)。小心地用烙铁融化焊锡,将电机与主板分离。此时,你应该得到了一个完整的“激光头+丝杆+步进电机”模组。重复此过程,获取第二个模组。
- 清理与测量:拆下激光头(我们不需要它),只保留干净的滑动座、丝杆和步进电机。用游标卡尺精确测量两个安装孔的孔距(中心到中心),这个尺寸将直接用于修改亚克力外壳的设计图。
实操心得:不同品牌的光驱内部结构差异很大。有些丝杆是直接固定在电机轴上的,有些是通过联轴器连接的。如果遇到联轴器结构,尽量保留,它有助于对齐。如果丝杆和电机轴是分开的,重新组装时要确保丝杆与电机轴同心,否则运行起来会卡顿甚至损坏螺纹。
3.2 步骤二:激光切割透明外壳与机械组装
外壳不仅是容器,更是整个机器的骨架,其精度直接影响最终机器的刚性。
- 设计修改:我提供了基础的DXF设计文件,但你必须修改两个关键尺寸:
- 光驱安装孔距:将你测量到的实际孔距更新到设计文件的对应位置。
- 指接榫宽度:测量你实际购买的亚克力板的精确厚度。指接榫的“凸起”部分宽度应略小于板厚(通常小0.05-0.1mm),以确保能紧密插接。例如,我的板厚5.67mm,我将榫宽设置为5.64mm。重要:在CAD软件中修改时,只缩放X轴方向的榫头尺寸,不要整体缩放零件,否则其他结构会变形。
- 切割与清理:将修改好的DXF文件导入激光切割机软件。使用适合亚克力切割的参数(功率、速度、频率),通常需要多次测试找到最佳效果。切割完成后,小心取下零件,撕掉保护膜,并用酒精擦拭切割边缘留下的烟渍。
- 组装框架:按照设计,将所有亚克力板通过指接榫拼装起来。不需要胶水,榫卯结构本身就能提供足够的紧固力。组装时务必在平整的桌面上进行,确保框架方正。
- 安装运动模组:将两个光驱运动模组分别安装到外壳指定的X轴和Y轴位置上。使用拆自旧电脑的螺丝和合适的垫片(如尼龙垫片)进行固定,避免螺丝拧得过紧导致亚克力板开裂。确保两个模组的运动方向互相垂直。
3.3 步骤三:Z轴(抬笔机构)的制作与安装
这是最具巧思也最容易出问题的部分。目标是让舵机可靠地控制笔的抬起和放下。
- 制作笔夹:用一个小木块或3D打印一个笔夹,将其固定在Y轴滑块的末端。笔夹需要能牢固地夹住笔,并且笔尖能垂直向下。
- 构思传动方案:舵机输出的是0-180度的摆动。我们需要将这个摆动转化为笔的直线升降。我采用的方案是:
- 从旧软驱里拆出一个小的拉簧和滑块机构。将拉簧一端固定在笔夹上方,另一端固定在机器框架上。这样,弹簧的拉力始终试图把笔拉向画纸(落笔状态)。
- 在舵机的摆臂上安装一个画框挂钩(或自制铁丝钩)。
- 在笔夹上设计一个“被钩点”。当舵机旋转到某个角度时,挂钩会钩住这个点,并克服弹簧拉力将笔提起;当舵机旋转到另一个角度时,挂钩释放,弹簧将笔拉下。
- 安装与调试:将舵机固定在笔夹附近合适的位置。通过热熔胶或螺丝初步固定。连接舵机到临时电源(可通过Arduino的5V输出测试),编写一个简单的Arduino程序让舵机在两个角度间往复运动。观察挂钩是否能可靠地钩起和释放笔。这个阶段需要反复调整舵机安装角度、挂钩形状和弹簧的拉力,直到动作干脆、无卡滞。
- 优化延迟:最初测试时,我发现舵机动作有延迟,导致绘图停顿。解决方案是:第一,用一个小橡皮筋将挂钩轻轻绑在舵机摆臂上,减少旷量;第二,将舵机的运动角度范围减小到10度左右,这样它转动更快;第三,在GRBL设置中调整
$4(步进电机使能信号反转)和$5(限位开关信号反转)等参数,优化信号响应。
3.4 步骤四:电路连接与焊接
将所有电子部件连接成一个可靠的控制系统。
- 焊接步进电机:光驱步进电机通常有4根引脚,但顺序可能不标准。我的电机(型号E232171)引脚顺序是A-B-D-C(面对电机,有型号标识的一面朝上,从左到右)。用万用表的电阻档可以判断:同一相的两根线之间电阻较小(几欧姆到十几欧姆),不同相之间电阻无穷大。确定A、B两相后,焊接四根不同颜色的导线。
- 连接CNC Shield:
- 将两个步进电机的4根线,分别连接到CNC Shield上两个A4988驱动模块下方的电机接口。对应关系通常是:电机A相 -> A1, A2;电机B相 -> B1, B2。如果电机转动方向不对,可以后续通过交换同一相的两根线来调整。
- 将舵机的信号线(通常是橙色或白色)连接到CNC Shield上标有“Z+”的引脚。舵机的红线(VCC)和棕/黑线(GND)分别连接到旁边的“5V”和“GND”引脚。注意:有些CNC Shield的“Z+”引脚定义可能不同,如果不行,可以尝试连接到“冷却启用”引脚,并在GRBL代码中修改相应的控制命令。
- 将12V电源的正负极连接到CNC Shield的电源输入端子。
- 将A4988驱动模块上的微步进设置跳线帽全部拔掉,设置为全步进模式(1/1),这样在低速下扭矩最大,更适合我们的小电机。
- 调节驱动电流:A4988模块上有一个小的电位器,用于调节输出给电机的电流。电流太小,电机无力;电流太大,电机会发热严重甚至损坏驱动芯片。通电前,用万用表直流电压档,黑表笔接GND,红表笔接电位器的调节螺丝刀口,调节电位器使电压在0.5V到0.8V之间(对应电机电流约0.8A到1.2A,具体看电机参数)。可以先设低一点,如果电机移动时失步(有“咔咔”声且位置不准),再稍微调高。
4. 软件配置与固件烧录全流程
4.1 步骤五:为Arduino刷入MIGRBL固件
GRBL是机器的“操作系统”,而MIGRBL是支持舵机Z轴的特殊版本。
- 安装Arduino IDE:从Arduino官网下载并安装最新版Arduino IDE。
- 获取MIGRBL库:访问GitHub上的
diy3dvn/grbl-plotter项目。点击“Code”按钮,选择“Download ZIP”。下载后解压到本地。 - 添加库到IDE:打开Arduino IDE,依次点击
项目->加载库->添加.ZIP库...,然后选择你刚解压的文件夹中的GRBL-PLOTTER-MASTER文件夹(或者直接选择该文件夹内的MIGRBL子文件夹)。IDE会提示库添加成功。 - 连接与选择板卡:用USB线将Arduino Uno连接到电脑。在IDE中,选择
工具->开发板->Arduino AVR Boards->Arduino Uno。然后选择对应的端口(工具->端口->COMx)。 - 烧录固件:在IDE中,依次点击
文件->示例-> 滚动找到MIGRBL->grblUpload。这会打开一个示例草图。直接点击上传按钮(向右的箭头)。等待编译和上传完成,看到“上传成功”的提示。
4.2 步骤六:配置GRBL参数匹配微型机器
烧录完固件后,需要通过串口监视器与GRBL对话,设置关键的运动参数。
- 打开串口监视器:在Arduino IDE中点击右上角的“串口监视器”图标。设置波特率为115200,行尾符选择“换行符”。
- 读取当前设置:在发送框输入
$$并按回车。GRBL会返回一系列以$开头的参数及其当前值。 - 修改关键参数:我们需要根据光驱步进电机的特性来调整。以下是最关键的几个参数及其含义:
$100、$101、$102(X,Y,Z轴每毫米步数):这是最重要的参数。它告诉GRBL,电机需要走多少步才能让轴移动1毫米。计算公式是:(电机每转步数 * 驱动器微步数) / 丝杆导程。- 光驱步进电机通常是20步/转(1.8度/步)。
- 我们的A4988设置为全步进,所以微步数=1。
- 需要测量丝杆的导程(即丝杆转一圈,滑块移动的距离)。用游标卡尺测量,通常光驱丝杆导程在1mm到3mm之间。假设测量为2mm。
- 那么计算:
(20 * 1) / 2 = 10。所以$100=10.000,$101=10.000。Z轴是舵机,这个参数对它是虚拟的,可以设一个值如$102=40.000,只要与后续Inkscape扩展里的设置对应即可。
$110、$111、$112(X,Y,Z轴最大速率,单位mm/min):根据电机扭矩和负载设置一个安全值。对于小光驱电机,建议从500.000开始。$120、$121、$122(X,Y,Z轴加速度,单位mm/s²):加速度设置得太高会导致电机失步。建议设置为10.000这样较低的值。$130、$131、$132(X,Y,Z轴最大行程,单位mm):设置为你的机器实际工作范围。我的X和Y轴是40mm,所以$130=40.000,$131=40.000。Z轴是虚拟的,可以设小一点,如$132=10.000。
- 写入参数:修改参数的命令格式是
$编号=值,例如设置X轴每毫米步数:$100=10.000。输入后按回车,GRBL会回复ok。修改完所有必要参数后,输入$G保存到Arduino的EEPROM中,断电不会丢失。
4.3 步骤七:安装Inkscape与MIGRBL扩展
这是将你的矢量图形(如SVG)转换为机器能读懂的G代码的关键环节。
- 安装特定版本的Inkscape:必须使用0.48.5版本。新版本的Inkscape扩展接口有变化,与MIGRBL扩展不兼容。可以从Inkscape官网的旧版本存档中下载。
- 安装MIGRBL扩展:
- 下载MIGRBL扩展ZIP包(通常包含在之前下载的GRBL-PLOTTER-MASTER工具的扩展文件夹里,或从项目链接单独下载)。
- 解压后,你会得到几个
.inx和.py文件。 - 找到Inkscape的安装目录,进入
share/extensions文件夹(例如C:\Program Files (x86)\Inkscape\share\extensions)。 - 将解压出的所有文件复制到这个
extensions文件夹内。 - 重启Inkscape,在顶部菜单栏点击
扩展,如果看到MI GRBL Z-Axis servo controller选项,说明安装成功。
- 配置扩展参数:在Inkscape中画好图并转换为路径后,点击
扩展->MI GRBL Z-Axis servo controller。会弹出一个对话框,需要设置:- Servo up/down G-code:控制舵机抬起和放下笔的G代码命令。通常是
M03 S[角度]和M05 S[角度]。如果动作反了,就交换这两个命令。 - Servo angle:舵机抬起和放下的角度值。需要通过实验确定,确保笔能完全抬起离开纸面,又能稳定落下接触纸面。
- X/Y axis speed:设置绘图速度,与GRBL中的最大速率协调。
- Directory:设置G代码文件的输出路径。
- Servo up/down G-code:控制舵机抬起和放下笔的G代码命令。通常是
4.4 步骤八:从绘图到G代码生成与发送
- 在Inkscape中准备图形:
- 打开Inkscape,设置文档属性,单位改为毫米(mm),画布宽度和高度设为你的机器行程(如40mm)。
- 绘制或导入图形。如果是位图图片,需要使用
路径->跟踪位图功能将其转换为矢量路径。 - 选中所有图形,点击
路径->对象转路径。
- 生成G代码:
- 确保图形被选中,点击
扩展->MI GRBL Z-Axis servo controller。 - 在弹出的对话框中,根据你的机器配置调整参数(特别是舵机角度)。
- 点击“应用”,扩展会自动生成G代码文件并保存到你指定的目录。
- 确保图形被选中,点击
- 发送G代码控制机器:
- 打开一个G代码发送软件,如GRBL Controller(包含在GRBL-PLOTTER-MASTER工具包里)或Universal GCode Sender。
- 连接正确的串口(COM口),波特率设为115200。
- 点击连接,软件会与Arduino上的GRBL建立通信。你可以先使用软件的手动控制(Jog)功能,测试X、Y轴和Z轴(舵机)是否能正确动作。
- 加载生成的G代码文件。
- 将笔和纸固定在工作台上。务必进行空跑测试:将笔抬起(通过手动控制或发送抬笔命令),然后让机器空跑一遍G代码,观察运动范围是否超出物理极限,路径是否正确。
- 确认无误后,落下笔,开始正式的绘图作业。
5. 调试心得与常见问题排坑指南
在实际组装和调试过程中,我遇到了不少问题,这里把典型的“坑”和解决方案记录下来,希望能帮你少走弯路。
5.1 问题一:步进电机噪音大、发热严重、失步
- 现象:电机运行时发出尖锐噪音或震动声,摸起来烫手,有时移动不到位(丢步)。
- 原因分析:
- 驱动电流过大或过小:电流太小,电机扭矩不足,容易在阻力点失步;电流太大,线圈过热,也会导致性能下降甚至损坏。
- 机械阻力过大:丝杆缺油、导轨不平行、安装过紧或有异物卡住。
- 加速度/速度设置过高:GRBL中的
$120/$110参数设得太高,电机无法响应。
- 解决方案:
- 调节A4988电流:这是首要步骤。断电,用万用表测量A4988模块上电位器对GND的电压(Vref),将其调节至0.6V左右(对应电机线圈电流约1A)。上电测试,如果还失步,微增至0.7V;如果电机很热,则降低至0.5V。一定要在电机停止时测量和调节Vref。
- 润滑与调平:在丝杆和导轨上涂抹少量白色润滑脂。确保两个运动轴互相垂直且滑动顺畅,没有明显的卡顿点。
- 降低GRBL运动参数:在GRBL设置中,将
$110/$111(最大速率)从500逐步降低到200试试,同时将$120/$121(加速度)从10降低到5甚至更低。
5.2 问题二:Inkscape扩展无法使用或报错
- 现象:点击MIGRBL扩展无反应,或报“Python script failed”等错误。
- 原因分析:
- Inkscape版本错误:这是最常见的原因,必须使用0.48.5版本。
- 扩展文件放置位置错误:文件没有复制到正确的
extensions文件夹。 - 系统缺少Python或相关组件:旧版扩展依赖于特定Python环境。
- 解决方案:
- 彻底卸载现有Inkscape,重新安装0.48.5版本。
- 确认扩展文件(
.inx和.py)被复制到了Inkscape安装目录\share\extensions\下。 - 如果还不行,尝试安装Python 2.7(注意不是Python 3),并将Python的安装路径添加到系统环境变量Path中。
5.3 问题三:Z轴舵机动作不准确或不动作
- 现象:笔该抬时不抬,该落时不落,或者动作幅度不对。
- 原因分析:
- G代码命令映射错误:GRBL固件中,控制主轴(Spindle)的M命令(M3开,M5关)被重映射给了舵机。但接线或固件配置可能不对。
- 舵机角度值不对:Inkscape扩展中设置的“Servo up/down angle”角度值不合适。
- 机械结构卡滞:笔夹或挂钩机构摩擦力太大,舵机扭矩不足。
- 解决方案:
- 手动测试舵机:在G代码发送器中,直接输入命令
M03 S90和M05 S90,观察舵机反应。如果没反应,试试M05 S90和M03 S90(交换命令)。如果交换后能动,说明需要修改Inkscape扩展中的G代码设置。如果两个命令都不行,检查接线(是否接在Z+引脚)和电源(舵机是否供电)。 - 校准舵机角度:通过手动发送
M03 S[角度]命令,从0到180改变角度值,找到笔刚好完全抬起和完全落下的两个角度值。将这两个值填入Inkscape扩展。 - 优化机械结构:确保笔在笔夹中能自由上下滑动一小段距离(约1-2mm),这可以通过在笔夹内加一点海绵或软垫实现,避免卡死。检查挂钩与笔上被钩点的接触是否平滑。
- 手动测试舵机:在G代码发送器中,直接输入命令
5.4 问题四:绘图尺寸不准或图形扭曲
- 现象:画出来的正方形不是正方形,圆形变成椭圆,或者尺寸与设计不符。
- 原因分析:
$100/$101(每毫米步数)参数错误:这是根本原因。计算时使用的丝杆导程测量不准,或者电机步数/微步数设置错误。- 机械不同步或松动:某个轴的丝杆与电机连接打滑,或者同步带(如果有)松动。
- 电机失步累积:由于电流不足、速度过快或阻力过大,在运动过程中偶尔失步,误差逐渐累积。
- 解决方案:
- 精确校准步数:在GRBL控制器中,用G代码命令让X轴移动一个理论距离,例如
G91 G21 G1 X10 F100(相对移动10mm)。用游标卡尺实际测量滑块移动的距离。计算实际移动距离与理论距离的比值,然后修正$100的值。例如,命令移动10mm,实际移动了9.5mm,则新的$100= 旧值 * (10 / 9.5)。对Y轴重复此过程。 - 检查机械紧固:确保所有电机轴与丝杆的连接牢固,没有相对滑动。检查所有螺丝是否拧紧。
- 降低运行负荷:确保笔尖对纸的压力适中,不要过大。再次检查和优化电流、速度、加速度参数。
- 精确校准步数:在GRBL控制器中,用G代码命令让X轴移动一个理论距离,例如
完成所有调试后,你的透明桌面CNC绘图仪就应该能稳定工作了。从一堆废旧零件到一台能精确执行命令的微型数控机器,这个过程充满了挑战,但最终的成就感和学到的知识是无价的。这台机器不仅是一个绘图工具,更是一个理解步进电机控制、GRBL固件、G代码和机械设计的绝佳平台。你可以尝试为它加装激光头模块(注意安全!),或者换用更粗的笔来绘制海报,甚至尝试控制一个小型主轴电机进行软材料的雕刻。它的可能性,随着你的探索而扩展。
