Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Schließen Sie die Schaltung an
- Schritt 2: Code zum Einrichten von Pins
- Schritt 3: Code für Joystick-Erkennung
- Schritt 4: Hauptschleifenroutinencode
- Schritt 5: Bereit zum Ausprobieren
- Schritt 6: Arduino Nano-Implementierung für Prototypen
- Schritt 7: Fertig verpackter Whack-a-MoLED-Prototyp, um Ihren Liebsten zu präsentieren
Video: Whack-a-moLED!! - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
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 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
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
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:
Whack-a-Maulwurf! (Kein Code!): 9 Schritte (mit Bildern)
Whack-a-Maulwurf! (Kein Code!): Hallo Welt! Ich bin aus dem Nicht-Posting-Abgrund zurückgekehrt und bin mit einem anderen Instructable wieder dabei! Heute werde ich Ihnen erklären, wie Sie Whack-a-Mole! Sie erhalten 30 Sekunden