Table des matières:

Whack-a-moLED !! : 7 étapes
Whack-a-moLED !! : 7 étapes

Vidéo: Whack-a-moLED !! : 7 étapes

Vidéo: Whack-a-moLED !! : 7 étapes
Vidéo: Whack-A-Mole | Cartoon-Box 22 2024, Novembre
Anonim
Whack-a-moLED !!
Whack-a-moLED !!
Whack-a-moLED !!
Whack-a-moLED !!

Projets Tinkercad »

Il s'agit d'une version LED du jeu classique Whack-a-Mole.

Fondamentalement, une LED aléatoire sur 4 LED s'allume au lieu d'une taupe regardant par un trou et le joueur éteint la LED à l'aide d'un joystick au lieu de frapper la taupe !

Fournitures

Arduino Uno/Nano ou toute variante de carte

4 LED et résistances de limitation de courant correspondantes.

Module joystick avec sorties X, Y

Buzzer actif (facultatif)

Cavaliers… assez pour déboguer !

Étape 1: Branchez le circuit

Branchez le circuit
Branchez le circuit

Connectez la carte Arduino Uno au module joystick, en connectant 2 broches d'entrée analogiques aux sorties X Y du joystick.

4 LED à connecter à l'aide de résistances à 4 broches de sortie numérique ou analogique.

Buzzer actif à connecter à une broche de sortie numérique

Étape 2: Code pour la configuration des épingles

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 sélectionnéLED = 0; // Peut être l'un des A2, A3, A4 ou A5

void setup() {

pinMode(xPin, INPUT);

pinMode(yPin, INPUT);

pinMode (LED gauche, SORTIE);

pinMode (Droite LED, SORTIE);

pinMode(topLED, SORTIE); pinMode(bottomLED, SORTIE);

pinMode(joyPin, SORTIE);

pinMode(buzzerPin, SORTIE);

}

Étape 3: Code pour la détection par joystick

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

//

// Ajouter du code pour jouer de la musique/tonalité pour frapper moLED !!

//

}

}

int mapXYtoPin(int xVal, int yVal, int butVal) { if ((xVal < 100) et (yVal 400)) { return bottomLED; }

else if ((xVal > 900) et (yVal 400)) { return topLED; }

else if ((xVal 400) et (yVal < 100)) { return leftLED; }

else if ((xVal 400) et (yVal > 900)) { return rightLED; }

else { return -1; }

}

Étape 4: Code de routine de la boucle principale

boucle vide() {

pour (int i = 0; i < longueur; i++)

{

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

// Ajoutez le code pour la musique du jeu ici

// *** *** ***

//

}

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

}

Étape 5: Prêt à essayer

Étape 6: Implémentation Arduino Nano pour le prototype

Image
Image

Même implémentation réalisée avec Arduino nano dans la maquette, carte sur mesure avec LED, résistances et buzzer, et commutateur de joystick X-Y.

Étape 7: Prototype Whack-a-MoLED emballé final pour présenter votre bien-aimé

Prototype Whack-a-MoLED emballé final pour présenter votre bien-aimé !
Prototype Whack-a-MoLED emballé final pour présenter votre bien-aimé !
Prototype Whack-a-MoLED emballé final pour présenter votre bien-aimé !
Prototype Whack-a-MoLED emballé final pour présenter votre bien-aimé !

Fournitures pour prototype:

Boîte en carton simple (Minimum 4cmX6cmX3cm), pièces de carton supplémentaires pour le support.

Papier décoratif pour recouvrir le châssis (facultatif)

Adhésif/colle polyvalent

Mini planche à pain (facultatif)

Arduino nano

Petit PCB universel

Batterie 9V pour alimenter Arduino nano (connecter à la broche Vin).

Commutateur SPDT

Reste des alimentations (LED, résistances, joystick, buzzer, fils) comme décrit à l'étape 1 ci-dessus.

Conseillé: