2011-01-12 2 views
0

L'iphone peut-il détecter son mouvement en termes de distance?Détecter un mouvement avec un iphone

Serait-il possible d'utiliser une fonction intégrée sur un iPhone pour déterminer la distance parcourue par le téléphone afin de pouvoir calculer la vitesse de déplacement?

Au fond ma question est

peut détecter un iphone sa position et la distance parcourue sans utiliser le GPS?

grâce

Répondre

6

Vous pourriez probablement faire des calculs intelligents. Fondamentalement, intégrer sur les données de l'accéléromètre.

Pour tous les détails, voir pas facilement http://www.freescale.com/files/sensors/doc/app_note/AN3397.pdf

+0

Merci. C'est intéressant. – jarryd

+1

(1) Bien que [Wiimote] (http://en.wikipedia.org/wiki/Wiimote#Sensing) ait un accélérateur, il utilise un capteur optique pour trouver sa position. (2) La méthode dans votre diapositive ne fonctionne que si l'iPhone * ne tourne pas *. Heureusement, le dernier modèle a un gyroscope pour que l'effet puisse être inclus. – kennytm

+1

Merci pour la correction, enlevé le peu à propos de la Wiimote. Voir ce sujet pour plus de discussion sur le même sujet: http://stackoverflow.com/questions/4449565/getting-displacement-from-accelerometer-data-with-core-motion – overscore

0

Non, le seul capteur que le dispositif a qui permet de calculer la « distance » est via l'API de localisation, qui utilisera le GPS. L'accéléromètre et les gyroscopes (dans l'iPhone 4) peuvent donner des mesures précises des changements d'orientation, mais pas de la distance parcourue.

+0

Le GPS ne détecte pas les petits changements à droite? – jarryd

+0

petit est un terme relatif. La façon dont votre question a été formulée, je pensais que vous parliez de voyager à une certaine distance (c'est-à-dire marcher dans la rue, conduire une voiture, etc.). Si tel est le cas, vous ne pourrez rien faire via l'accéléromètre. Cependant, si vous essayez de déterminer la vitesse à laquelle l'utilisateur balance son bras, la solution de @ overscore devrait vous aider. – MarkPowell

+0

Ok. Merci. Je vais commencer là/ – jarryd

0

, il y a deux façons que vous pouvez faire cela, mais ils ont des limites sévères et vous aurez à écrire tout le code vous-même. Un moyen consiste à utiliser l'accéléromètre et essayer de calculer la distance entre les forces sur le téléphone, ce ne sera jamais très fiable.

Une autre façon est d'utiliser le wifi, essentiellement en regardant la force du signal pour déterminer la distance du routeur (je pense que cela n'est possible qu'en utilisant des API privées et nécessite plusieurs routeurs). Ou écoutez un routeur pour savoir à quelle distance se trouve l'iPhone.

Questions connexes