Salutation à tous les amateurs de jeux de rythme (et aux autres).
Déterrage de topic après… houla, des années. Sans trop entrer dans les détails, à l'époque, j'ai voulu mettre mon matériel et mes compétences au service d'une asso, qui s'est avérée être géré par des gens particulièrement toxiques, ce qui m'a couté beaucoup d'argent, et qui m'a totalement ravagé niveau moral, au point de perdre motivation pour tout ce que je faisais à l'époque (les jeux de rythme, mais aussi le tir à l'arc, les voitures RC, le jeu de carte magic, et d'autres machins), faisant que je pensais ne plus jamais retoucher à un jeu de rythme de ma vie.
J'ai malgré tout continué à fréquenter de loin le fablab local, et il y a quelques mois de ça, un gamin qui avait commencé à fréquenter le milieu des conventions de culture japonaise, et qui m'avait déjà demandé deux ou trois infos sur le cosplay, commence à me raconter que lors de la dernière convention, il a découvert un jeu de rythme trop cool.
- Je ne sais pas si tu connais, y'a des boutons, ils sont positionnés en triangle et…
- Les boutons, ils sont rond, assez gros et il y en a 9 non ?
- Oui mais je ne me souviens pas du nom.
- C'est pop'n music.
Du coup je lui ai fais un cours sur l'histoire des jeux de rythme d'hier à aujourd'hui, et il me dit qu'il allait voir su internet si c'était possible de se fabriquer un pad pour pop'n et si c'était possible d'y jouer sur pc. Je lui explique donc différentes possibilité pour craft son pad (via une carte prévu pour des sticks arcade, ou via des cartes programmable style arduino) ainsi que les possibilité pour jouer sur pc (à ma connaissance, soit PCSX2 qui intègre directement un réglage pour maper un pad pop'n, soit les dumps arcade), et je lui dis que s'il voulait, je pouvais lui refiler un pad sur lequel j'avais commencé à bosser à l'époque, qu'il ne lui resterait qu'à faire l'électronique. Même si le boitier avait été fait un peu à l'arrache, ça lui ferait une base pour commencer à bosser, quitte à le refaire plus tard en plus propre.
/!\ introduction au fonctionnement des mini ordinateurs type arduino/!\
Si vous savez ce qu'est ce genre de carte et comment ça fonctionne, vous pouvez sauter ce passage. Si ce n'est pas le cas, il vous apportera quelques notions qui vous permettront de mieux appréhender certains éléments de la suite.
Si on considère nos ordinateurs actuel comme des micro-ordinateurs, ils faut voir ces carte que des "nano-ordinateur". Elles sont composée d'un processeur, de ram, d'une mémoire, enfin bref, des éléments de base d'un ordinateur, le tout sur une carte ridiculement petite. Pour vous donnez un ordre d'idée, voici une photo présentant une carte Arduino modèle Leonardo, qui devait animer le projet d'origine, avec à sa droite une carte Raspberry modèle Pi Pico 2, que j'utilise actuellement. Et pour les accompagner et faire valoir un rapport d'échelle, vous avez un critérium, une carte de jeu Switch, une pile AA, une miniature de Deuillegivre et des poils de chat. Bon bien sur, ces "ordinateurs" ne sont pas capable de faire tourner crysis, mais sont super pour tout ce qui est utilitaire.
Les petits carrés noir sur la Arduino et les ronds cuivrés sur la Raspberry sont ce qu'on appelle des i/o, pour in/out, des entrée/sortie. C'est à voir comme des mini port USB, sur lesquels ont peut connecter un peu tout ce qu'on veut, des boutons, des leds, des moteurs, des capteurs optique, sonique, physique, l'alimentation d'une cafetière, un moteur et que s'ai-je, la limite est celle de votre imaginations (et de vos compétences de programmation mais bref). Ces éléments vont pouvoir interagir avec la carte, soit lui donner des informations qu'elle devra traiter, soit en recevoir d'elle.
Pour donner un exemple qui est souvent utilisé dans les ateliers d'initiation, c'est le car d'un véhicule autonome qui suit une ligne tracée sur le sol. Un capteur optique à l'avant détecte le contraste entre le blanc de la surface, et le noir de la ligne. Quand la ligne est en place, la carte fait tourner les moteurs des roues à la même vitesse. Si le capteur détecte que la zone noir se déplace sur le coté, elle en informe la carte, qui va ralentir un des moteurs pour faire pivoter dans la bonne direction. Si le capteur perd totalement la zone noire, la carte va faire tourner les moteurs pour tenter un balayage et retrouver la ligne.
Dans le cas d'un pad arcade, lorsqu'on appuie sur un bouton, la carte détecte qu'on a fermé le circuit correspondant à cette i/o. Elle envoie par son port USB relié au PC que le bouton 1 a été enfoncé, et elle envoie du courant dans le i/o correspondant à la led du bouton 1. Quand le joueur relâche le bouton, le circuit est ouvert, la carte ne le détecte plus, elle arrête d'envoyer l'information au PC et arrête d'envoyer du courant à la led.
Donc on peut faire énormément de choses en électronique avec ces cartes et un peu de code. Et comme ces cartes sont opensource, on trouve très facilement du code sur le net pour faire tout et n'importe quoi. Ah oui et aussi, si elles sont si populaire, pour vous donner un ordre de prix, la Pico 2 que j'ai acheté il y a quelques jours, c'est 6€ la carte. Donc ça permet de faire énormément de chose pour un prix ridiculement petit.
J'ai donc suivis avec curiosité le boulot du gamin qui, ayant quelques notion de plus que moi en programmation (entendre par là que mes connaissances dans le domaine se limitent à if go to et aux calculatrice graphique de l'époque du lycée), a récupéré un code permettant de gérer les retours de la borne pour l'éclairage des boutons et l'a modifié pour y ajouter une matrice permettant de gérer les boutons avec moins de i/o sur la carte (pour ceux qui ont le même niveau que moi ou moins, une matrice de programmation ça consiste à relier chaque bouton non pas à 1 i/o de la carte mais à deux, et à déduire de quel bouton il s'agit en fonction des différentes i/o qui s'activent, par exemple, si j'ai bien tout compris, dans l'exemple suivant on peut gérer 10 boutons avec seulement 4 i/o
).
Avec tout ça, l'air de rien, j'ai commencé, pendant mes heures de travail, à repenser au projet beatmax, à certains éléments de sa conception, ce que je pourrais modifier, des trucs comme ça. Et au bout d'un moment, je m'y suis remis réellement avec une idée en tête : comment réduire les coûts ?
La première chose qui m'est venue à l'idée : dégager le plexyglass et le remplacer par de l'impression 3D transparente.
Dans la conception du BM, le corp était parcouru par une plaque de plexy qui permettait de recouvrir les tranchées du ruban LED. Le tout était recouvert d'une plaque de plastique noir ajourée pour ne laisser paraître que les tranchées.
A la place, j'usinerais un peu plus le MDF afin de pouvoir y insérer des plaques de 10x2mm imprimées en 3D.
L'autre partie en plexy était la base de la platine. Elle aurait été composée d'une ou deux plaque de plexy pour une hauteur totale de 20mm. Au delà du prix, il aurait fallut l'usiner entièrement ce qui aurait prit une éternité.
La nouvelle version est plus modulaire. Seul l'anneau extérieur sera transparent, et divisé en 3 morceau (limite de surface imprimable). Le centre aura plus de soutien pour le plateau, et l'araignée centrale pourra être modifiée si le système de rotation actuel ne me donne pas entièrement satisfaction.
Si le système en question n'a pas assez de friction et laisse passer des mouvements parasite, j'ai pensé à d'autres systèmes pour le remplacer, l'un avec des cylindres graissés (un peu comme les têtes fluide des trépieds vidéo), l'autre avec un système de patins montés sur ressorti pour freiner l'axe de rotation.
La seconde, qui est probablement la plus radicale, vient d'un constat simple : je n'ai ni le temps ni l'envie de doser 36 jeux. De plus, comme je n'ai plus derrière moi la lance qui me poussait à vouloir proposer un maximum de choses pour l'évènementiel, j'ai décidé de dégager la compatibilité avec DJMax (et donc une platine).
J'ai aussi revu la plaque des boutons de fonction. En reprenant le projet et en me documentant sur ce qui se faisait, j'ai constaté que les pads IIDX récent n'avaient plus deux, mais bien quatre boutons de fonction (merci à Mik sur ce forum de m'avoir renseigné sur leur fonction). J'ai donc dégagé l'ancienne plaque déjà usinée.
Elle sera donc remplacée par une plaque plus basique à 4 emplacements, qui pour le moment sera probablement imprimée en 3D ou découpée à la laser dans du MDF. On verra si j'ai jour j'ai le courage de refaire de l'usinage d'aluminium.
Un autre gros changement mais ne sera pas visible de l'extérieur, c'est les ouverture dans le MDF. Je vous laisse constaté avec les modèles de l'ancienne et de la nouvelle version.
Moins d'ouvertures, moins de temps d'usinage.
La taille des cercles pour les platines venait en réalité du tout premier concept du projet, dans lequel l'éclairage se trouvait dans le corps du pad et où les tranchés étaient traversante. Il fallait donc de grosses ouvertures pour permettre à la lumière d'arriver directement à la base de la platine.
Pour les plaques boutons, vu que le corps sera recouvert d'une plaque d'ABS noir, et que les plaques en question font 5mm d'épaisseur, on ne verra pas le trou entre les deux et elles sont assez rigides pour pouvoir n'être soutenues que sur trois de leurs quatre côtés.
Et nous voici donc aujourd'hui avec un corps de pad complètement repensé, et plus proche des pads IIDX traditionnels.
L'électronique n'est pas en reste non plus. Je ne vais pas trop entrer dans les détails car c'est moins graphique qu'un modèle 3D, mais en gros…
Avec mon arduino, sur un boitier avec 7 boutons de jeu et 2 boutons de fonction, il me manquait déjà un i/o pour l'éclairage d'un bouton de fonction. Je suis donc passé sur la Raspeberry Pi Pico 2 qui a assez de i/o pour gérer et éclairer les 11 boutons du nouveau pad. J'ai trouvé du code pour ça, mais je vais quand même apporter quelques modification au circuit de base.
Une carte de ce genre est alimentée par de l'USB, et peut envoyer sur ses i/o soit 3,3V (souvent pour de la commande), soit 5V (souvent pour de l'alimentation électrique). Le soucis c'est que de base, une led d'arcade c'est alimenté en 12V. Donc en 5V ça ne brille pas fifou. Je vais donc utiliser le courant généré par le RB pour commander un transistor qui alimentera la led en 12V. Et comme par hasard… le ruban LED que je vais utiliser pour l'éclairage du pad est en 12V. J'aurais donc une source sous la main. Accessoirement le boitier de commande du ruban led dispose de 3 boutons qui commande les différentes fonctions. Je vais les déporter sur le boitier avec des interrupteur éclairés de ce genre :
Comme par hasard (on se croirait à sacrasland dis donc), les leds sont aussi en 12V ! Du coup je vais me retrouver avec un circuit dans ce style là (avec 11 transistors et 3 interrupteur en parallèle) :
Euh… Donc. Je perds un peu le fil de ma pensée, car en rédigeant ce passage j'ai arrêté pour faire l'introduction aux mini ordinateurs, du coup je ne sais plus trop où j'en suis.
Je pense que j'ai à peu près tout dit, il reste un petit détail à aborder. A l'époque, j'avais crafté un prototype fonctionnel pour tester l'arduino. Je l'ai fais dans une boite à chaussure un peu renforcé avec du carton (le tout récupéré à mon taf de l'époque, merci Ludo), pour lequel j'ai fais un visuel qui me faisait me pisser dessus de rire à l'époque (et qui me fait encore rigoler aujourd'hui, même si, je pense, il faut avoir la référence et connaitre le caractère des personnages pour vraiment l'apprécier. Vous noterz d'ailleurs le tee-shirt 221B qui m'a exalté quand j'ai vu l'épisode, même si là encore faut avoir la référence).
Et vendredi, pendant que je bossais au fablab sur un nouveau proto, un gars à fait remarqué que c'était la saint valentin et qu'on pouvait voir par leur présence qui avait une valentine ou pas. Du coup ça a été l'occasion de sortir des blagues bien grasses, et entre deux parties de rigolade j'ai crafté ça :
Il a les dimensions du pad final, en un peu plus haut (je voulais que les planches des cotés soient de 82mm mais la machine du magasin ne descendait pas sous les 10mm), ce qui va me permettre de tester certains éléments comme les composants de la base de la platine en taille réel avant de passer à la très chiante impression 3D transparente. Il a aussi l'avantage d'être bien plus jouable que son homologue boite à chaussure, donc ça ne sera plus un truc pour tester l'électronique mais bien un pad jouable en attendant l'évolution vers la version finale.
Voila, j'espère que mon pavé n'aura pas été trop désagréable à lire pour ceux qui en auront eu le courage, et que vous êtes aussi excité que moi par le retour de ce projet qui pourrait au final être vraiment cool, et en attendant un truc quand même jouable.