
简介面向电子竞赛、教育科研及DIY爱好者这份EEZYbotARM MK2机械臂3D打印图纸包采用四路舵机驱动实现三自由度运动能够以较低成本搭建具备精确角度控制的机械手同时为后续二次开发留下空间。压缩包共六十三份文件含二十二个STL格式三维模型覆盖底座、大臂、小臂、传动齿轮及夹爪等关键零件另有三十七张装配预览图以及txt和html说明文档整体大小十一点四二兆字节便于直接选型与打印核对。已有1701人学习下载。STL文件可直接导入常见切片软件预览图有助于装配与调试说明文档则交代项目来源、许可协议和使用指引方便快速上手并按需修改开源结构。无论备赛电赛、丰富实验课程还是自制桌面机械臂都可以借助这套图纸绕开复杂机械加工环节节省时间与成本。1. EEZYbotARM MK2 是什么一份STL图纸背后的完整桌面机械臂方案第一次看到 EEZYbotARM MK2 的 STL 文件包时很多人以为这只是几个 3D 打印零件打印出来拼上舵机就能用。实际上这份图纸算得上桌面级 3D 打印机械臂里最经典的入门方案全套结构件都是 STL 格式配合三到四个舵机、一块 Arduino 兼容板就能组装出一台三自由度的关节机械臂末端还能加一个夹爪。它解决的是“机械臂太贵、入门太难”这个痛点特别适合 3D 打印机械臂毕业设计、ROS 初学者练手或者纯粹想在桌面上玩转运动控制的人。图纸本身开源打印成本低零件损坏了随时重打这是它最大的吸引力。2. 从STL到实体打印前必须搞懂的零件清单与打印参数2.1 零件拆解哪些件需要打印哪些需要购买把 STL 文件包解压以后你会发现零件不算多但每一件的功能都很明确。按我的习惯先把它们分成三类结构件、连接件、外购件。结构件就是需要 3D 打印的比如底座、大臂、小臂、夹爪的左右指、舵机支架、关节连接件。连接件通常指螺丝、螺母、轴承这些不建议打印直接买金属件更靠谱。外购件就是舵机、控制板、电源。先数一下打印件的数量。EEZYbotARM MK2 的标准版大概需要打印十几个零件具体取决于你下载的图纸版本。有些版本把左右夹爪分开有些合并成一个文件有些带舵机支架的加强筋有些是简化版。拿到 STL 后不要急着切片先把每个 STL 文件用 3D 查看器打开确认它对应的是哪个部位最好做一个零件与实物的对照表。零件名称打印数量用途注意事项底座1支撑整机并提供舵机安装位需要填充率较高建议 40% 以上大臂1连接底座与肘关节壁厚要够防止扭断小臂1连接肘关节与腕关节注意舵机线走线孔位夹爪左指/右指各1夹取物体齿形面朝内打印方向注意舵机支架2-4固定舵机不同舵机尺寸可能需要修模关节轴承座2减少摩擦加热熔嵌件的位置要预留2.2 打印参数怎么设层高、壁厚、填充率与支撑切片参数直接决定装配能不能成功。很多人第一次打印机械臂发现零件装上后螺丝孔对不上、舵机塞不进去大概率是打印参数没调好。我给 EEZYbotARM MK2 设置参数时会优先保证三个指标尺寸精度、结构强度、表面质量。层高用 0.2mm 是一个平衡点。用 0.1mm 层高表面会更细腻但打印时间几乎翻倍而且对小型舵机支架来说0.1mm 层高带来的表面光洁度提升并不明显。用 0.3mm 层高虽然快但阶梯纹路太明显轴承座和舵机轴孔的配合会变得很紧装的时候得用锉刀修。所以 0.2mm 是大多数人的选择。壁厚设置为 2 到 3 个轮廓也就是 1.2mm 到 1.8mm配合 0.4mm 喷嘴。机械臂的大臂和底座属于受力件壁厚太薄会在动作时产生肉眼可见的变形。填充率建议按部位区分底座 40%大臂和小臂 35%夹爪 20%支架类零件 30%。有些切片软件支持在同一个模型中设置不同区域的不同填充率但大多数情况我们直接用全局参数然后对个别零件单独处理。支撑是个大坑。EEZYbotARM MK2 的夹爪和舵机支架通常有悬垂结构如果不加支撑打印出来的底面会像烂棉絮。我一般用“仅从平台支撑”或者“树形支撑”。注意支撑的接触面设置如果接触距离设太近拆支撑会留下很深的疤痕导致装配公差不对。建议把 Z 轴支撑距离设为 0.2mm 到 0.3mm这样支撑容易剥离表面也相对干净。2.3 耗材选择PLA还是PETG为什么MK2用PLA最常见3D 打印机械臂用什么材料很多新手纠结。我的经验是如果这台机械臂只是放在桌面上做动作演示、做毕业设计PLA 足够用如果打算让它连续运行几小时甚至尝试搬运重物那最好换 PETG。PLA 的优势在于打印简单、无味、尺寸稳定而且足够硬。EEZYbotARM MK2 的设计尺寸不大关节力矩也有限PLA 完全扛得住。但 PLA 的弱点是耐热性差夏天太阳直射或者放在热风口附近零件会变软变形。另一个弱点是脆跌落容易断。PETG 比 PLA 耐热、韧性好但打印温度更高容易拉丝新手需要调回抽参数。ABS 不建议用于机械臂结构件因为收缩率大尺寸不稳而且打印时需要密闭舱室。实际打的时候建议优先用 PLA因为它对打印环境要求最低。如果你用的是普通家用打印机没有加热舱PETG 也很容易打但要注意吹风不要开太大避免层间粘结不好。我一般随手边有的料用但有一个原则同一个机械臂的所有结构件尽量用同一种材料别混着用因为不同材料的热膨胀系数不同时间长了你发现螺丝孔位都歪了。3. 组装与舵机选型让图纸变成能动的机械臂3.1 舵机怎么选SG90还是MG996R扭矩与供电图纸不会告诉你装哪个舵机它只留了安装孔。常见的配套方案是底座、大臂、小臂用 MG996R 或 SG90夹爪用 SG90。但很多新手买回来装上就翻车因为选择了扭矩不足的舵机。先算一下负载。MK2 的大臂在水平状态时需要克服重力矩。如果大臂加上小臂加上夹爪总共大约 300g重心距离关节大约 10cm那么需要的扭矩大约是 0.3kg·m 乘 10cm 除以 9.8约合 3kg·cm。再加上关节摩擦和动态加速实际需要 4 到 5kg·cm。SG90 的堵转扭矩大约是 1.8kg·cm根本不够装到肩关节上会抖得厉害甚至直接烧掉。MG996R 的扭矩大约是 10kg·cm应付 MK2 足够了。所以我的建议是三个主要关节都用 MG996R夹爪用 SG90这样既省钱又稳定。供电是另一个容易忽视的点。MG996R 堵转时电流能到 1A 以上三个舵机同时启动瞬间电流接近 3A。如果用 Arduino 板的 5V 引脚直接供电板子会复位舵机会抽搐。常见做法是外接 5V 2A 以上的电源单独给舵机供电控制板和舵机共地。电池供电也行但电池电压会逐渐下降舵机速度会变慢需要加稳压模块。3.2 安装顺序与螺丝规格一次装对的步骤组装顺序不要乱。我的顺序是先装底座舵机支架再装底座舵机接着装大臂再装肘部舵机然后小臂最后腕部和夹爪。这样每一步都有明显的参考平面不会出现装完发现线穿不过去的情况。螺丝规格方面图纸一般设计的是 M3 螺丝。需要准备 M3 x 6mm、M3 x 10mm、M3 x 14mm 和 M3 螺母还有舵机自带的舵机螺丝。注意不要用自攻螺丝代替除非图纸明确标了。因为自攻螺丝会把塑料孔撑裂特别是长时间振动以后。最好在舵机支架的螺丝孔位压入热熔铜螺母这样反复拆装也不会滑丝。如果没有热熔螺母可以先用 M3 螺丝直接拧入加热的孔然后冷却形成一个螺纹但强度不如铜螺母。安装时还要注意舵机线走向。从舵机伸出来的三条线棕/橙/红或棕/红/橙要顺着机械臂的走线槽不要压在其他零件下面。要是线绕在关节里动作时会被扯断。我习惯在装配前先把舵机角度调整到中位这样装上舵机臂后机械臂各部分应该是大致水平的。3.3 舵机中位与摇臂安装避免装完就抖舵机的中位是指 1.5ms 脉宽对应的角度通常大约 90 度。装舵机摇臂之前必须先给舵机写一个测试程序让它转动到中位然后把摇臂以水平或垂直的姿态装上确保机械臂初始姿态正确。如果这一步没做软件里角度 90 对应的是机械臂歪斜的状态后面写控制程序就得靠补偿值特别麻烦。具体做法是用 Arduino 的 Servo 库写一个最简单的程序把舵机角度设为 90然后给舵机通电。等舵机转动到稳定位置后再安装舵机摇臂。摇臂的安装要选择一个齿位尽量让摇臂垂直于舵机输出轴的自然位置。有些舵机摇臂有多个孔位选孔位时注意角度别装出来是斜的。还有一个细节MG996R 的齿是金属的安装时要确保摇臂完全压到底再拧螺丝。如果摇臂没压到底舵机转动时会把齿顶磨掉俗称“扫齿”然后就废了。安装完成后用手轻轻握手效果在摇臂上确认没有松动。4. 控制这块硬骨头用Arduino驱动MK2的最简固件思路4.1 控制板接线从舵机到Arduino的映射EEZYbotARM MK2 没有官方控制器最通用的做法是用 Arduino Uno 或者 Nano 接到舵机信号线上。每个舵机三根线信号线接到数字引脚电源和地接到外部电源模块。注意共地否则信号参考电压不一致舵机会乱跳。我常用的接线表如下舵机位置信号线引脚电源地线底座D95V外部电源GND公共大臂D105V外部电源GND公共小臂D115V外部电源GND公共夹爪D125V外部电源GND公共信号线可以直接插到 Arduino 的数字引脚但最好在信号线上串联一个 220 欧姆电阻防止舵机异常时把引脚烧掉。电源线不要经过 Arduino直接从 5V 电源接到舵机。共地就是把外部电源的 GND 与 Arduino 的 GND 相连。这个接线很多新手会漏结果舵机要么不动要么疯狂抖动。4.2 最小固件代码用串口控制三个舵机角度核心思路是读取串口发送的角度数据映射到舵机角度然后写入 Servo 库。下面这段代码是我常用的最小固件适合测试机械臂各个关节是否正常。#include Servo.h Servo baseServo; // 底座舵机 Servo armServo; // 大臂舵机 Servo wristServo; // 小臂舵机 void setup() { Serial.begin(9600); baseServo.attach(9); armServo.attach(10); wristServo.attach(11); // 给舵机上电后先置中位 baseServo.write(90); armServo.write(90); wristServo.write(90); delay(500); } void loop() { if (Serial.available() 3) { int baseAngle Serial.read(); // 0-180 int armAngle Serial.read(); int wristAngle Serial.read(); baseServo.write(baseAngle); armServo.write(armAngle); wristServo.write(wristAngle); } }这段代码的思路很简单每轮循环检查串口缓冲区是否有三个字节如果有就按顺序把三个字节解释为三个舵机的角度。注意角度范围是 0 到 180超出会警告。实际发送时可以用 Python 的 pyserial 或者 Arduino 串口监视器以十六进制或十进制值发送。比如要转到 0、45、90就发送 0x00 0x2D 0x5A。参数说明波特率 9600 足够传三个字节而且兼容大多数串口工具。如果你发现舵机反应慢可以提高到 115200但要注意发送方也要同步改。attach函数的第二个参数可以设置脉冲范围对 MG996R 一般不建议改默认 544-2400 微秒就够。4.3 逆运动学要不要做先手动示教再谈轨迹很多人拿到机械臂就想做逆运动学输入一个坐标点让末端自动过去。但对 MK2 这种三自由度平面机械臂逆运动学其实可以有解析解但没必要一开始就做。原因很简单舵机角度分辨率有限齿轮间隙大重复定位精度本来就差你做出来的轨迹会很糙。常见做法是手动示教用上位机或者旋钮把机械臂摆到几个关键位置记录下各舵机的角度然后让机械臂在这些角度之间插值移动。这就是最简单轨迹规划。对毕业设计来说展示“能抓取、能搬运”的目标已经够了。如果非要算逆运动学可以把大臂和小臂看成一个二连杆平面机构用余弦定理求出目标点对应的两个关节角再加上底座旋转角。但要注意舵机的实际角度和理想角度之间存在偏移需要做角度标定。5. EEZYbotARM MK2 常见的五个翻车现场与排查方法5.1 现象打印件开裂打印出的机械臂大臂在安装螺丝时或者运行一段时间后出现层间开裂纹路清晰可见。这通常不是设计问题而是打印参数不对。最常见的原因有两个填充率太低或打印温度偏低。填充率低导致内部结构稀疏受到外力时层间容易分离温度低则层间粘结不足。解决方法是把填充率提到 35% 以上同时把打印温度调到材料区间的中上限PLA 建议 210 到 215 度PETG 建议 240 到 245 度。另外检查切片软件里是否开启了“薄壁填充”如果没开壁厚位置可能全是空心的。5.2 现象舵机抖动、乱转机械臂通电后某几个舵机像抽风一样来回摆动或者发出嗡嗡声。大多数情况下是供电不足。MG996R 启动电流大如果用 Arduino 的 5V 引脚驱动电压跌落严重舵机就会失控。解决方法是改用外部 5V 电源电源输出电流至少 3A并且在舵机电源引脚旁边并联一个 470uF 电容滤波。还有一种情况是共地没接信号线没有参考地舵机接收到的信号就是乱码。检查一下 Arduino 的 GND 和电源模块的 GND 是否相连。5.3 现象机械臂装好后抬不起来大臂能转但一超过水平位置就停在原地或者咔咔响。这是舵机扭矩不够的直接信号。如果你用的是 SG90 或者便宜的 9g 舵机换成 MG996R 基本能解决。如果你的底座舵机用的是 MG996R 但只在水平位置卡住可能是舵机供电电压太低或者是舵机臂打滑。打滑通常是摇臂没有锁紧拧紧舵机中间的螺丝即可。注意别用蛮力拧防止舵机壳滑丝。5.4 现象螺丝孔滑丝拧螺丝时感觉越来越松最后螺丝整个退出。原因是塑料孔里没有金属螺纹直接拧入自攻螺丝或者热熔螺母安装温度不对。解决方法是安装之前用烙铁把 M3 铜螺母压进预留孔温度控制在 230 度左右压入后自然冷却。如果已经滑丝可以用更大一号的自攻螺丝直接拧入或者用环氧树脂胶填充后重新打孔。临时应急的话往孔里塞一点塑料扎带或牙签再拧螺丝能撑一阵子。5.5 现象STL 文件切片软件报错把 STL 文件导入 Cura 或 PrusaSlicer 时提示“模型错误”“非流形边”或者切片后出现大洞。EEZYbotARM MK2 的图纸大多来自多年以前的设计模型质量参差不齐。解决方法是先用 Meshmixer 或 Windows 自带的 3D Builder 进行模型修复。在 3D Builder 里打开 STL点“修复”按钮软件会自动补洞、合并重叠面。修复后再次导出 STL再切片。注意修复后要检查零件尺寸有没有变化特别是安装孔可能被修复成小了一圈需要量一下原始图纸设计尺寸。6. 把MK2当开发平台从手动控制到ROS与轨迹规划的一条进阶路6.1 加装编码器或视觉闭环节怎么改MK2 本身是开环的舵机的角位移精度低动作久了还会累积误差。想让它成为一个正经的开发平台可以考虑在底座加装磁编码器如 AS5600检测实际角度然后 PID 闭环。但机械臂的每个关节都加编码器成本高而且舵机本身没有编码器反馈只能作为改进方向。如果你只是想在毕业设计里做视觉抓取一个常见做法是给机械臂加装一个 USB 摄像头或深度相机识别目标物在图像中的像素坐标然后通过标定把像素坐标映射到机械臂基座坐标。这套路的难点不在于算法而在于机械臂的误差足够大标定了也可能抓不准。我的建议是降低期望只在特定高度抓取且目标物放在一个固定托盘上这样重复精度够用。6.2 用Python写一个简单的三点轨迹在串口控制三个舵机的基础上用 Python 可以很容易实现多点轨迹。import serial import time ser serial.Serial(COM3, 9600) points [(0, 90, 90), (45, 60, 100), (90, 30, 130)] for base, arm, wrist in points: cmd bytes([base, arm, wrist]) ser.write(cmd) time.sleep(1.5) # 给舵机时间到位 ser.close()这段代码依次发送三个角度组合每次发送后等待 1.5 秒。这里的等待时间需要根据舵机速度和转过的角度来调。如果角度变化大等待时间要加长否则舵机还没到位就开始下一个动作会产生轨迹偏差。你在实际使用中可以把等待时间替换为读取舵机反馈如果有编码器或干脆用固定延时加长。更进一步可以在相邻点之间线性插值让动作更平滑。比如从 0 度转到 90 度分成 10 小步每步间隔 50ms这样机械臂的运动会看起来柔和很多。这就是最简单的轨迹规划。6.3 最后一点忠告先玩明白三自由度再想六轴MK2 是一台三自由度机械臂它的价值在于让你花很少的钱把舵机驱动、运动学、控制链路都跑通。很多人在这一步还没走稳就想着去买六轴机械臂做 ROS 仿真、强化学习结果在 Gazebo 里仿真跑得很好真机一接上就全乱套。我自己的习惯是在 MK2 这种低成本的机器上把误差、抖动、调试流程都体会一遍再去碰更贵的平台这样踩坑的成本低得多。每次调完机械臂我都会把当时的舵机中位偏移值、打印参数、供电方案记录下来形成一个备忘。等你做下一个机械臂项目会发现这些东西还在帮你省时间。希望这篇笔记能帮你在 EEZYbotARM MK2 的组装和控制路上少走几个弯路祝你的机械臂动起来的那一下成就感满满。本文还有配套的精品资源点击获取