Índice:

Whack-a-moLED !!: 7 etapas
Whack-a-moLED !!: 7 etapas

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

Vídeo: Whack-a-moLED !!: 7 etapas
Vídeo: EI Pollito Pio 3D - Cancoines de la Granja de Zenon - Pilo Filo Granja - Pio Pio Pio 3D - Play 303 2024, Julho
Anonim
Whack-a-moLED !!
Whack-a-moLED !!
Whack-a-moLED !!
Whack-a-moLED !!

Projetos Tinkercad »

Esta é uma versão LED do clássico jogo Whack-a-Mole.

Basicamente, um LED aleatório de 4 LEDs acende em vez de uma verruga olhando para fora de um buraco e o jogador desliga o LED usando um joystick em vez de golpear a toupeira!

Suprimentos

Arduino Uno / Nano ou qualquer placa variante

4 LEDs e resistores limitadores de corrente correspondentes.

Módulo joystick com saídas X, Y

Campainha ativa (opcional)

Fios de jumpers.. o suficiente para depurar!

Etapa 1: conecte o circuito

Conecte o circuito
Conecte o circuito

Conecte a placa Arduino Uno ao módulo de joystick, conectando 2 pinos de entrada analógica às saídas X Y do joystick.

4 LEDs a serem conectados usando resistores a 4 pinos de saída digital ou analógica.

Buzzer ativo para ser conectado a um pino de saída digital

Etapa 2: Código para configuração de pinos

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 selecionadoLED = 0; // Pode ser A2, A3, A4 ou A5

void setup () {

pinMode (xPin, INPUT);

pinMode (yPin, INPUT);

pinMode (leftLED, OUTPUT);

pinMode (rightLED, OUTPUT);

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

pinMode (joyPin, OUTPUT);

pinMode (buzzerPin, OUTPUT);

}

Etapa 3: Código para detecção de joystick

void joystickSenseRoutine ()

{

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

joyPin = mapXYtoPin (xVal, yVal, butVal);

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

//

// Adicionar código para tocar música / tom para moLED de golpe !!

//

}

}

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

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

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

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

else {return -1; }

}

Etapa 4: Código de rotina do loop principal

void loop () {

para (int i = 0; i <comprimento; i ++)

{

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

// Adicione o código para a música do jogo aqui

// *** *** ***

//

}

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

}

Etapa 5: pronto para experimentar

Etapa 6: Implementação do Arduino Nano para protótipo

Image
Image

Mesma implementação feita com Arduino nano na placa de ensaio, placa personalizada com LEDs, resistores e campainha e botão de joystick X-Y.

Etapa 7: Protótipo final embalado Whack-a-MoLED para apresentar o que você ama

Protótipo final embalado Whack-a-MoLED para apresentar o que você ama!
Protótipo final embalado Whack-a-MoLED para apresentar o que você ama!
Protótipo final embalado Whack-a-MoLED para apresentar quem você ama!
Protótipo final embalado Whack-a-MoLED para apresentar quem você ama!

Suprimentos para protótipo:

Caixa de cartão simples (mínimo 4cmX6cmX3cm), pedaços de cartão extra para suporte.

Papel decorativo para cobrir o chassi (opcional)

Adesivo / cola multiuso

Mini breadboard (opcional)

Arduino nano

PCB universal pequeno

Bateria de 9V para alimentar o Arduino nano (conecte ao pino Vin).

Interruptor SPDT

Resto dos suprimentos (LEDs, resistores, joystick, campainha, fios) conforme descrito na etapa 1 acima.

Recomendado: