2016-07-27 2 views
0

Ce que je suis en train de faire est de détecter le .... "titre" d'un utilisateur du smartphone Android dans sa poche. Par exemple, disons qu'il/elle descend dans une rue droite. Quand il/elle prend un x degré de tourner à une autre rue, je veux être capable de détecter ces x degrés. Fondamentalement en supposant qu'il y a un vecteur normal à l'utilisateur, j'ai besoin d'obtenir la rotation de ce vecteur autour de son origine, l'utilisateur.Comment détecter le changement de direction (en degrés) en utilisant smartphone Andoid

Je serai encore plus précis. J'ai un appareil composé d'un module accéléromètre et gyroscope (MPU6050), d'un module bluetooth et de 2 capteurs ultrasons connectés à un Arduino Nano qui se place sur la main de l'utilisateur et envoie des données (accélération, rotation de la main et distance aux objets) l'appareil Android. L'utilisateur a la main tendue devant lui et la déplace de gauche à droite (comme une personne aveugle utilise une canne blanche). Initialement, au démarrage, l'appareil arduino étalonne et considère que la direction à laquelle l'utilisateur est confronté avec la main droite est de 0 degré. Au fur et à mesure que l'utilisateur se déplace, la main de gauche à droite signale l'angle de la main. Supposons que l'utilisateur se déplace de 30 degrés vers la droite à partir de la position initiale, en ligne droite, l'appareil Arduino enverra +30 degrés au smartphone. La partie importante est tat je m'intéresse seulement à la position de la main. Si l'utilisateur tourne de 40 degrés vers la droite, l'angle envoyé au smartphone sera de 30 + 40 = 70 degrés. Ce que j'ai besoin est d'atténuer cela, de détecter le changement de 40 degrés sur le smartphone Android et de l'utiliser pour corriger l'angle envoyé par l'appareil Arduino de sorte que si un utilisateur a sa main à 30 degrés par rapport à la direction, compte tenu de sa position dans le monde réel, l'application Android signalera après correction 30 degrés, la position de la main.

J'ai essayé d'utiliser ceci: http://www.codingforandroid.com/2011/01/using-orientation-sensors-simple.html mais cela ne donne pas de résultats précis et fiables. Je suis désolé pour le long message, j'essayais d'expliquer aussi détaillé que possible quel est le problème que j'essaie de résoudre.

Répondre

0

De votre description, vous pouvez obtenir la lecture à partir du téléphone Android, et c'est juste que la lecture de la rotation n'est pas assez précise du téléphone. Que diriez-vous d'ajouter le 3ème dispositif Arduino sur le corps (disons sur la poitrine) comme point de référence? De cette façon, il suffit de lire le degré relatif entre la main et le point de référence.

+0

J'ai pensé à cela mais je ne veux pas et je n'ai pas non plus un autre module accéléromètre et gyro donc je veux profiter de ceux intégrés sur le smartphone – Sami0806