19浏览
查看: 19|回复: 0

[项目] 【Arduino 动手做】如何制作 DIY 平衡机器人 [我的经验]

[复制链接]
这是基于 ESP32 的平衡机器人

这是 Wouter Klop 创建的“基于 ESP32 的高速平衡机器人”的一个分支, 原始代码在这里: https://gitlab.com/kloppertje/balancingrobot

解释其工作原理的文章如下:http://elexperiment.nl/2018/11/h ... robot-introduction/

这是我如何构建这个机器人的视频:https://youtu.be/vPx2oyZGv50

图像替换文本

编译
使用 1.0.6 版本的 ESP32 Core https://github.com/espressif/arduino-esp32/releases/tag/1.0.6

解答您的问题
!!!阅读此问题以获取常见答案:#2 或创建一个新问题 :)

模式
代码的此修改包含几项更改,其中之一是单独更改电机方向的简单功能:

#define reverseLeftMotor true
#define reverseRightMotor false
另一个变化是自动电流控制。它允许 ESP32 设置通过电机的电流。 此功能要求您移除DRV8825模块上的微调电位器并焊接一根线(请参阅电路和照片)

另一个显着的变化是“站立”和“前进”使用了两组 PID 值,这使得机器人可以保持不移动。(我无法仅凭一组 PID 值在没有移动的情况下实现完美的站立)。

将此项设置为 “0” 表示自动切换(实验性)

uint8_t pidTypeApply = 1; // PID to use 0=auto, 1= go PIDs, 2= stay PIDs
两个 PID 值都需要单独调整,这是“额外头痛”,所以一开始,最好将其设置为“1”并使用一组 PID。 (不确定我是否正确实现了此功能,但我对结果感到满意)

此外,我还添加了 INA219模块来监控电流和电压。适用于遥测。 此外,当连接充电器时,它会测量电池的容量。 INA219 与 MPU6050 一样使用 I2C 总线

也有许多小的调整。

这是最后的话题:

我在 Aliexpress 上购买的这个机器人的大部分东西

电机:https://s.click.aliexpress.com/e/_d84I07S

DVR8825步进电机驱动器:https://s.click.aliexpress.com/e/_Anmk61

电池:需要 https://s.click.aliexpress.com/e/_d8cDFDa 3 节电池才能获得 12V 电压

电池座: https://www.aliexpress.com/item/32874365172.html

电池保护板:https://s.click.aliexpress.com/e/_DknQERR(3s 40a 平衡)

DC-DC 转换器:https://s.click.aliexpress.com/e/_dWvPhXW(它与我使用的有所不同,但似乎更好)

ESP32:https://s.click.aliexpress.com/e/_dTZisbE(3 个端口)

六角联轴器:https://s.click.aliexpress.com/e/_dZsbHNw(将车轮连接到电机,5mm)

Steppr 电机支架:https://s.click.aliexpress.com/e/_dW0qsAu

MPU6050陀螺仪和加速度计模块:https://s.click.aliexpress.com/e/_d7tubEG

INA219电压和电流传感器:https://s.click.aliexpress.com/e/_dXsJ7AG

PCB 4X6:https://s.click.aliexpress.com/e/_d65i2Sg

PCB 6X8:https://s.click.aliexpress.com/e/_d7XpQnS

引脚接头:https://s.click.aliexpress.com/e/_DdOig6l

母 PCB 接头:https://s.click.aliexpress.com/e/_DDBKykp

电解电容器 https://s.click.aliexpress.com/e/_A2atvx

陶瓷电容器:https://s.click.aliexpress.com/e/_ABg3GZ

电阻器:https://s.click.aliexpress.com/e/_9AslPB

我使用的是 1N5822 肖特基二极管,只是因为我有它们。

(部分链接为附属链接)

我希望我没有忘记任何事情:)

这个项目结果有点贵,但我真的很想做。如果您决定构建它,我希望您知道自己在做什么,PID 调整并不容易......我想说不适合初学者,所以祝你好运。 我认为如果机器人更轻、更小一点会更好,但这个假设需要测试。 最初,我在 PlatformIO 中编辑代码,但后来我转向了 Adruino IDE,出于某种原因,Adruino IDE 中的 OTA 效果更好,尽管有时我仍然会遇到错误。

我必须警告你,我不是一个专业的程序员,所以可能有更聪明的方法来进行所有这些改变。但这一切都对我有用,我对结果感到满意。开源的伟大之处在于,您可以按照自己喜欢的方式更改代码。 感谢 Wouter Klop 使这一切成为可能,请查阅他的视频:https://www.youtube.com/watch?v=D7hvI_Tb0o4

【Arduino 动手做】如何制作 DIY 平衡机器人 [我的经验]图2

【Arduino 动手做】如何制作 DIY 平衡机器人 [我的经验]图1

【Arduino 动手做】如何制作 DIY 平衡机器人 [我的经验]图3

【Arduino 动手做】如何制作 DIY 平衡机器人 [我的经验]图4

【Arduino 动手做】如何制作 DIY 平衡机器人 [我的经验]图5

【Arduino 动手做】如何制作 DIY 平衡机器人 [我的经验]图6

【Arduino 动手做】如何制作 DIY 平衡机器人 [我的经验]图8

【Arduino 动手做】如何制作 DIY 平衡机器人 [我的经验]图7

【Arduino 动手做】如何制作 DIY 平衡机器人 [我的经验]图9

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

本版积分规则

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

硬件清单

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

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

mail