POiNG! - Jogo de arcade Arduino !: 3 etapas
POiNG! - Jogo de arcade Arduino !: 3 etapas

Vídeo: POiNG! - Jogo de arcade Arduino !: 3 etapas

Vídeo: POiNG! - Jogo de arcade Arduino !: 3 etapas
Vídeo: JOYSTICK ARCADE - COMO MONTAR SEU RETROGAME 2025, Janeiro
Anonim
Image
Image
POiNG! - Jogo de arcade Arduino!
POiNG! - Jogo de arcade Arduino!

Estaremos construindo um jogo de arcade no estilo PONG que usa partes do kit "The Most Complete Starter Kit UNO R3 Project" da Elegoo Inc.

Divulgação completa - A maioria das peças fornecidas para este Instructable foram fornecidas ao autor pela Elegoo Inc.

Eu queria construir um projeto usando um módulo LED Matrix. O display de LED 8x8 básico requer o uso de registradores de deslocamento adicionais para poder endereçar os LEDs individuais na matriz. Em vez disso, este projeto usa o módulo de LED MAX7219 8x8. É um módulo muito fácil de usar.

Eu sugeriria que devido ao grande número de conexões de fiação neste projeto, ele seria considerado Instrutível de nível INTERMEDIÁRIO.

Vamos começar!

Suprimentos

Peças usadas do kit inicial Elegoo (https://rebrand.ly/dvjb3w8)

  • Microcontrolador UNO R3
  • Módulo LED MAX7219 8x8
  • Módulo de exibição LCD 16x2
  • Potenciômetro de ajuste de 10K e botão
  • Dupont Wires
  • Resistor 220R
  • Piezo Buzzer Passivo
  • Módulo de fonte de alimentação
  • Adaptador 9V 1A - necessário porque o UNO não pode fornecer corrente suficiente para o Módulo LED 8x8
  • Tábua de pão

Peças extras necessárias

Potenciômetro linear de 2 x 10K - barato e amplamente disponível no eBay, AliExpress, Banggood etc.

Etapa 1: Fiação do circuito

Fiação do circuito
Fiação do circuito

Conecte o circuito de acordo com o diagrama de fiação. Sem pressa. Existem MUITAS conexões necessárias para os dois monitores.

Observe na foto do circuito que o módulo de energia está conectado ao lado esquerdo da placa de ensaio e o adaptador 9V 1A DC está conectado ao módulo de energia de forma que corrente suficiente seja fornecida à matriz de LED. NÃO há conexão entre o pino de 5 V no UNO e a placa de ensaio. MAS, o pino GND no UNO está conectado ao GND na placa de ensaio.

Verifique seu trabalho duas ou três vezes.

Etapa 2: Código Arduino

Este instrutível assume que você já sabe como programar no Arduino.

Baixe o esboço do Arduino em anexo. Certifique-se de ter adicionado a biblioteca LedControl às bibliotecas do Arduino. Usei a versão de Eberhard Fahle. Basta pesquisar MAX7219 no navegador Gerenciar Bibliotecas para encontrá-lo e instalá-lo.

Certifique-se de que o arquivo pitches.h esteja na pasta do seu esboço. É usado para reproduzir os sons do jogo.

Um pouco sobre o tempo

Como o comando delay () pausa totalmente a execução de seu esboço quando ele é executado, em vez disso, procuramos por períodos de tempo decorridos para que ocorram quando queremos executar partes relacionadas à animação do esboço. Esperamos que um período de tempo predefinido passe antes de executar partes do esboço, como atualizar a localização da bola na tela.

Mais significativamente, o comando delay () é realmente executado apenas no método loop (). Normalmente não é executado conforme o esperado em outros métodos. Portanto, todo o tempo relacionado à animação é feito no método loop ().

Exemplo:

Definimos algumas variáveis do tipo 'long' e alguns booleanos e depois os definimos no final de setup ().

bThresh = 80; // o tempo em milissegundos entre as atualizações da bola

ballTime = millis (); // definir para a hora atual do sistema

bon = falso; // o LED da esfera está ligado ou desligado

ballReturn = false; // estamos devolvendo uma bola depois de uma batida de remo?

Em loop () para desenhar a bola, temos:

if ((millis () - ballTime> bThresh) && bon == false) {// se a bola está DESLIGADA e passou tempo suficiente ballOn (); // liga o LED da bola

bon = verdadeiro; // a bola está agora LIGADA

ballTime = millis (); // redefine o ballTime para a hora atual

}

if ((millis () - ballTime> bThresh) && bon == true) {// se a bola está LIGADA e já passou tempo suficiente

ballOff (); // desliga o LED da esfera

bon = falso; // a bola está agora DESLIGADA

ballTime = millis (); redefina o ballTIme para a hora atual

}

Existem muitas maneiras de fazer este jogo. Estas são apenas minhas preferências.

O esboço está totalmente documentado, então convido você a ler o código para ver como funciona.

Verifique, compile e envie seu código.

Divirta-se jogando seu jogo!

Etapa 3: Conclusão

Conclusão
Conclusão
Conclusão
Conclusão

Meus agradecimentos à Elegoo Inc por fornecer o kit inicial usado neste projeto. É um kit com uma grande variedade de peças e módulos que o colocarão no mundo do Arduino Maker.