Distancia movida por Acelerómetro

Quiero mover objetos en la pantalla del iPhone (rectángulo, círculo, etc.) moviendo el iPhone. Por ejemplo, muevo iPhone a lo largo del eje X y el objeto se mueve a lo largo del eje X. Lo mismo para Y, eje Z.

¿Cómo puedo hacer esto? ¿Puedo obtener un algoritmo para eso?

Gracias.

PD: Miré por un momento y parece que es posible usar el acelerómetro.

Obtienes posición integrando la aceleración lineal dos veces, pero el error es horrible. Es inútil en la práctica.

Aquí hay una explicación de por qué (Google Tech Talk) a las 23:20. Recomiendo este video.

Sin embargo, el giro del mouse podría funcionar para su aplicación, vea entre 37: 00-38: 25 en el video.

Preguntas similares:

rastrear pequeños movimientos del iphone sin GPS
¿Cuál es la precisión del mundo real de los acelerómetros telefónicos cuando se utilizan para posicionar?
cómo calcular el movimiento del teléfono en la dirección vertical desde el descanso?
iOS: Precisión del movimiento en el espacio 3D
Cómo usar el acelerómetro para medir la distancia para el desarrollo de aplicaciones de Android
¿Cómo puedo encontrar la distancia recorrida con un giroscopio y un acelerómetro?

No es fácil de hacer con precisión. Un acelerómetro solo informa aceleración , no movimiento. Puede intentar (numéricamente) integrar la aceleración a lo largo del tiempo, pero es probable que termine con la acumulación de errores acumulativos y que conduzca a un movimiento involuntario.

Pseudocódigo, obviamente no probado:

init: loc = {0, 0, 0} ; location of object on screen vel = {0, 0, 0} ; velocity of object on screen t = 0 ; last time measured step: t0 = time ; get amount of time since last measurement dt = t0 - t accel = readAccelerometer() vel += accel * dt ; update velocity loc += vel * dt ; update position displayObjectAt(loc) 

¿Por qué no usas la aceleración en vez de mover la distancia? Por ejemplo; Si tu aceleración es 1.4G hacia el este, tu objeto debería moverse a 14 píxeles por segundo este hasta que tu aceleración cambie.

Así que el movimiento de ese objeto será como está bajo una fuerza relativa y creo que es más realista. Dispositivo de movimiento más rápido, mayor fuerza para afectar el objeto.

También mira:

http://www.freescale.com/files/sensors/doc/app_note/AN3397.pdf

y

Uso de acelerómetro, giroscopio y brújula para calcular el movimiento del dispositivo en el mundo 3D