FEATURED · 精选文章

从零搭建CoreXY绘图机器人:开源硬件与G代码实践指南

发布时间 / 2026/8/20 5:51:25
来源 / 创域科博编辑部
栏目 / 资讯中心
从零搭建CoreXY绘图机器人:开源硬件与G代码实践指南 1. 从零到一我为什么要造一台绘图机器人几年前我在一个创客展上看到一台机器它正用一支笔在纸上缓慢地画着一幅复杂的曼陀罗图案。线条精准、重复性极高完全不像人手绘制的。那一刻我被深深吸引了。这不只是一个玩具它背后是步进电机的精准控制、G代码的指令解析、机械结构的巧妙设计以及算法与物理世界的优雅连接。从那天起我就决定自己动手造一台。你可能觉得现在3D打印机、激光雕刻机已经很普及了绘图机器人是不是有点“过时”恰恰相反。对于初学者来说绘图机器人是进入数字制造和自动化控制领域绝佳的入门项目。它避开了3D打印所需的高温挤出、热床调平等复杂问题也绕开了激光雕刻的安全隐患专注于最核心的部分如何让一台机器按照数字指令在二维平面上精确移动。这台机器能做什么远不止画简单的几何图形。它可以成为你的“机械臂画家”绘制电路板布局图、创作个性化艺术签名、临摹名画、甚至绘制大型墙绘的底稿。更重要的是通过这个项目你将亲手触摸到开源硬件如Arduino、数控系统的基础原理、矢量图形到机器指令的转换流程。无论你是电子爱好者、艺术专业学生还是想给孩子一个硬核的STEM教育项目自己搭建一台绘图机器人都是一次收获满满的旅程。接下来我将完整分享我制作这台绘图机器人的全过程从核心原理剖析、材料工具选型到机械组装、电路连接、固件烧录、软件调试以及最终让画笔舞动起来的每一个细节。我会重点讲解那些容易踩坑的地方以及如何用最经济实惠的方案达到稳定可用的效果。2. 核心架构解析绘图机器人是如何工作的在动手之前我们必须先理解它的“大脑”和“身体”是如何协同工作的。一台典型的二维绘图机器人也称为XY绘图仪或绘图机其核心架构可以分解为以下几个部分2.1 运动系统核心中的核心绘图机器人的本质是一个二轴数控平台。想象一个平面直角坐标系我们需要一个装置能在X轴和Y轴上独立、精确地移动。常见的实现方案有三种CoreXY结构这是我最终选择的方案也是目前桌面级3D打印机和绘图仪最流行的结构之一。它仅用两个步进电机通过一套特殊的皮带传动方式协同控制滑车在X和Y方向的运动。其最大优点是运动部件打印头或笔座质量轻惯性小可以实现较高的速度和加速度且电机都固定在框架上不随滑车移动系统更稳定。笛卡尔结构最直观的结构。一个电机单独控制X轴移动另一个电机单独控制Y轴移动。结构简单易于理解和调试但Y轴电机需要安装在X轴的移动部件上增加了移动质量可能影响动态性能。H-Bot结构与CoreXY类似也使用两个电机和交叉皮带但皮带缠绕方式不同。H-Bot在理论上存在一些非正交性误差在大型机器上更明显因此CoreXY通常是更优的选择。为什么选择CoreXY对于绘图机器人我们追求的是精度、速度和稳定性。CoreXY结构将电机固定在机架上笔座部分非常轻巧这使得它在绘制快速、复杂的线条时振动更小精度更高。虽然皮带传动的理论绝对精度可能不如精密的丝杠但对于绘图应用精度通常在0.1mm-0.5mm级别来说完全足够且成本低廉噪音小。2.2 控制系统机器的大脑与神经控制系统负责接收指令、计算路径并驱动电机。它通常分为两层主控制器大脑通常是一块开源开发板如Arduino Mega 2560。我选择它是因为其引脚数量多社区支持极其庞大有成熟的固件如GRBL可以直接使用。它负责解析从上位机发送过来的G代码指令并将其转换为步进电机的步进和方向信号。电机驱动器神经与肌肉主控制器输出的信号电流很弱无法直接驱动步进电机。因此需要步进电机驱动模块如常见的A4988或性能更好的TMC2208/TMC2209。这些驱动器接收控制信号并输出强大的电流来驱动电机。它们通常还提供微步进功能如1/16、1/32微步可以让电机运动更平滑减少振动和噪音。注意A4988驱动器成本低但运行时噪音和发热较大。TMC2208/2209支持静音驱动和更先进的算法能显著提升运行体验是值得投资的升级选项。2.3 软件生态从创意到指令要让机器人画画你需要一套软件工作流设计软件在任何矢量绘图软件如Inkscape、Adobe Illustrator中创作或导入你的图案。生成G代码绘图机器人看不懂矢量文件它只认识G代码。你需要一个插件或独立软件将矢量路径转换为G代码。对于Inkscape有一个强大的插件叫“Inkscape-Extensions”中的Gcodetools。它可以将路径转化为一系列G0快速移动和G1线性插补移动指令。控制软件上位机这是一个运行在你电脑上的程序用于将G代码文件发送给主控制器并实时监控机器状态。常用的有Universal Gcode Sender (UGS)、Candle针对GRBL或Pronterface。它们通过USB串口与Arduino通信。2.4 抬笔落笔机构机器的“手”这是绘图机器人区别于其他数控机床的关键部件。我们需要一个伺服电机Servo来模拟人手“提笔”和“落笔”的动作。伺服电机可以精确控制旋转角度。通过一个简单的连杆或凸轮机构将伺服电机的旋转运动转换为笔的垂直升降运动。在G代码中我们可以用特定的命令如M03 Sxxx, M05来控制伺服电机的角度从而实现落笔一定压力接触纸面和抬笔完全离开纸面。3. 物料清单与工具准备精打细算的采购指南基于CoreXY架构以下是我这台绘图机器人的详细物料清单BOM。你可以根据想要的绘图面积如A4纸或A3纸按比例调整结构件尺寸。3.1 机械结构部分型材框架2020或2040铝型材。用于搭建机器的主体框架。我选用2020型材强度足够且轻便。你需要计算好所需长度通常卖家可以按尺寸切割。直线运动组件直线光轴直径8mm或10mm表面镀铬用于保证移动的直线度。需要X轴两根Y轴两根。直线轴承与光轴配套的LM8UU或LM10UU轴承用于滑块在光轴上的滑动。同步轮与同步带GT2-20齿同步轮和GT2-6mm宽同步带。这是CoreXY传动的核心皮带质量直接影响精度和噪音。连接件与紧固件3D打印件CoreXY结构有很多专用的连接件、电机座、皮带夹、笔座等。这部分需要自己用3D打印机打印或者从开源社区如Thingiverse下载模型后找人代打。这是体现DIY乐趣的部分。各种螺丝螺母主要是M3、M5的内六角螺丝、T型螺母用于铝型材、法兰螺母等。建议购买一整套不同长度的套装。工作台面一块平整的亚克力板、中密度纤维板或甚至是一块旧镜片用于固定画纸。3.2 电气控制部分主控制器Arduino Mega 2560开发板 x1。步进电机42步进电机如42BYGH48-1684Ax2。注意保持扭矩在0.4N.m左右确保有足够动力。步进电机驱动器A4988或TMC2208驱动模块 x2。伺服电机SG90或MG90S微型伺服电机 x1用于抬落笔。电源12V/5A以上的开关电源 x1。需要同时为步进电机和主板供电Arduino Mega有稳压模块可从12V降压。限位开关微动开关 x3X轴原点、Y轴原点、Z轴/笔限位。用于机器开机时自动寻找“回家”位置建立坐标系原点。杂项杜邦线公对公、公对母、接线端子、电源开关、散热片给驱动器用。3.3 必备工具内六角扳手套装螺丝刀套装剥线钳、压线钳电烙铁及焊锡用于焊接更可靠的连接万用表调试神器剪线钳水平尺用于调平框架采购心得机械件可以在专业的铝型材店铺购买通常提供切割和打孔服务。电子元件在各大电子商城都很容易找到。3D打印件可以自己打也可以在线下单。在采购前最好用CAD软件如Fusion 360或至少画个草图精确计算所有型材和光轴的长度避免浪费。4. 机械组装实战精度从每一个螺丝开始组装是考验耐心和细心的过程。遵循从下到上、从框架到运动部件的顺序。4.1 搭建稳固的框架切割与准备根据设计尺寸将铝型材切割好。用锉刀或砂纸打磨掉切割面的毛刺。组装底座矩形框使用角码和T型螺母将底部的四条型材连接成一个坚固的矩形。在拧紧所有螺丝之前请用直角尺或量角器确保每个角都是90度。这是整个机器精度的基础基础不牢地动山摇。安装垂直支柱将四根垂直的型材安装在底座四角。同样要确保它们与底座垂直。你可以用水平尺靠在型材侧面检查。安装顶部框架最后安装顶部的矩形框与垂直支柱连接。至此一个立方体框架就搭建完成了。用手摇晃一下应该感觉非常稳固没有明显的晃动。4.2 安装直线运动系统固定光轴将两根Y轴方向的光轴平行地固定在底座框架上。这里需要使用专门的光轴支座3D打印或购买。关键点确保两根光轴绝对平行且处于同一水平面。可以使用游标卡尺测量两端距离一点点调整。平行度误差会导致滑块移动卡涩严重磨损轴承。安装Y轴滑块和同步带将直线轴承LM8UU塞入专用的滑块外壳3D打印件中然后套在Y轴光轴上。接下来安装同步带。CoreXY的皮带穿法是个难点建议搜索“CoreXY belt path”的图片或视频跟着一步一步走。核心原则是两条皮带呈“X”形交叉共同控制滑车运动。皮带张力要适中太松会打滑失步太紧会增加阻力并加速磨损。调好后用皮带夹固定。安装X轴和笔座X轴光轴固定在滑车上形成一个十字滑台。笔座通常是一个夹笔器安装在X轴的滑块上。这样笔座就可以在XY平面内自由移动了。安装步进电机将两个步进电机分别安装在框架的特定位置根据CoreXY设计图并装上同步轮。确保同步轮与电机轴紧固不能打滑。4.3 安装限位开关与笔机构限位开关在X轴和Y轴运动范围的最边缘通常是左下角或原点位置安装微动开关。当滑车碰到开关时机器就知道“到家了”。安装时要确保触发灵敏且位置准确。伺服笔机构这是最有创意的一部分。设计一个简单的杠杆机构伺服电机旋转带动一个连杆上下运动连杆末端连接笔夹。当伺服电机转到0度时笔抬起转到90度或其他角度时笔落下并施加一定压力。你需要反复测试找到既能保证笔尖与纸面良好接触又不会压力过大导致笔尖损坏或纸面划破的“黄金角度”。踩坑实录我第一次设计的笔机构直接用伺服臂顶笔导致笔的角度不正画线时总是断墨。后来改为一个简单的“跷跷板”结构让笔始终保持垂直问题迎刃而解。所以笔机构的对中性非常重要。5. 电路连接与固件配置让机器获得生命机械部分是躯干电路和程序就是神经和灵魂。5.1 电路连接图接线逻辑务必在断电状态下操作以下是以Arduino Mega A4988为例的核心接线逻辑Arduino Mega 引脚A4988 驱动器功能说明Digital 2STEP步进脉冲信号。每个脉冲电机走一步或微步。Digital 3DIR方向信号。高电平一个方向低电平另一个方向。Digital 4ENABLE使能信号。低电平有效即低电平时电机通电锁轴。电源部分12V电源正极VMOT电机驱动电源接12V。务必注意这个电压不能接反或接到逻辑端12V电源负极GND电机电源地。Arduino 5VVDD驱动器逻辑电源5V。Arduino GNDGND驱动器逻辑地。必须与电机电源地共地电机部分驱动器 A1, A2, B1, B2步进电机4线对应连接电机的两相线圈。接反电机会反转但不会损坏调试时可交换。限位开关Digital 9, 10, 11限位开关常开端X, Y, Z限位开关信号线。另一端接Arduino GND。GRBL配置为常开触发。伺服电机Digital 6伺服信号线黄/白控制伺服角度。红色接5V棕色接GND。重要提醒每个A4988驱动器的VMOT和GND之间必须就近安装一个至少47μF的电解电容以吸收电机启停产生的电流冲击保护驱动器。给A4988贴上小散热片发热是正常的但过热会导致丢步。使用跳线帽设置A4988的微步进分辨率如MS1, MS2, MS3都插上为1/16步。5.2 刷写与配置GRBL固件GRBL是一款极其优秀、专为Arduino优化的开源G代码解析器。它让Arduino变身为一台专业的数控控制器。刷写固件在Arduino IDE中安装GRBL库。最简单的方法是项目 - 加载库 - 管理库搜索“grbl”安装。打开示例文件 - 示例 - grbl - grblUpload。选择正确的板卡Arduino Mega 2560和端口点击上传。配置GRBL参数关键步骤固件刷写成功后打开串口监视器波特率115200。输入$$并回车查看所有当前参数。我们需要修改的核心参数包括$100, $101 (步进脉冲/mm)这是最重要的参数它告诉机器“收到一个脉冲笔应该移动多少毫米”。计算公式步数/mm (电机每转步数 * 微步数) / (同步轮齿数 * 皮带齿距)。例如电机200步/转1/16微步20齿GT2轮齿距2mm。计算(200 * 16) / (20 * 2) 3200 / 40 80 步/mm。将计算值填入$100X轴和$101Y轴。务必计算准确并用尺子实际测量画出的100mm线段进行校准微调$110, $111 (最大速率 mm/min)设置X/Y轴最大移动速度。可以从2000-3000开始测试。$120, $121 (加速度 mm/s^2)设置加速度。建议从200-500开始太高容易丢步或引起机器晃动。$130, $131 (工作行程 mm)设置你的机器X/Y轴最大可移动范围略小于实际机械行程。$22 (回零速度)设置回零时寻找限位开关的速度。$23 (回零方向)设置回零方向。通常设置为1即向正方向回零假设限位开关安装在最大坐标处。修改命令$[参数号][值]例如$10080.5。输入$G可查看当前G代码解析状态。6. 软件联调与首次绘图见证奇迹的时刻当所有硬件连接完毕GRBL配置好后就可以进行最终的集成测试了。6.1 上位机连接与手动控制打开上位机软件如Universal Gcode Sender。选择正确的串口和波特率115200点击连接。连接成功后软件通常会显示“Grbl 1.1f [$ for help]”之类的欢迎信息。尝试使用软件的手动控制Jog功能按X X- Y Y-按钮。此时应该能看到对应的步进电机开始转动笔座移动。注意观察移动方向是否正确。如果方向反了有两种方法一是在GRBL中设置$31反转方向二是调换步进电机线圈A A-的接线。测试限位开关手动将滑车移到中间然后点击“回零”Home。滑车应向限位开关方向移动触发后停止。这证明限位开关工作正常。测试伺服笔在发送框输入G代码M03 S90假设90度落笔笔应落下输入M05笔应抬起。你需要根据实际机构调整角度值。6.2 从矢量图到第一幅画准备图案在Inkscape中画一个简单的图形比如一个正方形和一个圆。确保所有线条都是“路径”对象CtrlShiftC。生成G代码安装并启用Inkscape的Gcodetools扩展。选中你的路径点击扩展 - Gcodetools - Orientation points... 设置工具坐标系通常保持默认。点击扩展 - Gcodetools - Path to Gcode... 在“Options”选项卡中最关键的是设置“Z轴”参数。这里我们把“Z轴”映射为“笔的状态”。例如设置“Penetration feed”为M03 S90落笔“Lift feed”为M05抬笔。在“Tool”选项卡可以设置移动速度。应用后会生成一个.nc或.gcode文件。运行绘图在上位机软件中打开生成的G代码文件。将笔换成一支水性笔下方垫好纸。务必先让机器回零确保坐标系正确。将笔手动移动到纸张上你希望开始作画的位置附近。在上位机中设置“工作零点”WCS通常点击“Zero X”和“Zero Y”。这样机器就以当前笔尖位置为(0,0)点开始画。深呼吸点击“发送”或“运行”。你的机器应该开始移动抬笔、落笔画出预设的图形首次绘图常见问题排查图形尺寸不对$100/$101步数/mm参数不准确。重新计算并校准。图形旋转了90度或镜像了CoreXY的电机映射可能错了。需要修改GRBL的$3方向反转和检查电机接线顺序。GRBL for CoreXY有特定的端口定义确保你的X步进脉冲接在Arduino Pin 2Y步进脉冲接在Pin 3等。画线不连续有偏移皮带太松导致丢步。紧一下皮带。也可能是加速度设置过高。笔压不稳时有时无检查伺服机构是否顺畅笔夹是否太紧卡住了笔。调整伺服落笔角度。7. 精度校准与性能优化从能画到画得好第一幅画成功只是开始要画出精准、漂亮的图案还需要精细校准和优化。7.1 系统性精度校准步进校准最核心命令机器画一个100mm x 100mm的正方形。用高精度游标卡尺测量实际画出的边长。计算误差比例例如命令100mm实际画出98.5mm。修正步数/mm参数新参数 旧参数 * (命令长度 / 实际长度)。例如旧参数80则新参数 80 * (100 / 98.5) ≈ 81.22。更新$100和$101重新测试。可能需要2-3次迭代才能达到满意精度误差0.5%。正交性校准画一个大的正方形测量其对角线长度。如果两条对角线长度不一致说明X轴和Y轴不垂直存在平行四边形失真。对于CoreXY结构这通常是由于皮带张力不一致或框架不方正造成的。需要重新调整框架的方正度和两侧皮带的张力使其尽可能一致。回零重复性测试多次执行回零操作观察笔尖是否每次都能回到纸张上同一个点。如果偏差较大检查限位开关是否松动以及机械结构是否有过大间隙。7.2 运动性能优化调整加速度和速度在GRBL中逐步提高$120/$121加速度和$110/$111最大速率直到机器开始出现丢步表现为图形错位或产生剧烈振动为止然后回调到一个安全值。更快的加速度能让拐角更锐利但需要更坚固的机械支撑。启用高级功能软限位($201)防止机器因程序错误而运动到物理行程之外撞击框架。硬限位($211)必须开启这是安全底线。行程补偿如果发现机器运动范围不是完美的矩形可以通过GRBL的“轴向补偿”功能进行软件校正但这属于高阶操作。7.3 笔与纸张的适配笔的选择不同的笔效果迥异。针管笔如樱花牌出水均匀线条精细是最佳选择。圆珠笔压力要求低但线条可能不匀。马克笔较粗适合大面积涂鸦。纸张固定使用美纹胶带或低粘性喷胶固定纸张四角防止在绘图过程中纸张移动。笔压调试不同的笔、不同的纸张需要的下压力度不同。通过调整伺服电机的落笔角度S值找到既能保证流畅出墨又不会戳破纸张或让笔尖过快磨损的力度。可以在纸的角落画一些测试线来调整。8. 创意拓展与进阶玩法释放机器的潜能当基础功能稳定后你就可以探索更多有趣的应用了多笔工具头设计一个转盘式笔架通过额外的伺服电机控制实现自动换色。在G代码中插入换笔指令控制第二个伺服就能绘制彩色图案。适配不同工具将笔座改造成激光模块夹持器务必注意激光安全佩戴专业护目镜就变成了一台小型激光雕刻机。或者安装一个微型电磨头可以进行轻量级的切割或雕刻。绘制电路板使用导电墨水笔你的绘图机器人可以直接在特种纸张或PCB基板上绘制电路走线用于快速原型验证。与图形算法结合使用Processing或Python编写程序生成算法艺术如分形、粒子系统的路径然后导出G代码让机器绘制创造人手难以绘制的复杂图案。大幅面绘制通过增加型材长度和皮带可以轻松将机器升级到A2甚至A1幅面用于绘制海报或墙绘底稿。这个项目最迷人的地方在于它完美地融合了机械、电子、软件和艺术。从一堆散乱的零件到一台能够忠实执行你每一个创意指令的机器这种成就感是无与伦比的。每一个遇到的问题从皮带的嘶鸣到坐标的偏移都是深入学习的机会。我建议你在第一次成功画出图形后不要停下尝试去画更复杂的图案去调整每一个参数去改造它的结构。在这个过程中积累的经验远比最终的作品本身更为珍贵。
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