Inhaltsverzeichnis:

4-Tasten-Spiele mit einem analogen Eingang - Gunook
4-Tasten-Spiele mit einem analogen Eingang - Gunook

Video: 4-Tasten-Spiele mit einem analogen Eingang - Gunook

Video: 4-Tasten-Spiele mit einem analogen Eingang - Gunook
Video: Arduino als Gamecontroller | DIY Sidepanel / Joystick / Gangschaltung 2024, Juli
Anonim
Image
Image

Dieses anweisbare konzentriert sich auf die Verwendung einer analogen Eingangsleitung für mehrere Tasten, die unabhängig voneinander erkannt werden können.

Und um die Verwendung dieser Tasten hervorzuheben, ist eine Software zum Spielen von vier verschiedenen 4-Tasten-Spielen enthalten. Alle Spiele (insgesamt 8) hierin verwenden eine LED-Leiteranzeige (siehe früheres Projekt: Anleitungen: Single-Line-LED-Display-Games).

Sie können Ihre eigene 4-Tasten-Baugruppe mit anderen Display-Ausgängen verwenden, verwenden Sie einfach die Funktion 'scanButtons()' aus einer der mitgelieferten Skizzen. Und verwenden Sie diese Skizzen zum Beispiel.

Die Spiele sind Geschicklichkeitsspiele: Whack-a-Mole, ein Memory-Spiel: Simon Says, Logikspiele Sea Hunt und Flip'd ein Spiel für zwei Spieler ähnlich wie Reveri. Später, in diesem anweisbaren, werde ich später auch vier Zwei-Personen-Spiele des Kopf-an-Kopf-Wettbewerbs einführen.

Schritt 1: Bestimmen der optimalen Tastenkonfiguration

Die einfache Verwendung einiger Widerstände in Reihe mit abgegriffenen Tasten funktioniert, wenn Sie sich keine Sorgen machen müssen, dass ein Tastendruck einen anderen verdeckt. In einer solchen Konfiguration blockiert jede Taste, wenn sie gedrückt wird, alle darunter liegenden Tasten. Selbst wenn Sie nur zwei Schaltflächen benötigen und sich nur um eine nach der anderen kümmern, wie bei einer Ping-Pong-Implementierung; es wäre ein Problem, wenn ein Spieler es versäumt (einfach zu langsam oder böswillig), seinen Finger von seinem Knopf zu entfernen, bevor der andere seinen drücken muss.

Oft wurden mehrere Tasten an eine einzige analoge Leitung angeschlossen, wobei jeweils eigene unterschiedliche Widerstandswerte zum Eingang gehen. Sie können leicht unterscheiden, welche Taste oder welches Paar gedrückt wird, wenn nur 2 oder 3 Tasten vorhanden sind. Aber nicht zuverlässig bei mehr oder mehr als zwei gedrückten Tasten, da die Worst-Case-Kombination der Messwerte mehrdeutig zu nahe beieinander liegt.

Hier mit einer, wie ich es nenne, Doppel-Y-Konfiguration aus vier Tasten und Widerständen, können Sie zuverlässig erkennen, ob einzelne, doppelte, sogar dreifache oder alle vier Tasten gedrückt werden. Der dazu erforderliche Softwaretreiber wird im nächsten Abschnitt und der Codeliste behandelt.

Mit dem Wunsch, vier Tasten an einen analogen Eingang anzuschließen, bei denen jeder Tastendruck unabhängig vom Zustand der anderen Tasten erkannt werden kann, habe ich mehrere Konfigurationen in einer Tabelle modelliert. Ich fand, dass eine Doppel-Y-Konfiguration (bestehend aus 2 Sätzen von drei Widerständen) die besten Möglichkeiten bot. Siehe den Schaltplan unten. Ich habe sie anhand der größten Trennung des Gesamtwiderstands zwischen zwei beliebigen Kombinationen von gedrückten Tasten bewertet. Berechnete Analogwerte habe ich weiter modelliert. Siehe die Tabellenkalkulationsdatei unten.

