Tabla de contenido:

¡POiNG! - ¡Arduino Arcade Game !: 3 pasos
¡POiNG! - ¡Arduino Arcade Game !: 3 pasos

Video: ¡POiNG! - ¡Arduino Arcade Game !: 3 pasos

Video: ¡POiNG! - ¡Arduino Arcade Game !: 3 pasos
Video: Open Source Arduino Claw Machine V4 Assembly and Showcase 2024, Noviembre
Anonim
Image
Image
¡POiNG! - ¡Arduino Arcade Game!
¡POiNG! - ¡Arduino Arcade Game!

Crearemos un juego de arcade al estilo PONG que utiliza partes del kit "El kit de inicio más completo del proyecto UNO R3" de Elegoo Inc.

Divulgación completa: la mayoría de las piezas suministradas para este Instructable fueron proporcionadas al autor por Elegoo Inc.

Quería construir un proyecto usando un módulo de matriz LED. La pantalla LED básica de 8x8 requiere el uso de registros de desplazamiento adicionales para poder direccionar los LED individuales en la matriz. En cambio, este proyecto utiliza el módulo LED MAX7219 8x8. Es un módulo muy fácil de usar.

Sugeriría que debido a la gran cantidad de conexiones de cableado en este proyecto, se consideraría un Instructable de nivel INTERMEDIO.

¡Empecemos!

Suministros

Piezas utilizadas del kit de inicio Elegoo (https://rebrand.ly/dvjb3w8)

  • Microcontrolador UNO R3
  • Módulo LED MAX7219 8x8
  • Módulo de pantalla LCD 16x2
  • Potenciómetro y perilla de ajuste de 10K
  • Alambres Dupont
  • Resistencia 220R
  • Zumbador piezoeléctrico pasivo
  • Módulo de alimentación
  • Adaptador 9V 1A: necesario porque UNO no puede suministrar suficiente corriente para el módulo LED 8x8
  • Tablero de circuitos

Se necesitan piezas adicionales

Potenciómetro lineal 2 x 10K: económico y ampliamente disponible en eBay, AliExpress, Banggood, etc.

Paso 1: cableado del circuito

Cableado del circuito
Cableado del circuito

Conecte el circuito según el diagrama de cableado. Tome su tiempo. Se requieren MUCHAS conexiones para las dos pantallas.

Observe en la foto del circuito que el módulo de alimentación está conectado al lado izquierdo de la placa de pruebas y el adaptador de CC de 9 V 1 A está conectado al módulo de alimentación para que se suministre suficiente corriente a la matriz de LED. NO hay conexión entre el pin de 5V en el UNO y el tablero. PERO, el pin GND en UNO está conectado a GND en el tablero.

Verifique dos veces y tres veces su trabajo.

Paso 2: Código Arduino

Este instructable asume que ya sabe cómo programar en Arduino.

Descargue el boceto de Arduino adjunto. Asegúrese de haber agregado la biblioteca de LedControl a sus bibliotecas de Arduino. Usé la versión de Eberhard Fahle. Simplemente busque MAX7219 en el navegador Administrar bibliotecas y lo encontrará e instálelo.

Asegúrese de que el archivo pitches.h esté en la carpeta de su boceto. Se utiliza para reproducir los sonidos del juego.

Un poco sobre el tiempo

Como el comando delay () detiene completamente la ejecución de su boceto cuando se ejecuta, en su lugar buscamos períodos de tiempo transcurridos cuando queremos ejecutar partes del boceto relacionadas con la animación. Buscamos que pase una cantidad de tiempo preestablecida antes de ejecutar partes del boceto, como actualizar la ubicación de la pelota en la pantalla.

Más significativamente, el comando delay () en realidad solo se ejecuta en el método loop (). Por lo general, no se ejecuta como se esperaba en otros métodos. Entonces, todo el tiempo relacionado con la animación se realiza en el método loop ().

Ejemplo:

Definimos algunas variables de tipo 'largo' y un par de valores booleanos y luego los configuramos al final de setup ().

bTresh = 80; // el tiempo en milisegundos entre actualizaciones de bolas

ballTime = millis (); // establecido en la hora actual del sistema

bon = falso; // ¿el LED de la bola está encendido o apagado?

ballReturn = falso; // ¿estamos devolviendo una pelota después de un golpe de paleta?

En loop () para dibujar la bola tenemos:

if ((millis () - ballTime> bThresh) && bon == false) {// si la bola está APAGADA y ha pasado suficiente tiempo ballOn (); // enciende el LED de la bola

bon = verdadero; // la bola ahora está encendida

ballTime = millis (); // restablece el ballTime a la hora actual

}

if ((millis () - ballTime> bThresh) && bon == true) {// si la bola está encendida y ha pasado suficiente tiempo

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

bon = falso; // la bola ahora está APAGADA

ballTime = millis (); restablecer el ballTIme a la hora actual

}

Hay muchas formas de hacer este juego. Estas son solo mis preferencias.

El boceto está completamente documentado, así que los invito a leer el código para ver cómo funciona.

Verifique, compile y cargue su código.

¡Disfruta jugando tu juego!

Paso 3: Conclusión

Conclusión
Conclusión
Conclusión
Conclusión

Mi agradecimiento a Elegoo Inc por proporcionar el kit de inicio utilizado en este proyecto. Es un kit con una gran variedad de piezas y módulos que lo llevarán bien al mundo de Arduino Maker.

Recomendado: