136| 18
|
[项目] 【Arduino 动手做】3D打印的机械臂 Remix |
Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来编写、编译和上传代码到Arduino板上。Arduino还有一个丰富的库和社区,你可以利用它们来扩展Arduino的功能和学习Arduino的知识。 Arduino的特点是: 1、开放源码:Arduino的硬件和软件都是开放源码的,你可以自由地修改、复制和分享它们。 2、易用:Arduino的硬件和软件都是为初学者和非专业人士设计的,你可以轻松地上手和使用它们。 3、便宜:Arduino的硬件和软件都是非常经济的,你可以用很低的成本来实现你的想法。 4、多样:Arduino有多种型号和版本,你可以根据你的需要和喜好来选择合适的Arduino板。 5、创新:Arduino可以让你用电子的方式来表达你的创意和想象,你可以用Arduino来制作各种有趣和有用的项目,如机器人、智能家居、艺术装置等。 ![]() 我设计了一个更大、更强、更长的“meArm”机械臂版本。机器人手臂看起来很有趣,玩起来也更有趣。这种设计为您提供了构建自己的机器人手臂的额外好处。使用 3D 打印机和五金店的零件,我能够提高原始“meArm”套件的举重能力和力量。我添加了一些新功能来纠正我在原始套件中遇到的问题。 要查看原始的“meArm”,请在 Pocket-Sized-Robot-Arm-meArm-V04 上查看他的项目。我从 adafruit.com/products/2012 购买了他的套件,并享受了将其组装和试用的乐趣。我喜欢这个设计,它看起来像工厂里的机械臂。最初的“meArm”是一个很好的套件,但对于任何实际用途来说都有点弱。所以我启动 SketchUp 并预热 3d 打印机。是时候让它变得更大、更强、更长了!我将秤翻了一番,在关节上添加了轴承以抑制运动,并添加了更大的伺服系统来帮助移动较重的物体。我有一些问题需要克服,并且还有更多的改进想要做出,但我正在通往成功项目的道路上。 ![]() |
第 1 步:零件清单 1、硬件材料: 18 ~ 5/8“ 长 M4 螺丝 1 ~ 3/4“ 长 M4 螺丝 3 ~ 1-3/4“ 长 M4 螺丝 22 ~ M4 螺母(我用的是里面有尼龙的螺母) 3 ~ 小垫圈 12 ~ 轴承 624ZZ 13mm 外径 x 4mm 内径 amazon.com 12 ~ 伺服喇叭用小螺丝 2、3D 打印部件(附件下载): 基础件 巴塞中心支柱 中心梁 中梁顶部 抓取臂 抓握 长臂 伺服臂 短臂(两个) 站立 支架盖 支持臂 三支持件 3、工具: Pilips 螺丝刀 3D 打印机 研磨机(缩短一些螺丝) 4、电子学 3 ~ 伺服电机(如果你需要一个活动夹子,需要4个) 3 ~ 伺服延长线 1 ~ 微控制器 我使用了Arduino ![]() ![]() |
第 7 步:组装手臂(构建肩部) 这可能有点棘手,因为手臂看起来一样,但每个手臂都略有不同。您将需要三重支撑、一个短臂、支撑臂和抓手臂。夹持臂的一端稍薄。支撑臂在同一侧有两个轴承孔。将两个螺母压入三重支架中。然后使用轴承和螺钉将支撑臂连接到三重支架的长端。接下来,将短臂连接到三重支架上的另一个螺母中。抓手臂和三重支撑需要轴承。小心将夹持臂放在三重支架上的方式。如果将其倒置,则无法正确连接到夹头。另一端的轴承侧应朝下。使用 3/4 英寸长的螺钉,将垫圈放在三重支架和夹持臂上的两个轴承之间。这将在下一步中拧到中心梁上。 ![]() ![]() ![]() |
伺服故障: 我拍的舵机来自 adafruit.com,并且有一根额外的线用于位置反馈。我打算将它们用于学习臂(用手移动它,它会记录运动并回放)。但是舵机的强度不足以在完全伸展时移动手臂。所以我从我放在零件清单上的 polou.com 切换到了一些高扭矩的。他们还没有进来,所以我很高兴看到他们会怎么做。权衡是他们没有反馈,所以对我来说没有学习手臂。我想如果我从中心梁上去除一些塑料,原来的伺服系统可能会工作。 如果我构建另一个,我会做出更改: 底座限制了总行程,因此我会去掉正面和背面。 更新所有零件的半径,使其匹配(外观) 可互换的夹头,用于固定不同的夹持器 模型中内置的 Wire 管理 看台上更强壮的支腿 LED 只是因为 通过添加孔(三角形)减轻所有部件的重量 某种电线保持器,以防止电线在旋转时扭曲 我认为使用带齿轮的步进电机可以增加承重能力并在底座上提供 360 度旋转。(我不知道这可能是个坏主意) 还有更多小的变化我还没有发现。 ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
项目开源代码
|
MeArm Arduino MeArm Robotics 的逆向运动学控制库 MeArm with Arduino。 MeArm 有四个迷你舵机 - 一个用于爪子,一个用于旋转底座、肩关节和肘关节。但是,当你对将爪子放置在正常笛卡尔 (x, y, z) 坐标中的位置更感兴趣时,用伺服角度指定事物并不是很方便。 该库解决了发送到伺服系统所需的角度,以满足给定位置,从而使编码变得更加简单。 坐标以毫米为单位从底座旋转中心开始测量。初始“起始”位置位于 (0, 100, 50),即底座前方 100 毫米,离地 50 毫米。 此库存在各种其他版本: 带有 Adafruit PWM 驱动板的 Arduino 带有 Adafruit PWM 驱动板的 Raspberry Pi Beaglebone 黑色 MeArm 使用逆运动学移动 用法
包括三个使用示例: IKTest 遵循以笛卡尔坐标定义的预编程路径 JoystickIK 使用两个模拟拇指摇杆在笛卡尔空间中引导爪子 MeArm_Wii_Classic 使用通过 I2C 连接的 Wii Classic 游戏手柄来引导爪子 安装 将此存储库克隆到本地计算机,并将其作为“MeArm”放在 Arduino 库文件夹中。 MeArm 对象的类方法 void begin(int pinBase, int pinShoulder, int pinElbow, int pinClaw) - 用于驱动舵机的四个支持 PWM 的引脚。在对 MeArm 实例进行任何其他调用之前,必须在 setup() 中调用 Begin。 void openClaw() - 打开爪子,放开它手里的任何东西 void closeClaw() - 关闭爪子,可能会在这样做时抓住并持有某物 void moveToXYZ(float x, float y, float z) - 从当前点沿直线移动到请求的位置 void snapToXYZ(float x, float y, float z) - 将伺服角度设置为立即到达请求的点,而不关心手臂摆动通过什么路径到达那里 - 比 moveTo 更快但更难预测 void moveTo(float theta, float r, float z) - 从当前点沿直线移动到圆柱形极坐标中请求的位置 void snapTo(float theta, float r, float z) - 将伺服角度设置为立即到达请求点,而不关心机械臂摆动通过什么路径到达那里 - 比圆柱形极坐标中的 moveTo 更快但更难预测 bool isReachable() - 如果机械臂理论上可以到达该点,则返回 true float getX() - 当前 x 坐标 float getY() - 当前 y 坐标 float getZ() - 当前 z 坐标 void end() - 禁用所有伺服电机。如果以后想再次继续使用 MeArm,请再次调用 begin()。 |
附录: 项目链接:https://www.instructables.com/My-meArm-Bigger-Stronger-Longer/ 项目作者:Jazzmyn (爵士明) 3D打印文件:https://www.thingiverse.com/thing:499654 开源代码:https://github.com/phenoptix/meArm-1/tree/master |
1.46 MB, 下载次数: 0
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed