Cuprins:

Whack-a-moLED !!: 7 pași
Whack-a-moLED !!: 7 pași

Video: Whack-a-moLED !!: 7 pași

Video: Whack-a-moLED !!: 7 pași
Video: Things Everyone Should Stop Telling Parsis | Netflix India 2024, Iulie
Anonim
Whack-a-moLED !!
Whack-a-moLED !!
Whack-a-moLED !!
Whack-a-moLED !!

Proiecte Tinkercad »

Aceasta este o versiune LED a clasicului joc Whack-a-Mole.

Practic, un LED aleatoriu din 4 LED-uri se aprinde în loc de o aluniță care privește dintr-o gaură, iar jucătorul oprește LED-ul folosind un joystick în loc să lovească alunița!

Provizii

Arduino Uno / Nano sau orice variantă de placă

4 LED-uri și rezistențe de limitare a curentului corespunzătoare.

Modul joystick cu ieșiri X, Y

Buzzer activ (opțional)

Sârmă jumper.. suficient pentru a depana!

Pasul 1: Conectați circuitul

Conectați circuitul
Conectați circuitul

Conectați placa Arduino Uno la modulul joystick, conectând 2 pini de intrare analogici la ieșirile X Y ale joystick-ului.

4 LED-uri care trebuie conectate folosind rezistențe la 4 pini de ieșire digitale sau analogici.

Buzzer activ pentru a fi conectat la un pin digital de ieșire

Pasul 2: Cod pentru configurarea pinilor

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 selectedLED = 0; // Poate fi unul dintre A2, A3, A4 sau A5

configurare nulă () {

pinMode (xPin, INPUT);

pinMode (yPin, INPUT);

pinMode (LED stânga, OUTPUT);

pinMode (rightLED, OUTPUT);

pinMode (topLED, OUTPUT); pinMode (bottomLED, OUTPUT);

pinMode (joyPin, OUTPUT);

pinMode (buzzerPin, OUTPUT);

}

Pasul 3: Cod pentru Joystick Sensing

joystick nulSenseRoutine ()

{

xVal = analogRead (xPin); yVal = analogRead (yPin); butVal = digitalRead (butPin);

joyPin = mapXYtoPin (xVal, yVal, butVal);

analogWrite (selectedLED, 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 (LED selectat, 0);

//

// Adăugați cod pentru a reda muzică / ton pentru a bate 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 {return -1; }

}

Pasul 4: Cod principal de rutină buclă

bucla nulă () {

for (int i = 0; i <lungime; i ++)

{

if (random (0, 100)> 90) {selectedLED = anaPinMap (random (2, 6));}

// Adăugați cod pentru muzică de joc aici

// *** *** ***

//

}

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; }

}

Pasul 5: Gata de încercare

Pasul 6: Implementare Arduino Nano pentru prototip

Image
Image

Aceeași implementare realizată cu Arduino nano în panou, placă personalizată cu LED-uri, rezistențe și buzzer și comutator cu joystick X-Y.

Pasul 7: Prototipul final Whack-a-MoLED ambalat pentru a-l prezenta pe cel iubit

Prototipul final Whack-a-MoLED ambalat pentru a-l prezenta pe cel iubit!
Prototipul final Whack-a-MoLED ambalat pentru a-l prezenta pe cel iubit!
Prototipul final Whack-a-MoLED ambalat pentru a-l prezenta pe cel iubit!
Prototipul final Whack-a-MoLED ambalat pentru a-l prezenta pe cel iubit!

Consumabile pentru prototip:

Cutie simplă de carton (minim 4cmX6cmX3cm), piese de carton suplimentare pentru suport.

Hârtie decorativă pentru acoperirea șasiului (opțional)

Adeziv / lipici multifuncțional

Mini panou (opțional)

Arduino nano

Mic PCB universal

Baterie de 9V pentru alimentarea Arduino nano (conectați la pinul Vin).

Comutator SPDT

Restul consumabilelor (LED-uri, rezistențe, joystick, buzzer, fire) așa cum este descris în pasul 1 de mai sus.

Recomandat: