¿Por qué el acelerómetro en los teléfonos inteligentes no muestra valores cero al verificar los sensores a través de las aplicaciones CPU-Z o Sensor Sense?

Buena pregunta..

Me enfrenté al mismo problema al hacer mi primera aplicación de Android. La razon es la siguiente…

Un sensor de aceleración mide la aceleración aplicada al dispositivo, incluida la fuerza de la gravedad . Por lo tanto, la fuerza de la gravedad siempre influye en los valores de aceleración medidos.

Por esta razón, cuando el dispositivo está sentado en una mesa (y no acelera), el acelerómetro lee una magnitud de g = 9.81 m / s. Del mismo modo, cuando el dispositivo está en caída libre y, por lo tanto, acelera rápidamente hacia el suelo a 9.81 m / s, su acelerómetro lee una magnitud de g = 0 m / s. Por lo tanto, para medir la aceleración real del dispositivo, la contribución de la fuerza de gravedad debe eliminarse de los datos del acelerómetro. Esto se puede lograr aplicando un filtro de paso alto. Por el contrario, se puede usar un filtro de paso bajo para aislar la fuerza de la gravedad.