Estoy haciendo una aplicación y necesito el valor del Roll del móvil. La clase Motion me devuelve el valor, pero se divide en un rango de -90º a + 90º. Claro, el problema lo tengo cuando gira más de 90º
0º | 0º
|
-90º_____|_______90º
-90º | 90º
|
0º (Cuadrante C)
Yo quiero saber cuando estoy en el cuadrante C.... ¿alguien sabe cómo resolvero? Lo he hecho mirando el aceletrometro, pero claro, sólo me funciona en el caso en el que lo he calculado, que es el móvil en portrait enfrente tuya...
Sin haber tocado nada. lo normal es que este tipo de funciones devuelva un angulo entre -180 y 180, estas seguro que te lo da asi como pones?
He cogido el ejemplo que hay en el sdk... Simplemente se coge el valor de la propiedad y listo... :(
pitch = arctan(Ax/sqrt(Ay^2+Az^2))
roll = arctan(Ay/sqrt(Ax^2+Az^2))
theta = arctan(sqrt(Ax^2+Az^2)/Az)
Ésas son las fórmulas mágicas dados los acelerómetros en x, y y z.
Razón aquí: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1246336902
Pero estos valores son sólo basados en el acelerómetro. Yo tengo mucha más precisión, porqué la clase Motion usa el Gyroscope y el Compass. :-\
Gracias!! :D
http://www.jeffblankenburg.com/2011/11/05/31-days-of-mango-day-5-gyroscope/
Suerte :)
He preguntado, a ver qué me dicen... :(