回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【Arduino 动手做】3D 打印的 Theo Jansen 风格的八足章鱼机器人 简单

头像 驴友花雕 2025.05.26 8 0

Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来编写、编译和上传代码到Arduino板上。Arduino还有一个丰富的库和社区,你可以利用它们来扩展Arduino的功能和学习Arduino的知识。

Arduino的特点是:
1、开放源码:Arduino的硬件和软件都是开放源码的,你可以自由地修改、复制和分享它们。
2、易用:Arduino的硬件和软件都是为初学者和非专业人士设计的,你可以轻松地上手和使用它们。
3、便宜:Arduino的硬件和软件都是非常经济的,你可以用很低的成本来实现你的想法。
4、多样:Arduino有多种型号和版本,你可以根据你的需要和喜好来选择合适的Arduino板。
5、创新:Arduino可以让你用电子的方式来表达你的创意和想象,你可以用Arduino来制作各种有趣和有用的项目,如机器人、智能家居、艺术装置等。

 

zzz.jpg
zzz-0.jpg

大家好!在这个项目中,我将向您展示一个令人惊叹的 Octopod 风格的八足机器人!它完全由 3D 打印部件制成,并采用受 Jansen 机制启发的酷炫机制移动。两个简单的直流电机为支腿提供动力,使它们能够以平稳和平衡的方式移动。使用简单的红外传感器电路和控制器来控制机器人。我将通过逐步组装 3D 部分来开始项目,就像拼图一样,所以让我们开始吧!

 

00.jpg
00-0.png

## 组件

直流减速电机
2 位英雄 
M3 螺栓和螺母
1 倍 
Arduino 板
1 倍 
L293D 电机驱动器扩展板
1 倍 
3S 7.4V 锂离子电池
1 倍 
所需的 3D 部件
1 倍

## 使用的工具、APP 软件等

Arduino IDE
3D 打印机(通用)
烙铁(通用)
焊锡丝,无铅
 

第 1 步:3D 零件和硬件

该项目总共由 79 个 3D 部件组成,但不要被吓倒,主要部件总共有 55 个部件,厚度约为 3 毫米。其余 24 件是夹垫圈 3D 零件。我用 Bamboo Lab A1 进行了标准打印,即中等质量,所有部件的打印时间大约需要 6 小时。

我在打印零件时避免使用单一颜色,我的目标是确保在组装过程中可以轻松区分接头和主要零件。起初我打印了一种颜色并完成了组装,然后我意识到观众或读者很难区分零件,所以我希望不同颜色的零件能让您在组装过程中更轻松。

在组装 3D 零件的过程中,使用了 2 个简单的直流减速电机作为硬件,通常作为带轮子的套装出售,在制造商中非常受欢迎。从技术上讲,它通常在 5 到 6 伏的范围内运行,速度约为 200 到 255 RPM。

此外,在组装过程中总共使用了 18 个螺栓和 4 个螺母。尺寸如下:

8 个 M3 12MM 螺栓(用于底座、顶部和侧面)
4 件 M3 25MM 螺栓 (用于直流电机)
4 个 M3 螺母 (用于直流电机)
2 件 M3 20MM 螺栓(用于斧头驱动)
2 件 M3 16MM 螺栓(用于斧头驱动)
2 件 M2 12MM 螺栓 (用于斧头 MTR)

 

01.jpg
01-.png

第 2 步:组装机箱

在本节中,我们将首先组装机箱。首先,使用 M3 12MM 螺栓将左右侧模型固定到 Base 模型上。但是,在不完全拧紧任何一侧的螺栓的情况下,放置 Upper 模型并通过拧紧所有螺栓来完成组装。

 

02 (1).png
02 (2).png
02 (3).png
02 (4).png
02 (5).png
02 (6).png
02 (7).png

第 3 步:安装 DC 齿轮电机

在本节中,我们将安装直流减速电机,首先将 4 个 M3 25MM 螺栓插入右侧和左侧的螺栓输入端。然后将名为 axe-mtr.stl 的模型放在直流电机轴上。将直流电机拧到机箱上的 M3 25MM 螺栓上,然后安装 M3 螺母拧紧螺栓。将包含名为 axe-drive.stl 的零件的模型文件中的长轴零件插入电机(axe-mtr 型号)中,并用 M2 12MM 螺钉拧紧固定。现在我们可以继续进行腿部组装。

 

03 (1).png
03 (2).png
03 (3).png
03 (4).png
03 (5).png
03 (6).png
03 (7).png
03 (8).png
03 (9).png
03 (10).png
03 (11).png
03 (12).png
03 (13).png
03 (14).png
03 (15).png
03 (16).png
03 (17).png

第 4 步:连接腿

此部分总共需要 8 个 Leg (leg.stl) 零件,每侧 4 个。为了连接第一条腿(即图中紫色的腿,第一个连接到电机的腿),使用了称为 inks_1.stl 的关节模型。这些轴较短。如图所示,将连接部件插入腿部部件中,然后使用夹子 clip-washer.stl 固定它们。

接下来,使用名为 inks_2.stl 的关节模型来连接第二条腿(即图像中深绿色的部分,将与紫色腿重叠的部分)。这些轴较长。如图所示,将连接部件插入腿部部件中,并使用 clip-washer.stl 固定夹子。

 

04 (1).png
04 (2).png
04 (3).png
04 (4).png
04 (5).png
04 (6).png
04 (7).png
04 (8).png
04 (9).png
04 (10).png
04 (11).png
04 (12).png

 第 5 步:在机箱上放置和组装支腿

事实上,以书面形式解释这一部分可能有点复杂,因此我为一些共享图像添加了标记以使其更容易(当然,您也可以参考本节的视频)。

在机箱的两侧,有两个方形的安装孔,用于我们之前连接到支腿上的 axe-main.stl 部件。如图所示,将 axe-main.stl 零件插入这些孔中,然后将支腿插入机箱。同时,您应该将带有圆形孔的零件从紫色支脚中的 inks_1.stl 零件插入电机轴。带有圆形孔的深绿色腿部分应在此位置保持自由,稍后将插入。然后以相同的方式将第二个支腿插入机箱。

将紫色零件(在 inks_1.stl 中)安装到电机轴上后,将 axe-drive.stl 中的圆形隔轴部件插入电机轴,紫色零件在底部。将包含名为 axe-drive.stl 的零件的模型文件中的短轴轴零件放在先前固定的电机轴上,并用 M3 20MM 螺栓固定。

现在,将深绿色腿上带有圆形孔的腿件放在短轴的车轴上,然后将带中心孔的圆形垫圈放置在 axe-drive.stl 模型文件中,用 M3 16MM 螺栓固定。

最后,将 clip-washer-bg.stl 零件连接到机箱顶部和底部的 axe-main.stl 零件的末端。就这样,机器人的 3D 零件组装现在已经完成!

 

05 (1).png
05 (2).png
05 (3).png
05 (4).png
05 (5).png
05 (6).png
05 (7).png
05 (8).png
05 (9).png
05 (10).png
05 (11).png
05 (12).png
05 (13).png
05 (14).png
05 (15).png
05 (16).png
05 (17).png
05 (18).png
05 (19).png
05 (20).png

 第 6 步:电路

现在机器人的 3D 部件已经完成,我们可以看看电路。您实际上可以使用 Arduino 板和电机驱动器扩展板创建电路,但在这个项目中,我将使用我自己设计的二合一电路板。我在以前的项目中使用了这个电路板,它受到了我的追随者的非常赞赏。

所以我做了一些更新,并在 PCBWay 项目页面上分享了最终版本。这种板设计简单但非常高效,它结合了电机驱动器和微控制器,使涉及电机的项目变得容易。在设计 PCB 原型时,我小心翼翼地选择了易于查找且可焊接的组件。

该板主要由三个主要组件组成,一个 ATmega328P,一个 L293D 电机驱动器,我使用了 CH341 芯片,以便通过 USB 轻松编程。只是,CH341 USB 芯片可能看起来有点难以焊接。但使用简单的烙铁,将少量焊料涂抹在 PCB 上将要安装芯片的焊盘上,然后正确对齐芯片腿,用烙铁完成焊接。如果您没有焊接经验,您可以使用 PCBWay 的组装板服务,他们会向您发送一个即用型板。

在这些图像中,我分享了一张 Bill of Materials 的图像和一张带有元件位置的标号图像。

该电路使用红外遥控器和接收器进行无线控制。红外遥控器和接收器是一款功能强大且简单的产品,适用于机器人和业余爱好 DIY 应用。它通常以 2 合 1 套装的形式出售。

通常套件包括:

遥控器(约 21 个按钮)
38 kHz 1838B 红外接收器模块
跳线

还选择了 3S 7.4 伏锂离子电池为电路供电。只需将电机和红外传感器按如下方式连接到电路上,然后将电路板和电池插入机器人即可。

电机 A1 = 数字 2
电机 A2 = 数字 4
电机 B1 = 数字 11
电机 B2 = 数字 10
IR 引脚 = 数字 12

现在机器人机构和电路已经完成,是时候对其进行编程了!

 

06 (1).png
06 (2).png
06 (3).png
06 (4).png
06 (5).png
06 (6).png
06 (7).png
06 (8).png
06 (9).png
06 (10).png
06 (11).png

 第 7 步:源代码

在继续主要源代码之前,我们需要找出遥控器上的按钮发送了哪些命令,即十六进制值。下载附件中分享的红外遥控命令查找器代码,用Arduino IDE打开。

在此代码和主代码中,我们使用了 IR 库,首先我们需要安装 IR 库,并确保已安装该库的 2.6.0 版本。库 GitHub 链接在此处:https://github.com/Arduino-IRremote/Arduino-IRremote,但如图所示,您可以通过使用 Arduino IDE 库工具搜索 IRremote 来轻松安装该库。

然后定义红外接收器连接的引脚,并将代码上传到开发板。然后打开串行监视器并按下您将在遥控器上使用的按钮,您将在屏幕上看到按钮的命令。请记住记下这些命令,因为它们将在下一步中使用。

如果您已收到控制器的命令,我们可以继续执行主代码 (Motor_Control_IR_Code)。下载代码并使用 Arduino IDE 打开它,然后进行以下更改:
更新电机所连接的引脚
更新 IR 接收器传感器所连接的引脚
更新从遥控器接收的 HEX 值

loop() 函数处理从红外 (IR) 遥控器接收的命令并相应地控制电机。

红外信号检测:从 IR 传感器读取和处理命令。
避免重复命令:如果连续接收到相同的命令,则会忽略该命令,并且仅处理新命令。
命令匹配和电机控制:将接收到的命令与预定义的 HEX 值进行匹配,并执行相应的 motor 函数:
FWRD:电机向前发展
BKWD:电机向后移动
左:电机左转
RGHT:电机右转
STOP:电机停止
红外接收器复位:IR 接收器重置,为下一个信号做好准备。
错误处理和计时:传感器繁忙时施加一个小的延迟,确保稳定运行。

如果一切准备就绪,将代码上传到板子上,如果你使用的是我设计的印刷电路板,则需要选择板子作为 Arduino UNO。

现在是时候控制机器人了!感谢您的阅读,我希望它对您的项目有所帮助。祝您制作愉快!

 

07 (1).png
07 (2).png
07 (3).png
07 (4).png
07 (5).png
07--.jpg

附录
项目链接:https://www.instructables.com/3D-Printed-Theo-Jansen-Style-Octopod-Robot-Arduino/
项目作者:MertArduino
视频教程(9分钟):https://www.youtube.com/watch?v=TuZUcjsMT5Y
项目代码:https://content.instructables.com/FBO/62AH/M5TMLJVL/FBO62AHM5TMLJVL.ino
https://content.instructables.com/FFU/OUKE/M5TMLJY7/FFUOUKEM5TMLJY7.ino
IR 库::https://github.com/Arduino-IRremote/Arduino-IRremote
3D打印文件:https://content.instructables.com/FDM/R8WK/M59MFR3P/FDMR8WKM59MFR3P.stl
Jansen 机制:https://en.wikipedia.org/wiki/Jansen%27s_linkage

 

00133--.gif

评论

user-avatar
icon 他的勋章
    展开更多