23浏览
查看: 23|回复: 2

[项目] 【Arduino 动手做】模块化 5 连杆机器人

[复制链接]
一个具有可变几何形状的 5 杆机器人,用于根据其尺寸动态地说明机器人空间工作的变化。
这是一个 5 杆机器人,可以重新组装以离散步骤更改其尺寸,例如手臂长度或伺服距离,以通过其代码显示这些变化如何影响其任务空间,该代码可以使用所述任务空间的绘图控制机器人运动通过手动选择其上的点。该机器人主要用于教育目的,以便轻松理解机器人中的任务空间和 c 空间的概念,但其模块化设计允许添加不同的效应器以赋予机器人实际目的。

这款 5 杆机器人在设计时考虑了模块化,因此您不仅可以相对轻松地为机器人制作不同的组件,还可以根据其当前几何形状轻松可视化其任务空间的变化。你可以以 2 厘米的步长改变每个手臂的长度,也可以以相同的步长改变舵机之间的距离,然后控制机器人的程序会告诉你机器人可以移动的地方。您还可以通过简单地单击机器人的任务空间来指定要移动到的位置。此外,该机器人使用 Arduino 板来控制电磁铁,该电磁铁可以在同一程序上进行控制。

这个机器人的主要目的主要是教育,展示给定其尺寸的任务空间和 c-cpace 在机器人上如何变化,但也将这种方式集成到真正的机器人中,以便更好地理解它。

关于代码,这里有 4 个 python 程序,以及从 Arduino IDE 的 examples 文件夹中借来的 Arduino sketch:

cinematica_scara.py 包含计算机器人正向和逆向运动学的函数,即分别给定角度的机器人最终位置和给定位置的角度。
plot_task_space.py 包含用于在给定特定几何的情况下绘制可能的角度和点的函数。
com_iman.py具有将信号发送到 Arduino 板并控制电磁体的代码
Scara.py 编译所有内容并与伺服控制器和 Arduino 板进行通信,同时还将所有内容转换为一个简单的用户友好界面。
最后,PhysicalPixel.ino 允许 Scara.py 通过读取字符串并更改其引脚 ine 的数字输出来控制电磁铁,从而与 Arduino 建立通信。

【Arduino 动手做】模块化 5 连杆机器人图1

【Arduino 动手做】模块化 5 连杆机器人图2

驴友花雕  中级技神
 楼主|

发表于 11 小时前

【Arduino 动手做】模块化 5 连杆机器人

第 1 步:验证一切是否正常工作
注意:以下步骤都不需要将电源连接到任何开发板,但如果您想这样做,请在将开发板插入 PC 并打开端口之前将电源连接到开发板,因为这可能会导致 PC 短路和/或部分烧毁开发板(我们经历了两次, 所以请不要)

插入 Arduino 板并打开 Arduino IDE (https://www.arduino.cc/),然后转到工具,然后转到端口,并检查您连接 Arduino 的端口名称是否包含“(arduino)”,否则 python 程序将无法识别它。然后,从 Basics examples 文件夹上传 blink 草图。验证它是否已成功上传,以及 Arduino 板的 LED 是否正常闪烁。

然后,将 Communication examples 文件夹中的 PhysicalPixel 草图上传到 Arduino 板。您也可以在此项目的文件中找到此草图。检查它是否已正确上传并断开 Arduino 板的连接。

现在,从 Lewansoul LX-16A 文档(http://bit.ly/2rJshh6 LX-16A 文件夹中)将总线伺服端子 V1.7 安装到您的 PC 上,并将总线伺服控制器插入您的 PC。运行 Bus Servo Terminal 程序,您应该会看到如下内容:

单击 COM 并打开将控制器连接到的端口,然后单击 Open port。如果舵机工作正常,舵机的 LED 应该会亮起,您应该能够看到舵机的 ID 和舵机在当前状态下的当前位置。如果没有电源,如果你在伺服测试中改变位置,舵机不会移动,但这不是必需的,因为我们将在 python 程序中这样做。现在,转到 参数。您应该看到如下内容:

将舵机的 ID 更改为您稍后将在代码中使用的 ID(左舵机和右舵机的 ID 分别为 4 和 6,但您可以稍后在代码中编辑),然后单击 Apply。完成后,您可以单击关闭端口,连接第二个伺服并重复,并确保签署与珍贵 ID 不同的 ID。即使您不使用代码中的 ID,您仍然需要为每个伺服器分配不同的 ID 才能同时使用它们。完成后,再次单击 关闭端口,然后断开所有内容并关闭程序。

第 2 步:构建自己的搞笑机器人
首先,使用 M5 螺钉和螺母将伺服底座固定到底座上,如下所示。如果您使用额外的螺钉作为支撑,请将较大的螺钉放在角落上,如下图所示。如果您使用其他任何东西作为支撑(如瓶盖),请将它们粘在额外螺钉所在的下方:

然后,在伺服系统上,使用不同长度的 M3 螺钉和每个螺钉的螺母将肩部拧到每个伺服器上,将螺母放在伺服器和肩部底部之间。

然后,将舵机连接到控制器。伺服系统可以通过在其下方使用第二个端口来串行连接,而不是为每个伺服器使用一个端口,在这种情况下,在组装所有东西时允许控制器板进行更多移动。

现在,将它们放在底座上,并确保肩膀没有完全拧紧,以便您以后调整它们。此外,记下 BEHIND 中伺服系统的 ID 和位置,以便根据需要在代码中编辑它们。

然后到手臂:取 2 个手臂的一半、一个轴承、一个销、每个手臂的一个弯头和至少 4 个螺母,然后像这样组装它们。确保所有东西都紧紧配合,尤其是销钉。请注意,您只需将坚果放在臂的一半之一上,如果您打算使用最少数量的坚果,请在每个臂的一半的两端放置 2 个坚果:

有了这个,使用 M3 螺丝把所有东西放在一起,每端 2 个:

这将是手臂的基本组件,但现在把这个放在一边。

现在,再重复两次,但每只手臂只使用一个针肘,然后将它们拧到肩膀上。确保针在上臂上向下,在下臂上向上,如下所示:

现在,组装电磁铁弯头。先将电磁铁放入内部,对齐其电缆,然后将其拧到弯头并将轴承放在顶部。

使用剩余的轴承弯头和电磁铁重复机械臂组件。拿起剩下的两个臂,将它们放在每一侧,并确保在组装时销钉不会滑入其弯头:

最后,连接每个臂的末端,并确保销钉不会滑动。

第 3 步:电子元件
首先,将降压连接到电源,打开,拧紧降压顶部的金螺丝,将输出电压调节到 6V,同时用万用表检查。

现在,关闭电源并按如下方式进行连接,但不要将 USB 数据线连接到您的 PC。

请注意,您也可以通过更换条带上的连接来使用 2 节 6V 电池代替电源和降压电池:将一块电池单独用于伺服控制器,另一块用于继电器和电磁电路。

此时您可以打开电源以验证板和舵机是否打开,并且没有任何东西开始自行燃烧,以防万一。

第 4 步:代码
下载并打开您喜欢的代码编辑器软件(例如 vs code)上的代码文件夹,然后打开 Scara.py 文件。然后,检查 Scara.py 文件中的 ID 是否与您在伺服系统上设置的 ID 匹配。这些 ID 位于代码的第一行:

代码上的默认 ID 为左伺服器 (id_derecho) 的 4 和右伺服器 (id_izquierdo) 的 6 。如果您使用了不同的 ID 或按不同的顺序,请直接在代码上编辑它们。

您现在可能想要编辑的另一个参数是伺服系统的速度。在主循环之前的最后几行代码中,有 velp 参数,它表示两个伺服系统上每毫秒的步数。它默认设置为 0.5,这不是特别慢,但将其提高到 0.7 足够快,机器人不会崩溃,而 0.2 则足够慢,让您有足够的时间断开任何东西。

您还可以更改代码上的默认尺寸,以 l11、l12、、l21、l22 和 d_motor 表示,它们代表右肱骨、右前臂、左肱骨、左前臂和伺服系统中心之间的距离,均以厘米为单位。

现在,打开电源,然后才将板子连接到您的 PC 并运行 Scara.py 文件。如果一切正常,代码应该可以正常运行,并且应该在控制台中请求命令。

第一个命令 “SS” 允许您更改代码用于计算任务空间的尺寸(以 cm 为单位)以及它发送到伺服器的角度。键入后,程序将按顺序询问伺服器之间的距离、右肱骨、右前臂、左肱骨和右前臂的长度。这是为了在重新组装机器人后调整代码,这是它的主要目的。

下一个命令 “SW” 将向您显示 2 个图:c 空间,即电机在不撕裂自身的情况下可以移动到的角度(以度为单位)和任务空间,这是机器人可以到达的位置。

下一个,“DS”,通过直接将角度(以度为单位)从连接伺服系统的线按顺序发送到左右伺服器来控制伺服器。如果您发送的角度会撕裂机器人,则代码不会发送它们,而是会再次请求命令。

有了这个,现在您可以发送 90° 和 90°,等待伺服系统移动,并拧紧肩部的螺栓,使手臂笔直且彼此平行。

下一个命令 “IS” 允许您以任何顺序直接单击任务空间图上的点,然后按该顺序将它们发送到伺服器,转到每个点并等待 3 秒,然后再转到下一个点。

接下来的 2 个命令,“agarra” 和 “suelta”,分别打开和关闭电磁铁。最后,“Comandos” 以西班牙语打印前面的命令及其解释,而 “END” 停止代码。确保每次停止使用机器人时和断开 USB 电缆之前键入 END,因为它会关闭与板的串行通信,而且(至少在 vscode 中)它不会允许您运行任何其他作,直到您这样做。

就是这样!您现在可以控制机器人。

【Arduino 动手做】模块化 5 连杆机器人图16

【Arduino 动手做】模块化 5 连杆机器人图1

【Arduino 动手做】模块化 5 连杆机器人图4

【Arduino 动手做】模块化 5 连杆机器人图5

【Arduino 动手做】模块化 5 连杆机器人图6

【Arduino 动手做】模块化 5 连杆机器人图7

【Arduino 动手做】模块化 5 连杆机器人图9

【Arduino 动手做】模块化 5 连杆机器人图8

【Arduino 动手做】模块化 5 连杆机器人图11

【Arduino 动手做】模块化 5 连杆机器人图10

【Arduino 动手做】模块化 5 连杆机器人图13

【Arduino 动手做】模块化 5 连杆机器人图2

【Arduino 动手做】模块化 5 连杆机器人图3

【Arduino 动手做】模块化 5 连杆机器人图15

【Arduino 动手做】模块化 5 连杆机器人图14

【Arduino 动手做】模块化 5 连杆机器人图12

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 11 小时前

【Arduino 动手做】模块化 5 连杆机器人

回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail