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 :