Не легко сделать точно.Акселерометр сообщает только ускорение , а не движение.Вы можете попытаться (численно) интегрировать ускорение с течением времени, но вы, скорее всего, в конечном итоге столкнетесь с накопительными ошибками, которые приводят к непреднамеренному движению.
Псевдокод, явно не проверенный:
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)