Sunteți pe pagina 1din 3

Propuesta Proyecto Final - Pong

Hugo Gutirrez, Oscar Poloche, Nelson Contreras


ResumenPara el proyecto final se desea implementar en una FPGA Spartan3 una versin del popular juego de ATARI llamado Pong, en donde se utilizarn dos pulsadores para manejar una raqueta que golpear una pelota y visualizando esto mediante un monitor por medio del puerto VGA (Video Graphic Array). Para visualizar los puntajes y los intentos restantes se usarn los displays 7 segmentos de la FPGA. Palabras Claves Decodificador, monitor, Pong, RGB, Teclado, Verilog, VGA.

circuito generador de pixeles El circuito sincronizador generar 5 seales a partir de una seal de reloj, estas seales son: Sincronizador horizontal: encargada de determinar cundo se han recorrido todos los pixeles de una lnea de la pantalla y se debe empezar otra.

I. INTRODUCCIN

L juego Pong pretende simular una mesa de pingpong en donde hay un solo jugador. Se controla una barra que simula una raqueta movindola hacia arriba o hacia abajo, y el objetivo del juego es no dejar pasar una pequea pelota que va rebotando por toda la pantalla (Fig. 1).

Fig. 2. Conector VGA DB15 con indicacin de sus pines [1].

Fig. 1. Captura de pantalla del juego Pong. (Fuente propia).

Sincronizador vertical: encargada de determinar cundo se han recorrido todas las lneas de la pantalla y se debe devolver a la primera lnea. video_on: se encarga de decidir si enviar o no las seales con la informacin de pixeles en la pantalla. pixel_x, pixel_y: tiene informacin de la posicin en la pantalla del pixel que actualmente se est escaneando. A pesar de que el puerto de conexin DB15 VGA dispone de 15 pines; la FPGA Spartan 3 solo utiliza cinco, tres de ellos se usan para las seales RGB y los otros dos se encargan de las seales de sincronizacin horizontal (Hsync) y vertical (Vsync). El generador de pixeles trabajar con una resolucin de 640x480 pixeles a 60 Hz ya que esta es una resolucin baja estndar que seguramente podr ser generada con el reloj de 50 MHz de la tarjeta de desarrollo, pero se podra expandir el concepto a una mayor resolucin.

II. PLANTEAMIENTO DEL PROBLEMA Para este proyecto se crear un circuito controlador VGA compuesto por 2 bloques: el Generador de Pixeles y el sincronizador VGA. Un controlador de video genera las seales de sincronizacin y los datos de los pixeles de salida. En la Fig. 3. se muestra un diagrama simplificado de un controlador VGA Este contiene un circuito de sincronizacin designado como vga_sync, y un

Este circuito tomar las seales pixel_x y pixel_y del circuito sincronizador y se encargar de generar la seal RGB de 3 bits trazando lo que aparecer en la pantalla.

seal control

El circuito sincronizador es tratado ampliamente en diferentes fuentes bibliogrficas y sigue un modelos ya establecido que hace uso de contadores para barrer toda la pantalla e indicar el final de una lnea horizontal de pixeles y el comienzo de una nueva, asi como el fin de una pantalla (compuesta de todas las lneas horizontales) y el comienzo de una nueva [2][3].

circuito generador de pixeles

pixel_x pixel_y video_on

monitor VGA

sincron. vertical sinc. horizontal clk vga_sync

Controlador VGA

Fig. 3. Diagrama de bloques del controlador VGA (fuente propia).

Fig. 5. Diagrama de temporizacin del escaneo vertical [4].

La imagen que se debe mostrar se debe refrescar cada vez que la pantalla se ha escaneado completamente, en este caso se hace 60 veces por segundo, por lo que se usa un reloj de esta frecuencia. Adicionalmente se debe mostrar la puntuacin del jugador y el nmero de intentos que le restan.

El generador de pixeles es la parte principal del proyecto y para construirlo se usarn tres generadores de pixeles individuales: Uno para generar la barra que se encuentra a la izquierda, la cual simular un muro y que estar inmvil; crearla ser sencillo ya que estas no se mover y sus bordes o fronteras sern constantes. Otro generador se usar para generar la barra que se usar como raqueta. Esta solo se mover en el eje y, (arriba y abajo), y para crearla se definirn sus bordes izquierdo y derecho como constantes, mientras que los bordes superior e inferior cambiarn de acuerdo a la pulsacin de los botones asignados para tal fin y de acuerdo a la velocidad de desplazamiento predeterminada. Cada vez que se oprime el botn para mover hacia abajo, si la frontera inferior de la raqueta es menor que la parte ms inferior de la pantalla, esta se mover 4 pixeles (o los que hayan sido definidos como velocidad) sumando esta cantidad a un registro usado para almacenar la posicin actual del borde superior de la raqueta; algo similar ocurrir en el caso de oprimir el botn de arriba. Por ltimo se necesita el generador para la pelota, la cual cambiar su posicin constantemente y por ello se usarn 4 seales que almacenarn la informacin acerca de las fronteras de la pelota de manera similar al como se hizo con la raqueta. Adems se necesitar cambiar la direccin de cuando esta golpee alguna superficie; esto se hace restando (o sumando si a rebotado) una cantidad fija (segn la velocidad que se desee) de los registros que almacenan la posicin actual de alguno de los bordes derecho o izquierdo.

III. METODOLOGA La puntacin se mostrar por medio de los displays 7 segmentos de la FPGA.

Fig. 4. Diagrama de temporizacin del escaneo horizontal.[4].

Fig. 6. Conector PS/2 con indicacin de sus pines [4].

Por ltimo inicialmente se usarn los pulsadores de la FPGA para manejar la raqueta; pero se indagar la forma de usar un teclado PS/2 para controlar la raqueta y si es factible desarrollar un controlador en el tiempo disponible. De los pines de un conector PS/2 (Fig. 6), solo dos se utilizan con el fin de comunicarse con el dispositivo, uno de ellos es DATA (pin 1), el cual se usa para transmitir datos de forma serial y el otro es CLK, que se usa para la seal de reloj. La informacin se transmite en paquetes de 11bits: un bit de inicio, 8 bits de datos, un bit de paridad y un bit de parada.

Tabla 1. Asignacin de pines PS/2 de la Spartan3[4].

Un teclado normal contiene un micro controlador embebido que enva el scan code, que es un cdigo nico que identifica a cada una de las teclas. El cdigo se enva cuando se registra alguna actividad en las teclas. Estos cdigos generalmente estn formados de 8 bits que se representan mediante 2 nmeros hexadecimales.

IV. REFERENCIAS
[1] [2] Dell M782 configuracin conector VGA DB15. (2012, Abril, 10). Disponible en: http://www.yoreparo.com Dto. De Tecnologa Electrnica -Universidad Rey Juan Carlos, Controlador de la pantalla VGA; Espaa, 2007. Disponible en: http:/laimbio08.escet.urjc.es/assets/files/docencia/dcse_prac6_vga.pdf Chu Pong P., FPGA Prototyping By VERILOG Examples, John Wiley & Sons; USA, 2008. Xilinx, Spartan-3 Starter Kit Board User Guide; USA, 2005.

[3] [4]

S-ar putea să vă placă și