PONG-MATRIZ LED
INTRODUCCIÓN.
Concluyendo las practicas con visualización en matriz de LED, se propone diseñar y realizar el respectivo montaje de un juego "PONG", para dos jugadores, es decir deben existir dos pulsadores por jugador, para controlar los movimientos de las raquetas (arriba/abajo).
OBJETIVOS
Realizar el diseño y montaje de un circuito que permita implementar el juego "PONG" en una matriz de LED de 24x7, teniendo en cuenta que se deben cumplir con algunas condiciones, que se especificaran a continuación.
CONDICIONES
- El juego debe ser funcional para dos jugadores.
- Se debe visualizar el "marcador" del partido.
- El "ping-pong" o "pelota" debe rebotar en los bordes de la matriz y en las raquetas dependiendo de su posición.
- El movimiento de la pelota debe ser en diagonal. No es valido un movimiento recto.
MATERIALES
- Protoboard
- Resistencias
- Pantalla LCD con modulo I2C.
- Cable
- PSoC
- PSoC Creator.
- Matriz LED.
- Algunos componentes adicionales integrados en el software PsoC creator, que serán nombrados a lo largo del desarrollo de la practica.
DESARROLLO
HARDWARE
(Circuito final cableado.)
ESQUEMÁTICO
Se debe tener en cuenta que es un proyecto bastante grande por ello fue necesario la creación de dos paginas e interconectarlas en el software.
(Pagina dos del circuito final PsoC creator)
PALETAS/RAQUETAS:
El diseño de este componente, se realizo por medio de circuitos secuenciales, para ello se realizo el respectivo diagrama de estados, tabla de secuencias, mapas K y todo el proceso necesario para conseguir las ecuaciones que definan la funcionalidad del circuito.
Una vez se ha completado el proceso mencionado anteriormente, se obtiene el siguiente circuito que cumplirá con la función de las raquetas del juego:
(Circuito secuencial "Paletas".)
(Componente "Paletas".)
Las entradas del jugador 1, estarán dadas por 2 pulsadores los cuales controlaran el movimiento ascendente y descendente de la raqueta. Para evitar el rebote o problemas que pueda generar el pulsador, se implemento un "debouncer" (componente de PSoC creator) que ira conectado directamente al componente "Paletas". Las salidas van conectadas a un multiplexor 16x8, el cual controlara la visualización de la raqueta.
Para el jugador 2 se implemento el mismo montaje que se menciono para el jugador 1 y de esta manera ya se completa el funcionamiento de las dos raquetas. (revisar imagen de la pagina 2 del circuito completo)
PING-PONG / PELOTA:
Al igual que con las raquetas, para que la pelota rebotara en los bordes de la matriz de LED, se realizo un circuito secuencial, después del tratamiento necesario se obtuvo:
(Circuito secuencial componente "Rebotar")
(Componente "Rebotar")
El control de la visualización de la pelota, esta bajo la misma idea de la practica anterior "MATRIZ LED: DESPLAZAMIENTO DE UN MENSAJE " , es decir, tratar independientemente las filas y las columnas de la matriz LED. A partir de esto se implemento EL "REGISTRO DE DESPLAZAMIENTO UNIVERSAL DE 10 Y 25 BITS" componente utilizado en practicas anteriores, por ende ya se ha explicado su funcionamiento.
(Registro de desplazamiento universal de 10 bits)
(Registro de desplazamiento universal de 25 bits)
COMPARADOR:
Para garantizar el rebote de la pelota con las raquetas al momento de estar jugando,es necesario generar un comparador que proporcione la información de la posición de la raqueta y la de la pelota, de manera que si están en la misma posición , se presenta el rebote de la pelota pero si sus posiciones son distintas, esta acción se tomara como punto del jugador.
Básicamente, se compara las filas del circuito que controla la pelota. con las filas o salidas del circuito que controla el movimiento de las paletas, mediante una compuerta lógica NOR. A su salida se conecta una compuerta AND con el fin de "habilitar" la comparación únicamente cuando la pelota se encuentre en la columna 1 o 23.
Las salidas irán conectadas a una OR, de manera que cuando se genere un punto, habrá un "1 lógico" que sera tomado por una interrupción la cual se explicara mas adelante en la visualización.
VISUALIZACIÓN
Para la visualización del marcador, se hizo uso de la pantalla LCD con el protocolo I2C que permite controlar la pantalla con tan solo 4 pines de la PSoC , 2 de alimentación y 2 que permitirán la comunicación por medio de un "Bus".
Para usar el protocolo I2C, se hizo uso de un componente y librería habilitado por la comunidad de PSoC exactamente de PSoC Latinoamerica. A continuación se muestra el componente y el código utilizado para lograr la visualización del marcador en la pantalla LCD.
Para usar el protocolo I2C, se hizo uso de un componente y librería habilitado por la comunidad de PSoC exactamente de PSoC Latinoamerica. A continuación se muestra el componente y el código utilizado para lograr la visualización del marcador en la pantalla LCD.
(Protocolo I2C)
Adicional mente al componente "LCD_I2C" (Protocolo I2C esclavo de PSoC latinoamerica) se usa el componente "I2C" intrínseco al software de PSoC, el cual sera usado como "Maestro" en la comunicación con la LCD. Las salidas de "I2C" serán conectadas directamente a los pines SDA y SCL que vienen marcados en la PSoC.
- CÓDIGO:
Para poder visualizar el marcador en la LCD, se genero en el esquemático una interrupción que va conectada a la salida de la compuerta OR del comparador, con el fin de "parar" la secuencia del montaje, "entrar" en la interrupción, realizar los comandos del código, finalizar y seguir con el funcionamiento normal del montaje.
(Interrupciones)
Como se puede ver anteriormente, se definen las interrupciones, una por cada comparador o raqueta y dentro de ella se suma a una variable que sera la que lleve el conteo del marcador. Seguido de esto se "imprime" el numero en la LCD , se sale de la interrupción y se reinicia el juego.
PRUEBAS
A continuación se muestra el montaje final y su correcto funcionamiento.
Explicación:
Para que comience el juego, se habilito un pulsador de mas, que funciona como "start". Una vez se inicia el juego, los jugadores controlan las raquetas para que el contrincante no les marque punto.
Cuando se marca un punto, la pelota y las raquetas se dejan de visualizar y se procede a mostrar la puntuación en la pantalla LCD, seguido de esto se debe oprimir el botón de "start" para continuar con el juego.
Explicación:
Para que comience el juego, se habilito un pulsador de mas, que funciona como "start". Una vez se inicia el juego, los jugadores controlan las raquetas para que el contrincante no les marque punto.
Cuando se marca un punto, la pelota y las raquetas se dejan de visualizar y se procede a mostrar la puntuación en la pantalla LCD, seguido de esto se debe oprimir el botón de "start" para continuar con el juego.
Comentarios
Publicar un comentario