317浏览
查看: 317|回复: 13

[项目] 【Arduino 动手做】3D 打印的多功能机器人开发平台

[复制链接]
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 打印的多功能机器人开发平台图1

【Arduino 动手做】3D 打印的多功能机器人开发平台图2

驴友花雕  中级技神
 楼主|

发表于 5 天前

【Arduino 动手做】3D 打印的多功能机器人开发平台

“3D打印机器人开发平台”或3DPRDP,是一个完全可3D打印的开发平台。它由Nvidia Jetson Nano和Arduino Nano开发板驱动,运行在Ubuntu系统上。它可以轻松实现人工智能和机器学习模型。我设计它是为了快速测试原型和新想法。它不需要每个项目都从头开始,而是有助于在项目早期测试关键内容,例如代码和算法。我希望设计一个价格合理且易于使用的系统。它完全由3D打印而成,无需复杂的组装或螺母和螺栓。

主程序用 Python 编写,使用 Flask 和 Socket I/O 在板上运行 Web 服务器。您可以使用 IP 地址连接到接口。该项目是模块化的,您无需安装所有组件即可运行。我已经在本文的注释中标注了可以替换的组件及其替代方案……

【Arduino 动手做】3D 打印的多功能机器人开发平台图2

【Arduino 动手做】3D 打印的多功能机器人开发平台图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

【Arduino 动手做】3D 打印的多功能机器人开发平台

## 补给品

3D打印部件
Nvidia Jetson nano
犯罪现场调查:橙色
职业课程(可选)
Arduino nano
2 个电机驱动器
2 X MG90S伺服器
0.92英寸OLED
PCA9685伺服驱动器
USB 电缆
4 X 16850 锂电池
Jetson Nano 移动电源

## 第一步:放松,听我说完

放松并听我说完
这个项目对初学者来说可能有点难,但不用担心,只要你愿意付出一些努力,一切都会好起来。这个项目的设计对初学者来说可能看起来有点吓人,但其实不然。我不是专业的程序员或专家。我在做这个项目的过程中学习了所有的代码和其他知识。所以,如果我能做到,你也能做到。我还附上了所有我学习时用到的资源。

另外,并非所有组件都是完成此项目所必需的。如果您预算紧张,可以省略一些组件,例如 GoPro。不用担心,我会逐步解释。我还调整了代码,以防某些组件不可用,只需注释掉一些行即可正常工作。

我在项目中提供了许多超链接,如果你仔细阅读它们,将会帮助你更轻松地构建这个项目。它们将解决你的大部分问题。

【Arduino 动手做】3D 打印的多功能机器人开发平台图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

【Arduino 动手做】3D 打印的多功能机器人开发平台

## 第 2 步:设置 Nvidia Jetson Nano

我们将在本项目中使用 Nvidia Jetson Nano。NVIDIA Jetson Nano 开发套件是一款小型但功能强大的计算机,可让您并行运行多个神经网络,用于图像分类、目标检测、分割和语音处理等应用。所有这些都集成在一个易于使用的平台上,运行功耗仅为 5 瓦。

您可以使用树莓派,而且该项目的代码与所使用的硬件无关。我选择 Nvidia 是因为它提供了大量的库和示例,这将使将来添加 AI/ML 功能更加容易。

这是有关如何设置 jetson nano 的完整官方指南。

https://developer.nvidia.com/emb ... -jetson-nano-devkit

对于视觉学习者

Digi-key 教程

提示:-

这里有一些关于 Jetson Nano 的学习资源。我用它们设置了我的 Jetson。这是 Jetson 设备最好的专用网站。

https://www.jetsonhacks.com/

【Arduino 动手做】3D 打印的多功能机器人开发平台图2

【Arduino 动手做】3D 打印的多功能机器人开发平台图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

【Arduino 动手做】3D 打印的多功能机器人开发平台

## 步骤3:组装

这个项目完全由 3D 打印,无需任何复杂的组装。采用 PLA 材料打印,层高 0.3 毫米,使用 ender 3 pro。阅读组装说明会非常枯燥,因此我们提供了一个可在浏览器上运行的整个项目的交互式 3D 模型。Grab CAD 上有一个 3D 模型分解功能,请使用它,这样您可以更好地了解各个部件的放置位置。

Grabcad 交互模型

用于 3D 打印的 STL 文件

您也可以从给定的链接下载该项目的原始 Solidworks 文件。由于这些是原始文件,并且是参数化修改的,因此设计将非常容易。

提示:-

如果您没有 3D 打印机,可以使用任何常规的机器人底盘或旧塑料盒。我刚开始做这个爱好的时候,用过很多外卖塑料盒。机器人技术是一项昂贵的爱好,但总有办法解决这个问题,比如模拟之类的。ROS 是一个免费的平台,可以免费实验和搭建机器人。我将在下周为这个项目制作一个 ROS 软件包,很快就会在这里更新。

【Arduino 动手做】3D 打印的多功能机器人开发平台图3

【Arduino 动手做】3D 打印的多功能机器人开发平台图1

【Arduino 动手做】3D 打印的多功能机器人开发平台图2

【Arduino 动手做】3D 打印的多功能机器人开发平台图4

【Arduino 动手做】3D 打印的多功能机器人开发平台图5

【Arduino 动手做】3D 打印的多功能机器人开发平台图6


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

【Arduino 动手做】3D 打印的多功能机器人开发平台

## 步骤4:Arduino和电机设置

我们使用 Arduino nano 和两个电机驱动器来控制每个车轮。设置很简单,就像任何其他使用 Arduino 驱动的汽车一样,没有什么特别之处。Arduino 将通过 USB 连接到 Jetson。

为 Arduino 和电机驱动器供电。

Arduino 通过 USB 数据线从 Jetson nano 供电。电机驱动器则由锂离子电池供电。它们使用两个独立的电源供电。电机驱动器有单独的 + - 引脚用于电源输入。我们只需将 Arduino nano 的地线连接到电机驱动器的地线即可。切勿同时使用电池和 USB 为 Arduino nano 供电,否则会导致电路板烧坏。

(请勿同时将 ARDUINO 连接到电池和 JETSON。

仅将电池的接地线连接到ARDUINO NANO的接地)

电机驱动器

电机驱动器有输入引脚 (A1, A2, B1, B2) 或 (INT1, INT2, INT3, INT4),虽然标签可能不同,但它们的功能相同。从 Arduino 引脚获取信号,并据此改变电机方向。

驱动器还有 4 个输出引脚,分别标记为电机 A 和电机 B。您可以将电机线连接到此处。电机没有单独的电源,它们由电机驱动器供电。

使用的引脚:3、6、4、5

接线

司机1

IN1=3; IN2=6; IN3=4; IN4=5;

司机2

IN5=7; IN6=8; IN7=9; IN8=10;

将 Arduino nano 的 GND 与电机驱动器的 GND(负极)连接。

Arduino_程序.ino

提示:-

你可能对 Arduino 的这种设置不太习惯,没关系。还有其他选择,我使用这种设置是为了让我的部件看起来更简洁。我们也可以使用普通的 Arduino UNO 搭配电机驱动器扩展板。这就是我把所有东西都做成独立系统的原因。

我们的当前系统如何运作。

Arduino nano 通过 USB 从 python 文件获取命令。

f - 向前

b - 向后

l - 左

r - 右

c-停止

根据这些命令,它将运行一个功能。

例子:-

如果收到“f”,它将运行 Forward(Speed,0);这将使机器人向前移动。

我们可以用 Arduino UNO 和电机驱动器扩展板替换当前的设置,而无需更改 Python 代码中的任何内容。只需在 Arduino 代码中进行更改即可。实际上,您可以使用相同的 Arduino 代码,只需更改代码开头的引脚声明即可。

这是我之前一个项目的参考代码。它运行在蓝牙上,你可以使用这段代码来学习如何声明引脚。

智能雷达系统

https://github.com/sastejugaad/SMARS

【Arduino 动手做】3D 打印的多功能机器人开发平台图3

【Arduino 动手做】3D 打印的多功能机器人开发平台图2

【Arduino 动手做】3D 打印的多功能机器人开发平台图4

【Arduino 动手做】3D 打印的多功能机器人开发平台图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

【Arduino 动手做】3D 打印的多功能机器人开发平台

本帖最后由 驴友花雕 于 2025-6-3 16:01 编辑

## 步骤5:炮塔系统

转塔的作用​​是控制摄像头的转动。它由两个伺服电机、OLED 显示屏和 CSI 摄像头组成。OLED 显示屏仅显示 Jetson Nano 的统计数据,并非机器人运行的必要条件。即使不使用它,一切仍可正常工作。

伺服器将由 PCA9685 伺服驱动器控制,该驱动器将连接到 Jetson Nano 的 SDA 和 SLC 引脚。OLED 屏幕也同样,将其连接到 Jetson Nano 的 SDA 和 SLC 引脚。查看图片以便更好地理解。

你是

OLED连接指南

用于OLED的Python库

PCA9685

安装

PCA9685 的 Python 库

https://www.youtube.com/watch?v=8YKAtpPSEOk

提示:-

Oled 和 PCA9685 库也适用于树莓派。所以如果你遇到问题,也可以搜索树莓派教程。

适用于树莓派的OLED

更多 pi

【Arduino 动手做】3D 打印的多功能机器人开发平台图1

【Arduino 动手做】3D 打印的多功能机器人开发平台图2

【Arduino 动手做】3D 打印的多功能机器人开发平台图3

【Arduino 动手做】3D 打印的多功能机器人开发平台图4

【Arduino 动手做】3D 打印的多功能机器人开发平台图5

【Arduino 动手做】3D 打印的多功能机器人开发平台图6
【Arduino 动手做】3D 打印的多功能机器人开发平台图7



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

【Arduino 动手做】3D 打印的多功能机器人开发平台

## 步骤6:摄像系统

我们有一个 GoPro Hero 会话(非必需)和 CSI 摄像头。CSI 摄像头是我们的主要摄像头,所有计算机视觉工作都将在这里完成。请使用树莓派摄像头,因为 Jetson 不支持 2 个较旧的摄像头。首次设置摄像头会比较棘手,以下是简要指南。我建议在设置好 Jetson Nano 后,使用 Python 文件进行简单的摄像头测试。

您所需要的一切都在下面给出。

Jetson CAM 指南

USB CAM 指南

CSI CAM指南

您可以使用 USB 摄像头。代码中已内置对 USB 摄像头的支持,但已被注释掉。因此,请注释掉 CSI 摄像头的注释行,并取消 USB 摄像头的注释行,这样就可以了。

例如: #video_capture = cv2.VideoCapture(1)

提示:-

有两个用于处理计算机视觉的 Python 文件:camera.py 和 ARcamera.py。两者基本相同,只是 ARcamera.py支持Aruco 标记。你可以用它制作一些很酷的 AR 内容。我不想让本教程太复杂,所以我们暂时使用简单的 camera.py 版本。

这是我之前的一个项目的例子。跟踪两个标记之间的距离并进行增强现实演示。

增强现实演示

寻找距离

【Arduino 动手做】3D 打印的多功能机器人开发平台图2

【Arduino 动手做】3D 打印的多功能机器人开发平台图1

【Arduino 动手做】3D 打印的多功能机器人开发平台图3

【Arduino 动手做】3D 打印的多功能机器人开发平台图4

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

【Arduino 动手做】3D 打印的多功能机器人开发平台

## 步骤 7:为所有设备供电

嗯,电源系统一团糟。我做了个 Jetson Nano 的移动电源,以及 4 块 16850 电池,分别给电机和炮塔系统供电。两块电池给 Arduino 和直流电机供电,另外两块给炮塔上的伺服电机供电。

这完全没有必要,整个系统只能由锂电池和直流转换器供电,但我想安全起见,所以我决定分离电源。

16850电池

小米移动电源3超紧凑型

提示:-

普通的 9V 电池也可以代替 16850 电池,但续航时间可能不长,大概 8-10 分钟。任何移动电源都可以,我选了最小的那个。如果你想尝试一下,还有一种更好的电源系统设计方法。我会在下一个版本中实现它。

更好的电力系统

【Arduino 动手做】3D 打印的多功能机器人开发平台图3

【Arduino 动手做】3D 打印的多功能机器人开发平台图1

【Arduino 动手做】3D 打印的多功能机器人开发平台图2

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

【Arduino 动手做】3D 打印的多功能机器人开发平台

## 步骤8:代码设置

它全部用 Python 3 编写。我们将使用 HTML、CSS 和 JavaScript 来处理 Web UI。不过不用担心,除非你想修改 UI,否则你不需要处理这些。Github 页面上有单独的 UI 处理指南。

文件层次结构

main.py - 主文件控制所有其他系统。运行此文件即可使用机器人

turret.py——控制炮塔

camera.py - 打开相机并将帧发送回 main.py,这些帧在 Web 浏览器上显示为视频源

ARcamera2.py - 与 camera.py 相同,但带有 aruco 标记

Oled_disp.py - 显示有关 jetson nano 系统的统计数据。

Simplecameratest.py - 顶部检查相机是否安装正确。

arduino_control.py - 与 Arduino 通信。从 main.py 接收命令,并通过 USB 连接发送至 Arduino

Arduino_program.ino - 上传至 Arduino。用于控制电机。


代码如何工作

运行 main.py 文件将启动所有其他功能,例如摄像头和 Web 服务器。我们使用 flask 和 Socket IO 库通过 Web 浏览器与机器人通信。移动设备和机器人应连接到同一网络。然后,打开 Web 浏览器并输入 <ipdressofjetsonnnao>:5000,即可看到界面。

代码逐行都有详细的注释,方便你了解各个部分的功能。我还在 GitHub 上对代码进行了更详细的解释,因为那里更容易理解。

提示:-

请不要重命名或移动文件,除非您更改代码中的引用,否则您将收到错误。

【Arduino 动手做】3D 打印的多功能机器人开发平台图1

【Arduino 动手做】3D 打印的多功能机器人开发平台图2

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

【Arduino 动手做】3D 打印的多功能机器人开发平台

## 第十步:恼人的问题

下面列出了一些可以简化您的工作的命令。这将节省您数小时的研究时间。这些命令是通用命令,并非特定于此项目。

重启相机恶魔

这一点很重要,因为有时你可能会重启主程序,然后会收到“摄像头不工作”或“没有实时视频”的错误提示。运行此命令可以修复此问题。

sudo 服务 nvargus-daemon 重启

检查CSI摄像头是否正常工作

gst-launch-1.0 nvarguscamerasrc!'video/x-raw(内存:NVMM),宽度=3820,高度=2464,帧速率=21/1,格式=NV12'!nvvidconv flip-method=0!'video/x-raw,宽度=960,高度=616'!nvvidconv!nvegltransform!nveglglessink -e

在 jetsonano 上创建热点

# 创建连接

sudo nmcli 连接添加类型 wifi ifname '*' con-name my-hotspot 自动连接是 ssid my-local-hotspot

# 将其放入接入点

sudo nmcli 连接修改 my-hotspot 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method 共享

# 设置 WPA 密码(你应该更改它)

sudo nmcli 连接修改 my-hotspot 802-11-wireless-security.key-mgmt wpa-psk 802-11-wireless-security.psk 12345678

# 启用它(每次想要启用接入点时运行此命令)

sudo nmcli 连接我的热点

检查 I2C 连接(Oled 和伺服驱动器)

sudo i2cdetect -y 1

或者

sudo i2cdetect -r -y 1

列出视频设备

ls /dev/video0

列出CSI相机支持的视频格式

v4l2-ctl -d /dev/video0 --list-formats

提示:-

使用 sudo

【Arduino 动手做】3D 打印的多功能机器人开发平台图1

【Arduino 动手做】3D 打印的多功能机器人开发平台图2

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

【Arduino 动手做】3D 打印的多功能机器人开发平台

## 步骤11:结论

这个项目仍在不断发展。我仍在尝试改进这个项目的代码,这也是我决定在 Github 页面上解释代码的原因,因为这样更容易进行代码修改和跟踪。

我已经把用于完成这个项目的大部分资源都链接到了链接,但请随时提问。这不是项目的结束,我希望它更加完善。你们的所有问题和疑问都将帮助我实现目标。

【Arduino 动手做】3D 打印的多功能机器人开发平台图2

【Arduino 动手做】3D 打印的多功能机器人开发平台图1

【Arduino 动手做】3D 打印的多功能机器人开发平台图3

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 5 天前

【Arduino 动手做】3D 打印的多功能机器人开发平台

附录
项目链接:https://benchrobotics.com/arduin ... ment-platform-with/
https://www.instructables.com/3D ... Platform-With-Nvid/
项目作者:印度 shubham_bhatt
项目视频:https://www.youtube.com/watch?v=7Dail3PpAlU&t=207s
项目代码:https://github.com/sastejugaad/SMARS
https://github.com/sastejugaad/3Dprdp
https://github.com/sastejugaad/3 ... Arduino_program.ino
Grabcad 交互模型:https://grabcad.com/library/nvid ... m-for-3d-printing-1

【Arduino 动手做】3D 打印的多功能机器人开发平台图1

0.96 oled.zip

1.06 MB, 下载次数: 31

cam.zip

4.13 MB, 下载次数: 36

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 4 天前

【Arduino 动手做】3D 打印的多功能机器人开发平台

【Arduino 动手做】3D 打印的多功能机器人开发平台图1

【Arduino 动手做】3D 打印的多功能机器人开发平台图2
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail