【Arduino 动手做】ESP32 平衡机器人

2025-06-271516
AI 快速预览详细 收起
本文介绍了如何制作一个基于ESP32的平衡机器人。项目需要的主要组件包括ESP32、MPU6050陀螺仪和加速度计模块、DRV8825步进电机驱动器等。通过详细的焊接步骤和编程指南,您可以从零开始构建一个能够自我平衡并远程控制的机器人。适合初学者和对DIY机器人感兴趣的用户。
所以,一段时间以来,我一直在研究一款基于 ESP32 的优秀步进电机、WiFi 连接平衡机器人,它也可以将所有内容都放在同一个 PCB 上。经过几次尝试,我终于有了一个足够好的版本,实际上它只是我在互联网上找到的一些令人惊叹的项目的组合。这个平衡机器人驱动得非常好,代码基于 electrical-pro 的项目,所有组件都在 PCB 上,本教程中解释了所有内容,您还可以在下面找到零件列表。因此,如果您想制作类似的机器人,请按照本教程进行作。目前只有 Android 版本的控制器应用程序,它支持机器人控制和遥测。对于 iPhone 用户,只需打开浏览器并使用机器人的控制界面即可。那么,让我们看看它是如何工作的以及如何构建它。

用品
我们需要很多零件,但别担心,没有什么难买的。我们需要 ESP32 芯片、传感器、电机和一些其他组件,例如电阻器、电容器和 LED。检查下面的每个组件。如果链接未更新,只需在 eBay 上使用以下名称搜索组件即可。

对于机器人,我们需要:
2 x 电机 : https://s.click.aliexpress.com/e/_AUzpWd
2 x 轮子 (5mm 内孔) : https://s.click.aliexpress.com/e/_9idvRF
DVR8825步进电机驱动器 : https://s.click.aliexpress.com/e/_9xnMc5
直流对直流转换器 : https://s.click.aliexpress.com/e/_97wh9L
ESP32 : https://s.click.aliexpress.com/e/_AnUQEp
MPU6050陀螺仪和加速度计模块:https://s.click.aliexpress.com/e/_A6SRW5
INA219电压和电流传感器:https://s.click.aliexpress.com/e/_9wVQ7L
排针 : https://s.click.aliexpress.com/e/_A5RFzL
电解电容器 : https://s.click.aliexpress.com/e/_9gdUYl
陶瓷电容器 : https://s.click.aliexpress.com/e/_AfrfzL
电阻器 : https://s.click.aliexpress.com/e/_A3BVAH
1N5822 肖特基二极管 : https://s.click.aliexpress.com/e/_AZ47Tn
2P 5mm 螺丝丝接线端子 : https://s.click.aliexpress.com/e/_ArnMyl
3D 打印部件

第 1 步:机器人原理图
机器人原理图
原理图只是 electrical-pro 的简化版本。首先,我们有电源块,用于调节 ESP32 模块的 5V。ESP32 芯片为 INA219、MPU6050 和 DRV8825 提供 3.3V 电压。为了控制电机,我们使用 2 个 DRV8825,它从 lipo 电池获取电力。lipo 电池只是一个典型的 3S1P RC 电池,这些电池的工作电压在 12.6 到 11.1 伏之间,这在我们的电源块中的 DC-DC 转换器的限制范围内。获取 PCB 和组件,然后按照原理图上的标记焊接 PCB。

第 2 步:焊接 PCB
这是我设计的 PCB,用于容纳除步进电机之外的所有组件。使用 Gerber 文件通过 PCBWay 或 JLCPCB 等服务打印 PCB。

Gerber 文件下载链接 : https://supr.link/lIQMe

在焊接其余组件之前,请确保我们有良好的 5V 电压,否则我们可能会烧毁 ESP32 模组,因为我的 DC-DC 转换器的默认输出电压约为 10V。因此,将 MP1584EN DC-DC 转换器连接到电源,顺时针缓慢转动电压调节螺丝以降低输出电压,当输出电压达到 5V 时停止。

好的,此时我们可以将其余组件焊接到我们的 PCB 上。

第 3 步:ESP32 编程
首先,在此处下载代码:https://supr.link/DZjwK。它与原始代码基本相同,只是进行了一些修改以使其与我的原理图配合使用。要成功构建代码,您需要将 “lib” 文件夹中的所有库复制到 “C:\Users\My Username\Documents\Arduino\libraries” 中。

现在是配置机器人 AP 的好机会。在“defines.h”的前几行中,你会找到变量 ROBOT_NAME 和 AP_PASSWORD,如果你有多个机器人,每个机器人都应该有一个唯一的ROBOT_NAME。

之后,按照本教程构建并上传代码。对于我的 ESP32,我必须在 Tools ->Board 下选择“ESP32 Dev Module”。如果一切按预期进行,您应该会看到“已完成上传”消息。

此外,不要忘记上传草图数据,这是控制和设置页面正常工作所必需的。在 Arduino IDE 中,转到 Tools -> ESP32 Sketch Data Upload。该过程完成后,您应该会在 IDE 中看到“SPiFFS Image Uploaded”。

第 4 步:打印并构建框架
零件是从 DaveGun 设计的这个漂亮的框架修改而来的。原始文件在这里。

所有部件都使用 M3 8 毫米和 12 毫米螺栓组装在一起,这些螺栓直接拧入 3D 打印部件中,无需螺母。建议使用圆头螺钉。

对于机器人,我们需要:

M3 8 毫米 x 12 : https://s.click.aliexpress.com/e/_AXVe77
M3 12 毫米 x 4:https://s.click.aliexpress.com/e/_AXVe77

我设计了这个简单的应用程序来控制平衡机器人。首次启动时,机器人将使用 SSID “平衡机器人” 和密码 “12345678” 配置为 AP(接入点)模式。将您的 WiFi 连接到此接入点。建立连接后,打开应用程序,应该会看到来自机器人的遥测数据,包括速度、电压、功率......等,如果没有,只需按 Connect 按钮手动连接。

请注意,在没有互联网的情况下连接到 WiFi 在某些设备上可能不起作用。

如果您使用的是 iPhone,则内置的 Web 界面是控制和设置机器人的唯一方法。连接到机器人的 AP 后,打开浏览器并访问以下页面:

机器人控制 : http://192.168.4.1/control.htm
机器人设置 : http://192.168.4.1/index.htm
由于某种原因,控制界面在 Firefox 上无法正常工作。

第 6 步:最后步骤
最后,是时候添加车轮和电池了。首先,确保使用 Balancing Robot Controller 应用程序或 Web 界面校准陀螺仪和加速度计。然后检查步进电机是否以正确的方向旋转。PCB 上有一个小箭头指向机器人的前部,当您将机器人向前倾斜时,两个电机都应向前旋转。一旦一切都设置正确,装上轮子并连接电池,机器人应该在几声哔哔声后开始自我平衡。

第 7 步:比赛!
控制这个机器人的最好方法是使用 App。如果同一空间内有多个机器人,请确保为每个机器人设置不同的 SSID。玩得愉快!

【Arduino 动手做】ESP32 平衡机器人图1

【Arduino 动手做】ESP32 平衡机器人图2

【Arduino 动手做】ESP32 平衡机器人图3

【Arduino 动手做】ESP32 平衡机器人图4

【Arduino 动手做】ESP32 平衡机器人图5

【Arduino 动手做】ESP32 平衡机器人图6

【Arduino 动手做】ESP32 平衡机器人图7

【Arduino 动手做】ESP32 平衡机器人图8

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)- 没有更多了 -