Inhaltsverzeichnis:

Whack-a-moLED!! - Gunook
Whack-a-moLED!! - Gunook

Video: Whack-a-moLED!! - Gunook

Video: Whack-a-moLED!! - Gunook
Video: Hermitcraft 7: Whack-a-Mole (Episode 104) 2024, November
Anonim
Whack-a-moLED!!
Whack-a-moLED!!
Whack-a-moLED!!
Whack-a-moLED!!

Tinkercad-Projekte »

Dies ist eine LED-Version des klassischen Whack-a-Mole-Spiels.

Grundsätzlich leuchtet eine zufällige LED von 4 LEDs auf, anstatt dass ein Maulwurf aus einem Loch schaut und der Spieler schaltet die LED mit einem Joystick aus, anstatt den Maulwurf zu schlagen!

Lieferungen

Arduino Uno/Nano oder jede andere Platine

4 LEDs und entsprechende Strombegrenzungswiderstände.

Joystick-Modul mit X-, Y-Ausgängen

Aktiver Summer (optional)

Überbrückungsdrähte.. genug zum Debuggen!

Schritt 1: Schließen Sie die Schaltung an

Schließen Sie die Schaltung an
Schließen Sie die Schaltung an

Schließen Sie das Arduino Uno-Board an das Joystick-Modul an und verbinden Sie 2 analoge Eingangspins mit den XY-Ausgängen des Joysticks.

4 LEDs, die über Widerstände an 4 digitale oder analoge Ausgangspins angeschlossen werden.

Aktiver Summer zum Anschluss an einen digitalen Ausgangspin

Schritt 2: Code zum Einrichten von Pins

int xVal = 0, yVal = 0, butVal = 0, xPin = A0, yPin = A1, joyPin = 13, butPin = 7, speakerPin = 9;

int leftLED = A2, rightLED = A3, topLED = A4, bottomLED = A5;

int ausgewählteLED = 0; // Kann A2, A3, A4 oder A5 sein

Leere Einrichtung () {

pinMode (xPin, EINGANG);

pinMode (yPin, EINGANG);

pinMode (linke LED, AUSGANG);

pinMode (rechte LED, AUSGANG);

pinMode (topLED, AUSGANG); pinMode (untere LED, AUSGANG);

pinMode (joyPin, AUSGANG);

pinMode (SummerPin, AUSGANG);

}

Schritt 3: Code für Joystick-Erkennung

void JoystickSenseRoutine()

{

xVal = analogRead(xPin); yVal = analogRead(yPin); butVal = digitalRead (butPin);

joyPin = mapXYtoPin(xVal, yVal, butVal);

analogWrite (ausgewählte LED, 1024);

if (selectedLED != leftLED) { analogWrite (leftLED, 0); aufrechtzuerhalten. Wenn (selectedLED != rightLED) { analogWrite (rightLED, 0); }

if (selectedLED != topLED) { analogWrite (topLED, 0); }

if (selectedLED != bottomLED) { analogWrite (bottomLED, 0); }

if (joyPin == selectedLED) // Mole Whacked

{

analogWrite (ausgewählte LED, 0);

//

// Code hinzufügen, um Musik/Ton abzuspielen, um moLED zu verprügeln!!

//

}

}

int mapXYtoPin(int xVal, int yVal, int butVal) { if ((xVal < 100) und (yVal 400)) { return bottomLED; }

sonst if ((xVal > 900) und (yVal 400)) { return topLED; }

sonst if ((xVal 400) und (yVal < 100)) { return leftLED; }

sonst if ((xVal 400) und (yVal > 900)) { return rightLED; }

sonst { return -1; }

}

Schritt 4: Hauptschleifenroutinencode

Leere Schleife () {

für (int i = 0; i < Länge; i++)

{

if (zufällig (0, 100) > 90) {selectedLED = anaPinMap (zufällig (2, 6));}

// Hier Code für Spielmusik hinzufügen

// *** *** ***

//

}

int anaPinMap(int randNum) {

if (randNum == 2) { A2 zurückgeben; }

sonst if (randNum == 3) { return A3; }

sonst if (randNum == 4) { return A4; }

sonst if (randNum == 5) { return A5; }

}

Schritt 5: Bereit zum Ausprobieren

Schritt 6: Arduino Nano-Implementierung für Prototypen

Image
Image

Dieselbe Implementierung mit Arduino Nano im Steckbrett, kundenspezifischer Platine mit LEDs, Widerständen und Summer und X-Y-Joystick-Schalter.

Schritt 7: Fertig verpackter Whack-a-MoLED-Prototyp, um Ihren Liebsten zu präsentieren

Endgültig verpackter Whack-a-MoLED-Prototyp, um Ihren Liebsten zu präsentieren!
Endgültig verpackter Whack-a-MoLED-Prototyp, um Ihren Liebsten zu präsentieren!
Endgültig verpackter Whack-a-MoLED-Prototyp, um Ihren Liebsten zu präsentieren!
Endgültig verpackter Whack-a-MoLED-Prototyp, um Ihren Liebsten zu präsentieren!

Zubehör für Prototyp:

Einfacher Karton (Minimum 4cmX6cmX3cm), zusätzliche Kartonstücke für die Unterstützung.

Dekorpapier zum Abdecken des Fahrgestells (optional)

Mehrzweckkleber/-kleber

Mini-Steckbrett (optional)

Arduino Nano

Kleine Universalplatine

9-V-Batterie zur Stromversorgung von Arduino Nano (mit Vin-Pin verbinden).

SPDT-Schalter

Restliches Zubehör (LEDs, Widerstände, Joystick, Summer, Kabel) wie in Schritt 1 oben beschrieben.

Empfohlen: