Construí un robot autoequilibrado: tres lazos de control

Motores con escobillas, un ESP32 y un MPU-6500 — y tres lazos de control, cada uno arreglando lo que el anterior no podía. El lazo de ángulo (PID, 500 veces por segundo) lo mantiene de pie, pero se va rodando 27 cm. El lazo de velocidad lo devuelve a una franja de 30 cm. El lazo de posición lo trae de vuelta a casa con 3 cm de margen — y luego anda por Wi-Fi y salta de una báscula de baño. Tres lazos, un LQR o una red neuronal — ¿por cuál apostarías?

Mi teléfono tiene ambos. Me hice uno igual: nivel y brújula DIY

Un nivel y una brújula: tu teléfono tiene ambos, así que, claro, me hice el mío. Una carcasa impresa en una Creality Ender-3 V3 KE, cuatro insertos de latón, tres placas (una TTGO T-Display con ESP32, un acelerómetro y giroscopio MPU-6500, un magnetómetro BMM150) y una celda 18650 que se carga por USB-C. A menos de medio grado del nivel se pone verde y pita una sola vez. La lección: un magnetómetro lo nota todo, desde el imán del zumbador hasta el cable de carga y un teléfono cerca. Entonces: ¿comprarlo o hacerlo?

Lo empujo. Y vuelve: mi balancín de hélice con ESP32

Lo empujo y vuelve. Esta estructura se equilibra en un solo plano con el empuje de una sola hélice: un sensor MPU-6500 mide la inclinación, y un ESP32 ejecuta un controlador PID (Kp 8 · Ki 2 · Kd 2.2 en esta prueba) que mueve el motor a través de un DRV8833. El Bluetooth envía la inclinación y la orden al motor a mi computadora, a una página donde puedo ajustar los valores del PID. ¿Intentos previos? La gravedad cumplió. ¿Y ahora qué? ¿Dos planos o ruedas?

Probé el sentido del equilibrio de un robot: MPU-6500

Seis cables, 100 lecturas por segundo y tres intentos de calibración: gasté los tres. Un MPU-6500 (acelerómetro de 3 ejes + giroscopio de 3 ejes en un chip de 3 × 3 mm) habla por SPI con un ESP32 (LILYGO T-Display), y una página en el navegador convierte sus lecturas en un modelo 3D, un avión de papel y un laberinto con una bola. ¿Qué le pongo ahora al robot: ruedas u ojos?