Hola a todos,
Estoy en el primer paso de realizar un balancín para avanzar hacia el quadricoptero.
Tengo el código para el IMU (en realidad FREEIMU). El problema lo tengo cuando implemento la libreria PID: la salida me da valores... ilógicos (según mi parecer)
Para hacer las pruebas tengo puesto en Input del PID la variable pitch del giroscópio: Input = pitch;
El Setpoint en 0.00: Setpoint = 0.00;
Y según he leído la librería PID ya viene configurada para darte la Output entre 0 y 255. De momento simplemente imprimo la Output por el puerto serie para no arriesgarme con el motor, quería por lo menos ver que los resultados eran coherentes.
El problema está en que cuando inclino el sensor ya desde el principio la variable Output simplemente va subiendo más o menos a 1 unidad/seg. (jugando con kp, ki y kd consigo que suba a 2 unidades/seg. mas o menos).
Independientemente de lo inclinado que esté el sensor, la variable no para de augmentar (hasta 255).
A parte, cuando vuelvo a poner el sensor estable en horizontal yo tengo entendido que la Output deberia ser 0.0 ya que es el mismo valor que tengo en Setpoint, pero prácticamente lo que hace es mantenerse en el último valor al que ascendió. Para conseguir el 0 tengo que inclinar el sensor en sentivo inverso para que vaya bajando al mismo ritmo al que subió...
Supongo que no estaré utilizando bién el PID; o las variables no las tengo como Input las querría.... (las tengo en radianes)(en grados me daba el mismo resultado).
Álguien tiene experiéncia con la libreria PID??? Necesito ayuda, llevo varias semanas sin encontrarle solución...
Para referencias: Sketch FREEIMU
la librería PID es la de ARDUINO
Muchas gracias por su tiempo