Kazalo:
- Zaloge
- 1. korak: Priključite vezje
- 2. korak: Koda za nastavitev zatičev
- 3. korak: Koda za zaznavanje igralne palice
- 4. korak: Koda rutine glavne zanke
- 5. korak: Pripravljeni na preizkus
- 6. korak: Arduino Nano implementacija za prototip
- Korak 7: Končni zapakirani prototip Whack-a-MoLED za predstavitev vašega ljubljenega
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Tinkercad projekti »
To je LED različica klasične igre Whack-a-Mole.
V bistvu zasveti naključna LED iz štirih LED, namesto da krt gleda skozi luknjo, predvajalnik pa izklopi LED z igralno palico, namesto da bi udaril madeža!
Zaloge
Arduino Uno/Nano ali katera koli različica plošče
4 LED diode in ustrezni upori za omejevanje toka.
Modul krmilne ročice z izhodi X, Y
Aktivni zvočni signal (neobvezno)
Mostične žice.. dovolj za odpravljanje napak!
1. korak: Priključite vezje
Ploščo Arduino Uno priključite na modul krmilne palice in povežite 2 analogna vhodna zatiča na izhode X Y krmilne palice.
4 LED diode za priključitev z upori na 4 digitalne ali analogne izhodne nožice.
Aktivni zvočni signal za povezavo z digitalnim izhodnim zatičem
2. korak: Koda za nastavitev zatičev
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 izbrano LED = 0; // Lahko je eden izmed A2, A3, A4 ali A5
void setup () {
pinMode (xPin, INPUT);
pinMode (yPin, INPUT);
pinMode (levoLED, OUTPUT);
pinMode (desnoLED, OUTPUT);
pinMode (topLED, OUTPUT); pinMode (spodajLED, OUTPUT);
pinMode (joyPin, OUTPUT);
pinMode (buzzerPin, OUTPUT);
}
3. korak: Koda za zaznavanje igralne palice
void joystickSenseRoutine ()
{
xVal = analogRead (xPin); yVal = analogRead (yPin); butVal = digitalno branje (butPin);
joyPin = mapXYtoPin (xVal, yVal, butVal);
analogWrite (izbranoLED, 1024);
if (izbranoLED! = leftLED) {analogWrite (leftLED, 0); } if (selectedLED! = rightLED) {analogWrite (rightLED, 0); }
if (selectedLED! = topLED) {analogWrite (topLED, 0); }
if (selectedLED! = bottomLED) {analogWrite (bottomLED, 0); }
if (joyPin == selectedLED) // Mole Whacked
{
analogWrite (izbranoLED, 0);
//
// Dodajte kodo za predvajanje glasbe/ton za udarjanje moLED !!
//
}
}
int mapXYtoPin (int xVal, int yVal, int butVal) {if ((xVal <100) in (yVal 400)) {return bottomLED; }
sicer if ((xVal> 900) in (yVal 400)) {return topLED; }
sicer if ((xVal 400) in (yVal <100)) {vrni se leftLED; }
else if ((xVal 400) in (yVal> 900)) {return rightLED; }
else {vrnitev -1; }
}
4. korak: Koda rutine glavne zanke
void loop () {
for (int i = 0; i <dolžina; i ++)
{
če (naključno (0, 100)> 90) {izbranoLED = anaPinMap (naključno (2, 6));}
// Tukaj dodajte kodo za glasbo iger
// *** *** ***
//
}
int anaPinMap (int randNum) {
if (randNum == 2) {vrne A2; }
else if (randNum == 3) {vrne A3; }
else if (randNum == 4) {vrne A4; }
else if (randNum == 5) {vrne A5; }
}
5. korak: Pripravljeni na preizkus
6. korak: Arduino Nano implementacija za prototip
Ista izvedba z Arduino nano v plošči, po meri izdelana plošča z LED diodami, upori in zvočnikom ter stikalom krmilne palice X-Y.
Korak 7: Končni zapakirani prototip Whack-a-MoLED za predstavitev vašega ljubljenega
Zaloge za prototip:
Enostavna kartonska škatla (najmanj 4 cm x 6 cm x 3 cm), dodatni kartonski kosi za podporo.
Dekorativni papir za pokrivanje ohišja (neobvezno)
Večnamensko lepilo/lepilo
Mini plošča (neobvezno)
Arduino nano
Majhno univerzalno tiskano vezje
9V baterija za napajanje Arduino nano (priključite na pin Pin).
Stikalo SPDT
Ostanek zalog (LED, upori, krmilna palica, brenčalo, žice), kot je opisano v prvem koraku 1.