Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来编写、编译和上传代码到Arduino板上。Arduino还有一个丰富的库和社区,你可以利用它们来扩展Arduino的功能和学习Arduino的知识。
Arduino的特点是:
1、开放源码:Arduino的硬件和软件都是开放源码的,你可以自由地修改、复制和分享它们。
2、易用:Arduino的硬件和软件都是为初学者和非专业人士设计的,你可以轻松地上手和使用它们。
3、便宜:Arduino的硬件和软件都是非常经济的,你可以用很低的成本来实现你的想法。
4、多样:Arduino有多种型号和版本,你可以根据你的需要和喜好来选择合适的Arduino板。
5、创新:Arduino可以让你用电子的方式来表达你的创意和想象,你可以用Arduino来制作各种有趣和有用的项目,如机器人、智能家居、艺术装置等。


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


## 组件
直流减速电机
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)


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







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

















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












第 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 零件组装现在已经完成!




















第 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
现在机器人机构和电路已经完成,是时候对其进行编程了!











第 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。
现在是时候控制机器人了!感谢您的阅读,我希望它对您的项目有所帮助。祝您制作愉快!






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

评论