Revisiter le Memory

image principale Revisiter le Memory

Difficulté:

Un jeu sonore sur base Arduino


Pour ceux qui ne connaissent pas (on ne sait jamais), le Memory est un jeu qui consiste à retrouver des paires d’images identiques en retournant des cartes disposées en à l’envers sur le plateau de jeu : il s’agit avant tout de mémoriser l’emplacement des images que l’on a déjà pu visualiser. L’adaptation sonore de ce jeu consiste à associer des paires de sons à un damier de touches tactiles.
On peut visionner une démonstration de mon jeu à l’adresse suivante :
https://drive.google.com/file/d/0B9lYPaNSVg2iWjlEVVMtMHZ3Qjg/view?usp=sharing
Cette idée n’est pas originale (il existe déjà quelques memorys sonores commerciaux) mais l’utilisation d’une carte Arduino offre la possibilité de personnaliser complètement le jeu pour un coût très abordable et les modules de détection capacitive désormais disponibles pour un prix modique rendent la mise en oeuvre beaucoup plus aisée que s’il fallait recourir à une matrice d’interrupteurs.
Je ne crois pas que le memory sonore puisse rivaliser avec l’offre ludique actuelle mais il offre quelques perspectives éducatives intéressantes, entre autres celle de faire appel, pendant la période d’éveil de l’enfant, à sa mémoire auditive plutôt qu’à sa seule mémoire visuelle.
Du point de vue pratique, la principale difficulté de réalisation de ce jeu est la mise en place de nombreux câblages.

Matériel :

Budget : Non défini

  • Matériel nécessaire :
  • * 1 carte Arduino Nano (ou clone)
  • * 2 modules de détection capacitive MPR121 Adafruit (ou clone)
  • * 2 registres à décalage 74HC595
  • * 1 transistor NPN
  • * 1 haut-parleur de 8 ohms
  • * 1 alimentation de 4,5 à 9 V d’une puissance de 5 W environ (dans mon cas un boîtier pour 3 piles AA récupéré sur une vieille lampe frontale)
  • * 18 résistances de 200 ohms environ + 1 résistance 100 ohms
  • * 16 LEDs rouges et 2 LEDS vertes
  • * Un boîtier (dans mon cas réalisé avec des chutes de contreplaqué)
  • * du fil de cuivre épais ou tout type de matériau conducteur pour les touches tactiles
  • * du fil pour tous les câblages
  • * un interrupteurJe ne veux pas faire de publicité sur ce tuto pour un fournisseur particulier mais si vous ne trouvez pas vos fournitures dans le budget indiqué, n’hésitez pas à laisser un commentaire pour que je vous donne des pistes…

Etape 1 : Réalisation du boîtier et des touches tactiles

Cette étape est l’occasion d’exprimer vos goûts et talents de bricoleurs. A vous de trouver la meilleure solution pour satisfaire vos besoins en termes d’esthétique, d’ergonomie et de solidité. L’essentiel est de réaliser un boîtier :
* suffisamment grand pour enfermer toute l’électronique et les câblages (disons 150x150x100 mm)
* démontable (une face amovible)
* doté de 16 touches conductrices cablées en face inférieure et associées à 16 LEDs (de préférence au centre des touches)
* doté de 2 LEDS de couleur différente de celles des touches (pour indiquer le joueur actif)
* doté d’un interrupteur et d’une alimentation facilement accessible
* ajouré à l’emplacement du haut-parleur (et éventuellement ailleurs pour créer une aération)

Pour faire simple, il est parfaitement possible d’utiliser un boîtier plastique avec couvercle vissable et d’utiliser de simples rondelles en acier pour les touches. Les amateurs de travail sophistiqué sur bois pourront consulter de leur côté ce très intéressant tuto d’Adafruit pour la réalisation d’inclusions conductrices dans du bois :
https://learn.adafruit.com/metal-inlay-capacitive-touch-buttons/gluing-the-powder

Pour ma part, j’ai fait au mieux avec les moyens du bord… Mon boîtier est réalisé grossièrement avec des chutes de contreplaqué, en ménageant un désaffleurement de quelques mm sur le dessus. J’ai fabriqué de petites spirales de fil de cuivre avec chacune une extrémité coudée insérée au travers du boîtier et j’ai noyé tout le cuivre dans de la résine epoxy (c’est assez cher mais j’en avais un fond de pot, on peut aussi utiliser de la “pâte à bois”). Après quoi j’ai poncé la résine avec un lapidaire (du papier de verre et de l’huile de coude font l’affaire…) pour faire réapparaître le cuivre et obtenir ainsi mes touches conductrices, puis percé la résine aux emplacements des LEDs. Afin d’éviter d’être d’avoir des câbles dans tous les sens, j’ai connecté toutes les touches tactiles en face inférieure via 2 bus récupérés sur une vieille imprimante. Après avoir testé toutes les touches, j’ai collé une protection en carton sur les connexions en face inférieure puis mis en place les LEDs dont j’ai connecté toutes les anodes (le câblage des cathodes se fait en phase finale d’assemblage). La photo montre l’intérieur du boîtier après cette étape (on voit les 2 bus sortir du carton sur le côté).
Pour l’alimentation, une solution alternative peut consister à utiliser un port USB à connecter sur un chargeur de portable, à condition que celui-ci puisse délivrer au moins 1 ampère (je n’ai pas fait le test mais je crois que 500 mA sont insuffisants si on veut amplifier le son mais cela suffira si l’on supprime le transistor : à vous de voir)

Etape 2 : Montage électronique et programmation

L’image Fritzing donne le principe d’assemblage de l’électronique, sans figurer les LEDs ni les touches tactiles. Le fichier fritzing est disponible en pièce jointe pour permettre de bien identifier les câblages. Le code Arduino commenté est également fourni.
Il faut faire attention aux points suivants :
* Le second module MPR121 doit avoir une adresse différente du premier sur le bus I2C : il faut donc relier le pin ADD au pin 3,3V après avoir fait sauter le cavalier (un coup de cutter sur mon module, voir photo)
* Le transistor NPN doit être relié directement à la source d’énergie et pas à la sortie 5 V de l’Arduino
* ne pas oublier de connecter les anodes des LEDs à la masse générale
* des librairies sont nécessaires au fonctionnement du code Arduino (Wire.h et Adafruit_MPR121.h) : il faut les télécharger et les ajouter à votre IDE avant de compiler le code

D’un point de vue méthodologique, je recommande de ne pas se préoccuper de repérer les câbles des touches mais d’utiliser le code “MPR121_test_2_modules” joint pour identifier le numéro de chaque touche et câbler ensuite les LEDs en conséquence lors du montage final (la LED 0 correspond à la touche 1, la LED 1 à la touche 2 et ainsi de suite…). J’ai réalisé ce dernier câblage sans soudure en pinçant simplement les connecteurs sur les pattes des LEDs.

Après assemblage du jeu, n’hésitez pas à vernir votre boîtier, cela n’altère pas la détection du toucher : en fait, j’ai fait le test en intercalant une feuille de papier 80g entre mon doigt et les touches donc on doit pouvoir mettre plusieurs couches de vernis sans problème…

Etape 3 : Améliorations futures

Sources :

https://learn.adafruit.com/adafruit-mpr121-12-key-capacitive-touch-sensor-breakout-tutorial, http://www.zem.fr/decouverte-du-composant-74hc595-8-bit-shift-register/, http://garagelab.com/profiles/blogs/how-to-use-tone-function-arduino-playing-the-james-bond-theme, http://www.linuxcircle.com/2013/03/31/playing-mario-bros-tune-with-arduino-and-piezo-buzzer/


Excellent comme jeu ! Sympa la vidéo explicative. Effectivement ça à l'air dur. Merci pour le partage

Merci pour le commentaire Ipxav ! Le jeu n'est pas dur si on utilise des sons bien distincts mais dès que ça se ressemble, ça devient plus coton…

Ces tutoriels devraient vous plaire

vignette fabrication de circuits imprimés facile
fabrication de circuits imprimés facile
vignette Préparer un fichier pour une découpe et une gravure laser
Préparer un fichier pour une découpe et une gravure laser
vignette Fabriquer une lampe à lave
Fabriquer une lampe à lave
avaatar Barsa

Barsa

Suivre

Vues: 266
Mis en favoris: 0

Découvrez d'autres tutoriels de

Barsa

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers