vendredi 14 juin 2013

8rgb Led multiplexing

J'ai réussi à faire marcher les leds à cathode commun en multiplexage de base.
Je me base sur la vidéo en dessous, avec les mêmes composants et schéma (qui d'ailleurs n'est plus accessible depuis quelques jours parceque la page est.. remplie de virus d'un coup?)



Je travaille aussi avec l'arduino Uno, et dois maintenant transposer sur le lilypad (à 3.3V)
Ce que je remarque c'est que c'est moins puissant en luminosité en 3.3V comparé aux 5V, mais c'est normal. Il faudra modifier les resistances un peu pour que les leds allument assez bien et que les couleurs se mélangent correctement (le rouge a une facheuse tendance à predominer)

5V


3.3V


Comparaison des deux (led verte avec et sans resistance)


jeudi 13 juin 2013

Element Piezo - mode émetteur de sons

En partant sur une base d'un sketch trouvé sur le site d'arduino  (http://www.arduino.cc/en/Tutorial/Melody) et en rajoutant des notes et modifiant certaines autres (qui n'étaient pas en accord avec l'échelle)

d'accord le son n'est pas très fort mais c'est un bon début


mardi 11 juin 2013

Des tests avec Piezo - mode capteur de pression

Donc je fais des tests avec les composants piezo électriques, achetés chez Evola. Il peuvent à la fois servir de capteurs de pression et d'émetteurs de sons, mais la je les utilise comme capteurs, je ferai par la suite des tests de sons. 

Étant donné qu'ils créent un certain voltage quand on les touche, pressione ou tapote, on peut facilement capter ces données avec l'arduino.

Il y a d'ailleurs un tuto sur le site d'arduino pour ça: http://www.arduino.cc/en/Tutorial/Knock
Je l'ai utilisé et modifié pour avoir 2 approches différentes: le piezo comme bouton (logique on/off) et le piezo comme capteur de niveaux de pression.

Donc tout d'abord: tapoter pour allumer/éteindre une diode, rien de plus simple. Dès qu'on tapote le piezo, il crée un voltage. Il n'ya même pas besoin de tapoter fort, au simple toucher ou avec un légère pression on a deja un voltage qui apparait. Un seuil permettant de faire la différence entre un toucher volontaire et du bruit est utilisé afin d'activer ou désactiver la led.



Ensuite, je me suis dit qu'on pouvait faire un peu comme sur les manettes de jeu ou sur les claviers des telephones portables nokia d'il y a quelques années (1=abc, 2=def...): 1 tap pour allumer une led de couleur bleue, 2 tap pour allumer une led de couleur verte, 3 tap pour faire du cyan, 4 ou plus ça éteint les diodes. Évidemment il faut un compteur de tap, ainsi qu'un timer qui permet de savoir si j'ai fait 3 tap a la suite ou 3 tap a des intervales plus long.. un peu comme quand on appuie trois fois la touche 1 sur un nokia et ça fait 'c' ou 'aaa' , selon si on a appuyé dans les temps ou pas.


Après je me suis penchée sur les niveaux de pression, parce qu'effectivement, selon si j'appuie fortement ou pas, les valeurs captées par l'Arduino varient: entre 0 et 1023 (1023 ou 1024 je ne sais jamais) comme pour tout capteur branché à des pins analogiques.
Dans ce cas là, effleurer a peine le composant piezoelectrique génère un courant assez faible, et des valeurs captées sur l'Arduino qui vont entre 30 et 200 dans mon cas (mais ça depend de la résistance qu'on utilise, ainsi que du composant piezo). Ceci allume la led bleue.
Tapoter un peu pour allumer la led verte, et finalement tapoter plus fort pour activer le cyan.

Évidemment il y a du calibrage encore à faire, parceque les valeurs sont ponctuelles et variantes: c'est à dire que quand j'appuie fortement, il y a pas mal de valeurs en dessous de mon plus grand seuil (700).
Ça fait comme une sorte de courbe lorsque je tapote le piezo, donc il y a beacoup de parasites qui font que la led sera bleue puis verte puis cyan en moins d'une demie seconde et qu'elle peut eventuellement repasser au bleue après le cyan, si des valeurs inférieures viennent se coller juste après ma valeur la plus grande au dessus de 700.. 

Créer un tableau de valeur et calculer la moyenne des 5 ou 10 dernières valeurs peut être du coup une solution, et c'est ce que j'utilise pour l'accéléromètre par exemple.



Les trois couleurs:







lundi 10 juin 2013

Led multiplexing

L'affichage visuel du bracelet consiste en un ensemble de leds. J'avais deja expliqué qu'il fallait qu'il soit non-écran, et qu'il devait y avoir plusieurs façons d'informer sur l'état du jouer et du jeu à travers plusieurs systèmes d'affichage... sonore / vibration et lumière; et que, dans le cas du labyrinthe il fallait 2 systèmes d'information visuelle: un système qui indique l'orientation à prendre, et un système qui indique les points de vie restants au joueur.
À partir de ça j'ai imaginé un cercle (ou l'on peut plus facilement 'afficher' l'orientation N-S-E-W..NW-NE-SE-SW) mais aussi un certain nombre de points dans le contexte d'un autre jeu (un maximum de 8 points du coup)
Mis à part le fait que ce cercle sera couvert d'une couche de textile qui permettra de customiser les leds (triangles, feuilles, ronds.. etoiles... coquilles..que sais je).. je me suis intéressée aux système d'affichage double, comme pour le jeu du labyrinthe.
Je sais que le multiplexing n'est pas une chose facile pour moi, et que ..avec du textile conducteur ça risque d'Être très galère.. faudra une plaque ou quelque chose de solide...
bref.. je me suis dit que j'avais 2 options: soit je suppose que le cercle de 8 leds n'est composé que de LEDs monochromes (sur lesquelles, on pourrait mettre des tissus 'filtres' pour customiser...) et que ces leds étaient branchées aux pins digitaux de l'arduino (logique on/off); et qu'en plus de ces 8 leds il y aurait une zone colorée (led rgb connectée en PWM à l'arduino) indiquant l'état du joueur (par exemple: rouge pour etat critique, vert pour max vie..) mais tout ça rendait l'affichage du coup moins intéressant... 


 ça le rendait moins intéressant, mais aussi plus compliqué... moins elegant.. etc.
Une autre option était d'utiliser ce même cercle de leds, mais composé que de led rgb. De cette façon, l'affichage de l'orientation et de la barre de vie pourraient coexister sur les mêmes lumières... ça semblait joli.. mais coté éléctronique,cc'est une belle galère.


toutes les DEL doivent pour le coup être connectées à des pins PWM sur l'arduino, 3 pins par leds + la masse... au total 24 PWM.. ce qui est inexistant sur n'importe quel arduino..notamment le lilypad. Il faut du coup multiplexer (ça se dit en français?) ces leds.. mais pas n'importe comment parcequ'il ne s'agit pas juste d'allumer et d'éteindre..mais de faire ceci avec la modulation en plus...

(schéma de base de multiplexing de led rgb à anode commune, au total 6 pins pour 8 leds rgb)

Ensuite vient le problème des leds rgb à cathode ou anode commune... qui ne marchent pas du tout pareil (oui je me suis deja plantée avec ces leds, j'ai eu les couleurs complémentaires de celles que je voulais :) rien de grave mais bon)





J'ai deux types de leds rgb chez moi, des standart à cathode commune, plus brillantes. et des carrées moins fortes en luminosité mais avec anode commune du coup.




Je fouille l'interwebs du coup pour savoir du coup quel multiplexer je dois acheter ,et pour le moment je suis tombée sur des ULN2803 ou des MAX7219CNG (avec lesquels on peu allumer 64 leds woot..un peu trop quand même), tout ça avec des transistors et des resistances.. faudra vraiment avoir une platine d'experimentation ou quelque chose pour tenir le tout...sinon ça va être trop difficile de tenir tous les cable correctement sur le bracelet.

jeudi 6 juin 2013

Capteurs de pression souples

J'aimerais inclure un capteur de pression souple sur le bracelet, le problème est que je n'ai pas encore trouvé les matériaux adéquats.
Quelques tentatives en photos: des pompons conducteurs avec de la feutrine et de la fibre conductrice (très sympathiques, mais qui puent horriblement); un sandwich de mousses écrasables, avec un circuit des deux cotés et un trou sur la mousse au milieu.. c'est plus un bouton qu'un capteur de pression (à droite); et un capteur avec 2 fils (gauche) : un a l'horizontale et un a la verticale qui sont presque incrustés dans la mousse blanche, ce qui fait que lorsqu'on fait pression la led s'allume plus ou moins (photo 2).. mais la encore il manque quelque chose, c'est plus un bouton qu'un capteur, même si on retrouve des degrés d'intensité lumineuse différents.




le lien dont je me sers au sujet des pompoms conducteurs: http://www.kobakant.at/DIY/?p=2028
encore un lien sur des capteurs de pression avec de la feutrine: http://learning.codasign.com/index.php?title=Creating_Felt_Sensors

Design du bracelet

Je n'ai encore qu'esquissé l'apparence et la structure du bracelet pour le moment, mais une chose est certaine: il faut plusieurs couches de tissu, d'une part parce que je veux que tout ce qui est electronique soit dans une couche 'cachée', d'autre part parceque je veux que l'on puisse personnaliser l'objet en posant une couche suppérieure différente pour chaque utilisateur. On peut supposer alors que le bracelet vient avec une couche suppérieure 'standart' et que l'on peut transformer l'accessoire à sa guise [et peut-être même si on a gagné un certain nombre de parties d'un des jeux, et qu'on a obtenu un tour de force et une recompense textile].

Pour le moment j'opte pour un bracelet plutot long, principalement parceque j'adore quand c'est grand mais aussi parceque coté composants et tout, ça risque d'être dur de les superposer sur une surface plus petite.. mais c'est à voir.. comme a dit etienne, des fois il faut faire des protos qui ne marchent pas mais qui sont bien designés et beaux, et après on réussi par les faire marcher des fois...

Pour ce qui est du textile, j'ai peut-être un contact qui s'y connait bien. Pour le moment je fais des recherches sur le webs, mais comme je suis presque totalement ignorante à ce sujet, ça risque d'être dur.



mardi 4 juin 2013

Des idées de jeu: batailles de sorts

Une autre idée qui m'est venue depuis un moment est de faire des sortes de batailles de magie où grâce à une combinaison de gestes et un système de recharge de 'magie', on peut lancer des sorts à l'adversaire, et jouer à des combats imaginaires. Un peu comme dans un jeu rpg.

Les gestes seraient alors captés grace à une combinaison des valeurs de l'accéléromètre et du magnétomètre (si seulement j'avais un IMU à la place de tout ça, avec le gyroscope en plus)...Avec ces deux elements, un grand nombre de gestes différents peuvent être faits, ainsi qu'un plus grand nombre de combinaisons.

Chaque combinaison dans ce sens, serait une série de gestes effectuée avec des intervales plutôt courts, et dépenserait un nombre donnée de points de magie (mana..). Ces points de magie sont alors symbolisés par les différentes leds à la surface du bracelet. Ils se rechargent petit à petit, ce qui permet de lancer des sorts plus ou moins forts, plus ou moins vite.

À ce système de recharge magie, on peut aussi ajouter un système de blockage des sorts, de sorte à ce que certains dégats sont empechés ou réduits.
Aussi, des sons peuvent accompagner certaines actions. Tout cela n'est encore qu'une idée, qui requiert pas mal d'essai et d'erreurs.



Des idées de jeu: Simon

Partant du fait qu'on utilise l'accéléromètre, et que l'on peut reconnaitre un certain nombre de mouvements, on peut imaginer faire un jeu a la simon. C'est à dire que le joueur doit copier une série de gestes dans le bon ordre, série qui se complique au fur et à mesure que le jeu avance.

Cette série de geste peut être indiquée par l'android, de sorte à ce que chaque joueur essaye d'être le plus fidèle a ce geste. On peut imaginer que certains gestes activent des couleurs et que l'android dans ce cas, ne fait qu'afficher une couleur à imiter.

Une autre modalité serait de faire en sorte que chaque joueur doive proposer des gestes à imiter par les joueurs suivants: X fait un geste horizontal, Y copie ce geste et rajoute un geste vertical, Z doit copier le geste horizontal et le geste vertical et en rajouter un troisième.

À ces idées on peut ajouter des événements aléatoires, provenant de la tablette par exemple, qui fait que d'un coup tout le monde doit faire le geste qui se rapproche de la couleur affichée sur la tablette, et qui peut modifier les 'scores' ou faire perdre un des joueurs.. c'est très vague encore, il y a encore des choses à détailler la dessus.

Un autre événement perturbateur peut être la charge d'un bonus chez un des joueurs qui lorsqu'il déclenche le bonus, peut, par exemple, inverser la série de couleurs à suivre, ce qui perturberait ces adversaires. Le bonus apparaitrait une fois que la série de gestes a été parfaitement copiée une ou deux fois, ou pourrait se charger petit à petit pendant le jeu si le joueur est assez fidèle à la série de gestes

Des idées de jeu - vampires

Une autre idée de jeu que j'avais eu dès le départ, en septembre 2012, avant même de commencer le mémoire, est de jouer au vampire, un peu comme pour le jeu du chat et de la souris, mais modulable et dérivable.

Chaque joueur a son bracelet qui représente sa barre de vie. Un joueur est désigné au hasard comme 'vampire' (affichage d'une lumiere rouge par ex), les autres doivent faire tout leur possible pour ne pas être attrapés. Le joueur vampire doit alors essayer de les attraper pour les 'mordre' grâce, par exemple, aux leds et capteurs infrarouge (le vampire peut émettre la lumière IR, les autres la recevoir). Dès qu'une personne est attrapée, elle devient vampire, et c'est à elle de modre quelqu'un... tout ça en boucle jusqu'à la fatigue, comme sur le jeu du chat et de la souris.

Cependant, ce jeu peut avoir de multiples variantes aussi.
Par exemple: lorsqu'une personne est attrapée par le vampire, elle faire maintenant partie de l'équipe vampire, et doit à son tour, essayer d'attraper les autres. L'équipe des vampires grandit petit à petit ainsi, jusqu'à ce qu'il n'y ai plus qu'un seul joueur restant à attraper, qui sera dans ce cas, le vainqueur.

Un autre exemple, que mon directeur de mémoire m'a proposé: Un joueur est choisi au hasard comme vampire, les autres non. Un compteur se déclenche alors chez le joueur vampire, qui doit mordre un maximum de personnes en un temps donné. Le temps écoulé, un autre joueur au hasard est choisi comme vampire (de préférence pas le même que le précédent). C'est alors à son tour de mordre le plus possible de joueurs. Au bout de par exemple 15 minutes, quand tout le monde aura été vampire autant de fois que les autres, le jeu fini et le score s'affiche sur la tablette: X a mordu 10 fois, Y a mordu 2 fois, Z a mordu 8 fois.. le vainqueur est X.
Je pense que dans cette version du jeu, quand un des joueurs est 'mordu' il ne peut plus être mordu dans la minute qui vient, histoire que le joueur vampire ne s'acharne pour de vrai sur ce joueur là.

Un autre exemple, aussi proposée par mon directeur: Deux équipes s'affrontent (vampires/anges par exemple.. ou une autre métaphore). Elles doivent convertir le plus de joueurs en anges ou vampires. Au bout d'un moment le timer du jeu est fini, et l'équipe qui aura le plus de membres est l'équipe gagnante.

Des idées de jeu - le labyrinthe

J'ai plein d'idées sur papier sur des jeux, plus ou moins développées
j'en poste ici quelques unes à fin de voir plus claire et de regrouper mes notes.
De nombreux jeux sont basés sur des jeux à règles dejà existants, auquels le medium digital du bracelet rajoute des elements spécifiques à lui, et issus par exemple des principes des jeux vidéo (bonus, grades, niveaux de difficulté variante, événements aléatoires, haut-faits etc)

J'avais deja parlé du labyrinthe au tout début de ce blog, et il devient petit à petit un jeu jouable sur le bracelet, il me manque le multiplexing de leds pour l'affichage mais sinon les informations sont déjà affichées sur le moniteur série Arduino. (au passage un grand merci à mon chéri pour toute l'aide qu'il m'apporte au sujet de la création des algorithmes)

Au tout départ j'avais dessiné un jeu que j'ai vite appelé collecteurs et qui consistait en un jeu chacun-pour-soi: il faut se déplacer comme dans un labyrinthe imaginaire, grâce à la boussole qui indique la direction à prendre, et l'accéléromètre grâce auquel on detecte les pas. Le but du jeu est d'aller récolter le plus de 'minerais' (ou de charges magiques, ou d'œufs..) possible en se faisant guider par le bracelet sur cette carte invisible, puis de les ramener aussi vite que possible à la base (ici l'android). Un compteur de temps indique quand le jeu commence et quand le jeu finit, celui qui aura récolté le plus de minerai gagne. Du coup on a la possibilité de faire un jeu plus ou moins long, modulable. Évidemment ce n'est pas forcement un jeu collaboratif ici, d'où l'intérêt de créer plusieurs variantes basées sur cette idée du labyrinthe imaginaire.

La version deux de ce jeu collecteurs serait alors un jeu de groupes versus groupes, et du coup le score du groupe gagnat s'affiche au lieu du score de chaque joueur.

Une autre variante de ce jeu avec des labyrinthes imaginaires est, non pas d'aller récolter des objets, mais de réussir à sortir du labyrinthe, et réussir à sortir avec le score le plus élevé en un temps donné, de la façon suivante: le magnétomètre indique la direction à prendre, voir 2 direction possibles (une qui sera finalement plus directe que l'autre vers la sortie); en même temps il a une barre de vie (symbolisé par des couleurs) qui diminue au fur et à mesure que le temps passe, plus il passe de temps dans le labyrinthe plus sa barre de vie tend vers le rouge. Il a une chance sur 10 de tomber sur une 'case' qui 'guérit' sa barre de vie (en gros il a un peu plus de temps pour sortir du labyrinthe): la lumière devient plus verdâtre, et le joueur ensuite continue son chemin vers la sortie. Tout cela implique que le bracelet doit avoir plusieurs niveaux d'affichage d'information: la direction à prendre, la barre de vie, et la case bonus.

Cette dernière version peut ensuite se transposer au groupe, comme pour les jeux de relais : gagne le groupe qui sort en premier tous ensemble: les joueurs doivent s'encourager tout ça tout ça. Les modalités de jeu en groupe restent à définir, mais c'est une première piste de variation de ce dernier jeu.

dimanche 2 juin 2013

Solutions pour avoir du son

Tutoriel sur arduino.cc : http://www.arduino.cc/en/Tutorial/Melody
J'ai une preference pour les elements piezo tout plats, en grande parceque la forme m'intrigue et j'ai envie de poser mes doigts dessus :D, mais il faut faire des tests avec plusieurs buzzers pour trouver le bon

L'interet ce serait de pouvoir rajouter des sons et des peites melodies aux jeux sur le bracelet, histoire que ça rende plus vivant le tout, et plus parlante l'expérience.. littéralement.
des vidéos sur internet:

buzzer + potentiomètre:


nyan cat + buzzer et arduino (bon d'accord ils ont un speaker plus grand):


samedi 1 juin 2013

Demo d'interfaces textiles+electornique

J'essaye actuellement de trouver une solution plutot rapide pour poser mes differents composants (magnetometre, accelerometre, vibreur, leds..) sur un pre-prototype du bracelet (oui! ça existe ça!) afin de faire des tests. En fouillant le site How to Get What You Want, au sujet de comment souder des fibres conductrices a des fils metalliques (j'ai deja testé avec les fils que j'ai et ça a été desastreux), je suis tombée sur le nom de Hannah Perner Wilson sur un petit coin du site.
J'avais deja lu une de ses publications de recherche du MIT pour mon mémoire, avec des solutions extra pour des interfaces textiles, super astucieuses. Du coup j'ai cherché son site web, et je suis tombée sur une vidéo de demonstration de solutions pour ce genre de projets textiles avec des capteurs  (http://youtu.be/XbFdwukrbZ4, helas je ne peux pas partager la video ici)
D'ailleurs la première série de démos (vidéo que je peux poster sur ce blog) est :


vendredi 31 mai 2013

Magnetometre, a la recherche du Nord

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.

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.

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 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.
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

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?

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

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.


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

lundi 20 mai 2013

Les enfants, ça gigote beaucoup

Je ne sais pas encore comment comprendre tout ça.












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.

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.