J'ai gribouilé une explication possible de pourquoi les valeurs maxiamles de X Y et Z sur le magnétomètre apparaissent quand je dirige ces axes vers le sol (en fait pas à la verticale, mais avec une très grande inclinaison vers le bas). Et si je ne me trompe pas, ce pourrait être parceque le magnétomètre cherche le vrai Nord Magnétique, et que comme la terre est ronde, ce n'est pas en face de moi, mais un peu vers le bas.. c'est juste une hypothèse à confirmer, et qui ne modifie pas l'approche que j'avais commencé à utiliser pour l'orientation N/S/E/O avec le magnétomètre.
vendredi 31 mai 2013
Comment voir une led Infra-rouge
Merci le smartphone!
en fait, je pensais que j'allais avoir du mal a travailler avec les leds infrarouge, mais il y a une methode assez simple de voir la lumière emise par ces leds. Si le smartphone, comme c'est dans mon cas, n'a pas de filtre Infra Rouge sur ses caméras, alors il affiche ces lumières en les transformant en couleur violette-blanc à l'écran. Ultrapratique.
et Merci instructables pour l'astuce: http://www.instructables.com/id/See-Infrared-LED-Light-with-an-iPhone-4/step2/Now-Try-Using-the-Front-Facing-FaceTime-Camera-to-/ (marche aussi pour samsung, LG etc)
Magnetometre, calibration et recherche du Nord
Afin de mieux calculer le centre de chaque axe sur le magnetomètre, un peu mieux que la dernière fois, j'ai bougé le magnétomètre dans tous les sens, je ne l'ai pas du tout gardé à l'horizontale. Les résultats ne sont, pour le coup, pas du tout les mêmes, et je peux mieux estimer la valeur centrale et les variations autour.
Étrangement, les valeurs maximales apparaissent quand on pointe les axes vers le sol (?). Mais, et c'est une bonne chose, quand on est à l'horizontale, les valeurs changent aussi selon si on pointe les axes X et Y vers le nord ou vers le sud. Cela permet d'imaginer une façon très simple de verifier si la personne est bien orientée vers le nord ou non.
D'abord, il faut verifier que la personne tient le magnétomètre bien à l'horizontale: la valeur Z s'approchera de sa valeur maximale. Si c'est le cas, alors on regarde les autres axes, en valeur absolue. Si X est suppérieur à Y alors l'axe nord-sud est sur X, si c'est l'inverse alors l'axe est sur Y. et pour savoir dans quel direction le nord est, il suffit de savoir si X est une valeur negative ou possitive par rapport à sa valeur centrale qu'on a estimé précedemment.
lundi 27 mai 2013
Infrarouge Emetteurs-Recepteurs basics
petit tuto sur les leds infra rouge (emetteur - recepteur) de chez sparkfun
le schéma de base pour un branchement sur du 5V (valeurs des resistances a adapter pour le 3.3V du lilypad):
Comprendre le magnetometre
Donc ce petit magnétomètre devrait me servir de boussole.
Le problème c'est qu'il est ultra sensible aux objets métalliques et aux aimants.
Normalement il detecte le nord magnétique dans le champ magnétique terrestre, champ qui varie entre 25 et 65 µT (Tesla étant l'unité de mesure d'un champ magnétique)
Le problème c'est qu'il est ultra sensible aux objets métalliques et aux aimants.
Normalement il detecte le nord magnétique dans le champ magnétique terrestre, champ qui varie entre 25 et 65 µT (Tesla étant l'unité de mesure d'un champ magnétique)
Le magnétomètre est sensible jusqu'a 1000 µT (ou -1000 µT dans le sens inverse) et rien qu'en faisant un test avec un aimant (grand comme un demi doigt) on peut atteindre ces limites:
J'avoue que je ne comprends pas tout à ce qu'il a fait sur le graphique mais ca me semble logique que les polarités se soient inversées en déplaçant l'aimant vers le magnétomètre.
Sur la datasheet, il est expliqué que l'"Output Data Range (RAW =0)" varie entre min -30 000 bits et max +30 000 bits, avec une "Sensitivity" de 0.10 µT/bit, ceci devrait me permettre de verifier que le magnétometre detecte des valeurs a peu près correcters quand il detecte le nord magnétique. La température peut modifier un peu ces valeurs, ainsi que les objets métalliques et les aimants, ce qui risque de poser des problèmes.
Sur la datasheet, il est expliqué que l'"Output Data Range (RAW =0)" varie entre min -30 000 bits et max +30 000 bits, avec une "Sensitivity" de 0.10 µT/bit, ceci devrait me permettre de verifier que le magnétometre detecte des valeurs a peu près correcters quand il detecte le nord magnétique. La température peut modifier un peu ces valeurs, ainsi que les objets métalliques et les aimants, ce qui risque de poser des problèmes.
Les valeurs que j'ai en garadnt le magnétomètre a peu pres statiques et le tournant sur un seul axe, et en supposant que chaque axe ne détecte que le nord magnétique:
Je ne sais pas ce que j'ai fait pour que les valeurs ne ressemblent à rien sur le dernier graph, j'ai du bouger les autres axes sans faire exprès, je referai les tests. Cela dit, grosso modo les différences tournent autour de 250 ou 300 pts, soit 25 à 30 µT, ce qui me parait peu. Sans parler du test sur Z ou la difference n'est que d'environ 150 pts. Il y a encore des tests à faire, et je sens que les interferances sont, malheuresement nombreuses.
Docs magnetometre
schéma d'utilisation: http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/Magneto/mag3110_breakout-v11.pdf
datasheet du mag3110: http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/Magneto/MAG3110.pdf
Pour utiliser ce module il faut utiliser la librairie Wire d'arduino, que je ne fais que découvrir, et qui permet d'envoyer et recevoir des données en I2C
datasheet du mag3110: http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/Magneto/MAG3110.pdf
Pour utiliser ce module il faut utiliser la librairie Wire d'arduino, que je ne fais que découvrir, et qui permet d'envoyer et recevoir des données en I2C
jeudi 23 mai 2013
Bluetooth, bidouilles qui marchent
Rien d'extraordinaire. J'arrive juste a prouver que le bluetooth mate arrive à capter les données envoyés par un programme sur une tablette android (voici le lien), et affiche ce qu'il reçoit sur le moniteur série de mon ordinateur... ok ce qu'il reçoit n'est pas du tout compréhensible pour moi, mais c'est un bon début. la carte marche. Il faut maintenant trouver comment convertir les données d'entree sur l'android et de sortie sur le moniteur, afin de rendre le tout plus facile à gérer etc etc.
mercredi 22 mai 2013
Bluetooth, vrac
Un tuto pour configurer le bluetooth mate sur mac, avec un arduino mini pro (atmega 328 à 3.3V)
http://www.rioleo.org/setting-up-the-arduino-pro-mini-and-bluetooth-mate-on-mac.php
le sketch qui lui correspond http://www.rioleo.org/uploads/loop.pde
Les lignes de commande que j'ai obtenu, non pas avec ce sketch mais avec le sketch de config de sparkfun (https://www.sparkfun.com/tutorials/264)
Pour le moment je penche pour dire que le bluetooth ne reçoit pas de donnée de l'android, je ne sais pas pquoi, problème d'identification?
http://www.rioleo.org/setting-up-the-arduino-pro-mini-and-bluetooth-mate-on-mac.php
le sketch qui lui correspond http://www.rioleo.org/uploads/loop.pde
Les lignes de commande que j'ai obtenu, non pas avec ce sketch mais avec le sketch de config de sparkfun (https://www.sparkfun.com/tutorials/264)
Pour le moment je penche pour dire que le bluetooth ne reçoit pas de donnée de l'android, je ne sais pas pquoi, problème d'identification?
Seedstudio Bluetooth Shield != Sparkfun Bluetooth Silver Mate; pamplemousse!
Je crois que je comprends pourquoi ça ne marche pas...
Pour le projet Android + Arduino trouvé dont j'ai parlé précédemment ils utilisent un shield arduino bluetooth SeedStudio, dont voila le wiki http://www.seeedstudio.com/wiki/index.php?title=Bluetooth_Shield#Connecting_Bluetooth_Shield_to_Android_Phone et la liste des commandes spécifiques au shield http://www.seeedstudio.com/wiki/Serial_port_bluetooth_module_(Master/Slave)#Commands_to_change_default_settings.
Vu que j'utilise un Silver Mate de sparkfun, la connection ne marche pas pareil, ni les commandes qui d'ailleurs sont sur ce pdf, de la marque qui les produit. https://www.sparkfun.com/datasheets/Wireless/Bluetooth/rn-bluetooth-um.pdf
donc pour parametrer le bluetooth avant d'envoyer des données c'est différent, rien de "\r\n+patatipatata".
En essayant d'envoyer les commandes sur le module bluetooth (connecté a un arduino uno helas), j'arrive avec les bonnes commandes, à changer le nom du bluetooth, il s'appelle maintenant pamplemousse... tout ça pour dire qu'il faut utiliser les bons outils
En essayant d'envoyer les commandes sur le module bluetooth (connecté a un arduino uno helas), j'arrive avec les bonnes commandes, à changer le nom du bluetooth, il s'appelle maintenant pamplemousse... tout ça pour dire qu'il faut utiliser les bons outils
Connection Bluetooth - Lilypad
La tablette / smartphone servent de socle pour lancer les jeux, voir les scores etc. Il faut donc que les bracelets communiquent avec ce dispositif ET entre eux.
J'avais fait des recherches sur la piste des Xbee, mais a priori ce n'est pas le plus optimale - peut être que je me trompe. J'ai un module Bluetooth qui est fait pour marcher avec les Lilypad: Bluetooth Silver Mate - RN 42, dont voici le lien; et Sparkfun a un tuto plutot complet pour les modules Bluetooth : https://www.sparkfun.com/tutorials/264. Malheureusement, pour une raison que je ne comprends pas, les tests ne marchent pas sur le lilypad mais marchent très bien sur l'Arduino UNO.
En plus mon ordi bug totalement avec son bluetooth (je n'arrive même pas à me connecter sur mon telephone portable avec). Cela dit, il a l'air de trouver le module bluetooth quand il cherche des dispositifs:
Mon chéri a trouvé un Tuto / projet très bien détaillé qui utilise un appareil Android avec un Arduino connecté à un module bluetooth et à un module rgb étrange: http://arduinobasics.blogspot.fr/p/arduino-basics-projects-page.html, section Android projetcs.
Vu qu'on a pas le petit module groove rgb, on fait sans, en modifiant le code pour utiliser une led RGB tout simplement. L'android se connecte, comme on peut voir sur la photo, mais lorsqu'on tap sur la couleur rouge, le module bluetooth devrait recevoir la lettre 'r' et faire allumer ainsi la led rgb-- elle ne s'allume pas, et le moniteur série a l'air de dire que rien n'est reçu par le module bluetooth. C'est frustrant.
Vu qu'on a pas le petit module groove rgb, on fait sans, en modifiant le code pour utiliser une led RGB tout simplement. L'android se connecte, comme on peut voir sur la photo, mais lorsqu'on tap sur la couleur rouge, le module bluetooth devrait recevoir la lettre 'r' et faire allumer ainsi la led rgb-- elle ne s'allume pas, et le moniteur série a l'air de dire que rien n'est reçu par le module bluetooth. C'est frustrant.
Prototype du bracelet, premier essai
Avec de la feutrine, de la mouse à découper (je pensais que je n'en trouverais pas, ça s'appelle du fomi chez moi et je connaissais pas le nom français, mais je l'ai trouvé chez Graphigro par miracle), des leds branchées en série avec une pile en lithium de 3V. Feutrine + mousse = materiels non conducteurs normalement. Le cablâge des fils des leds et tout est super bien caché dans le bracelet, on voit juste deux cables blancs qui sortent du bracelet vers la pile, comme pour indiquer que c'est connecté.
Le cercle de LED au milieu serait un moyen visuel pour par exemple afficher l'orientation, la barre de vie ou autres info. Je ne sais toujours pas si c'est suffisant, ou s'il ne faudrait peut Être pas - sous risque de surcharger le tout - ajouter un deuxieme cercle de led pour avoir 2 types d'informations en même temps (Avec les 2 cercles de LED). Tests à continuer.
mardi 21 mai 2013
Brassard-Dé sparkfun
Je poste juste un petit lien sur un tuto de sparkfun qui utilise des composants de la gamme lilypad arduino pour fabriquer un brassard-dé pour le jeu dungeons and dragons. L'accelerometre, lorsqu'il est gigoté, génére un chiffre, selon les paramètre qu'on a choisi.
https://www.sparkfun.com/tutorials/333
https://www.sparkfun.com/tutorials/333
lundi 20 mai 2013
Tests avec des enfants
Après quelques tests, avec un enfant de 5-6 ans, il est clair qu'il y a des choses à modifier.
À commncer par la portabilité du prototype, actuellement au stade de protoboard + cables à pinces.. ce n'est pas optimal pour faire des tests. il est donc impératif de trouver une solution pour de futures tests, que ce soit en achetant un bracelet stretchable à decathlon ou en fabriquer un, où je puisse facilement poser et enlever les composants.
Ensuite, c'est clair que les seuils que j'ai imposé sur les programmes sont beaucoup trop grands pour les gestes à cet âge là. Il faut plus de sensibilité pour le captage des gestes, le tout sans toucher aux valeurs des forces de gravité, ce qui peut être assez subtile à gérer.
Troisièmement, si l'axe des X est parallèle au bras, faire un geste vers l'arrière sur cet axe...ce n'est pas intuitif du tout. Faire un geste vers l'avant sur cet axe, ok, c est comme un coup de poing, mais vers l'arrière ce n'est juste pas naturel et ça ne se comprend pas tout de suite chez les jeunes enfants.
Quatrièmement, étant donné que j'avais imposé un temps d'attente entre les captations des différents gestes, ce temps n'est pas du tout compris pour l'enfant, qui avait surtout envie de gigoter l'accéléromètre afin de changer la couleur.
(Certes, le programme de test n'était peut être pas le plus clair, ni le plus approprié, et il y a encore des tests à faire avec d'autres enfants)
Peut être qu'il serait intéressant de prendre ces gigotements sur les différents axes et d'en faire quelque chose de plus intuitifs pour les plus jeunes.. et pour les plus âgés de faire un système plus complexe avec les différents gestes et axes etc.
À commncer par la portabilité du prototype, actuellement au stade de protoboard + cables à pinces.. ce n'est pas optimal pour faire des tests. il est donc impératif de trouver une solution pour de futures tests, que ce soit en achetant un bracelet stretchable à decathlon ou en fabriquer un, où je puisse facilement poser et enlever les composants.
Ensuite, c'est clair que les seuils que j'ai imposé sur les programmes sont beaucoup trop grands pour les gestes à cet âge là. Il faut plus de sensibilité pour le captage des gestes, le tout sans toucher aux valeurs des forces de gravité, ce qui peut être assez subtile à gérer.
Troisièmement, si l'axe des X est parallèle au bras, faire un geste vers l'arrière sur cet axe...ce n'est pas intuitif du tout. Faire un geste vers l'avant sur cet axe, ok, c est comme un coup de poing, mais vers l'arrière ce n'est juste pas naturel et ça ne se comprend pas tout de suite chez les jeunes enfants.
Quatrièmement, étant donné que j'avais imposé un temps d'attente entre les captations des différents gestes, ce temps n'est pas du tout compris pour l'enfant, qui avait surtout envie de gigoter l'accéléromètre afin de changer la couleur.
(Certes, le programme de test n'était peut être pas le plus clair, ni le plus approprié, et il y a encore des tests à faire avec d'autres enfants)
Peut être qu'il serait intéressant de prendre ces gigotements sur les différents axes et d'en faire quelque chose de plus intuitifs pour les plus jeunes.. et pour les plus âgés de faire un système plus complexe avec les différents gestes et axes etc.
dimanche 19 mai 2013
vidéos, terminaisons des fils conducteurs
des tips d'adafruit
et des astuces d'ailleurs (faut surtout voir comment ici ils font les terminaisons des fils (avec des petites broches et des perles à écraser
Gestes et couleurs test
Acceleromètre + led rgb. J'analyse les coups les plus forts selon l'axe, suivant les données prises précédemment. À chaque cycle, l'arduino enregistre la liste des 15 dernières valeurs pour x y et z (15 val = 300 millisecondes, environ le temps d'un coup sec), puis calcule l'écart entre les plus petit et le plus grand des chiffres sur chaque liste, et si un écart est suppérieur à une certaine valeur (150 par exemple), on dit qu'il y a eu un coup sur cet axe la. La led change alors de couleur selon l'axe et le sens du coup.
Du coup on a 6 coups possibles et 6 couleurs là : sur l'axe des X vers l'avant, X vers l'arrière, Y avant, Y arrière, Z avant, Z arrière. Ce ne sera pas l'application definitive evidemment, mais c'est juste pour montrer que c'est possible de detecter au moins 6 gestes différents.
Il faut imaginer alors le système d'envoie et reception des sorts, la possibilité de donner des 'coups critiques', avec des gestes plus forts par exemple; les combos, le recharge de 'magie' etc. j'ai deja une petite idée qui implique un système visuel et sonore (le son est très important!)
Gestes
Dans la meme idee d algo pour la detection de pas ou de sauts, mais clairement sur un autre programme. On peut de cette façon imaginer deja 6 gestes differents, et si j ajoute un deuxieme seuil on peut alors differencier 12 gestes. A associer avec un systeme de leds = des sortes de runes de pouvoir qui se rechargent et un systeme de bouclier ça peut etre marrant.
samedi 18 mai 2013
Gestes : detecter un coup de poing
l'accelerometre posé sur le bras, avec un caoutchouc, comme un bracelet. Je donne un coup sec sur l'axe des X, en essayant de garder les autres à peu près stables (y et z ressentent quand même le coup), les courbes sont similaires mais on voit deja une tendance (l'écart est enorme sur x entre les pics du haut et du bas).
Delimitation pas / saut
Avec les donnees recuperees sur les courbes, je peux etablir des seuils de valeurs pour distinguer les pas et les sauts, comme c est dessiné sur les croquis. J avais deja calcule la valeur centrale sur Z, a laquelle s ajoute la force de gravite dont la valeur approximative est de 102 (dans l echelle 0 a 1024 de l entree analogique de l arduino).
Donc, en ayant l accelerometre a peu pres a l horizontal, et sans trop bouger (oui Il y a heureusement un peu de tolerance au bruit par magie) la seule force qui s exerce sur Z est la force de gravite, et donc les valeurs tournent autour de 102 (-102, en fait c est inversé).
Sur les courbes, les pas sont representés par une montee progressive des valeurs puis par un pic vers le bas (le moment ou le corps retombe). C est ces pics qui sont interessants, parcequ ils permettent de diatinguer la force d'un pas- de la force de gravité; mais aussi de diatinguer la force d' un pas - de la force d'un saut, beaucoup plus importante.
La plus petite valeur des pics des pas a ete, sur les courbes, de -160; et le pic let moins fort d un saut, et donc le plus haut, a ete de -200, et en plus le pic descend et remonte tres tries Vite (100-200 millisecondes). On peut donc etablir -180 comme left seuil qui differencie les pas des sauts. Tout ça est très approximatif mais ça a l air de marcher pas trop mal.
Des qu une valeur depasse -120, on regarde sur notre tableau des 5 dernieres valeurs (100 millisec au total) s il y a eu une valeur en dessous du seuil de -180, si ce n est pas le cas c est tres probablement un pas, sinon c est un saut.
On donne ensuite un temps d attente de 1 ou 1.5 d attente avant de re-capter un autre pas ou saut. Les sauts sont en effet plus longs que les pas. Cette attente permet aussi d ignorer les valeurs apres le premier pic interessant ( et le 2e pic des sauts par ex).
jeudi 16 mai 2013
Analyse des données sur Z
Graphiques avec les données prises sur l'axe Z, apparemment beaucoup plus stable que l'axe X, en supposant que l'accéléromètre est posé sur une surface plate (ou un bracelet posé sur mon bras, comme c'était le cas pour les prises de données. Sachant que j'ay mis des delay() sur le sketch, ça pourrait donner encore plus de données mais la on voit ce à quoi ça ressemble. J'arrive à faire dire à l'arduino "pas detecté" ou "saut detecté" quand il s'agit d'un pas ou un saut, mais c'est pas encore très précis. Et puis il faudrait faire des tests avec des enfants pour des valeurs plus sures.
avec un delay de 50 ms sur ce sketch, 3 pas (3 pics vers le bas quand je touche le sol avec mes pieds)
avec un delay de 20 ms, 1 seul pas (1 pic quand je touche le sol)
avec un delay de 20 ms, 3 pas, mais le 3è n'a pas été assez fort apparemment
20ms de delay, mais je ne sais plus si j'ai fait 3 ou 4 pas, mais on dirait 4.
2 sauts, 20ms delay, les courbes sont beaucoup plus prononcés (et donc pourraient être selectionnées pour des actions spécifiques lors de certains jeux)
1 seul saut, 20ms. en fait ça fait 2 gros pics vers le bas, un plus grand que l'autre (effet rebond, qui pourrait servir aussi pour detecter ce genre de bonds)
et puis l'ensemble, où on voit la différence entre les sauts et les pas.
Tout Test est mieux avec un chat
Je testais juste la capacité de l'accéléromètre a detecter de gros mouvements sur l'axe des X, ici perpendiculaire à mon bras. la lumière s'allume quand la valeur sur X depasse un certain chiffre (au dessus de 40 ou en dessous de -40)
Des projets geniaux sur l'interwebs
Sound on Intuition (2012), de Pieter Jan Pieters, qui utilise les battements du cœur et autres elements pour composer de la musique basée sur le corps, c'est ultra astucieux.
Arduino Air Drums (2011). très très fun et il utilise 3 acceleromètres (1 axe pour chaque). Site sur instructables: http://www.instructables.com/id/Arduino-Air-Drums/
Arduino Air Drums (2011). très très fun et il utilise 3 acceleromètres (1 axe pour chaque). Site sur instructables: http://www.instructables.com/id/Arduino-Air-Drums/
Tilt sensing bracelet. ou comment capter l'angle de mouvement sans un acceleromètre, sympathique, simple propre.
Bref y a tellement de projets ici et la tellement geniaux...
Instructables: Accelerometre + Gyro
En cherchant des alternatives pour la captation de pas, je suis tombée sur ce projet assez sympathique d'un controlleur Midi qui utilise l'arduino + un accelerometre et un gyroscope ( http://vimeo.com/48347752 ). La personne qui l'a fait a aussi posté tout un tuto DIY sur le site instructables avec pas mal d'informations sur comment il a procédé et il m'a semblé interessant de le reposter ici : http://www.instructables.com/id/Use-an-Accelerometer-and-Gyroscope-with-Arduino/.
Je n'ai pas de gyroscope moi même mais bon. Ce qui est difficile avec l'acceleromètre n'est pas de deduire l'angle d'inclinaison de celui-ci, mais de capter un mouvement rapide tel qu'un pas en avant.
Pour le moment je me sers des données sur l'axe X. Du coup si je veux detecter un pas (et donc une grande force exercée en avant puis en arrière lors de l'arrêt), je peux très facilement tricher en inclinant l'axe des X en avant puis en arrière suffisament pour que ça ressemble à un pas : la force de gravitation fait le travail pour moi sans que j'aie à me dépalcer.
Peut être qu'une approche plus logique serait d'utilser l'axe Z, ce que je vais tester. Aussi on pourrait comparer les données d'inclinaison de l'acceleromètre (combinaison des données des 3 axes) et essayer d'enlever cette inclinaison à la force exercée sur X quand on se déplace. Je ne sais pas du tout si c'est clair ce que j'explique et je n'ai pas dessiné de croquis encore, mais c'est des choses à tester. Aussi la combinaison avec le magnétomètre!
Je n'ai pas de gyroscope moi même mais bon. Ce qui est difficile avec l'acceleromètre n'est pas de deduire l'angle d'inclinaison de celui-ci, mais de capter un mouvement rapide tel qu'un pas en avant.
Pour le moment je me sers des données sur l'axe X. Du coup si je veux detecter un pas (et donc une grande force exercée en avant puis en arrière lors de l'arrêt), je peux très facilement tricher en inclinant l'axe des X en avant puis en arrière suffisament pour que ça ressemble à un pas : la force de gravitation fait le travail pour moi sans que j'aie à me dépalcer.
Peut être qu'une approche plus logique serait d'utilser l'axe Z, ce que je vais tester. Aussi on pourrait comparer les données d'inclinaison de l'acceleromètre (combinaison des données des 3 axes) et essayer d'enlever cette inclinaison à la force exercée sur X quand on se déplace. Je ne sais pas du tout si c'est clair ce que j'explique et je n'ai pas dessiné de croquis encore, mais c'est des choses à tester. Aussi la combinaison avec le magnétomètre!
mercredi 15 mai 2013
Probleme avec les centres
Apparemment les valeurs centrales ne sont pas a 511 comme j avais estime. En affichant les valeurs tout en disposant les 3 axes de l accelerometre vers le sol, on constate que la valeur centrale de x est vers 511, celle de y est plutot vers 506, et pour z plutot vers 538. Je vais devoir imposer ces chiffres comme milieux et travailler avec ça. Ces valeurs expliquent bien les nombreux bugs des differents tests.
mardi 14 mai 2013
un pas
Quand une personne commence à marcher et ensuite continue son chemin avec une vitesse constante (ok cas très idéal), les valeurs sur l'axe x vont passer de 511 à au dessus selon la force initiale de l impulsion de marche, puis ces valeurs vont retomber normalement à 511. la'ccelerometre aura capté cette accélération initiale - la force d'impulsion qui a fait changer d'un état 1 (repos) à un état 2 (marche). Je ne sais pas du tout si j'utilise les bons termes, mais intuitivement c'est à peu près ça, grosso modo.
Si je suppose que pour mon labyrinthe, le joueur doit faire uniquement des déplacements avec des pas (un pas a droite, 2 pas a gauche...). On peut imaginer que l'accéléromètre capte ces variations. Normalement la courbe ne devrait pas être la même que pour une marche continue à vitesse constante. Elle devrait ressembler à un N : l'impulsion de départ fait augmenter les valeurs (au dela de 511), puis l'arret plutot sec, devrait faire retomber les valeurs en dessous de 511, et ensuite ça se stabilise à nouveau autour de 511
afin de lisser les courbes et enlever les valeurs 'parasites', on fait une moyenne des 10 valeurs précedentes données par l'axe x, ca devrait tourner autour de 511- 512 (1024/2). Des qu'il y a un mouvement brusque, les valeurs changent 'radicalement' (enfin on les remarque): c'est un pas!.
Ce qui est sympathique c'est que ça marche aussi avec un mouvement brusque du bras, comme si on lançait des sorts ou des coups (ça pourrait etre une autre idee de jeu)











































