Taula de continguts:

PUNT! - Joc Arcade Arduino: 3 passos
PUNT! - Joc Arcade Arduino: 3 passos

Vídeo: PUNT! - Joc Arcade Arduino: 3 passos

Vídeo: PUNT! - Joc Arcade Arduino: 3 passos
Vídeo: DIY Arcade Controller for Tekken 7! 2024, De novembre
Anonim
Image
Image
PUNT! - Joc Arcade Arduino
PUNT! - Joc Arcade Arduino

Construirem un joc arcade d’estil PONG que utilitzi parts del kit “El més complet Starter Kit UNO R3 Project” d’Elegoo Inc.

Divulgació completa: la majoria de les parts subministrades per a aquesta instrucció van ser proporcionades a l'autor per Elegoo Inc.

He volgut construir un projecte mitjançant un mòdul LED Matrix. La pantalla LED bàsica de 8x8 requereix l’ús de registres de desplaçament addicionals per poder dirigir-se als LED individuals de la matriu. En canvi, aquest projecte utilitza el mòdul LED MAX7219 8x8. És un mòdul molt fàcil d’utilitzar.

Suggeriria que, a causa del gran nombre de connexions de cablejat d’aquest projecte, es consideraria un nivell INTERMEDI instructable.

Comencem!

Subministraments

Peces usades del kit d’inici Elegoo (https://rebrand.ly/dvjb3w8)

  • Microcontrolador UNO R3
  • Mòdul LED 8x8 MAX7219
  • Mòdul de pantalla LCD 16x2
  • Potenciómetre i pom de 10K Trim
  • Filferros Dupont
  • Resistència 220R
  • Buzzer Piezo passiu
  • Mòdul d'alimentació
  • Adaptador 9V 1A: necessari perquè l’ONU no pot subministrar corrent suficient per al mòdul LED 8x8
  • Taula de pa

Es necessiten peces addicionals

Potenciòmetre lineal de 2 x 10 k: barat i disponible àmpliament a eBay, AliExpress, Banggood, etc.

Pas 1: Connexió del circuit

Cablatge del circuit
Cablatge del circuit

Connecteu el circuit segons el diagrama de cablejat. Pren-te el teu temps. Hi ha MOLT de connexions necessàries per a les dues pantalles.

Fixeu-vos a la foto del circuit que el mòdul d’alimentació està connectat al costat esquerre de la placa i que l’adaptador de corrent continu de 9V 1A està connectat al mòdul d’alimentació de manera que es subministra prou corrent a la matriu LED. NO hi ha cap connexió entre el pin de 5 V de la UNO i la placa de suport. PERUT, el pin GND de l'ONU està connectat a GND a la taula de suport.

Comproveu el vostre treball de manera doble i triple.

Pas 2: Codi Arduino

Aquesta instrucció suposa que ja sabeu programar a Arduino.

Baixeu-vos l'esbós d'Arduino adjunt. Assegureu-vos que heu afegit a la biblioteca LedControl a les biblioteques Arduino. He utilitzat la versió d’Eberhard Fahle. Només cal que cerqueu MAX7219 al navegador Gestiona les biblioteques i el trobareu i instal·leu.

Assegureu-vos que el fitxer pitches.h es troba a la carpeta del vostre esbós. S'utilitza per reproduir els sons del joc.

Una mica de temps

Com que l'ordre delay () atura completament l'execució del vostre esbós quan s'executa, en lloc d'això busquem períodes de temps transcorreguts quan volem executar parts de l'esbós relacionades amb l'animació. Cerquem un temps predeterminat per passar abans d’executar parts de l’esbós, com ara actualitzar la ubicació de la pilota a la pantalla.

Més significativament, l’ordre delay () només s’executa en el mètode loop (). Normalment no s’executa com s’esperava en altres mètodes. Per tant, tots els temps relacionats amb l’animació es fan en el mètode loop ().

Exemple:

Definim algunes variables de tipus "llarg" i un parell de booleans i les definim al final de la configuració ().

bThresh = 80; // el temps en mil·lisegons entre les actualitzacions de boles

ballTime = millis (); // estableix l’hora actual del sistema

bon = fals; // és el LED de la bola encès o apagat

ballReturn = fals; // tornem una pilota després d'un cop de pàdel?

En bucle () per dibuixar la bola tenim:

if ((millis () - ballTime> bThresh) && bon == false) {// si la pilota està OFF i ha passat el temps suficient ballOn (); // encén el LED de la bola

bon = true; // la pilota ara està ACTIVADA

ballTime = millis (); // restableix el ballTime a l’hora actual

}

if ((millis () - ballTime> bThresh) && bon == true) {// si la pilota està activada i ha passat el temps suficient

ballOff (); // apaga el LED de la bola

bon = fals; // la pilota ara està DESACTIVADA

ballTime = millis (); restableix el ballTIme a l'hora actual

}

Hi ha moltes maneres de fer aquest joc. Aquestes són només les meves preferències.

L'esbós està completament documentat, així que us convido a llegir el codi per veure com funciona.

Comproveu, compileu i pengeu el vostre codi.

Gaudeix jugant al teu joc!

Pas 3: Conclusió

Conclusió
Conclusió
Conclusió
Conclusió

El meu agraïment a Elegoo Inc per proporcionar el kit d’inici utilitzat en aquest projecte. Es tracta d’un kit amb una gran varietat de peces i mòduls que us permetran entrar al món d’Arduino Maker.

Recomanat: