136浏览
查看: 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来制作各种有趣和有用的项目,如机器人、智能家居、艺术装置等。

【Arduino 动手做】3D打印的机械臂 Remix图1


我设计了一个更大、更强、更长的“meArm”机械臂版本。机器人手臂看起来很有趣,玩起来也更有趣。这种设计为您提供了构建自己的机器人手臂的额外好处。使用 3D 打印机和五金店的零件,我能够提高原始“meArm”套件的举重能力和力量。我添加了一些新功能来纠正我在原始套件中遇到的问题。

要查看原始的“meArm”,请在 Pocket-Sized-Robot-Arm-meArm-V04 上查看他的项目。我从 adafruit.com/products/2012 购买了他的套件,并享受了将其组装和试用的乐趣。我喜欢这个设计,它看起来像工厂里的机械臂。最初的“meArm”是一个很好的套件,但对于任何实际用途来说都有点弱。所以我启动 SketchUp 并预热 3d 打印机。是时候让它变得更大、更强、更长了!我将秤翻了一番,在关节上添加了轴承以抑制运动,并添加了更大的伺服系统来帮助移动较重的物体。我有一些问题需要克服,并且还有更多的改进想要做出,但我正在通往成功项目的道路上。

【Arduino 动手做】3D打印的机械臂 Remix图2

驴友花雕  中级技神
 楼主|

发表于 昨天 08:34

【Arduino 动手做】3D打印的机械臂 Remix

第 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

【Arduino 动手做】3D打印的机械臂 Remix图1

【Arduino 动手做】3D打印的机械臂 Remix图2

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 08:37

【Arduino 动手做】3D打印的机械臂 Remix

第 2 步:组装支架

打印出所需的部件后,就可以开始组装了。让我们从下往上开始。将螺母插入支架底部,然后拧上盖子,使最靠近支架中伺服切口的伺服孔。展台是我进行第一次改进的地方。在套件中,伺服器在支架中有一些晃动,我的很好而且很紧,带有安装孔,使它们更加安全。第二个改进是盖子上的小块。它们有助于防止在捡起重物时手臂倾斜。

【Arduino 动手做】3D打印的机械臂 Remix图1

【Arduino 动手做】3D打印的机械臂 Remix图2

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 08:44

【Arduino 动手做】3D打印的机械臂 Remix

第 3 步:组装底座


底座需要一个拧入底部的伺服喇叭。还有一个中心支柱,需要 4 个螺母压入其中。中心支柱使用四个螺钉安装到底座中。您可能需要在构建中拆下中心支柱,以将锁定螺钉插入侧面伺服喇叭。这就是为什么我把它变成可拆卸的。

【Arduino 动手做】3D打印的机械臂 Remix图3

【Arduino 动手做】3D打印的机械臂 Remix图1

【Arduino 动手做】3D打印的机械臂 Remix图2


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 08:46

【Arduino 动手做】3D打印的机械臂 Remix

第 4 步:组装手臂(肘部)

现在开始研究手臂。首先,让我们连接弯头的零件。长臂需要一个压入螺母。那么短臂将需要两个轴承。轴承压入并停止。挡块是连接到长臂的一侧。将螺钉插入轴承并连接到长臂上的螺母上。将伺服喇叭连接到伺服臂。然后伺服臂将需要另一个螺母,并将连接到短臂的另一端。

【Arduino 动手做】3D打印的机械臂 Remix图2

【Arduino 动手做】3D打印的机械臂 Remix图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 08:48

【Arduino 动手做】3D打印的机械臂 Remix

第 5 步:组装臂(中心梁)

中心梁分为两部分(中心梁和中心梁顶部)。顶部需要四个螺母压入。还需要将伺服喇叭和一个压入螺母拧到中心梁上。这就是我在 3D 设计零件时犯的错误。这个伺服喇叭需要与其他两个倒置拧紧。这不会对手臂力量产生任何影响。现在使用 1-3/4 英寸的螺丝连接这两个部分。在打印零件后,我注意到了我的错误,并调整了所有其他零件以适应这个错误。如果我要重新设计,我会修复这个错误。你打印你学习。

【Arduino 动手做】3D打印的机械臂 Remix图1

【Arduino 动手做】3D打印的机械臂 Remix图2

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 08:51

【Arduino 动手做】3D打印的机械臂 Remix

第 6 步:组装手臂(连接肘部)

将轴承插入长臂的中间。然后拧到中心梁上与伺服喇叭相反的一侧的中心梁上。完成后,伺服喇叭齿轮孔都应指向远离中心梁的齿轮。

【Arduino 动手做】3D打印的机械臂 Remix图2

【Arduino 动手做】3D打印的机械臂 Remix图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 08:52

【Arduino 动手做】3D打印的机械臂 Remix

第 7 步:组装手臂(构建肩部)

