Taula de continguts:

Whack-a-moLED !!: 7 passos
Whack-a-moLED !!: 7 passos

Vídeo: Whack-a-moLED !!: 7 passos

Vídeo: Whack-a-moLED !!: 7 passos
Vídeo: Whack-A-Mole | Cartoon-Box 22 2024, Juliol
Anonim
Whack-a-moLED !!
Whack-a-moLED !!
Whack-a-moLED !!
Whack-a-moLED !!

Projectes Tinkercad »

Es tracta d’una versió LED del clàssic joc Whack-a-Mole.

Bàsicament, un LED aleatori de 4 LED s’il·lumina en lloc d’un talp que mira per un forat i el reproductor apaga el LED mitjançant un joystick en lloc de copejar el talp.

Subministraments

Arduino Uno / Nano o qualsevol targeta variant

4 LEDs i corresponents resistències limitadores de corrent.

Mòdul joystick amb sortides X, Y

Active Buzzer (opcional)

Cables de pont.. prou per depurar!

Pas 1: connecteu el circuit

Enganxa el circuit
Enganxa el circuit

Connecteu la placa Arduino Uno al mòdul del joystick, connectant 2 pins d’entrada analògics a les sortides X Y del joystick.

4 LEDs per connectar mitjançant resistències a 4 pins de sortida digitals o analògics.

Active Buzzer per connectar-se a un pin de sortida digital

Pas 2: codi per a la configuració dels pins

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; // Pot ser A2, A3, A4 o A5

configuració nul·la () {

pinMode (xPin, INPUT);

pinMode (yPin, INPUT);

pinMode (leftLED, OUTPUT);

pinMode (rightLED, OUTPUT);

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

pinMode (joyPin, OUTPUT);

pinMode (buzzerPin, OUTPUT);

}

Pas 3: Codi de Joystick Sensing

void joystickSenseRoutine ()

{

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 seleccionat, 0);

//

// Afegiu codi per reproduir música / to per moure el 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; }

}

Pas 4: Codi de rutina del bucle principal

bucle buit () {

per a (int i = 0; i <longitud; i ++)

{

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

// Afegiu codi per a la música del joc aquí

// *** *** ***

//

}

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

}

Pas 5: llest per provar

Pas 6: Implementació d'Arduino Nano per al prototip

Image
Image

La mateixa implementació feta amb Arduino nano en taulers de suport, taulers fets a mida amb LEDs, resistències i timbre, i interruptor de palanca de comandaments X-Y.

Pas 7: Prototip definitiu Whack-a-MoLED per presentar el vostre ésser estimat

Últim prototip empaquetat Whack-a-MoLED per presentar el vostre ésser estimat
Últim prototip empaquetat Whack-a-MoLED per presentar el vostre ésser estimat
Últim prototip empaquetat Whack-a-MoLED per presentar el vostre ésser estimat
Últim prototip empaquetat Whack-a-MoLED per presentar el vostre ésser estimat

Subministraments per a prototips:

Caixa de cartró senzilla (mínim 4cmX6cmX3cm), peces de cartró addicionals per a suport.

Paper decoratiu per cobrir xassís (opcional)

Adhesiu / cola polivalent

Mini tauler (opcional)

Arduino nano

Petit PCB universal

Bateria de 9V per alimentar Arduino nano (connectar-se al pin Vin).

Commutador SPDT

Resta de subministraments (LED, resistències, palanca de control, timbre, cables) tal com es descriu al pas 1 anterior.

Recomanat: