y me parece que gera hizo algo similar para confirmar la lectura
Yo probe con el filtro complementario y filtro de kalman. Ambos me dieron buenos resultados. El mayor desafio fue calibrar el gyro. Haciendo los calculos teoricos siempre me quedaba una deriva, entonces lo que hice fue lo siguiente:
Calculo el angulo con el acelerometro y aparte lo calculo integrando el gyro. Luego empiezo a jugar con la ganancia y offset del gyro hasta que las lecturas sean iguales. Para compararlas, graficaba ambas lecturas en pantalla.
Otro problema es el periodo de muestreo. Hay dos tecnicas para esto:
1- Utilizar un periodo de muestreo constante con la ayuda de una interrupcion de timer.
2- Tomar muestras y realizar los calculos constantemente, y utilizar el timer para medir el tiempo que demora.
Esto es fundamental, ya que para integrar el valor del gyro, necesitamos saber el dt (tiempo de muestreo). Tambien es importante que el PID se ejecute periodicamente, ya que el termino derivativo depende de este periodo.
Saludos!