Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Tinkercad projekti »
Ovo je LED verzija klasične igre Whack-a-Mole.
U osnovi slučajna LED od 4 LED zasvijetli umjesto madeža koji gleda kroz rupu, a igrač isključuje LED pomoću joystick -a umjesto udaranja madeža!
Pribor
Arduino Uno/Nano ili bilo koja varijanta ploče
4 LED diode i odgovarajući otpornici za ograničavanje struje.
Modul joystick s izlazima X, Y
Aktivni zujalica (nije obavezno)
Kratkospojne žice.. dovoljno za otklanjanje pogrešaka!
Korak 1: Spojite krug
Priključite Arduino Uno ploču na modul joystick -a, povezujući 2 analogna ulazna pina na X Y izlaze upravljačke palice.
4 LED diode koje se moraju spojiti otpornicima na 4 digitalna ili analogna izlaza.
Aktivni zujalica za spajanje na pin za digitalni izlaz
Korak 2: Kôd za postavljanje pinova
int xVal = 0, yVal = 0, aliVal = 0, xPin = A0, yPin = A1, joyPin = 13, aliPin = 7, spikerPin = 9;
int leftLED = A2, rightLED = A3, topLED = A4, bottomLED = A5;
int odabranoLED = 0; // Može biti jedan od A2, A3, A4 ili A5
void setup () {
pinMode (xPin, INPUT);
pinMode (yPin, INPUT);
pinMode (leftLED, OUTPUT);
pinMode (desnoLED, OUTPUT);
pinMode (topLED, OUTPUT); pinMode (bottomLED, OUTPUT);
pinMode (joyPin, OUTPUT);
pinMode (zujalicaPin, OUTPUT);
}
Korak 3: Kôd za mjerenje džojstika
void joystickSenseRoutine ()
{
xVal = analogRead (xPin); yVal = analogRead (yPin); butVal = digitalRead (butPin);
joyPin = mapXYtoPin (xVal, yVal, butVal);
analogWrite (odabranoLED, 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); }
if (joyPin == selectedLED) // Mole Whacked
{
analogWrite (odabranoLED, 0);
//
// Dodajte kôd za reprodukciju glazbe/ton za udaranje moLED !!
//
}
}
int mapXYtoPin (int xVal, int yVal, int butVal) {if ((xVal <100) i (yVal 400)) {return bottomLED; }
else if ((xVal> 900) i (yVal 400)) {return topLED; }
else if ((xVal 400) i (yVal <100)) {return leftLED; }
else if ((xVal 400) i (yVal> 900)) {return rightLED; }
else {povratak -1; }
}
Korak 4: Kôd rutine glavne petlje
void loop () {{100} {101}
za (int i = 0; i <dužina; i ++)
{
if (nasumično (0, 100)> 90) {selectedLED = anaPinMap (slučajno (2, 6));}
// Ovdje dodajte kod za glazbu igre
// *** *** ***
//
}
int anaPinMap (int randNum) {
if (randNum == 2) {vrati A2; }
else if (randNum == 3) {vrati A3; }
else if (randNum == 4) {vrati A4; }
else if (randNum == 5) {return A5; }
}
Korak 5: Spremni za isprobavanje
Korak 6: Arduino Nano implementacija za prototip
Ista implementacija napravljena s Arduino nano u ploči, prilagođena ploča sa LED diodama, otpornicima i zujalicom i X-Y prekidačem za upravljanje.
Korak 7: Završni zapakirani prototip Whack-a-MoLED za predstavljanje vašeg voljenog
Potrošni materijal za prototip:
Jednostavna kartonska kutija (minimalno 4 cm x 6 cm x 3 cm), dodatni kartonski dijelovi za potporu.
Dekorativni papir za pokrivanje šasije (izborno)
Višenamjensko ljepilo/ljepilo
Mini ploča (opcionalno)
Arduino nano
Mali univerzalni PCB
9V baterija za napajanje Arduino nano (spojite na Vin pin).
SPDT prekidač
Ostatak zaliha (LED diode, otpornici, joystick, zujalica, žice) kako je opisano u koraku 1 gore.