Juego de evitación del obstáculo (3 / 9 paso)

Paso 3: VGA

Para el aspecto visual del juego, pensado sobre el uso de los LEDs pero decidió usar la salida VGA para mostrar el juego en una pantalla. Para lograr esto, hemos investigado cómo funciona una VGA y la Junta tiene entrada para el convertidor digital a analógico (DAC). VGA utiliza tres entradas de 3 colores diferentes que se combinan para crear una gama de colores y utiliza una sincronización vertical y horizontal que indica a qué píxeles se encienden para arriba la señal RGB.

La placa DE2-115 tiene DAC de video de ADV7123 que toma una señal de 8 bits para rojo, verde y azul, una señal de N Sync, una señal de N en blanco y las sincronizaciones verticales y horizontales. El rojo, verde y azul, un N Sync y una señal en blanco-N se utilizan para crear la señal rgb analógica con una señal de componente en el cable verde. El h-sync y v-sync se convierten en sus equivalentes analógicos.

Dependiendo de la resolución, una tasa de punto diferente (los píxeles cantidad activadas por segundo) será necesario. Para crear este. Se utilizó una fase de bloqueo loop(PLL) mega función Quartus. Esto nos permitió elegir una frecuencia de reloj. Con esto, el h-sync y v-sync pueden crearse con saber cuántos píxeles ancho y alto de su resolución y utilizando un contador.

Este módulo toma en el reloj, tipo de punto y gráficos matriz y salidas las entradas necesarias de la VGA.

ADAPTADAS de "Prototipos FPGA Verilog ejemplos" de Pong P. Chu código / /
módulo vgaout(sw,clk,R,G,B,vga_clk,sync_n,blank_n,vga_HS,vga_VS);
entrada sw [2:0];
entrada clk;
salida [7:0] R, G, B;
salida de vga_clk, sync_n, blank_n, vga_HS, vga_VS;
REG [7:0] R_temp, G_temp, B_temp;
escritura de alambre, prueba;
alambre xancho, ypixel;
clksrc clksrc1 (clk, vga_clk); PLL que se utiliza para crear el reloj de 40MHz necesario para la resolución de

vgaSync vgaSync1(.clk(clk),.pixel_tick(vga_clk),.hsync(vga_HS),.vsync(vga_VS),.xpixel(xpixel),.ypixel(ypixel), .video_on(write));

asignar sync_n = 1; vga_HS ^ vga_VS; de manual de DAC, la sincronización y el espacio en blanco se utilizan para ayudar en la sincronización de RGB. Pueden RGB causando sólo 1 para siempre.
asignar blank_n = 1; escribir;

entrada de matriz de gráficos donde poner objetos
asignar la prueba = 1; / / ((xpixel>0) & & (xancho < 1055));

siempre a (clk del posedge)
comenzar
R_temp = {8 {(sw [0] y escribe y prueba)}};
G_temp = {8 {(sw [1] y escribe y prueba)}};
B_temp = {8 {(sw [2] escritura & prueba)}};
final

asignar R = R_temp;
asignar G = G_temp;
asignar B = B_temp;

endmodule
módulo vgaSync(clk,pixel_tick,hsync,vsync,xpixel,ypixel,video_on);
entrada clk, pixel_tick;
salida cable hsync vsync, video_on;
salida [0 10] xancho, ypixel;

REG [0 10] hcount, vcount;
REG [0 10] hcount_temp, vcount_temp;
REG vsync_reg, hsync_reg;
alambre hsync_temp, vsync_temp;

VGA de 1920 por parámetro 1080 sync
localparam HD = 800; pantalla horizontal
localparam RB = 40; porche de frontera/delantero derecho
localparam HR = 128; retrace h.
localparam LB = 88; porche de frontera/lateral izquierdo
localparam VD = 600; v. pantalla
localparam BB = 1; inferior frontal frontera longaniza
localparam VR = 4; v. retrace
localparam TB = 23; porche de la frontera superior y la espalda

alambre de hend, vend;

registro
siempre a (clk del posedge)
comenzar
vcount = vcount_temp;
hcount = hcount_temp;
vsync_reg = vsync_temp;
hsync_reg = hsync_temp;
final

final de la pantalla
asignar hend = (hcount == (HD + RB + HR + LB-1));
asignar vend = (vcount == (VD + BB + VR + TB-1));

siempre
Si (pixel_tick)
Si (hend)
hcount_temp = 0;
otra cosa
hcount_temp = hcount + 1;
otra cosa
hcount_temp = hcount;

siempre
Si (pixel_tick & hend)
Si (vend)
vcount_temp = 0;
otra cosa
vcount_temp = vcount + 1;
otra cosa
vcount_temp = vcount;

