Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Podłącz obwód
- Krok 2: Kod do konfiguracji pinów
- Krok 3: Kod do wykrywania joysticka
- Krok 4: Kod rutynowy pętli głównej
- Krok 5: Gotowy do wypróbowania
- Krok 6: Implementacja Arduino Nano dla prototypu
- Krok 7: Ostateczny zapakowany prototyp Whack-a-MoLED, aby zaprezentować ukochaną osobę
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Projekty Tinkercad »
To jest wersja LED klasycznej gry Whack-a-Mole.
Zasadniczo zamiast kreta wyglądającego z dziury zapala się losowa dioda LED z 4 diod LED, a gracz wyłącza diodę LED za pomocą joysticka zamiast uderzania kreta!
Kieszonkowe dzieci
Arduino Uno/Nano lub dowolny wariant płyty
4 diody LED i odpowiednie rezystory ograniczające prąd.
Moduł joysticka z wyjściami X, Y
Aktywny brzęczyk (opcjonalnie)
Zworki… wystarczy do debugowania!
Krok 1: Podłącz obwód
Podłącz płytkę Arduino Uno do modułu joysticka, podłączając 2 piny wejścia analogowego do wyjść X Y joysticka.
4 diody LED do podłączenia za pomocą rezystorów do 4 pinów wyjścia cyfrowego lub analogowego.
Aktywny brzęczyk do podłączenia do pinu wyjścia cyfrowego
Krok 2: Kod do konfiguracji pinów
int xVal = 0, yVal = 0, butVal = 0, xPin = A0, yPin = A1, joyPin = 13, butPin = 7, speakerPin = 9;
int leftLED = A2, prawaLED = A3, topLED = A4, dółLED = A5;
int wybranaLED = 0; // Może być jednym z A2, A3, A4 lub A5
pusta konfiguracja () {
pinMode (xPin, WEJŚCIE);
pinMode(yPin, INPUT);
pinMode (lewyLED, WYJŚCIE);
pinMode (prawoLED, WYJŚCIE);
pinMode (topLED, OUTPUT); pinMode (dolna dioda, WYJŚCIE);
pinMode(joyPin, WYJŚCIE);
pinMode(buzzerPin, OUTPUT);
}
Krok 3: Kod do wykrywania joysticka
nieważny joystickSenseRoutine()
{
xVal = odczyt analogowy (xPin); yVal = odczyt analogowy (yPin); butVal = digitalRead(butPin);
joyPin = mapXYtoPin(xVal, yVal, butVal);
zapis analogowy (wybrana dioda 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); }
if (joyPin == wybranyLED) // Mole Whacked
{
zapis analogowy (wybrana dioda LED, 0);
//
// Dodaj kod do odtwarzania muzyki/dźwięku do walenia 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; }
inaczej { return -1; }
}
Krok 4: Kod rutynowy pętli głównej
pusta pętla () {
for (int i = 0; i < długość; i++)
{
if (random(0, 100) > 90) { selectedLED = anaPinMap(random(2, 6));}
// Tutaj dodaj kod do muzyki z gry
// *** *** ***
//
}
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; }
}
Krok 5: Gotowy do wypróbowania
Krok 6: Implementacja Arduino Nano dla prototypu
Ta sama implementacja wykonana z Arduino nano w płytce stykowej, wykonana na zamówienie płytka z diodami LED, rezystorami i brzęczykiem oraz przełącznik joysticka X-Y.
Krok 7: Ostateczny zapakowany prototyp Whack-a-MoLED, aby zaprezentować ukochaną osobę
Materiały do prototypu:
Prosty kartonik (minimum 4cmX6cmX3cm), dodatkowe kartoniki do podparcia.
Papier dekoracyjny do pokrycia obudowy (opcjonalnie)
Uniwersalny klej/klej
Mini płytka do krojenia chleba (opcjonalnie)
Arduino nano
Mała uniwersalna płytka drukowana
Bateria 9V do zasilania Arduino nano (podłącz do pinu Vin).
Przełącznik SPDT
Pozostałe materiały (diody LED, rezystory, joystick, brzęczyk, przewody) zgodnie z opisem w kroku 1 powyżej.