Whow, J-M-L ça c'est une idée qu'elle est bonne
Pour le hard du machin... bah pour le moment y'a 10 leds intégrées dans les poussoirs, avec leur résistance de limitation de courant intégrée (qui limite à 18mA avec alim en 12V), bufferisées par des 2n2222 montés en émetteur commun avec des R de 10K entre l'E/S de l'arduino et la base, et les 10 poussoirs entre E/S et la masse (avec les entrées du micro en input_pullup).
J'ai rajouté des 100nF sur les poussoirs, mais ça change rien pour l'anti-rebond, du coup il est logiciel.
En gros en l'état actuel, il faut 10 poussoirs, 10 leds, 10 résistances pour les leds, 10 transistors (2N2222 ou autre), et 10 résistances pour la base des transistors, ou décharger la gate si c'est des mos.
Les poussoirs peuvent être NO ou NF, et reliés à la masse ou au +, le lociciel actuel est capable de s'adapter.
Le tout relié à une mega, car je n'avais pas assez d'E/S sur la uno.
Possibilité de rajouter un buzzer, pour faire un mode "Simon" ou autre.
Possibilité aussi de rajouter un affichage par matrice de leds et/ou afficheurs 7 segments, mais ça c'est quand même plus compliqué et il faut redessiner la face avant.
Alimentation en 10,8V par une batterie de visseuse constituée de 3 piles 18650 (ce que j'avais sous la main le soir du 24, en fait...).
Il n'y a pas encore le circuit de charge pour le moment, je n'ai pas encore reçu le BMS 3 cellules chinois que j'ai commandé. Mais vu la capacité des piles (2Ah), je ne crois pas avoir besoin de recharger le bazar avant un bon moment.
Le Vin de la carte arduino est alimenté par le + batterie, du coup même si l'inter général est coupé ou la batterie vide, il est possible d'alimenter le jeu via le câble USB. Les boutons sont juste moins lumineux, mais ça fonctionne parfaitement.
Coté logiciel, il y a une base réutilisable qui comprends la lecture des boutons avec anti-rebond, une mise en veille si pas d'actions sur les boutons pendant plusieurs minutes, un menu de départ pour le choix du jeu, et des fonctions d'affichage. Le tout basé sur la librairie YASM (dispo dans le gestionnaire de l'IDE arduino) qui facilite grandement la mise en place de chronos et autres.
La librairie est prévue au départ pour faire des machines à états, mais ici je m'en sert surtout pour les fonctions de chronométrage qu'elle propose, pour faire une sorte de multitâche.
Autant que possible, ce serait bien de garder ce système. Il est bien entendu envisageable de repartir de zéro, mais ça serait un peu réinventer la roue...
Dans ce contexte un nouveau jeu serait lancé par un état de plus de la machine "programme". Pour le moment, mes différents jeux tiennent chacun dans un seul état de la machine "programme", mais rien n'interdit depuis cet état d’exécuter une autre machine à état plus complexe si nécessaire (plus clair pour la lecture du code que de rajouter des états à "programme" à mon avis)
Voili voilou...