Tabla de contenido:
Video: Robot de equilibrio automático - Algoritmo de control PID: 3 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Este proyecto fue concebido porque estaba interesado en aprender más sobre los algoritmos de control y cómo implementar de manera efectiva lazos PID funcionales. El proyecto aún se encuentra en la fase de desarrollo, ya que aún no se ha agregado un módulo Bluetooth que permitirá el control del robot desde un teléfono inteligente habilitado para Bluetooth.
Los motores de CC N20 utilizados eran relativamente baratos y, por lo tanto, tienen una cantidad considerable de juego en ellos. Esto conduce a una pequeña cantidad de sacudidas cuando los motores superan la 'holgura' al aplicar torque a las ruedas. Por lo tanto, es casi imposible lograr un movimiento perfectamente suave. El código que he escrito es razonablemente simple pero demuestra efectivamente las capacidades del algoritmo PID.
Resumen del proyecto:
El chasis del robot se imprime en 3D con una impresora Ender 3 y está diseñado para encajar a presión.
El robot está controlado por un Arduino Uno que toma los datos del sensor del MPU6050 y controla los motores de CC a través de un controlador de motor externo. Funciona con una batería de 7.4V, 1500mAh. El controlador del motor lo regula a 5 V para alimentar el Arduino y suministra 7,4 V a los motores.
El software se escribió desde cero con la ayuda de las bibliotecas 'Arduino-KalmanFilter-master' y 'Arduino-MPU6050-master' de gitHub.
Suministros:
- Piezas impresas en 3D
- Arduino UNO
- Sensor MPU6050 de 6 ejes
- Controlador de motor D. C
- Motores N20 D. C (x2)
- Batería de 9V
Paso 1: construcción del robot
Impresión y montaje
Toda la construcción debe ajustarse a presión, pero he usado superglue para asegurar los componentes para asegurar que el robot esté completamente rígido al equilibrar.
Diseñé las piezas en Fusion 360 y optimicé cada pieza para imprimir sin soportes para permitir tolerancias más estrictas y un acabado de superficie más limpio.
Los ajustes utilizados en la impresora Ender 3 fueron: alturas de capa de 0,16 mm con un relleno del 40% para todas las piezas.
Paso 2: Robot de impresión 3D
Chasis (x1)
Rueda izquierda (x2)
Carcasa del motor izquierdo (x2)
Estuche Arduino (x1)
Paso 3: Algoritmo de control PID
He escrito un algoritmo de control PID desde cero utilizando las bibliotecas 'Arduino-KalmanFilter-master' y 'Arduino-MPU6050-master' de gitHub.
La premisa del algoritmo es la siguiente:
- Leer datos sin procesar de MPU6050
- Utilice el filtro de Kalman para analizar los datos del giroscopio y del acelerómetro para cancelar las imprecisiones en las lecturas del giroscopio debido a la aceleración del sensor. Esto devuelve un valor relativamente suavizado para el paso del sensor en grados con dos decimales.
- Calcule el error en el ángulo, es decir: el ángulo entre el sensor y el punto de ajuste.
- Calcule el error proporcional como (constante de proporcionalidad x error).
- Calcule el error integral como la suma acumulada de (constante de integración x error).
- Calcule el error de la derivada como constante como [(Constante de diferenciación) x (Cambio en el error / Cambio en el tiempo)]
- Sume todos los errores para obtener la salida de velocidad que se enviará a los motores.
- Calcule en qué dirección girar los motores según el signo del ángulo de error.
- El ciclo se ejecutará indefinidamente y se basará en la salida a medida que varíe la entrada. Es un ciclo de retroalimentación, que usa los valores de salida como los nuevos valores de entrada para la siguiente iteración.
El paso final es ajustar los parámetros Kp, Ki y Kd del lazo PID.
- Un buen punto de partida es aumentar lentamente Kp hasta que el robot oscile alrededor del punto de equilibrio y pueda atrapar una caída.
- A continuación, inicie Kd en alrededor del 1% del valor de Kp y aumente lentamente hasta que las oscilaciones desaparezcan y el robot se deslice suavemente cuando lo empuje.
- Finalmente, comience con Ki alrededor del 20% de Kp y varíe hasta que el robot "sobrepase" el punto de ajuste para atrapar activamente una caída y regresar a la vertical.
Recomendado:
Robot de equilibrio automático de Magicbit: 6 pasos
Robot de autoequilibrio de Magicbit: este tutorial muestra cómo hacer un robot de autoequilibrio usando la placa de desarrollo Magicbit. Estamos utilizando magicbit como placa de desarrollo en este proyecto que se basa en ESP32. Por lo tanto, cualquier placa de desarrollo ESP32 se puede utilizar en este proyecto
Robot de equilibrio automático de dos ruedas: 7 pasos
Robot de autoequilibrio de dos ruedas: este instructivo pasará por el proceso de diseño y construcción de un robot de autoequilibrio. Como nota, solo quiero decir que los robots de autoequilibrio no son un concepto nuevo y han sido construidos y documentados por otros. Quiero aprovechar esta oportunidad
Robot de equilibrio automático de 2 ruedas: 4 pasos
Robot autoequilibrante de 2 ruedas: En mi humilde opinión, no eres un verdadero creador, a menos que no construyas tu propio robot autoequilibrante de 2 ruedas. :-) Entonces, aquí está … y, lo más importante, funciona. !!! Este proyecto parece muy simple. En cambio, requiere un buen nivel de conocimiento de
Creación de un robot de equilibrio automático Arduino controlado de forma remota: B-robot EVO: 8 pasos
Creación de un robot de equilibrio automático Arduino controlado de forma remota: B-robot EVO: ------------------------------------ -------------- ACTUALIZACIÓN: aquí hay una versión nueva y mejorada de este robot: ¡El B-robot EVO, con nuevas funciones! ------------ -------------------------------------- ¿Cómo funciona? B-ROBOT EVO es un control
Robot de equilibrio automático: 6 pasos (con imágenes)
Robot de autoequilibrio: en este Instructable, le mostraremos cómo construir el robot de autoequilibrio que hicimos como proyecto escolar. Se basa en algunos otros robots, como el nBot y otro Instructable. El robot se puede controlar desde un teléfono inteligente Android vi