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 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed