Note : ce projet n’a pas réussi à être terminé durant les contraintes de temps définies. Cet article sera mis à jour une fois le projet terminé.
Contenus de la page
Introduction
Aujourd’hui, les arcades sont une denrée rare en France. Pour jouer au jeu “Dance Dance Revolution” (ou DDR), il faut sortir de Bordeaux. Or, la borne d’arcade la plus proche se trouve à… Libourne ! Deux heures de vélo, puis 2€ pour aller jouer à un jeu d’arcade, ce n’est pas très agréable. L’autre option, c’est d’acheter un dance pad pour jouer à DDR grâce au logiciel Project Outfox. Cependant, les moins chers coûtent près de 300€ en moyenne et sont fabriqués aux USA. Et les versions tapis sont très peu fiables…
La solution, c’est donc d’en fabriquer un nous-même ! C’était donc notre projet à réaliser au cours du module Makers. A partir de bois, de capteurs et d’une carte Arduino, on a réussi à fabriquer un dance pad facile à transporter, et relativement moins cher que les versions sur le marché.
Matériel utilisé
- 9x capteur de pression à faible sensibilité
- 4x plaques de bois CTP de 100x100x0.5 cm
- 1x Arduino UNO
- 15x paires mâle/femelle de pogo pins avec aimants
Conception mécanique
Design initial & dimensions
Pour réaliser notre Dancepad, il a fallu dans un premier temps s’inspirer des modèles utilisés dans les salles d’arcade. Les dimensions de la plaque issue de la borne d’arcade DDR sont difficiles à trouver, il a fallu fouiller sur plusieurs sites. Les dimensions ont été copiées depuis ce vendeur et par les données de plusieurs autres sources. Chaque surface de pression aura donc une dimension de 28x28cm, ce qui donne une surface de jeu totale de 84 x 84 cm, très proche des dimensions de référence (on a arrondi car on aime bien les chiffres ronds).
De plus, la plaque originale possède un écart supplémentaire (à peu près 8 cm) pour laisser un peu d’espace pour les joueurs. On a décidé de ne modéliser que les plaques de pression utilisées dans le jeu, sans l’écart supplémentaire.
Un autre jeu similaire à DDR existe et s’appelle Pump It Up (PIU). C’est le même jeu, mais seules les flèches et plaques de pression diffèrent entre les deux, comme visible sur le schéma ci-contre.
On a pris la décision de fabriquer une plaque modulaire, dans l’espoir de pouvoir supporter les deux jeux. Donc d’avoir un capteur de pression sous chaque plaque de la structure totale.
Dans les deux jeux, il existe aussi une barre de support que les joueurs peuvent utiliser pour s’accrocher. Mécaniquement, il aurait fallu une plaque épaisse et faire plusieurs prototypes pour faire la barre cylindrique, donc on a décidé, dans les contraintes de temps que l’on avait, de l’omettre dans notre design.
Prototype, modularité & limite de place
Les dance pad sont tous réalisés en métal, de l’aluminium très souvent. Bien que le FabLab ait plusieurs outils pour travailler le métal, par soucis de simplicité de fabrication et de coût, on a choisi d’utiliser du contreplaqué pour la structure entière. Cependant, la découpeuse laser ne peut accueillir que 60 x 100 cm de surface. Il n’était donc pas possible de découper la plaque entière d’une seule traite, donc on a eu l’idée de le faire sous forme de puzzle. C’est-à-dire qu’on l’a divisée en 9 sous-plaques qui s’imbriquent les unes dans les autres.
En procédant ainsi, on retrouvait une dimension “modulable”, les plaques pouvant être interverties, ou plus nombreuses qu’initialement.
Cela pose cependant plusieurs problèmes :
- Si les plaques sont interchangeables, comment savoir si le capteur actif correspond bien à l’entrée souhaitée ?
- Si le nombre de capteurs est indéterminée, combien de pin doivent être branchées sur l’Arduino ?
- Quel sera le schéma du câblage pour permettre cela ?
Pour éviter ces problèmes, nous avons décidé de ne plus le rendre modulable, cela rendrait le design bien plus complexe que nos compétences le permettent. On se contentera d’avoir 9 capteurs disponibles, un sous chaque plaque de pression, et chacune des plaques aura une place prédéterminée.
Le design mécanique de la plaque DDR se divise en quatre couches de bois
- au-dessus la couche 4 : ‘pose-pied’ car elle est à l’extérieur et en contact avec les pieds.
- la couche 3 ‘séparable’, celle-ci est en deux parties, l’une appartenant à la partie mobile qui fera pression sur le capteur et une partie fixée au support pour éviter que la plaque supérieure reste sur le dance pad.
- La couche 2 ‘câblage’, dans un premier temps on souhaitait fusionner cette couche avec la couche 1, puis tailler des passages pour les câbles.
- La couche 1 ‘support’, elle constitue le dessous de la plaque.
Pour permettre aux plaques de s’emboîter les unes dans les autres nous avons choisi la forme des queues d’aronde. En appliquant cette forme particulière, on souhaitait éviter que des plaques se détachent lors d’une partie de jeu, il ne fallait pas que les plaques puissent s’écarter par un mouvement de pied brusque.
Pour prouver notre théorie nous avons découpé deux pièces de la taille d’une plaque de jeu chacune, avec une attache en forme de queue d’aronde. En se plaçant debout dessus, et en essayant de faire translater sur le côté l’une des deux plaques, l’attache n’a pas cédé. Cela a aussi permis de déterminer que l’angle et la longueur des queues d’aronde choisies jusque-là arbitrairement, ou de façon esthétique, étaient des paramètres suffisants pour le projet final.
Avant de se lancer dans la modélisation et la création de toutes les plaques, il fallait d’abord s’assurer que le capteur fonctionnait bien pour être utilisé avec le poids d’un humain.
Électronique
Test du capteur de pression
Le capteur de pression doit agir comme un bouton poussoir. Lorsque l’on fait pression dessus, l’Arduino doit lire un 1, au repos, il doit lire un 0. On a choisi d’utiliser des pins digitaux car l’Arduino Uno n’a que 6 entrées analogiques, ce qui n’est pas suffisant pour accueillir les 9 capteurs. L’Arduino a des entrées digitales qui reçoivent une tension entre 0 et 5V. Si la tension y est supérieure à 3V, l’entrée sera considérée au niveau haut. Et il faut que la tension soit inférieure à 1.5V pour être considérée au niveau bas. (cf figure ci-dessous)
D’après les infos que l’on a sur les capteurs, ils ont une résistance sans pression d’environ 10MOhms et inférieur à 200kOhms une fois mis sous pression. On place donc une résistance d’1MOhm pour réaliser un pont diviseur de tension. La tension lue à vide est d’environ 0.5V et sous pression, elle monte à plus de 4V. On est donc largement dans les bornes pour assurer une lecture fiable des capteurs.
Ces valeurs ont été vérifiées expérimentalement. A partir des deux plaques réalisées pour les tests mécaniques, on en découpe l’une d’entre elles pour que l’on ait la forme de la troisième couche de la plaque de pression, la couche séparant la plaque de pression de son support.
On a alors placé le capteur sur le côté de la plaque, ne plaçant que la partie résistive sous la plaque. En appuyant dessus, le capteur réagit correctement.
On utilisera un capteur pour chacune des plaques, Ils seront placés au centre afin que l’on détecte au mieux une pression appliquée sur la plaque de pression. Pour chaque capteur, donc chaque plaque, il est nécessaire d’avoir trois broches, une à 5V, la masse et une broche pour lire la donnée.
Transmettre les capteurs des plaques jusqu’à l’Arduino
D’après les schémas précédents, on remarque que pour chaque capteur, donc chaque plaque, il est nécessaire d’avoir trois broches, une à 5V, la masse et une broche pour lire la donnée. Seulement chacune des plaques est détachable, il faut donc que les câbles puissent facilement se déconnecter et se reconnecter. La solution c’est d’utiliser des pogo-pins. On place un pogo-pin mâle et un pogo-pin femelle à chaque fois que l’on veut faire passer un câble entre deux plaques.
Pour simplifier la fabrication, on fait trois séries de trois plaques avec le même câblage.
En sortie, on utilise deux pogo-pins pour faire ressortir les trois broches de données, la tension d’entrée 5V et la masse.
Entre ces deux plaques, il faut également deux pogo-pins pour la tension d’entrée 5V, la masse et les deux broches de données.
Pour la dernière plaque, une seule paire de pogo-pins suffit pour tout connecter.
On utilise donc 5 paires de pogo-pins pour trois plaques soit 15 paires de pogo-pins en tout.
(work in progress)