INHOUDSOPGAWE:
- Voorrade
- Stap 1: Sluit die kring aan
- Stap 2: Kode vir die opstel van penne
- Stap 3: Kode vir joystick -opsporing
- Stap 4: Hooflus -roetine -kode
- Stap 5: gereed om uit te probeer
- Stap 6: Arduino Nano -implementering vir prototipe
- Stap 7: Laaste verpakte Whack-a-MoLED-prototipe om u geliefde aan te bied
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Tinkercad -projekte »
Dit is 'n LED-weergawe van die klassieke Whack-a-Mole Game.
Eintlik brand 'n ewekansige LED uit 4 LED's in plaas van 'n mol wat uit 'n gat kyk, en die speler skakel die LED uit met 'n joystick in plaas van die mol te slaan!
Voorrade
Arduino Uno/Nano of enige ander bord
4 LED's en ooreenstemmende stroombeperkende weerstande.
Joystick -module met X-, Y -uitsette
Aktiewe gonser (opsioneel)
Springdrade.. genoeg om te ontfout!
Stap 1: Sluit die kring aan
Sluit die Arduino Uno -bord aan op die joystick -module en koppel 2 analoog -invoerpenne aan die X Y -uitsette van die joystick.
4 LED's moet met weerstande verbind word aan 4 digitale of analoge uitgangspennetjies.
Aktiewe zoemer moet gekoppel word aan 'n digitale uitsetpen
Stap 2: Kode vir die opstel van penne
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 geselekteerdeLED = 0; // Kan een van A2, A3, A4 of A5 wees
ongeldige opstelling () {
pinMode (xPin, INPUT);
pinMode (yPin, INPUT);
pinMode (linksLED, UITGANG);
pinMode (regsLED, UITGANG);
pinMode (topLED, OUTPUT); pinMode (bottomLED, OUTPUT);
pinMode (joyPin, OUTPUT);
pinMode (buzzerPin, OUTPUT);
}
Stap 3: Kode vir joystick -opsporing
leegte joystickSenseRoutine ()
{
xVal = analogRead (xPin); yVal = analogRead (yPin); butVal = digitalRead (butPin);
joyPin = mapXYtoPin (xVal, yVal, butVal);
analogWrite (geselekteerde LED, 1024);
if (selectedLED! = leftLED) {analogWrite (leftLED, 0); } if (selectedLED! = rightLED) {analogWrite (rightLED, 0); }
if (selectedLED! = topLED) {analogWrite (topLED, 0); }
if (selectedLED! = bottomLED) {analogWrite (bottomLED, 0); }
as (joyPin == geselekteerde LED) // Mole Whacked
{
analogWrite (geselekteerde LED, 0);
//
// Voeg kode by om musiek/toon te speel om moLED te slaan !!
//
}
}
int mapXYtoPin (int xVal, int yVal, int butVal) {if ((xVal <100) en (yVal 400)) {return bottomLED; }
anders as ((xVal> 900) en (yVal 400)) {return topLED; }
anders as ((xVal 400) en (yVal <100)) {return leftLED; }
anders as ((xVal 400) en (yVal> 900)) {return rightLED; }
anders {terugkeer -1; }
}
Stap 4: Hooflus -roetine -kode
leemte -lus () {
vir (int i = 0; i <lengte; i ++)
{
if (random (0, 100)> 90) {selectedLED = anaPinMap (random (2, 6));}
// Voeg hier kode vir spelmusiek by
// *** *** ***
//
}
int anaPinMap (int randNum) {
as (randNum == 2) {opgawe A2; }
anders as (randNum == 3) {opgawe A3; }
anders as (randNum == 4) {opgawe A4; }
anders as (randNum == 5) {opgawe A5; }
}
Stap 5: gereed om uit te probeer
Stap 6: Arduino Nano -implementering vir prototipe
Dieselfde implementering is gemaak met Arduino nano in broodbord, op maat gemaakte bord met LED's, weerstande en zoemer en XY-joystick-skakelaar.
Stap 7: Laaste verpakte Whack-a-MoLED-prototipe om u geliefde aan te bied
Benodighede vir prototipe:
Eenvoudige kartondoos (minimum 4cmX6cmX3cm), ekstra kartonstukke vir ondersteuning.
Dekoratiewe papier vir die bedekking van onderstel (opsioneel)
Veeldoelige gom/gom
Mini broodbord (opsioneel)
Arduino nano
Klein universele PCB
9V -battery vir die voeding van Arduino nano (koppel aan Vin -pen).
SPDT skakelaar
Die res van die voorraad (LED's, weerstande, joystick, zoemer, drade) soos beskryf in stap 1 hierbo.