asignar video_on = ((hcount=(HD+RB)) & & (hcount < =(HD+RB+HR+LB-1))); sincronización horizontal y vertical debe ser invertida para resolución de 800 x 600
asignar vsync_temp = ~ (((vcount > =(VD+BB)) & & (vcount < =(VD+BB+VR+TB-1)));

salida
asignar xancho = hcount;
asignar ypixel = vcount;
asignar hsync = hsync_temp;
asignar vsync = vsync_temp;

Artículos Relacionados

EVITACIÓN del obstáculo con la KY-032

EVITACIÓN del obstáculo con la KY-032

¡Hola mundo! He realizado otro proyecto de ejemplo, estoy usando el KY-032 que le muestre cómo obstáculo evitación sensores funcionan. El código es básico pero funciona muy bien para cosas simples. El código puede construir proyectos más grandes.El s
Un infrarrojo de Arduino controlado y Robot de evitación del obstáculo

Un infrarrojo de Arduino controlado y Robot de evitación del obstáculo

Hola todo el mundo,Este Instructables se divide en dos fases, que hace conveniente para el principiante y los diseñadores de robots intermedios.La primera fase abarca el uso de la placa de arduino nano solamente como controlador. Con esto, vamos a co
Robot de evitación del obstáculo de Arduino

Robot de evitación del obstáculo de Arduino

Hola chicos,Material:1 microcontrolador Arduino - http://www.robotshop.com/en/arduino-uno-usb-microc...2 paralaje continua Servos rotacional - http://www.robotshop.com/en/parallax-futaba-contin...1 180 grado Hi-Tec HS-422 Servo - http://www.robotshop
Arduino Nano: Detector de evitación de obstáculos infrarrojo con Visuino

Arduino Nano: Detector de evitación de obstáculos infrarrojo con Visuino

Sensores infrarrojos evitación del obstáculo son baratos, pequeños sensores de uso frecuente en robots y proyecto de Arduino para detectar objetos cerca del sensor.Los sensores infrarrojos funcionan enviando una luz infrarroja con cierta frecuencia,
Cómo hacer un obstáculo evitando Arduino Robot! "Mi Robot V1"

Cómo hacer un obstáculo evitando Arduino Robot! "Mi Robot V1"

Este instructable muestra las instrucciones de pasos para hacer un obstáculo evitando robot con Arduino.Empezar a dejarmi bloghttp://robot4pro.blogspot.com/p/My-robots.htmlPaso 1: Materiales necesariosAquí le damos todo que lo necesario para hacer My
Control remoto obstáculo evitando Robot con PIC microcontrolador

Control remoto obstáculo evitando Robot con PIC microcontrolador

Utilizo el pic 16f877amódulo ultrasónico motor servo había orientada motor motor cristal conductor y 20 mhz.En robótica, evitación del obstáculo es la tarea de satisfacer algún objetivo de control sujeto a las limitaciones de la posición de no inters
Sin embargo, otra línea siguiente / obstáculo evitación 2WD coche

Sin embargo, otra línea siguiente / obstáculo evitación 2WD coche

Este coche de robot no es nada nuevo. Instructables y Youtube se sazonan con pimienta con un coche robot similar a este y sinceramente esos anuncios me inspiraban a armar este kit de robótica asequible que podría folleto en mi taller de robótica (niv
Obstáculo, evitando Robot con Arduino

Obstáculo, evitando Robot con Arduino

Hola chicos en este instructable veremos cómo hacer un obstáculo autónomo evitando Robot.This robot ha sido diseñado y programado de tal manera que evita la colisión. Básicamente, el robot se mueve hacia delante y siempre que detecte un objeto/obstác
Fácil de obstáculos láser

Fácil de obstáculos láser

en este Instructable, le mostraré cómo hacer una carrera de obstáculos de láseres.Para esto se necesita:-Puntero láser-3 espejos-Un pequeña luz accionada solar (puede encontrarse en la sección jardinería de tiendas)-Cinta-A botella de spray llena de
Juego de anillo-lanzamiento del pirata

Juego de anillo-lanzamiento del pirata

que íbamos a tener una fiesta sorpresa para mi hijo de 4 años y está muy en Jake y los piratas de nunca jamás.  Además de un curso del obstáculo de pirata quería construir a algún tipo de juego.  Una Junta de anillo-lanzamiento de Capitán Garfio pare
Ultrasónico Robot evitando obstáculo

Ultrasónico Robot evitando obstáculo

Este es mi intento de diseñar y construir un obstáculo evitando robot! RekaBot (nombrada de un hada (:) puede detectar obstáculos con un sensor de ultrasonidos que puede moverse con la ayuda de un servo. Basado en las medidas que toma, las pistas son
LEGO carrera de obstáculos - para niños

LEGO carrera de obstáculos - para niños

En Instructables anterior mencioné por qué me estaba haciendo un curso del obstáculo de Lego. Esencialmente, mi hijo tuvo su fiesta de cumpleaños de 9 años de edad en el país. Le encanta Legos. Y quiero decir que realmente ama. Por lo tanto, para su
Robot WiFi con transmisión de video en tiempo real, detección de obstáculo y sensibilidad a la luz

Robot WiFi con transmisión de video en tiempo real, detección de obstáculo y sensibilidad a la luz

INTRODUCCIÓN:Este proyecto es un vehículo robot que puede ser controlado a través de cualquier ordenador de forma inalámbrica mediante un enlace WiFi. Transmite vídeo en tiempo real a la computadora que controla usando el mismo enlace. La cámara que
Obstáculos del Robot Qtechknow

Obstáculos del Robot Qtechknow

¿Has pensado de controlar su FuzzBot de forma inalámbrica? ¿Quieres hacer un real - life video juego? ¿Quieres aprender sobre la tecnología detrás de NFC y RFID? -el Qtechknow Robot de obstáculos cómo - a guía es para usted!Por favor votar para mí (e