Робот-балансир на 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-модель, бумажный самолётик и лабиринт с шариком. Что роботу дать дальше: колёса или глаза?