这可能有点棘手,因为手臂看起来一样,但每个手臂都略有不同。您将需要三重支撑、一个短臂、支撑臂和抓手臂。夹持臂的一端稍薄。支撑臂在同一侧有两个轴承孔。将两个螺母压入三重支架中。然后使用轴承和螺钉将支撑臂连接到三重支架的长端。接下来,将短臂连接到三重支架上的另一个螺母中。抓手臂和三重支撑需要轴承。小心将夹持臂放在三重支架上的方式。如果将其倒置,则无法正确连接到夹头。另一端的轴承侧应朝下。使用 3/4 英寸长的螺钉,将垫圈放在三重支架和夹持臂上的两个轴承之间。这将在下一步中拧到中心梁上。

【Arduino 动手做】3D打印的机械臂 Remix图1

【Arduino 动手做】3D打印的机械臂 Remix图2

【Arduino 动手做】3D打印的机械臂 Remix图3

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 08:54

【Arduino 动手做】3D打印的机械臂 Remix

第 8 步:组装手臂(连接肩部)

现在将肩部拧到中心梁上。这将连接到与伺服喇叭同一侧的中心光束上。如果您在照片中注意到我的夹持臂倒置(见注释)。因此,如果您的照片与照片中的照片相似,则需要将其翻转过来。否则,请继续进行下一步。

【Arduino 动手做】3D打印的机械臂 Remix图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 08:56

【Arduino 动手做】3D打印的机械臂 Remix

第 9 步:组装手臂(安装夹持器头)

夹头需要三个螺母压配合。还需要将三个轴承放入臂中,并使用螺钉全部连接。

【Arduino 动手做】3D打印的机械臂 Remix图1

【Arduino 动手做】3D打印的机械臂 Remix图2

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 08:57

【Arduino 动手做】3D打印的机械臂 Remix

第 10 步:组装手臂(将手臂连接到底座)

机械臂已准备好连接到底座。首先将支撑臂连接到底座上。这个螺母是从底座背面伸出的那个。然后使用轴承和螺钉将臂连接到底座上的中心支柱上。


【Arduino 动手做】3D打印的机械臂 Remix图1

【Arduino 动手做】3D打印的机械臂 Remix图2

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 08:58

【Arduino 动手做】3D打印的机械臂 Remix

第 11 步:组装手臂(插入伺服)

伺服器滑入底座侧面的孔中,然后小心地将伺服臂拨动到相应的伺服喇叭中。这部分需要一些耐心。然后将舵机插入支架并安装底座。

【Arduino 动手做】3D打印的机械臂 Remix图2

【Arduino 动手做】3D打印的机械臂 Remix图1

【Arduino 动手做】3D打印的机械臂 Remix图3

【Arduino 动手做】3D打印的机械臂 Remix图4

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 09:01

【Arduino 动手做】3D打印的机械臂 Remix

第 12 步:最终的想法和改进

组装后,手臂非常坚固和坚硬。所有的关节都很容易移动,不会在哪里移动。原来的 7 英寸伸展我的是 14 英寸。我添加了一些钢腿作为镇流器,看起来很卑鄙。有些人把它比作一只邪恶的蜘蛛。我没有像原来的那样的主动抓手,因为我使用的是电磁铁。如果我要使用夹爪,我想我会改变设计以拥有更多的手指或使用 DIY 通用机器人夹爪。

【Arduino 动手做】3D打印的机械臂 Remix图2

【Arduino 动手做】3D打印的机械臂 Remix图1

【Arduino 动手做】3D打印的机械臂 Remix图3

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 09:03

【Arduino 动手做】3D打印的机械臂 Remix

伺服故障:
我拍的舵机来自 adafruit.com,并且有一根额外的线用于位置反馈。我打算将它们用于学习臂(用手移动它,它会记录运动并回放)。但是舵机的强度不足以在完全伸展时移动手臂。所以我从我放在零件清单上的 polou.com 切换到了一些高扭矩的。他们还没有进来,所以我很高兴看到他们会怎么做。权衡是他们没有反馈,所以对我来说没有学习手臂。我想如果我从中心梁上去除一些塑料,原来的伺服系统可能会工作。

如果我构建另一个,我会做出更改:
底座限制了总行程,因此我会去掉正面和背面。
更新所有零件的半径,使其匹配(外观)
可互换的夹头,用于固定不同的夹持器
模型中内置的 Wire 管理
看台上更强壮的支腿
LED 只是因为
通过添加孔(三角形)减轻所有部件的重量
某种电线保持器,以防止电线在旋转时扭曲
我认为使用带齿轮的步进电机可以增加承重能力并在底座上提供 360 度旋转。(我不知道这可能是个坏主意)
还有更多小的变化我还没有发现。

【Arduino 动手做】3D打印的机械臂 Remix图3

【Arduino 动手做】3D打印的机械臂 Remix图4

【Arduino 动手做】3D打印的机械臂 Remix图1

【Arduino 动手做】3D打印的机械臂 Remix图5

【Arduino 动手做】3D打印的机械臂 Remix图2

【Arduino 动手做】3D打印的机械臂 Remix图6

【Arduino 动手做】3D打印的机械臂 Remix图7

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 09:07

【Arduino 动手做】3D打印的机械臂 Remix

项目开源代码

  1. /* MeArm Wii Classic game pad - York Hackspace May 2014
  2. * Using inverse kinematics with Wii Classic game controller
  3. * First stick moves claw forwards, backwards, left and right
  4. * Second stick moves claw up and down (and left and right again).
  5. * Shoulder buttons or A & B buttons open and close the claw.
  6. * The home button returns to starting point.
  7. *
  8. * Uses MeArm library by York Hack Space from https://github.com/yorkhackspace/meArm
  9. * Uses ClassicController library from https://github.com/wayneandlayne/Video-Game-Shield
  10. *
  11. * Connect the Wii Classic gamepad via a breakout such as
  12. * http://www.phenoptix.com/collections/breakout-board/products/wiichuck-a-wii-nunchuck-break-out-board-by-seeed-studio
  13. *
  14. * Pins:
  15. * Arduino    WiiChuck   Base   Shoulder  Elbow    Claw
  16. *    GND         -     Brown     Brown   Brown     Brown
  17. *     5V         +       Red       Red     Red       Red
  18. *     A4         d
  19. *     A5         c
  20. *     11              Yellow
  21. *     10                        Yellow
  22. *      9                                Yellow
  23. *      6                                          Yellow
  24. */
  25. #include "MeArm.h"
  26. #include <Servo.h>
  27. #include <ClassicController.h>
  28. int basePin = 11;
  29. int shoulderPin = 10;
  30. int elbowPin = 9;
  31. int clawPin = 6;
  32. MeArm arm;
  33. ClassicController cc;
  34. void setup() {
  35.   arm.begin(basePin, shoulderPin, elbowPin, clawPin);
  36.   cc.begin(WII_PLAYER_1);
  37.   cc.joy_left_set_scaled_min_max(0, 99, 0, 99);
  38.   cc.joy_right_set_scaled_min_max(0, 99, 0, 99);
  39. }
  40. void loop() {
  41.   cc.update();
  42.   float dx = 0;
  43.   float dy = 0;
  44.   float dz = 0;
  45.   float dg = 0;
  46.   if (cc.joy_left_left() || cc.joy_right_left())
  47.     dx = -5.0;
  48.   else if (cc.joy_left_right() || cc.joy_right_right())
  49.     dx = 5.0;
  50.   if (cc.joy_left_up())
  51.     dy = 5.0;
  52.   else if (cc.joy_left_down())
  53.     dy = -5.0;
  54.   if (cc.joy_right_up())
  55.     dz = 5.0;
  56.   else if (cc.joy_right_down())
  57.     dz = -5.0;
  58.   if (cc.button_b() || cc.shoulder_left() > 16)
  59.     arm.openClaw();
  60.   else if (cc.button_a() || cc.shoulder_right() > 16)
  61.     arm.closeClaw();
  62.   if (cc.button_home()) {
  63.     arm.moveToXYZ(0, 100, 50);
  64.   }
  65.   if (!(dx == 0 && dy == 0 && dz == 0))
  66.     arm.snapToXYZ(arm.getX() + dx, arm.getY() + dy, arm.getZ() + dz);
  67.   
  68.   delay(50);
  69. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 09:15

【Arduino 动手做】3D打印的机械臂 Remix

相关驱动库及开源代码

【Arduino 动手做】3D打印的机械臂 Remix图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 09:17

【Arduino 动手做】3D打印的机械臂 Remix

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 使用逆运动学移动

用法
  1. #include "MeArm.h"
  2. #include <Servo.h>
  3. MeArm arm;
  4. void setup() {
  5.   arm.begin(11, 10, 9, 6);
  6.   arm.openClaw();
  7. }
  8. void loop() {
  9.   //Go up and left to grab something
  10.   arm.moveToXYZ(-80,100,140);
  11.   arm.closeClaw();
  12.   //Go down, forward and right to drop it
  13.   arm.moveToXYZ(70,200,10);
  14.   arm.openClaw();
  15.   //Back to start position
  16.   arm.moveToXYZ(0,100,50);
  17. }
复制代码



包括三个使用示例:

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()。


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 09:20

【Arduino 动手做】3D打印的机械臂 Remix

附录:
项目链接: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



开源代码、驱动库和3D打印文件.zip

1.46 MB, 下载次数: 0

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 昨天 09:22

【Arduino 动手做】3D打印的机械臂 Remix

【Arduino 动手做】3D打印的机械臂 Remix图1


【Arduino 动手做】3D打印的机械臂 Remix图3

【Arduino 动手做】3D打印的机械臂 Remix图2
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail