Creo que pude haber bloqueado mi IMU o haberlo dañado seriamente esta semana. Tengo el Adafruit 9-DOF IMU Breakout - L3GD20H + LSM303 (enlace: enlace ) que tiene un acelerómetro, un giroscopio y un magnetómetro todo en uno. Lo tenía conectado a mi Arduino Uno a través de i2c y estaba usando con éxito las bibliotecas de sensores Adafruit provistas para leer los datos de cada uno de los chips. Por lo que pude ver, el acelerómetro estaba funcionando, excepto por una ligera desviación positiva (1 m / s ^ 2) en la dirección Z y tanto el giroscopio como el magnetómetro parecían funcionar bien.
Estaba demostrando el uso del chip a algunos de mis estudiantes y uno de ellos mencionó que querían ver qué pasaría con la lectura del magnetómetro si se expusiera a un imán. Normalmente, la lectura más alta del magnetómetro es de alrededor de 60-70 uTeslas. Con una pila de imanes de tierras raras colocados a pocos centímetros del chip, la lectura se disparó hasta entre 1000-2000 uTesla. No pensé nada de eso.
Sin embargo, las salidas de mi acelerómetro ahora son valores constantes de entre 10 y 20 m / s ^ 2, independientemente de la orientación que tenga o si se está moviendo. La biblioteca de sensores informa "Oops ... no se pudo inicializar el L3GD20. ¡Revise su cableado!" para el giroscopio y las lecturas del magnetómetro parecen haber cambiado, aunque no estoy seguro de si son completamente terribles. La siguiente imagen es de la recopilación continua de lecturas del sensor mientras se gira la IMU durante unos 20 segundos.
Parecen ser un elipsoide. He leído algunas cosas sobre las compensaciones de hierro duro y hierro blando, pero no estoy exactamente seguro de lo que estoy viendo aquí. Busqué en línea cómo los imanes afectan a las IMU, pero ninguno de ellos tenía algo sobre esto ... estúpido. jeh Gracias por cualquier persona que pueda aclarar este problema o cómo solucionarlo. La IMU es relativamente barata (~ 20), así que afortunadamente ese no es el problema. Me estoy preguntando por mi propio conocimiento en este momento.