Pimp my DDR mat!

Chaine Youtube de notre ami "Referent Tech" spécialisé dans la reparation des consoles NeoGeo et autres
Répondre
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1061
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Pimp my DDR mat!

Message par Bouz »

Hello, je vous présente ce soir mon projet bricolage du week-end.
J'ai une grosse envie de construite un tapis de danse double depuis un petit moment pour jouer avec ma fille. Faute de temps à y consacrer, j'ai fait un bricolage express ce week-end pour modifier mon vieux tapis TX 6000.
En gros, j'ai activé une sortie non documentée de Stepmania pour allumer les lampes sur les tapis d'arcade, je me suis tapé le code du jeu pour comprendre ce qu'elle sortait, j'ai programmé un décodeur sur un Arduino Nano, je l'ai raccordé à une guirlande de LED adressables, et j'ai collé la guirlande autour du tapis, dans des rails à placo (parce que ça fait un super réflecteur et c'est solide).
Le résultat en images. Attention, il est possible que je danse un peu à la fin!

Avatar du membre
Xrider
Administrateur
Administrateur
Messages : 3690
Enregistré le : sam. 14 sept. 2019 10:47
Localisation : MaskRom
Contact :

Re: Pimp my DDR mat!

Message par Xrider »

Excellent ! :super:

Quand tu dis que l’arduino « decode », il fait quoi exactement sur la sortie non documenté ? C’est un signal protocolaire (style RS232) ou des pins qui sortent directement des tensions ?

C’est top stemania !
C’était une super idée !
Félicitations Bouz !
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1061
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: Pimp my DDR mat!

Message par Bouz »

Merci ;).

Pour la connexion, à la base, StepMania proposait une sortie sur une double carte parallèle.
Plus récemment, un driver "fichier" a été implémenté, avec Linux pour cible. Vu que tout est fichiers par là-bas, ça réglait tous les problèmes.
Sous Windows, quand on lit les commentaires du code, on voit que le développeur se disait que ça marcherait avec des "Named Pipes" (canal nommé local de communication série). Malheureusement, après avoir essayé, le jeu me crée un fichier et écrit les données dedans. Visiblement, le format de nommage des named pipes n'est pas reconnu par les API utilisées pour écrire.
Du coup, je me suis dit qu'avec une sortie sur un port COM, ça devrait le faire, vu que c'est reconnu à peu près nativement comme des fichiers par l'OS.
L'Arduino reçoit les données via sa puce FTDI et il ne me reste plus qu'à interpréter les commandes.
Pour la structure des commandes, je suis allé voir par ici: https://github.com/stepmania/stepmania/ ... 974fe45ccd
Les infos arrivent par groupes de 6 bits complémentés pour faire des caractères affichables. Il y en a pour les innombrables lampes d'une borne DDR (je ne récupère que les lampes des enceintes qui clignotent), et pour les innombrables lampes des contrôleurs supportés (je ne récupère que les 4 flèches).
Le code se résume donc à récupérer le flux d'infos en provenance du port série, à intercepter les états qui m'intéressent, et à détecter des modifications éventuelles, puis à appliquer les modifications sur la bande de LED.
J'en ai juste bavé avec la connexion série, qui se faisait couper aléatoirement au démarrage de StepMania (l'Arnuino utilise les signaux de contrôle de flux matériel pour commander le RESET du MCU!), et dont les paramètres configurés sous Windows étaient virés aléatoirement aussi. => environ 6h perdues juste pour régler ça, il faut être motivé!
Avatar du membre
Xrider
Administrateur
Administrateur
Messages : 3690
Enregistré le : sam. 14 sept. 2019 10:47
Localisation : MaskRom
Contact :

Re: Pimp my DDR mat!

Message par Xrider »

Great job !

le puce AVR de atmel sont vraiment top et surtout très polyvalentes.
La plupart de mes devs ne nécessitant pas de CPLD/FPGA sont basé sur ces puces ;)
Avatar du membre
Bouz
Référent Technique
Référent Technique
Messages : 1061
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Contact :

Re: Pimp my DDR mat!

Message par Bouz »

Je suis fan des ATTiny84 et 85. Le 85 a 8 pattes, au format DIP, tourne à 16MHz dans quartz externe et envoie sérieusement du bois.
Ca se programme avec les environnements Arduino et ça ne coûte rien!
Je n'ai jamaIs utilisé de PIC, mais ça doit être similaire.
Le microcontrôleur RPI a l'air sympa aussi, avec ses GPIO programmables. Une bonne alternative au CPLD?
Répondre

Retourner vers « Aurélien / Bouz "Technique" »