Turinys:
- Prekės
- 1 žingsnis: prijunkite grandinę
- 2 žingsnis: smeigtukų sąrankos kodas
- 3 žingsnis: vairasvirtės jutiklio kodas
- 4 veiksmas: pagrindinio ciklo įprastinis kodas
- 5 žingsnis: pasiruošę išbandyti
- 6 žingsnis: „Arduino Nano“diegimas prototipui
- 7 žingsnis: galutinis supakuotas „Whack-a-MoLED“prototipas, skirtas pristatyti savo mylimam žmogui
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Tinkercad projektai »
Tai klasikinio „Whack-a-Mole“žaidimo LED versija.
Iš esmės atsitiktinis šviesos diodas iš 4 šviesos diodų užsidega, o ne apgamas žiūri iš skylės, o žaidėjas išjungia šviesos diodą, naudodamas kreiptuką, o ne daužydamas apgamą!
Prekės
„Arduino Uno“/„Nano“arba bet koks variantas
4 šviesos diodai ir atitinkami srovės ribojimo rezistoriai.
Joystick modulis su X, Y išėjimais
Aktyvus garsinis signalas (neprivaloma)
Trumpieji laidai.. užtenka derinti!
1 žingsnis: prijunkite grandinę
Prijunkite „Arduino Uno“plokštę prie vairasvirtės modulio, prijungdami 2 analoginius įvesties kaiščius prie vairasvirtės X Y išėjimų.
4 šviesos diodai, kuriuos reikia prijungti naudojant rezistorius prie 4 skaitmeninių arba analoginių išėjimų kaiščių.
„Active Buzzer“turi būti prijungtas prie skaitmeninio išvesties kaiščio
2 žingsnis: smeigtukų sąrankos kodas
int xVal = 0, yVal = 0, betVal = 0, xPin = A0, yPin = A1, džiaugsmoPin = 13, betPin = 7, garsiakalbio PIN = 9;
int kairėLED = A2, dešinėLED = A3, viršutinėLED = A4, apačiaLED = A5;
int pasirinktasLED = 0; // Gali būti vienas iš A2, A3, A4 arba A5
void setup () {
pinMode (xPin, INPUT);
pinMode (yPin, INPUT);
pinMode (kairėjeLED, OUTPUT);
pinMode (dešinysis LED, OUTPUT);
pinMode („topLED“, „OUTPUT“); pinMode (apačioje LED, OUTPUT);
pinMode (joyPin, OUTPUT);
pinMode (buzzerPin, OUTPUT);
}
3 žingsnis: vairasvirtės jutiklio kodas
void joystickSenseRoutine ()
{
xVal = analogRead (xPin); yVal = analogRead (yPin); butVal = digitalRead (butPin);
joyPin = žemėlapisXYtoPin (xVal, yVal, butVal);
analogWrite (pasirinktaLED, 1024);
if (pasirinktasLED! = leftLED) {analogWrite (leftLED, 0); } if (pasirinktasLED! = rightLED) {analogWrite (rightLED, 0); }
if (pasirinktasLED! = viršuLED) {analogWrite (viršujeLED, 0); }
if (pasirinktaLED! = apačiaLED) {analogWrite (bottomLED, 0); }
if (joyPin == pasirinktasLED) // Mole Whacked
{
analogWrite (pasirinktaLED, 0);
//
// Pridėkite kodą, kad paleistumėte muziką/toną, kad galėtumėte mušti moLED !!
//
}
}
int mapXYtoPin (int xVal, int yVal, int butVal) {if ((xVal <100) ir (yVal 400)) {return bottomLED; }
else if ((xVal> 900) ir (yVal 400)) {return topLED; }
else if ((xVal 400) ir (yVal <100)) {return leftLED; }
else if ((xVal 400) ir (yVal> 900)) {return rightLED; }
else {return -1; }
}
4 veiksmas: pagrindinio ciklo įprastinis kodas
void loop () {
už (int i = 0; i <ilgis; i ++)
{
if (atsitiktinis (0, 100)> 90) {pasirinktasLED = anaPinMap (atsitiktinis (2, 6));}
// Čia pridėkite žaidimo muzikos kodą
// *** *** ***
//
}
int anaPinMap (int randNum) {
if (randNum == 2) {return A2; }
else if (randNum == 3) {return A3; }
else if (randNum == 4) {return A4; }
else if (randNum == 5) {return A5; }
}
5 žingsnis: pasiruošę išbandyti
6 žingsnis: „Arduino Nano“diegimas prototipui
Tas pats įgyvendinimas su „Arduino nano“duonos lenta, pagal užsakymą pagaminta plokštė su šviesos diodais, rezistoriais ir garsiniu signalu, taip pat „X-Y“vairasvirtės jungiklis.
7 žingsnis: galutinis supakuotas „Whack-a-MoLED“prototipas, skirtas pristatyti savo mylimam žmogui
Priedai prototipui:
Paprasta kartoninė dėžutė (mažiausiai 4 cmX6 cmX3 cm), papildomos kartoninės dalys iš atramos.
Dekoratyvinis popierius važiuoklės uždengimui (neprivaloma)
Daugiafunkciniai klijai/klijai
Mini duonos lenta (neprivaloma)
Arduino nano
Mažas universalus PCB
9 V baterija, skirta „Arduino nano“maitinti (prijunkite prie „Vin“kaiščio).
SPDT jungiklis
Kitos reikmenys (šviesos diodai, rezistoriai, vairasvirtė, garsinis signalas, laidai), kaip aprašyta 1 veiksme.