Um die besten Werte für die obigen Konfigurationen zu bestimmen, habe ich eine Simulation geschrieben, die alle möglichen Permutationen potenzieller Widerstandswerte gründlich ausprobiert und den Satz gefunden hat, der die maximal kleinste Differenz zwischen den möglichen Leseeingängen erzeugt. Den von mir verwendeten Code habe ich bereitgestellt. Dies war ein Brute-Force-Tool, das ich zusammenwarf, bekam, was ich wollte, und es beiseite legte, also war es in keiner Weise optimiert. Es ist völlig so, wie es ist, nur als historische Referenz (Solve_4R.html unten).

Hier ist die Ausgabe zur Überprüfung:

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 minR-Delta: 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.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

Schritt 2: Meine 4-Tasten-Montage

Meine 4-Knopf-Montage
Meine 4-Knopf-Montage

Für meine vier Tasten habe ich diese Tasten und eine perforierte Platine und Widerstände verwendet, wie im obigen Diagramm gezeigt. Wie Sie Ihre vier Tasten physisch implementieren, ist weit offen und hängt von Ihnen und Ihren Projektanforderungen ab. Solange es elektrisch ist, was im obigen Diagramm steht. Stellen Sie sicher, dass Ihre Konstruktionsmontage so ist, dass Sie keinen Kontakt mit der Verkabelung zu den Tasten haben, da dies die Messwerte verfälscht und zu einem fehlerhaften Tastenverhalten führt.

Ich habe einen zusätzlichen kleinen Knopf auf meinem Board, den ich wie eine "Funktionstaste" verwende. Es liegt in Reihe mit einem 2-Megohm-Widerstand, der meine anderen Eingangswerte nicht wesentlich beeinträchtigt; obwohl ich es nur erkennen kann, wenn es allein gedrückt wird. Sie können es ignorieren oder den Code überprüfen, um besser zu verstehen, wie ich ihn verwende.

Die Testskizze 'Test_12Leds_6Btns' kann verwendet werden, um die Erkennung von Tastendrücken durch Ihre MCU und die tatsächliche Tastenanordnung zu testen. Seine Ausgabe ist so eingestellt, dass sie entweder mit einer LED-Leiter oder dem seriellen Monitor angezeigt wird. Es kann leicht so geändert werden, dass es über jede Art von Anzeige ausgegeben wird, die Sie haben.

Möglicherweise müssen Sie die Referenzmesswerte des Codes anpassen, mit denen der Eingang verglichen wird, aufgrund von Potenzialunterschieden im internen Pullup-Widerstand Ihrer MCU oder aufgrund von Toleranzen der von Ihnen verwendeten Widerstände. Sie könnten, wenn Sie lieber Präzisionswiderstände verwenden, hoffentlich keine Kalibrierungseinstellungen vornehmen müssen. Übrigens habe ich keinen externen Klimmzug verwendet, da er andere Anwendungen, die ich für eines meiner Projekte plane, stören würde.

Eine der wichtigsten Softwareaktionen, um sicherzustellen, dass die Bestimmung, welche Taste(n) gedrückt werden, nicht vom Versorgungsspannungspegel (&/oder MCU-Varianz) beeinflusst wird, besteht darin, den Analogeingang basierend auf seinem maximalen Messwert zu skalieren, was wiederum wird von der Versorgungsspannung beeinflusst.

Der Software-'Treiber', der diese Schaltflächen bedient, ist die Routine 'scanButtons()'. Es wartet, bis sich der analoge Eingangswert einpendelt, und ordnet dann den Messwert in eine Reihe von vorbestimmten Werten um; und übersetzt dies in die entsprechenden Zustände für die Sammlung von Schaltflächen. Diese Routine und die öffentlichen Variablen, die sie mit der Anwendungssoftware teilt, sind alles, was benötigt wird, um diesen Satz in unabhängigen Schaltflächen ähnlich zu verwenden.

Notiz! Die aktuelle Version von 'scanButtons()' versucht nicht, alle der möglichen drei Tastenkombinationen eindeutig zu identifizieren, da dies für mich realistischerweise nicht erforderlich war und die erforderliche Code- und Kalibrierungsgenauigkeit weiter verkomplizieren würde.

Schritt 3: Spiel spielen

Entweder Sketch, 'LadderGames4' oder 'Head2head' können in die meisten Arduino-MCUs geladen und von diesen ausgeführt werden, aber LadderGames4 muss 'SimonSays' oder eines der anderen beiden Spiele auskommentiert haben, um in die 8K Bytes des Programmspeichers zu passen ein Attiny-85. Audio ist auch ein Problem mit einem ATtiny-85, siehe oben erwähntes vorheriges Projekt. Der Code wird mit bedingter Kompilierung eingerichtet und funktioniert bekanntermaßen mit einem Nano, Uno und einem ATtiny-85.

Mit jeder dieser Skizzen nach der Initialisierung wird Ihnen das Menü präsentiert, wobei jeweils eine Farbe alle roten…gelben…grünen…blauen LEDs aufleuchtet, entsprechend den vier möglichen Spieloptionen. Sie drücken entweder Btn1, wenn die gewünschte Option leuchtet, oder Sie drücken jederzeit Btn2-4 für Spiele 2-4. Die redundante Art der Auswahl ist so, dass sie sowohl mit Implementierungen mit zwei als auch mit vier Tasten und Spielen kompatibel ist. Wenn es mehrere Versionen des Spiels gibt, müssen Sie für Version 1 rot blinkend, für Version 2 gelb blinkend usw. auswählen.

Spiele mit 4 Tasten

Ein Gedächtnisspiel, ein Auge-Hand-Koordinationsspiel und zwei Strategiespiele.

Simon Says Dies ist eine Neuimplementierung des Spiels in der Form, in der ich es in diesen früheren Projekten hatte:

www.instructables.com/id/Fast-Easy-Simon/

www.instructables.com/id/Improved-Simon-Says-Code/

Es spielt sich wie die meisten anderen 'Simon Says'-Spiele.

Hier habe ich jedoch die Zwei-Personen-Version hinzugefügt (wenn Sie Option 2 auswählen, gelb blinkend), bei der jeder Spieler der Reihe nach eine neue Light-Note hinzufügt. Der erste, der nicht alles, was vorher kam, korrekt wiederholt, verliert das Spiel.

Schlag einen Maulwurf

30 Sekunden lang erscheinen verschiedene Muttermale (rot, gelb, grn, blau) 1, 2 oder 3 gleichzeitig. Sie müssen sie „schlagen“, indem Sie die entsprechenden Tasten Btn1-4 drücken. Es werden nur einzelne Tastendrücke akzeptiert, keine gleichzeitigen mehrfachen Tastendrücke. Wie lange ein Satz Maulwürfe wach bleibt, wird im Laufe des Spiels kürzer. Wenn Sie alle angezeigten Maulwürfe schlagen, erscheint ein neues Set; so dass Sie schneller sind, desto mehr Maulwürfe haben Sie die Möglichkeit, zu schlagen.

Sobald ein Spiel beendet ist, zeigt das Display die Punktzahl an und leuchtet eine LED für jeweils 10 Maulwürfe, die geschlagen wurden. Da das Spiel für jeden Maulwurfsschlag 10 Punkte erzielt, würden 5 leuchtende LEDs einen Standard-Whac-a-Mole-Punktestand von 500+ darstellen. Um eine weitere Runde zu spielen, müssen Sie das Spiel erneut auswählen.

Ich benutze einen Finger auf jeder Taste für schnelle Action und Highscores. Für eine angemessenere Herausforderung sollte man nur einen Finger an einer Hand verwenden und auf die Verwendung eines Hammers reagieren.

Meine typische Punktzahl mit einem Finger liegt bei 500, mit 4 Fingern (einer pro Taste) sind es 600+. Meine höchste Punktzahl ist 700+. Die Verwendung mehrerer Finger ist besonders schwierig, da bei einer Überlappung beim Drücken eines Fingers der zweite Finger nicht von der Software akzeptiert wird, sodass Sie alle Tasten loslassen müssen, bevor ein anderer akzeptiert wird. Wenn jemand alle 12 LEDs zum Leuchten bringt, für eine Punktzahl von mehr als 1200, lassen Sie es uns bitte wissen.

Seejagd

