Table des matières:
- Étape 1: Détermination de la configuration optimale des boutons
- Étape 2: Mon assemblage à 4 boutons
- Étape 3: Jeu
- Étape 4: Concours face à face
- Étape 5: Contrôleurs 2 joueurs en option
- Étape 6: Mise à jour(s)
Vidéo: Jeux à 4 boutons utilisant une seule entrée analogique : 6 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Cette instructable se concentre sur l'utilisation d'une ligne d'entrée analogique pour plusieurs boutons qui peuvent être détectés indépendamment les uns des autres.
Et pour souligner l'utilisation de ces boutons, un logiciel est inclus pour jouer à quatre jeux différents à 4 boutons. Tous les jeux (8 au total) ici utilisent un affichage d'échelle Led (référez-vous au projet précédent: instructables: Single-Line-LED-Display-Games).
Vous pouvez utiliser votre propre assemblage à 4 boutons avec d'autres sorties d'affichage, utilisez simplement la fonction 'scanButtons ()' de l'un des croquis inclus. Et utilisez ces croquis, par exemple, utilisez-les.
Les jeux sont un jeu d'adresse: Whack-a-Mole, un jeu de mémoire: Simon Says, des jeux de logique Sea Hunt et Flip'd un jeu à deux joueurs similaire à Reveri. Plus tard, dans ce instructable, je présenterai également plus tard quatre jeux à deux de compétition tête à tête.
Étape 1: Détermination de la configuration optimale des boutons
Le simple fait d'utiliser des résistances en série avec des boutons enfoncés entre chacun fonctionnera si vous n'avez jamais à vous soucier qu'un bouton en obstrue un autre. Dans une telle configuration, chaque bouton, lorsqu'il est enfoncé, bloque tout ce qui se trouve en dessous. Même lorsque vous n'avez besoin que de deux boutons et que vous ne vous souciez que d'un à la fois, comme dans une implémentation de ping-pong; ce serait un problème, si un joueur omet (juste étant trop lent, ou par malveillance) de retirer son doigt de son bouton avant que l'autre n'ait à frapper le sien.
Plusieurs boutons ont souvent été connectés à une seule ligne analogique, chacun avec ses propres valeurs de résistance différentes allant à l'entrée. Vous pouvez, assez facilement, différencier quel bouton ou quelle paire est enfoncé lorsqu'il n'y a que 2 ou 3 boutons. Mais pas de manière fiable avec plus de boutons ou plus de deux enfoncés, car la pire combinaison de lectures devient de manière ambiguë trop rapprochée.
Ici, avec ce que j'appelle une configuration Double-Y de quatre boutons et résistances, vous pouvez discerner de manière fiable n'importe quel bouton simple, double, voire triple ou les quatre boutons enfoncés. Le pilote logiciel pour le faire est couvert dans la section suivante et la liste des codes.
Avec le désir d'avoir quatre boutons attachés à une entrée analogique où chaque pression sur un bouton pourrait être détectée quel que soit l'état des autres boutons, j'ai modélisé plusieurs configurations dans une feuille de calcul. J'ai trouvé qu'une configuration en double Y (constituée de 2 jeux de trois résistances) offrait les meilleures possibilités. Voir le schéma de câblage ci-dessous. Je les évaluais en fonction de la séparation maximale de la résistance totale entre deux combinaisons de boutons enfoncés. J'ai ensuite modélisé les valeurs analogiques calculées. Reportez-vous au fichier tableur ci-dessous.
Pour déterminer les meilleures valeurs à utiliser dans les configurations ci-dessus, j'ai écrit une simulation, qui a essayé de manière exhaustive toutes les permutations possibles des valeurs de résistance potentielles, trouvant l'ensemble qui a produit le moins de différence maximale entre les entrées de lecture possibles. J'ai fourni le code que j'ai utilisé. C'était un outil de force brute que j'ai créé, j'ai obtenu ce que je voulais et je l'ai mis de côté, il n'a donc été en aucun cas optimisé. Il est totalement tel quel, à titre de référence historique uniquement (Solve_4R.html ci-dessous).
Voici sa sortie pour examen:
R1: 10 R2: 12 R3: 10 R4: 12 R5: 10 R6: 15 minR delta: 3,3658818125
R1: 10 R2: 12 R3: 10 R4: 12 R5: 10 R6: 18 minR delta: 4.9490620031 R1: 10 R2: 12 R3: 10 R4: 12 R5: 18 R6: 10 minR delta: 4.9490620031 R1: 10 R2: 12 R3: 10 R4: 15 R5: 10 R6: 33 minR delta: 5,0576510475 R1: 10 R2: 12 R3: 10 R4: 15 R5: 12 R6: 10 minR delta: 7.104826870 R1: 10 R2: 12 R3: 10 R4: 18 R5: 10 R6: 18 minR delta: 8.1673424912 R1: 10 R2: 12 R3: 10 R4: 18 R5: 15 R6: 22 minR delta: 8.6504939648 R1: 10 R2: 12 R3: 10 R4: 22 R5: 10 R6: 18 delta minR: 10.1721492515 R1: 10 R2: 12 R3: 10 R4: 22 R5: 10 R6: 22 minR delta: 10.5040000560 R1: 10 R2: 12 R3: 10 R4: 27 R5: 12 R6: 27 minR delta: 10.7814361579 R1: 10 R2: 12 R3: 12 R4: 33 R5: 15 R6: 36 minR delta: 10.8827552754 R1: 10 R2: 12 R3: 12 R4: 68 R5: 10 R6: 22 minR delta: 11.4499029683 R1: 10 R2: 12 R3: 12 R4: 68 R5: 10 R6: 27 minR delta: 12,0961591599 R1: 10 R2: 12 R3: 15 R4: 68 R5: 10 R6: 27 minR delta: 12,7992171382 R1: 10 R2: 12 R3: 15 R4: 75 R5: 10 R6: 27 minR delta: 12,7992171382 R1: 10 R2: 12 R3: 15 R4: 82 R5: 10 R6: 27 minR delta: 1 2.7992171382 R1: 10 R2: 12 R3: 15 R4: 91 R5: 10 R6: 27 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 27 R4: 82 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 27 R4: 91 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 27 R4: 100 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 68 R4: 15 R5: 10 R6: 27 minR delta: 12,7992171382 R1: 10 R2: 12 R3: 75 R4: 15 R5: 10 R6: 27 minR delta: 12,7992171382 R1: 10 R2: 12 R3: 82 R4: 15 R5: 10 R6: 27 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 82 R4: 27 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 91 R4: 15 R5: 10 R6: 27 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 91 R4: 27 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 100 R4: 27 R5: 10 R6: 15 minR delta: 12.7992171382 R1: 10 R2: 15 R3: 10 R4: 18 R5: 18 R6: 12 minR delta: 13.2909379968 R1: 10 R2: 15 R3: 10 R4: 22 R5: 12 R6: 10 minR delta: 14.245362837 R1: 10 R2: 15 R3: 10 R4: 39 R5: 18 R6: 27 minR delta: 14.5126340326 R1: 10 R2: 15 R3: 10 R4: 56 R5: 12 R6: 15 minR delta: 15.220571553 R1: 10 R2: 15 R3: 12 R4: 27 R5: 12 R6: 12 minR delta: 18.8228671943 R1: 10 R2: 15 R3: 12 R4: 39 R5: 18 R6: 27 minR delta: 19.236186493 R1: 10 R2: 15 R3: 15 R4: 47 R5: 22 R6: 33 minR delta: 19.5685736556 R1: 10 R2: 15 R3: 22 R4: 56 R5: 22 R6: 27 minR delta: 19.7887024012 R1: 10 R2: 15 R3: 27 R4: 220 R5: 12 R6: 10 minR delta: 21.2533513149 R1: 10 R2: 15 R3: 220 R4: 27 R5: 12 R6: 10 minR delta: 21.2533513149 R1: 10 R2: 18 R3: 22 R4: 68 R5: 33 R6: 39 minR delta: 21,58566448 R1: 10 R2: 18 R3: 27 R4: 75 R5: 33 R6: 36 minR delta: 22,158443806 R1: 10 R2: 18 R3: 27 R4: 82 R5: 33 R6: 36 minR delta: 22.158443806 R1: 10 R2: 18 R3: 27 R4: 82 R5: 33 R6: 39 minR delta: 22.158443806 R1: 10 R2: 18 R3: 33 R4: 75 R5: 27 R6: 18 minR delta: 24.2578084248 R1: 10 R2: 18 R3: 75 R4: 33 R5: 27 R6: 18 minR delta: 24.2578084248 R1: 10 R2: 36 R3: 36 R4: 68 R5: 12 R6: 18 minR delta: 24.380952380 R1: 10 R2: 36 R3: 36 R4: 75 R5: 12 R6: 18 minR delta: 24.380952380 R1: 10 R2: 36 R3: 39 R4: 75 R5: 12 R6: 15 minR delta: 24.380952380 R1: 10 R2: 36 R3: 68 R4: 36 R5: 12 R6: 18 minR delta: 24.380952380 R1: 10 R2: 36 R3: 75 R4: 36 R5: 12 R6: 18 minR delta: 24.380952380 R1: 10 R2: 36 R3: 75 R4: 39 R5: 12 R6: 15 minR delta: 24.380952380 R1: 10 R2: 39 R3: 15 R4: 39 R5: 10 R6: 27 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 22 R4: 47 R5: 10 R6: 22 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 22 R4: 56 R5: 10 R6: 22 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 27 R4: 56 R5: 10 R6: 15 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 39 R4: 15 R5: 10 R6: 27 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 47 R4: 22 R5: 10 R6: 22 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 56 R4: 22 R5: 10 R6: 22 minR delta: 24.4674161824 R1: 10 R2: 39 R3: 56 R4: 27 R5: 10 R6: 15 minR delta: 24.4674161824 R1: 12 R2: 39 R3: 33 R4: 75 R5: 15 R6: 39 minR delta: 24.5467795136 R1: 12 R2: 39 R3: 33 R4: 82 R5: 18 R6: 47 minR delta: 24.789976640 R1: 12 R2: 39 R3: 47 R4: 100 R5: 18 R6: 33 minR delta: 24.789976640 R1: 12 R2: 39 R3: 56 R4: 100 R5: 15 R6: 12 minR delta: 25.3564579616 R1: 12 R2: 39 R3: 100 R4: 56 R5: 15 R6: 12 minR delta: 25.3564579616 R1: 12 R2: 47 R3: 18 R4: 47 R5: 10 R6: 27 minR delta: 27.4996466431 R1: 12 R2: 47 R3: 22 R4: 56 R5: 10 R6: 22 minR delta: 27.4996466431 R1: 12 R2: 47 R3: 27 R4: 56 R5: 10 R6: 18 minR delta: 27.4996466431 R1: 12 R2: 47 R3: 47 R4: 18 R5: 10 R6: 27 minR delta: 27.4996466431 R1: 12 R2: 47 R3: 56 R4: 22 R5: 10 R6: 22 minR delta: 27.4996466431 R1: 12 R2: 47 R3: 56 R4: 27 R5: 10 R6: 18 minR delta: 27.4996466431 R1: 15 R2: 56 R3: 22 R4: 56 R5: 10 R6: 27 minR delta: 29.1605253709 R1: 15 R2: 56 R3: 22 R4: 56 R5: 12 R6: 33 minR delta: 29.811354701 R1: 15 R2: 56 R3: 33 R4: 68 R5: 12 R6: 22 minR delta: 29.811354701 R1: 15 R2: 56 R3: 56 R4: 22 R5: 12 R6: 33 minR delta: 29.811354701 R1: 15 R2: 56 R3: 68 R4: 33 R5: 12 R6: 22 minR delta: 29.811354701 R1: 18 R2: 68 R3: 27 R4: 68 R5: 12 R6: 33 minR delta: 30,7487559507 R1: 18 R2: 68 R3: 33 R4: 68 R5: 12 R6: 27 minR delta: 30 0,8965517241 R1: 18 R2: 68 R3: 68 R4: 33 R5: 12 R6: 27 minR delta: 30.8965517241 R1: 18 R2: 75 R3: 27 R4: 68 R5: 12 R6: 36 minR delta: 30.9007058823 R1: 18 R2: 75 R3: 47 R4: 91 R5: 12 R6: 10 minR delta: 30.9007058823 R1: 18 R2: 75 R3: 68 R4: 27 R5: 12 R6: 36 minR delta: 30.9007058823 R1: 18 R2: 75 R3: 91 R4: 47 R5: 12 R6: 10 minR delta: 30.9007058823 R1: 22 R2: 82 R3: 36 R4: 82 R5: 15 R6: 39 minR delta: 33.2525545171 R1: 22 R2: 82 R3: 82 R4: 36 R5: 15 R6: 39 minR delta: 33.2525545171 R1: 36 R2: 82 R3: 22 R4: 82 R5: 39 R6: 15 minR delta: 33.2525545171 R1: 36 R2: 82 R3: 82 R4: 22 R5: 39 R6: 15 minR delta: 33.2525545171 R1: 82 R2: 22 R3: 36 R4: 82 R5: 15 R6: 39 minR delta: 33.2525545171 R1: 82 R2: 22 R3: 82 R4: 36 R5: 15 R6: 39 minR delta: 33.2525545171 R1: 82 R2: 36 R3: 22 R4: 82 R5: 39 R6: 15 minR delta: 33.2525545171 R1: 82 R2: 36 R3: 82 R4: 22 R5: 39 R6: 15 minR delta: 33.2525545171 R1: 36 R2: 82 R3: 82 R4: 22 R5: 39 R6: 15 minR delta: 33,2525545171
Étape 2: Mon assemblage à 4 boutons
Pour mes quatre boutons j'ai utilisé ces boutons et un PCB perforé et des résistances comme indiqué sur le schéma ci-dessus. La manière dont vous implémentez physiquement vos quatre boutons est grande ouverte et dépend de vous et de vos projets. Tant que c'est électriquement ce qu'il y a dans le schéma ci-dessus. Assurez-vous que votre montage de construction est tel que vous n'entrerez pas en contact avec le câblage des boutons, car cela fausserait les lectures, ce qui entraînerait un comportement erroné des boutons.
J'ai ajouté un petit bouton sur ma carte que j'utilise comme une touche 'Fonction'. Il est en série avec une résistance de 2 mégohms, ce qui ne dérange pas de manière significative mes autres lectures d'entrée; bien que je ne puisse le détecter que lorsqu'il est enfoncé seul. Vous pouvez l'ignorer ou vérifier le code pour mieux comprendre comment je l'utilise.
Le croquis de test « Test_12Leds_6Btns » peut être utilisé pour tester la détection des pressions de bouton(s) par votre MCU et l'assemblage de boutons réel. Sa sortie est configurée pour être visualisée soit avec une échelle LED, soit avec le moniteur série. Il pourrait facilement être modifié pour sortir via n'importe quel type d'affichage que vous pourriez avoir.
Vous devrez peut-être ajuster l'ensemble de lectures de référence du code auquel il compare l'entrée, en raison des différences de potentiel dans la résistance de rappel interne de votre MCU ou des tolérances des résistances que vous utilisez. Vous pourriez, si vous préférez, utiliser des résistances de précision, en espérant ne pas avoir à faire de réglages de calibrage. Soit dit en passant, je n'ai pas utilisé de pull-up externe car cela interférerait avec d'autres utilisations que je prévois pour l'un de mes projets.
L'une des actions logicielles clés prises, pour garantir que la détermination du ou des boutons enfoncés n'est pas affectée par le niveau de tension d'alimentation (&/ou la variance du MCU), consiste à mettre à l'échelle l'entrée analogique en fonction de sa lecture maximale qui à son tour est affecté par la tension d'alimentation.
Le 'pilote' logiciel qui gère ces boutons est la routine 'scanButtons()'. Il attend que la valeur d'entrée analogique se stabilise puis mappe la lecture dans une série de valeurs prédéterminées; et traduit cela dans les états correspondants pour la collection de boutons. Cette routine, et les variables publiques qu'elle partage avec le logiciel d'application, est tout ce qui est nécessaire pour faire un usage similaire de cet ensemble dans des boutons indépendants.
Noter! La version actuelle de 'scanButtons ()' n'essaie pas d'identifier de manière unique toutes les combinaisons de trois boutons possibles, car cela n'était, pour moi, pas nécessaire de manière réaliste et compliquerait davantage la précision du code et de l'étalonnage requis.
Étape 3: Jeu
Soit le sketch, "LadderGames4" ou "Head2head" peut être chargé et exécuté par la plupart des MCU Arduino, mais LadderGames4 doit avoir "SimonSays" ou l'un des deux autres jeux commentés afin de tenir dans les 8K octets d'espace de programme dans un Attiny-85. L'audio est également un problème avec un ATtiny-85, voir le projet précédent mentionné ci-dessus. Le code est configuré avec une compilation conditionnelle et est connu pour fonctionner avec un Nano, Uno et un ATtiny-85.
Avec chacun de ces croquis après initialisation, vous êtes présenté avec le Menu, avec une couleur à la fois éclairant toutes les Leds Rouge…Jaune…Vert…Bleu, correspondant aux quatre choix de jeu possibles. Vous appuyez soit sur Btn1 lorsque l'option souhaitée est allumée, soit à tout moment, vous appuyez sur Btn2-4 pour les jeux 2-4. La manière redondante de sélectionner est de manière à être compatible avec les implémentations et les jeux à deux et quatre boutons. S'il existe plusieurs versions du jeu, vous devrez sélectionner le rouge clignotant pour la ver-1, le jaune clignotant pour la ver-2, et ainsi de suite.
Jeux à 4 boutons
Un jeu de mémoire, un jeu de coordination œil-main et deux jeux de stratégie.
Simon dit qu'il s'agit d'une réimplémentation du jeu à partir de la forme sous laquelle je l'avais, dans ces projets précédents:
www.instructables.com/id/Fast-Easy-Simon/
www.instructables.com/id/Improved-Simon-Says-Code/
Il se joue comme la plupart des autres jeux "Simon Says".
Ici cependant, j'ai ajouté la version pour deux personnes (lorsque vous sélectionnez l'option 2, jaune clignotant), où chaque joueur, à son tour, ajoute une nouvelle note lumineuse à la série. Le premier à ne pas répéter correctement tout ce qui précède perd la partie.
Whack une taupe
Pendant 30 secondes, différents grains de beauté apparaissent (rouge, jaune, gris, bleu) 1, 2 ou 3 à la fois. Vous devez les « écraser » en appuyant sur les boutons correspondants Btn1-4. Seules les pressions sur un seul bouton seront acceptées, aucune pression simultanée sur plusieurs boutons. La durée pendant laquelle un ensemble de grains de beauté reste en place diminue au fur et à mesure que le jeu avance. Si vous frappez tous les grains de beauté, un nouvel ensemble apparaîtra; de telle sorte que plus vite vous êtes, plus vous aurez une chance de frapper.
Une fois qu'un jeu est terminé, l'affichage reflétera le score, allumant une LED pour chaque 10 taupes qui ont été frappées. Comme le jeu marque 10 points pour chaque coup de taupe, 5 LED allumées représenteraient un score de points Whac-a-Mole standard de 500+. Pour jouer un autre tour, vous devrez re-sélectionner le jeu.
J'utilise un doigt sur chaque bouton pour une action rapide et des scores élevés. Pour un défi plus approprié, il ne faut utiliser qu'un seul doigt d'une main, répondant à l'utilisation d'un maillet.
Mon score typique avec un doigt est dans les 500, avec 4 doigts (un par bouton), il est de 600+. Mon score le plus élevé est de 700+. L'utilisation de plusieurs doigts est particulièrement délicate dans la mesure où s'il y a un chevauchement en appuyant sur l'un et l'autre, le second ne sera pas accepté par le logiciel, vous obligeant à relâcher tous les boutons avant qu'un autre ne soit accepté. Si quelqu'un allume les 12 LED, pour un score de plus de 1200, veuillez nous le faire savoir.
Chasse à la mer
Il y a un sous-marin invisible qui se déplace dans les profondeurs. Son emplacement initial et sa direction sont aléatoires. Il effectue un mouvement le long de son parcours après chaque tour que vous prenez. Vous devez prédire où il se trouve via des rapports de sonar et le couler avec une grenade sous-marine. Un sonar émet des ondes (dans les deux sens) à partir de son emplacement de départ sous la forme d'une faible lumière et s'éclaire (avec un ping) à la distance du sous-marin. Cependant, notez que le sous-marin peut être dans l'un ou l'autre sens et se déplace dans une direction inconnue. Une grenade sous-marine explose profondément en dessous de l'endroit où elle est lancée. Vous entendez une explosion étouffée si rien, ou est là, sinon vous entendez la grande explosion du sous-marin et un flash lumineux.
Pour déplacer le curseur dirigé vers l'endroit où vous souhaitez déposer une bouée sonar ou une grenade sous-marine se fait avec Btn2 & Btn3 pour gauche & droite. Le bouton-1 est utilisé pour les lancer.
Dans la version 1, chaque tentative est une combinaison de grenades sous-marines et de rapport sonar; et vous pouvez en utiliser un nombre illimité.
Dans la version 2, Tête à tête, à tour de rôle, pour voir qui parvient à couler le sous-marin. Le joueur 1 utilise Btn1 et le deuxième joueur utilise Btn4 pour lancer ses grenades sous-marines.
Dans la version 3, les grenades sous-marines et les rapports sonar sont lancés indépendamment par Btn1 et Btn4 respectivement. Vous n'avez que trois grenades sous-marines à votre disposition. Vous pouvez obtenir tous les rapports de sonar que vous souhaitez. Vous perdez si vous ne parvenez pas à l'obtenir avec ces charges.
Dans la version 4, le sous-marin pourrait se déplacer à une vitesse de 1 à 3 espaces par volée, et jouer autrement comme la version 3, mais vous obtenez 6 grenades sous-marines.
Historique: J'ai créé le jeu 'Sea Hunt' pour la première fois dans les années 1970. Ensuite, le périphérique d'entrée et de sortie était un télétype. Cependant, la mer était alors une grille à 2 dimensions, par opposition à 1 dimension comme c'est le cas ici.
REMARQUE: j'ai commenté la limitation de la charge de profondeur dans le code, avec l'idée qu'il était déjà assez difficile de jouer pour la plupart des gens.
Retourné
Ce jeu à deux joueurs est un peu comme Reveri, en ce sens que vous essayez de transformer toutes les cellules à votre couleur, mais cela se fait différemment.
Dans ce jeu à deux joueurs, le but d'un joueur est d'éteindre toutes les lumières, et l'autre de toutes les allumer. Un joueur utilise Btn1 soit pour éteindre un groupe de lumières de l'autre joueur, soit pour abandonner une seule de ses « lumières éteintes » (en l'allumant). L'autre joueur utilise Btn4 pour allumer un groupe de "lumières éteintes" ou un seul de ses arrières éteints.
La carte démarre avec un ensemble aléatoire de leds allumées. Lorsque c'est le tour du premier joueur, il y a une gradation ou un éclairage rapide sur la led au niveau du "curseur", point d'intérêt, à potentiellement tourner. Pendant le tour du joueur #2, il y a un long clignotement d'une LED comme indicateur de curseur. Si le mauvais joueur appuie sur son bouton, hors tour, il y a un bip très court. Le curseur est déplacé vers la gauche par Btn2 et vers la droite par Btn3. Le joueur perdant commence la partie suivante.
La stratégie quant à ce qu'il faut retourner peut être importante.
Étape 4: Concours face à face
Jeux à deux boutons/deux joueurs
Dans la première série de jeux à 4 boutons, seul 'Whack-a-Mole' repose vraiment sur une indépendance totale du traitement des boutons. J'ai également mis en place quatre jeux en tête-à-tête, qui dépendent tous de la détection indépendante des boutons. Ces jeux sont: Quick Draw, Tug a War, Chicken et Hot Hands (Slapsies).
Tirage rapide (test de réaction)
Le concours commence par un « Prêt »/rouge, « Ensemble »/jaune et un « Tirage ! »/vert; étant assez aléatoire quant au moment où il vous donne le feu vert. Le premier à appuyer sur son bouton gagne. Frapper trop tôt et vous êtes déshonoré par un buzz.
Le joueur 1 utilise Btn1 (à gauche) et le joueur 2 utilise Btn4 (à droite).
Tir à la corde
Commence par un « Prêt », « Ensemble » … « ALLEZ ! ». Il apparaît un objet au milieu, un "arc" sur une corde. Ensuite, les joueurs appuient sur leurs boutons aussi vite et souvent qu'ils le peuvent. L'arc se déplacera vers le joueur avec le plus de coups. Une fois que l'arc atteint une extrémité, c'est le gagnant.
Poulet
Ce concours est lancé de la même manière. Après le son et le flash vert de 'Go!' les joueurs appuient et maintiennent leurs boutons, des éclairs de lumière (leurs chariots) commencent à se déplacer d'eux vers l'autre. Le gagnant est celui qui relâche son bouton (saute hors de son char) en dernier, juste avant que les deux blips ne s'écrasent l'un contre l'autre. Si quelqu'un sort trop tard ou pas du tout, il s'écrase et perd. Si les deux sautent (relâchent) trop tard, personne ne gagne.
Au début, une paire de LED opposées balaie l'écran, à ce moment-là, si vous appuyez sur Fnc-Btn2, la vitesse de jeu sera augmentée. Cela peut être répété plusieurs fois.
Mains chaudes
Une version numérique du jeu de gifles à la main (alias Red-Hands ou Slapsies). Pour démarrer, les deux joueurs appuient sur leurs boutons ensemble, un côté relâche puis essaie d'appuyer deux fois sur son bouton avant que l'autre côté puisse relâcher son bouton. Ensuite, l'autre côté essaie de faire de même. Le joueur dont c'est le tour est indiqué en début de manche par un allumage des leds de son côté. J'ai trouvé qu'un seul bouton-poussoir était trop rapide et facile, j'en ai donc fait deux nécessaires, ce qui prend plus d'action et de temps, comme devoir à la fois retourner la main par-dessus les autres et ensuite gifler. TBD: Dans une deuxième version, c'est gratuit pour tous, à tout moment, chaque joueur peut essayer de tirer le meilleur de l'autre.
Avis ! Je vous conseille d'imprimer les règles de fonctionnement des jeux ci-dessus et de les relire avant de jouer à un jeu auquel vous n'avez pas joué récemment. Sinon, vous pouvez vous frustrer; pensant que le jeu ne fonctionne pas correctement alors que c'est le cas, mais que vous et le jeu avez des attentes et des manières différentes. J'ai moi-même été victime de cela plus d'une fois.
Avec les huit jeux ici et les quatre de mon projet précédent Single-Line-LED-Display-Games, cela rend le logiciel disponible pour jouer à 12 jeux avec cette combinaison matérielle à quatre boutons + led ladder.
J'ai au moins quatre autres activités de loisirs pour ce matériel (bouton-affichage) à venir avant la fin de l'année.
Étape 5: Contrôleurs 2 joueurs en option
Pour les jeux qui ne nécessitaient que deux boutons, j'aurais bien sûr pu utiliser le PCB à 4 boutons avec ces jeux; Cependant, en jouant à ces jeux, on a tendance à devenir assez physique. J'utilise donc des ensembles de boutons de type piston séparés, fabriqués à partir d'un morceau de tube en plastique recouvert d'une poignée de vélo et d'un gros bouton.
Pièces de bouton de type piston:
- Tuyau goutte à goutte de 1/2", entretoise de gicleurs ou PVC (quincaillerie)
- Poignée de vélo (Walmart)
- Gros boutons poussoirs (eBay)
- 2 résistances
Pour maintenir la compatibilité, un bouton a une résistance de 75 ohms en série et l'autre a une résistance de 36-39 ohms en série; tels que le logiciel les verra comme Btn1 et Btn4 respectivement.
Vous pouvez utiliser un tube provenant, par exemple, d'un manche de balai ou de raclette mis au rebut.
Un adaptateur pourrait même être fabriqué auquel vous pourriez connecter de vieilles manettes de jeu de console de jeu; faire en sorte que ses boutons de tir soient câblés en tant que Btn1 et Btn4 pour l'autre, tout en partageant Btn1-4 allant aux boutons de navigation des joysticks.
Avril 2018: préférez maintenant utiliser des coupleurs à compression 5/8 comme corps pour les boutons externes de style piston. les enfants aiment en utiliser une paire, j'ai ajouté quelques ensembles de broches d'en-tête afin de connecter facilement un bouton portable externe sur les contacts Bnt1 et un pour Btn4.
Étape 6: Mise à jour(s)
J'ai fabriqué un boîtier de console imprimé en 3D pour abriter l'affichage et les boutons de l'échelle à LED en ligne.
J'ai combiné les 12 jeux que j'ai créés jusqu'à présent, pour cet affichage à 12 LED, en un seul croquis "Menu_12Games". Ce logiciel nécessite le matériel de ce projet implémenté avec un MCU flash de 32 Ko (par exemple Nano ou Uno) et 5 boutons, 4 principaux + une FncKey.
Le menu de sélection est maintenant à deux niveaux; vous sélectionnez d'abord 1 des 4 groupes de jeux, puis le jeu 1-4 au sein de ce groupe, … comme indiqué ci-dessous. En attendant que les écrans de sélection scannent périodiquement R-Y-G-B, vous appuyez sur Btn1-4 comme sélection à tout moment, cela ne fait aucune différence ce qui est affiché lorsque vous appuyez sur votre sélection. Lors de la sélection de « groupe », toutes les LED sont au moins partiellement allumées pendant le balayage RYGB. Pour quitter n'importe quel jeu ou revenir de la sélection "jeu" à "groupe", appuyez sur FncKey-Btn1.
Je dois encore coder les 4 derniers. J'en ai 3 écrits (y compris 'LeMans'). Je n'ai pas trouvé ce que serait le dernier match. Envoyez-moi un message avec toutes les idées.
Mise à jour 25 janvier 17: Pour ceux d'entre vous qui ont accès à une imprimante 3D, vous pourriez être intéressé par le boîtier de console de jeu que j'ai conçu pour mon appareil: https://www.instructables.com/id/3D-Printed-Case- pour-Inline-LED-Display-Console-et/
Mise à jour 17 février 17: j'ai ajouté les 4 jeux de finition, qui sont maintenant disponibles en tant que "Menu_16Games.ino" sous "Étape 7: mise à jour, plus de jeux" de l'Instructable: Single-Line-LED-Display-Games (Menu_12Games.ino est maintenant disparu)
Jeu de groupe: 1– Rouge 2- Jaune 3 – Vert 4 – Bleu
1 rouge PushIt PingPong ShootEmUp JumpMan 2 Yel QuickDraw Tug_a_War Chicken Hot_Hands 3 Grn Le_Mans Spray PIG BiFunc 4 Blu SimonSays Whack_Mole Sea_Hunt Flip_d
Conseillé:
Comment faire une horloge analogique et une horloge numérique avec une bande LED à l'aide d'Arduino: 3 étapes
Comment faire une horloge analogique et une horloge numérique avec une bande LED à l'aide d'Arduino Horloge numérique avec Led Strip et module MAX7219 Dot avec Arduino. Elle corrigera l'heure avec le fuseau horaire local. L'horloge analogique peut utiliser une bande LED plus longue, elle peut donc être accrochée au mur pour devenir une œuvre d'art
Comment lire plusieurs valeurs analogiques à l'aide d'une seule broche analogique : 6 étapes (avec images)
Comment lire plusieurs valeurs analogiques à l'aide d'une seule broche analogique : Dans ce didacticiel, je vais vous montrer comment lire plusieurs valeurs analogiques à l'aide d'une seule broche d'entrée analogique
Entrée tactile capacitive ESP32 utilisant des "bouchons à trous métalliques" pour les boutons : 5 étapes (avec photos)
Entrée tactile capacitive ESP32 utilisant des "bouchons à trous métalliques" pour les boutons : alors que je finalisais les décisions de conception pour un prochain projet basé sur le kit ESP32 WiFi 32 nécessitant une entrée à trois boutons, un problème notable était que le kit WiFi 32 ne possède pas un seul bouton-poussoir mécanique, pourtant seul trois boutons mécaniques, f
Connecter plusieurs boutons à une seule broche sur Arduino : 4 étapes
Connexion de plusieurs boutons à une seule broche sur Arduino : Bonjour à tous, Lorsque vos projets Arduino sont devenus trop petits pour les LED clignotantes, vous aurez peut-être besoin de broches supplémentaires. Je vais vous montrer une astuce que vous pouvez utiliser où vous pouvez avoir plusieurs boutons, tous connectés à la même broche analogique
Utilisez 1 entrée analogique pour 6 boutons pour Arduino : 6 étapes
Utiliser 1 entrée analogique pour 6 boutons pour Arduino : je me suis souvent demandé comment je pourrais obtenir plus d'entrées numériques pour mon Arduino. Il m'est récemment venu à l'esprit que je devrais pouvoir utiliser l'une des entrées analogiques pour introduire plusieurs entrées numériques. J'ai fait une recherche rapide et j'ai trouvé où les gens étaient ab