Tabla de contenido:

Pong Tennis con matriz LED, Arduino y joysticks: 5 pasos (con imágenes)
Pong Tennis con matriz LED, Arduino y joysticks: 5 pasos (con imágenes)

Video: Pong Tennis con matriz LED, Arduino y joysticks: 5 pasos (con imágenes)

Video: Pong Tennis con matriz LED, Arduino y joysticks: 5 pasos (con imágenes)
Video: Proyecto juego de ping pong con FPGA en VHDL 2024, Noviembre
Anonim
Tenis de Pong con Matriz LED, Arduino y Joysticks
Tenis de Pong con Matriz LED, Arduino y Joysticks

Este proyecto está destinado tanto a principiantes como a experimentados. En un nivel básico, se puede hacer con una placa de pruebas, cables de puente y pegarlos a un trozo de material de desecho (yo usé madera) con Blu-Tack y sin soldadura. Sin embargo, en un nivel más avanzado, se puede soldar a una placa de perforación o una PCB personalizada.

Como se trataba de un proyecto de bloqueo, no tuve acceso a muchas herramientas o materiales, por lo que está pegado a un trozo de madera de desecho que es un poco demasiado pequeño con Blu-Tack, sin embargo, a pesar de esto, es un proyecto divertido que se combina. rápidamente y se compone de piezas comúnmente disponibles que se pueden encontrar en línea a bajo precio.

Paso 1: Partes

Para hacer el juego de Pong necesitas;

  • 1x Un Arduino (cualquier tipo funcionará)
  • Matrices LED 4x MAX7219 8x8
  • 2x joysticks
  • 1x zumbador piezoeléctrico (opcional)
  • 15 cables de puente hembra-hembra (3 grupos de 5)
  • 15 cables de puente macho-hembra (3 grupos de 5)
  • 18 cables de puente macho-macho
  • 1x tablero
  • 1x resistencia de 220Ω

En lugar de una placa Arduino Uno o Nano, puede usar un Arduino basado en placa de pruebas con;

  • 1x ATmega328p 28 pines IC
  • 1x oscilador de cristal de 16 kHz
  • Condensadores cerámicos de 2x 22pF
  • 1x convertidor USB FTDI UART
  • Condensador electrolítico 1x 100uF
  • 1x Micro USB Breakout (opcional)

Instrumentos;

  • PC con Arduino IDE (y biblioteca LedControl)
  • Cable USB relevante para su Arduino
  • Power Bank para alimentar el juego lejos de tu computadora

Paso 2: cableado

Alambrado
Alambrado
Alambrado
Alambrado

El cableado es muy simple ya que todo lo que necesita son cables de puente para conectar los encabezados de Matrices y Joysticks al Arduino. La única complicación es la energía, ya que Arduino Uno solo tiene 3 conexiones GND y una conexión de 5v. Aquí es donde entra la placa de pruebas y actúa como un riel de distribución de energía para todos los componentes. Si está utilizando un NANO, la placa de pruebas tendrá el mismo propósito y le permitirá enchufar todo.

Para el cableado, siga estas conexiones.

  • Joystick izquierdo: GND y 5v a sus respectivos rieles de alimentación. SW - patilla 9, VRx - A0, VRy - A1.
  • Joystick derecho: GND y 5v a sus respectivos rieles de alimentación. SW - patilla 8, VRx - A2, VRy - A3.
  • Matriz de LED más a la derecha: GND y 5v a sus respectivos rieles de alimentación. DIN - 13, CS - 11, CLK - 12. (Según línea 25)
  • Todas las demás matrices LED se pueden conectar en cadena desde la salida de la primera yendo de derecha a izquierda para que el código funcione correctamente.
  • Zumbador opcional - Ánodo (+) a través de una resistencia limitadora de corriente de 220 Ω al pin 10, cátodo (-) - GND.

Paso 3: cableado alternativo

Cableado alternativo
Cableado alternativo
Cableado alternativo
Cableado alternativo
Cableado alternativo
Cableado alternativo

Después de conectarlo con un Arduino UNO para ahorrar espacio, decidí colocar el Arduino IC de UNO en la placa de pruebas con un oscilador de cristal de 16Mhz y un par de capacitores de 22pF de cada lado a tierra. Siento que esta fue una modificación que valió la pena, ya que hace que el proyecto se vea más ordenado y terminado, sin embargo, debe usar un programador USB FTDI para actualizar el programa.

Paso 4: Código + Explicación

Para cargar el código en Arduino, descargue la biblioteca LedControl de GitHub aquí, github.com/wayoda/LedControl y agregue el archivo Zip o agréguelo a través del Administrador de bibliotecas dentro del IDE. Después de eso, abra el boceto adjunto, seleccione su Arduino en la configuración de la placa y el puerto en herramientas y cárguelo en el arduino.

Explicación

Línea 1: agrega la biblioteca

Línea 5-23: configura todas las variables, constantes y números de pin.

Línea 25: configura el LED Martix y configura los pines de control y cuántas pantallas.

Línea 27: Configura la función de reinicio.

Línea 30-35: Función de apagado para encender / apagar todas las pantallas a la vez.

Línea 38-43: función SetIntensity para configurar el brillo de todas las pantallas juntas.

Línea 46-51: función ClearAll para limpiar todas las pantallas juntas.

Línea 53-64: Joystick Función para obtener la posición de los joysticks, mapearlos a las 7 posibles posiciones del bate para golpear la pelota y luego mover el bate a la nueva posición.

Línea 67-435: Función que mueve la pelota hacia el jugador izquierdo a la altura y velocidad especificadas, verifica si el jugador la golpeó y continúa y establece el estado de choque en verdadero o rebota la pelota, agrega 1 al puntaje y aumenta la velocidad.

Línea 438-811: Función que mueve la pelota hacia el jugador correcto a la altura y velocidad especificadas, verifica si el jugador la golpeó y continúa y establece el estado de choque en verdadero o rebota la pelota, agrega 1 al puntaje y aumenta la velocidad.

Línea 813-823: función para mostrar una cara sonriente, una marca, una cruz o un signo de interrogación en la pantalla especificada (0 a la derecha a 3 a la izquierda).

Línea 861-979: Función para mostrar los números del 0 al 9 en la pantalla especificada.

Línea 981-1047: función para mostrar el puntaje en el lado de la pantalla de cada jugador.

Línea 1049-1064: Función para comprobar si el reproductor está listo.

Línea 1066-1076: Sección de configuración del código para el código que se ejecuta una vez cuando se inicia el programa.

Línea 1078-1136: Sección Main Loop para lógica de juego donde se utilizan todas las funciones y donde se decide quién gana y luego reinicia el programa después de 5 segundos de mostrar la puntuación.

Paso 5: Gracias por leer

Gracias por leer
Gracias por leer

Gracias por leer este Instructable, fue un proyecto de bloqueo divertido que se desarrolló durante un par de días mientras aprendía más sobre la programación de Arduino. Si lo disfrutó, no dude en votarlo en el concurso Arduino.

Recomendado: