Normalizar los valores de diferentes acelerómetros de 3 ejes MEMS

1

Tengo que encontrar una solución para valores uniformes en acelerómetros de 3 ejes en diferentes dispositivos Android. Quiero decir, un dispositivo con un acelerómetro específico, sujeto a la misma aceleración, devuelve valores, para cada uno de los 3 ejes, que son diferentes de los valores devueltos desde otro dispositivo Android con diferente acelerómetro.

    
pregunta Bob

1 respuesta

1

Puedes usar algunas medidas para obtener esa respuesta. Para obtener +1 y -1, pídale al usuario que ponga el teléfono de espaldas y que se enfrente por unos segundos. Para obtener 0, haga que el usuario lo suelte un pie o dos (lo sostenga en una mano y lo atrape con la otra) o lo arroje al aire brevemente. Mientras no haya mucha rotación, los acelerómetros deben apagarse mientras está en caída libre.

En general, si A es la medida en 1G, B es la medida en 0G y X es la nueva medida, el factor de escala sería:

$$ \ left (\ frac {X-B} {A-B} \ right) * 1G = G_ {output} $$

Editar, agregando la razón para la fórmula:

Necesitamos tomar un rango de valores y extenderlo a otro. Podemos hacer eso con una función de escalado. Además, no estamos asumiendo que el valor de 0 necesariamente se va a medir como un valor numérico de 0. Los valores legibles podrían estar entre 0 y 255, cubriendo valores de sensores positivos y negativos, por ejemplo. Nos ocupamos de eso usando una función de traducción.

Podría tener más sentido si lo imaginas en una línea numérica.

Si B es su valor cero, si lo resta de su valor medido, su nuevo valor (digamos Y) ahora está centrado alrededor del valor B 'cero'.

$$ X-B = Y $$

Ahora, necesitas escalar eso en el rango que quieras. Medimos el rango de valores que representa una unidad en nuestra nueva escala, "1 G". Esta es simplemente la medida en 1G (sentado en la mesa) y 0G (caída libre). Puede llamar a las unidades de este nuevo número "cuentas por G".

$$ A-B = \ frac {count} {G} $$

Si ahora toma su valor traducido Y y lo escala (unidades incluidas como subíndices esta vez)

$$ \ frac {Y_ {cuentas}} {(AB) _ {\ frac {cuentas} {G}}} = \ frac {Y_ {cuentas} \ veces G} {(AB) _ {cuentas}} = \ frac {Y} {(AB)} G = \ frac {(XB)} {(AB)} G $$

Si las unidades te ayudan a analizarlo, entonces genial, pero como dije, solo estaba pensando en ello como mover y estirar una recta numérica.

    
respondido por el Daniel

Lea otras preguntas en las etiquetas