No estoy seguro de si se trata de una pregunta de EE o de StackExchange debido a la programación involucrada, pero de todos modos aquí va:
Acabo de construir un sensor de inclinación para el cargador frontal de mi tractor. Quería algo fácil de leer en luz diurna brillante, inalámbrica, accesorio magnético y razonablemente precisa para indicar la inclinación y el nivel de mi cargador frontal, de modo que pueda usarlo para nivelar algo del suelo fácilmente.
Utilicé mi propia MCU inalámbrica personalizada como controlador, conectándome a través de I2C con un acelerómetro / giroscopio GY-521.
La pantalla es solo un servomotor conectado a una manecilla indicadora y una carátula impresa con láser, y 5 LED también.
Aquí hay un video del dispositivo funcionando: enlace (lo siento por el ruido, ¡estaba tratando de mostrar que la inestabilidad no parece afectarlo tanto!) )
En las pruebas, funcionó muy bien. Pero tan pronto como coloqué el sensor en el cubo de mi tractor, la vibración del motor hizo que las lecturas del acelerómetro se volvieran locas. La aguja básicamente salta de un extremo al otro, haciendo que las lecturas sean inútiles.
Así que primero intenté promediar la salida. (Estoy muestreando a aproximadamente 5-10 muestras por segundo) Eso todavía produjo resultados inestables.
Así que implementé un filtro de paso bajo, usando un coeficiente de 0.1 para nuevas lecturas. Como puede ver en el video, esto ayudó a eliminar el temblor, pero ahora las lecturas son demasiado lentas. Al girar el dispositivo de un extremo de su rango al otro, la aguja tarda varios segundos en alcanzar la entrada. Esto también lo hace inutilizable, ya que tiene que ser más en tiempo real. Y como puede ver, lleva mucho tiempo volver a cero.
¿Alguien tiene sugerencias / ideas sobre cómo reducir la vibración causada por las vibraciones del motor y los golpes / golpes que experimenta el cucharón, a la vez que produce un resultado bastante rápido y preciso?
Tenga en cuenta que mi MCU no podrá manejar muchos cálculos matemáticos para cada muestra, así que no sé si eso elimina la FFT o no, es solo un 8051 básico que funciona a 16MHz.
Aquí están los enlaces para la hoja de especificaciones / registro del Accel / Gyro: enlace enlace
Cualquier información apreciada!