Робот-балансир на ESP32: три контури керування

Десять днів, один робот, три контури керування. Як наш робот-балансир на ESP32 і колекторних моторах навчився стояти, повертатися після поштовху, тримати своє місце та їздити через Wi-Fi — з числами з його журналів і прошивкою, завдяки якій усе запрацювало.

Я зібрав робота-балансира: три контури керування

Колекторні мотори, ESP32 і MPU-6500 — і три контури керування, кожен виправляє те, чого не вмів попередній. Контур кута (PID, 500 разів на секунду) тримає його вертикально, але робот відкочується на 27 см. Контур швидкості повертає його в смугу 30 см. Контур положення повертає його додому з точністю до 3 см — а потім робот їздить по Wi-Fi і стрибає з підлогових ваг. Три контури, один LQR чи нейромережа — на що ви поставите?

У телефоні є обидва. Я все одно зібрав свій: DIY-рівень і компас

Рівень і компас: у вашому телефоні є обидва, тож, звісно, я зібрав свій. Один корпус, надрукований на Creality Ender-3 V3 KE, чотири латунні вставки, три плати (TTGO T-Display з ESP32, акселерометр і гіроскоп MPU-6500, магнітометр BMM150) і одна банка 18650 із зарядкою через USB-C. У межах пів градуса від горизонту він стає зеленим і пищить один раз. Урок: магнітометр помічає все — від магніту зумера до кабелю зарядки й телефона поруч. Отже: купити чи зібрати?

Я штовхаю. Він повертається: мій балансир на пропелері з ESP32

Я штовхаю — він повертається. Ця рама балансує в одній площині на тязі одного пропелера: датчик MPU-6500 вимірює нахил, а на ESP32 працює PID-регулятор (у цьому досліді Kp 8 · Ki 2 · Kd 2,2), який через DRV8833 керує мотором. Bluetooth передає нахил і команду мотору на мій комп'ютер, на сторінку, де я можу міняти налаштування PID. Перші спроби? Гравітація не підвела. Що далі: дві площини чи колеса?

Я перевірив чуття рівноваги робота: MPU-6500

Шість дротів, 100 вимірювань на секунду і три спроби калібрування — я витратив усі три. MPU-6500 (3-осьовий акселерометр + 3-осьовий гіроскоп у чипі 3 × 3 мм) спілкується через SPI з ESP32 (LILYGO T-Display), а сторінка в браузері перетворює його дані на 3D-модель, паперовий літачок і лабіринт із кулькою. Що робот має отримати далі: колеса чи очі?