Es gibt ein unsichtbares U-Boot, das sich durch die Tiefen bewegt. Der ursprüngliche Standort und die Richtung sind zufällig. Es macht nach jedem Zug, den Sie machen, eine Bewegung entlang seines Kurses. Sie müssen seinen Aufenthaltsort über Sonarberichte vorhersagen und mit einer Wasserbombe versenken. Ein Sonar ertönt (in beide Richtungen) von seiner Startposition als schwaches Licht und hellt sich (zusammen mit einem Ping) in der Entfernung des U-Boots auf. Beachten Sie jedoch, dass das U-Boot in beide Richtungen von Ihnen sein kann und sich in eine unbekannte Richtung bewegt. Eine Wasserbombe explodiert tief unter ihrer Abschussstelle. Sie hören eine gedämpfte Explosion, wenn nichts oder ist da, sonst hören Sie die große Explosion des U-Boots und einen hellen Blitz.

Um den Cursor dorthin zu bewegen, wo Sie eine Sonarboje oder eine Wasserbombe absetzen möchten, erfolgt dies mit Btn2 & Btn3 für links und rechts. Taste-1 wird verwendet, um sie zu starten.

In Version 1 ist jeder Versuch ein kombinierter Wasserbomben- und Sonarbericht; und Sie können eine unbegrenzte Anzahl davon verwenden.

In Version 2, Kopf an Kopf, abwechselnd, um zu sehen, wer es schafft, das U-Boot zu versenken. Spieler 1 verwendet Btn1 und der zweite Spieler verwendet Btn4, um seine Wasserbomben zu starten.

In Version 3 werden Wasserbomben und Sonarberichte unabhängig von Btn1 bzw. Btn4 gestartet. Ihnen stehen nur drei Wasserbomben zur Verfügung. Sie können alle gewünschten Sonarberichte abrufen. Sie verlieren, wenn Sie ihn mit diesen Anklagen nicht erreichen.

In Version 4 könnte sich das U-Boot mit einer Geschwindigkeit von 1-3 Feldern pro Salve bewegen und spielt sich ansonsten wie Version 3, aber Sie erhalten 6 Wasserbomben.

Geschichte: Ich habe das 'Sea Hunt'-Spiel zum ersten Mal in den 1970er Jahren entwickelt. Dann war das Eingabe- und Ausgabegerät ein Fernschreiber. Damals war das Meer jedoch ein zweidimensionales Gitter, im Gegensatz zu einem eindimensionalen wie hier.

HINWEIS: Ich habe die Tiefenladungsbegrenzung im Code auskommentiert, mit der Idee, dass es für die meisten Leute bereits schwer genug ist, um zu spielen.

Flip'd

Dieses Spiel für zwei Spieler ist ein bisschen wie Reveri, da Sie versuchen, alle Zellen in Ihre Farbe zu bringen, aber dies wird auf andere Weise erreicht.

In diesem Spiel für zwei Spieler ist es das Ziel eines Spielers, alle Lichter auszuschalten und der andere, sie alle einzuschalten. Ein Spieler verwendet Btn1, um entweder eine Gruppe der Lichter des anderen Spielers auszuschalten oder ein einzelnes seiner „Aus-Lichter“aufzugeben (einzuschalten). Der andere Spieler verwendet Btn4, um entweder eine Gruppe von "Aus-Lichtern" einzuschalten oder eine einzelne seiner Rückseiten auszuschalten.

Das Board beginnt mit einer zufälligen Reihe von LEDs. Wenn der erste Spieler an der Reihe ist, wird die LED am 'Cursor', dem Point of Interest, der möglicherweise gedreht werden soll, schnell gedimmt oder aufleuchtet. Während Spieler Nr. 2 an der Reihe ist, blinkt eine LED lange als Cursoranzeige. Wenn der falsche Spieler seinen Knopf drückt, ertönt ein sehr kurzer Piepton. Der Cursor wird mit Btn2 nach links und mit Btn3 nach rechts bewegt. Der Verlierer beginnt das folgende Spiel.

Die Strategie, was umgedreht werden soll, kann von Bedeutung sein.

Schritt 4: Head-to-Head-Wettbewerbe

Zwei-Knopf-/Zwei-Spieler-Spiele

Im ersten Satz von 4-Button-Spielen verlässt sich nur 'Whack-a-Mole' wirklich auf die völlige Unabhängigkeit der Button-Verarbeitung. Ich habe auch vier Kopf-an-Kopf-Spiele implementiert, die alle von einer unabhängigen Tastenerkennung abhängen. Diese Spiele sind: Quick Draw, Tug a War, Chicken und Hot Hands (Slapsies).

Quick Draw (Reaktionstest)

Der Wettbewerb beginnt mit einem 'Bereit'/Rot, 'Set'/Gelb und einem 'Unentschieden!'/Grün; Es ist ziemlich zufällig, wann es Ihnen grünes Licht gibt. Der erste, der seinen Knopf drückt, gewinnt. Schlagen Sie zu früh und Sie werden mit einem Summen entehrt.

Spieler 1 verwendet Btn1 (links) und Spieler 2 verwendet Btn4 (rechts).

Tauziehen

Beginnt mit 'Ready', 'Set' … 'GO!'. In der Mitte erscheint ein Objekt, ein 'Bogen' an einem Seil. Dann drücken die Spieler ihre Knöpfe so schnell und oft sie können. Der Bogen bewegt sich auf den Spieler mit den meisten Treffern zu. Sobald der Bogen ein Ende erreicht, ist das der Gewinner.

Hähnchen

Dieser Wettbewerb wird ähnlich gestartet. Nach dem Ton und dem grünen Blinken von 'Go!' die Spieler halten ihre Knöpfe gedrückt, Lichtblitze (ihre Streitwagen) bewegen sich von ihnen auf die anderen zu. Der Gewinner ist derjenige, der als letztes seinen Knopf loslässt (aus seinem Wagen springt), kurz bevor die beiden Blips ineinander krachen. Wenn jemand zu spät oder gar nicht loslässt, stürzt er ab und verliert. Wenn beide zu spät springen (freigeben) gewinnt niemand.

Zu Beginn streichen zwei gegnerische LEDs über das Display, zu diesem Zeitpunkt wird die Spielgeschwindigkeit erhöht, wenn Sie Fnc-Btn2 drücken. Dies kann einige Male wiederholt werden.

Heiße Hände

Eine digitale Version des Handschlagspiels (auch bekannt als Red-Hands oder Slapsies). Um zu starten, drücken die beiden Spieler ihre Knöpfe zusammen, eine Seite lässt los und versucht dann zweimal, seinen Knopf zu drücken, bevor die andere Seite seinen Knopf loslassen kann. Als nächstes versucht die andere Seite, es ähnlich zu machen. Der Spieler, der an der Reihe ist, wird zu Beginn einer Runde durch das Aufleuchten der LEDs an seiner Seite angezeigt. Ich fand, dass ein Push-Slap mit nur einer Taste zu schnell und einfach war, also machte ich zwei erforderlich, was mehr Aktion und Zeit erfordert, wie z. TBD: In einer zweiten Version ist es kostenlos für alle, jeder Spieler kann jederzeit versuchen, das Beste aus dem anderen herauszuholen.

Notiz ! Ich empfehle Ihnen, die Spielregeln der oben genannten Spiele auszudrucken und erneut zu lesen, bevor Sie ein Spiel spielen, das Sie kürzlich noch nicht gespielt haben. Andernfalls können Sie sich selbst frustrieren; denken, dass das Spiel nicht richtig funktioniert, obwohl es tatsächlich so ist, aber Sie und das Spiel haben unterschiedliche Wege und Erwartungen. Ich selbst bin dem mehr als ein paar Mal zum Opfer gefallen.

Mit den acht Spielen hier und den vier in meinem früheren Projekt Single-Line-LED-Display-Games, das Software zur Verfügung stellt, um 12 Spiele mit dieser Kombination aus vier Tasten + LED-Leiter-Hardware zu spielen.

Ich habe mindestens vier weitere Freizeitaktivitäten für diese (Tasten-Display-)Hardware vor Ende des Jahres.

Schritt 5: Optionale 2-Spieler-Controller

Optionale 2-Spieler-Controller
Optionale 2-Spieler-Controller
Optionale 2-Spieler-Controller
Optionale 2-Spieler-Controller
Optionale 2-Spieler-Controller
Optionale 2-Spieler-Controller
Optionale 2-Spieler-Controller
Optionale 2-Spieler-Controller

Für die Spiele, die nur zwei Tasten benötigten, hätte ich natürlich die 4-Tasten-Platine mit diesen Spielen verwenden können; Beim Spielen dieser Spiele neigt man jedoch dazu, ziemlich körperlich zu werden. Also verwende ich separate Druckknopfbaugruppen, die aus einem Stück Kunststoffrohr bestehen, das mit einem Fahrradgriff und einem großen Knopf bedeckt ist.

Teile des Kolbentyps:

  • 1/2 "Tropfleitungsrohr, Sprinklerabstand oder PVC (Baumarkt)
  • Fahrradlenkergriff (Walmart)
  • Große Druckknöpfe (eBay)
  • 2 Widerstände

Um die Kompatibilität zu gewährleisten, hat eine Taste einen 75-Ohm-Widerstand in Reihe und die andere einen 36-39-Ohm-Widerstand in Reihe; so dass die Software sie als Btn1 bzw. Btn4 erkennt.

Du könntest Schläuche von einem weggeworfenen Besen oder Rakelgriff verwenden.

Es könnte sogar ein Adapter hergestellt werden, an den man alte Joysticks von Spielkonsolen anschließen könnte; Lassen Sie die Feuertasten des einen als Btn1 und Btn4 für den anderen verdrahten, während Sie Btn1-4 teilen und zu den Navigationstasten der Joysticks gehen.

April 2018: Verwenden Sie jetzt lieber 5/8 -Kompressionskupplungen als Körper für externe Druckknöpfe. Die großen Knöpfe (mit etwas Klebeband über ihren Gewinden hinzugefügt) passen perfekt hinein und sie liegen sehr gut in der Hand. Wie mein Kinder, die gerne ein Paar davon verwenden, habe ich ein paar Sätze von Kopfstiften hinzugefügt, um einfach eine externe Handtaste über die Bnt1-Kontakte und eine für Btn4 zu verbinden.

Schritt 6: Aktualisierung(en)

Aktualisierung)
Aktualisierung)

Ich habe ein 3D-gedrucktes Konsolengehäuse hergestellt, um das In-Line-LED-Leiterdisplay und die Tasten unterzubringen.

Ich habe die 12 Spiele, die ich bisher für dieses 12-LED-Display erstellt habe, in einer Skizze 'Menu_12Games' zusammengefasst. Diese Software erfordert die Hardware dieses Projekts, die mit einer 32-KB-Flash-MCU (z. B. Nano oder Uno) und 5 Tasten, 4 Haupttasten + einem FncKey implementiert ist.

Das Auswahlmenü ist jetzt zweistufig; Zuerst wählen Sie 1 von 4 Spielgruppen aus, dann Spiel 1-4 innerhalb dieser Gruppe, … wie unten aufgeführt. Während Sie darauf warten, dass die ausgewählten Displays regelmäßig R-Y-G-B scannen, können Sie jederzeit Btn1-4 als Ihre Auswahl drücken. Es macht keinen Unterschied, was angezeigt wird, wenn Sie Ihre Auswahl drücken. Während der 'Gruppen'-Auswahl leuchten alle LEDs während des RYGB-Scans zumindest teilweise. Um ein Spiel zu beenden oder von der Auswahl „Spiel“zur „Gruppe“zu wechseln, drücken Sie FncKey-Btn1.

Ich muss noch die letzten 4 codieren. Ich habe 3 geschrieben (einschließlich 'LeMans'). Ich habe mir nicht ausgedacht, was das letzte Spiel sein würde. Nachricht an mich mit irgendwelchen Ideen.

Update 25. Januar 17: Für diejenigen unter Ihnen, die Zugang zu einem 3D-Drucker haben, interessiert Sie vielleicht das Spielkonsolengehäuse, das ich für mein Gerät gemacht habe: https://www.instructables.com/id/3D-Printed-Case- für-Inline-LED-Display-Konsole-und/

Update 17 Feb 17: Ich habe die Final 4 Spiele hinzugefügt, die jetzt als "Menu_16Games.ino" unter "Step 7: Update, more Games" des Instructable: Single-Line-LED-Display-Games (Menu_12Games.ino is jetzt nicht mehr vorhanden)

Gruppenspiel: 1 – Rot 2 – Gelb 3 – Grün 4 – Blau

1 rotes 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

Empfohlen: