Obstacle Avoidance jeu (3 / 9 étapes)

Étape 3: VGA

Pour l’aspect visuel du jeu, nous avons pensé à utiliser les LEDs mais décidé sur l’utilisation de la sortie VGA pour afficher le jeu sur un écran. Pour ce faire, nous avons étudié comment un VGA fonctionne et comment le jury prend en entrée pour convertisseur numérique analogique (DAC). VGA utilise trois entrées pour 3 couleurs différentes qui sont ensuite combinés pour créer une gamme de couleurs et une synchronisation horizontale et verticale qui indique quels pixels soient allumés pour le signal RVB.

Le jury de DE2-115 a ADV7123 vidéo DAC qui prend un signal de 8 bits pour rouge, vert et bleu, un signal de synchronisation-N, un signal blanc-N et la synchronisation verticale et horizontale. Le rouge, le vert et le bleu, une synchronisation-N et un signal blanc-N sont utilisés pour créer le signal RVB analogique avec un signal composante sur le fil vert. La synchro-h et v-sync sont convertis en leurs équivalents analogiques.

Selon la résolution, un espacement différent (les pixels du montant mis en marche par seconde) sera nécessaire. Pour créer ce. Nous avons utilisé une phase verrouiller loop(PLL) mega fonction intégrée Quartus. Cela nous a permis de choisir n’importe quelle fréquence d’horloge. Avec cela, la synchro-h et v-sync peuvent être créés avec sachant combien de pixels large et haut votre résolution et à l’aide d’un compteur.

Ce module prend dans l’horloge, espacement et graphics array et sorties les entrées VGA nécessaires.

CODE adapté du « Prototypage FPGA par Verilog exemples » de Pong P. Chu / /
module vgaout(sw,clk,R,G,B,vga_clk,sync_n,blank_n,vga_HS,vga_VS) ;
entrée sw [2:0] ;
clk d’entrée ;
sortie [7:0] R, G, B ;
sortie vga_clk, sync_n, blank_n, vga_HS, vga_VS ;
reg [7:0] R_temp, G_temp, B_temp ;
écriture de fil, essai ;
fil xpixel, ypixel ;
clksrc clksrc1 (clk, vga_clk) ; PLL qui sert à créer 40MHz horloge nécessaire à la résolution

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

assigner sync_n = 1 ; vga_HS ^ vga_VS ; du manuel des DAC, la synchronisation et le blanc sont utilisés pour aider avec la synchronisation de RVB. Ils peuvent seulement 1 RVB causant pour toujours être sur.
assigner blank_n = 1 ; écrire ;

serait entrée de tableau graphique où mettre les objets
assignez le test = 1; / / ((xpixel>0) & & (xpixel < 1055)) ;

toujours @ (posedge clk)
commencer
R_temp = {8 {(sw [0] & écriture & test)}} ;
G_temp = {8 {(sw [1] & écriture & test)}} ;
B_temp = {8 {(sw [2] & écriture & test)}} ;
fin

assigner R = R_temp ;
assigner G = G_temp ;
attribuer B = B_temp ;

endmodule
module vgaSync(clk,pixel_tick,hsync,vsync,xpixel,ypixel,video_on) ;
entrée clk, pixel_tick ;
sortie fil hsync, vsync, video_on ;
sortie [0:10] xpixel, ypixel ;

reg [0:10] hcount, vcount ;
reg [0:10] hcount_temp, vcount_temp ;
Reg vsync_reg, hsync_reg ;
fil hsync_temp, vsync_temp ;

VGA 1920 par paramètre 1080 sync
localparam HD = 800 ; affichage horizontal
localparam RB = 40 ; porche de frontière/avant droite
localparam HR = 128 ; retracer de h.
localparam LB = 88 ; porche de frontière/arrière gauche
localparam VD = 600 ; c. affichage
localparam BB = 1 ; fond frontière/front porck
localparam VR = 4 ; c. de retracer
localparam TB = 23 ; Top border/ARRIERE porche

fil de hend, vend ;

s’inscrire
toujours @ (posedge clk)
commencer
vcount = vcount_temp ;
hcount = hcount_temp ;
vsync_reg = vsync_temp ;
hsync_reg = hsync_temp ;
fin

fin de l’écran
assigner hend = (hcount == (HD + RB + HR + LB-1)) ;
vend Assign = (vcount == (VD + BB + VR + TB-1)) ;

toujours
Si (pixel_tick)
Si (hend)
hcount_temp = 0 ;
d’autre
hcount_temp = hcount + 1 ;
d’autre
hcount_temp = hcount ;

toujours
Si (pixel_tick & hend)
Si (vend)
vcount_temp = 0 ;
d’autre
vcount_temp = vcount + 1 ;
d’autre
vcount_temp = vcount ;

assigner video_on = ((hcount=(HD+RB)) & & (hcount < =(HD+RB+HR+LB-1))) ; synchronisation horizontale et verticale doit être inversée pour résolution de 800 x 600
assigner vsync_temp = ~ (((vcount > =(VD+BB)) & & (vcount < =(VD+BB+VR+TB-1))) ;

sortie
assigner xpixel = hcount ;
assigner ypixel = vcount ;
assigner hsync = hsync_temp ;
assignez le vsync = vsync_temp ;

Articles Liés

Encore une autre ligne qui suit / Obstacle Avoidance 2RM voiture

Encore une autre ligne qui suit / Obstacle Avoidance 2RM voiture

Cette voiture robot n'est pas nouveau. Instructables et Youtube sont parsemés d'une voiture robot similaire à celui-ci et honnêtement ces affectations m'a inspiré pour mettre sur pied ce kit robotique abordable que j'ai pu distribuer à mon atelier de
Arduino Nano : Infrarouge Obstacle Avoidance capteur avec Visuino

Arduino Nano : Infrarouge Obstacle Avoidance capteur avec Visuino

Capteurs infrarouges évitement d'obstacles sont bon marché, petits capteurs souvent utilisées dans des robots et projet Arduino pour détecter des objets à proximité du capteur.Les capteurs infrarouges fonctionnent en envoyant une lumière infrarouge a
BASIC ARDUINO OBSTACLE AVOIDANCE ROBOT

BASIC ARDUINO OBSTACLE AVOIDANCE ROBOT

créer un arduino simple fonction obstacle avoidance robotÉtape 1: exigences MATÉRIAUX REQUIS1. Ofcourse Arduino Uno (tout autre Office compatible) X 12. châssis pour robot (j'ai utilisé une voiture RC de mon frère)3. un L293D double pont en h ic4. un
Obstacle Avoider Robot en utilisant Arduino Uno et capteur de proximité IR

Obstacle Avoider Robot en utilisant Arduino Uno et capteur de proximité IR

Suivez les étapes pour créer un Obstacle éviter Robot en utilisant Arduino Uno et IR capteur de proximitéEtape 1: Eléments requis1) Arduino Uno R3 (Clone fera l'affaire)2) capteurs de proximité IR (2 recommandé)3) châssis avec moteurs4) planche5) Con
Une Arduino Infrared contrôlé et Obstacle Avoidance Robot

Une Arduino Infrared contrôlé et Obstacle Avoidance Robot

Salut tout le monde,Cette Instructables est divisé en deux phases, qui le rend approprié pour les débutants et les concepteurs de robot intermédiaire.La première phase couvre l'utilisation de l'arduino nano Conseil seulement comme contrôleur. Avec ce
Jouet à Obstacle Avoider

Jouet à Obstacle Avoider

J'ai visité notre magasin d'occasion et trouvé quelques jouets qui je pense pourrait être transformé en un robot autonome. J'ai porté une attention particulière au réservoir parce que j'ai pensé qu'il serait vraiment facile à contrôler avec les rails
Arduino Obstacle Avoidance Robot

Arduino Obstacle Avoidance Robot

Hé les gars,Matériel :1 microcontrôleur Arduino - http://www.robotshop.com/en/arduino-uno-usb-microc...2 Servos rotation continue - parallax http://www.robotshop.com/en/parallax-futaba-contin...1 180 degré Hi-Tec Servo HS-422 - http://www.robotshop.c
Obstacle Avoider Robot à l’aide de la carte relais

Obstacle Avoider Robot à l’aide de la carte relais

tout droit, alors j'ai décidé de faire un robot avec une carte à relais. Je n'ai jamais utilisé une carte de relais dans ma vie et c'était la première fois que je travaillais avec elle. J'ai d'abord pensé qu'il serait vraiment compliqué, mais il s'es
Comment faire un Obstacle évitant Robot

Comment faire un Obstacle évitant Robot

Obstacle évitant robot est un robot simple qui est actionné par un arduino et ce qu'il fait c'est qu'il erre juste autour et évite les obstacles. Il détecte les obstacles avec un capteur à ultrasons HC-SR04 en d'autres termes si le robot détecte obje
Obstacle en évitant le Robot en utilisant Arduino

Obstacle en évitant le Robot en utilisant Arduino

Hé les gars dans ce instructable nous allons voir comment faire un obstacle autonome en évitant Robot.This robot est conçu et programmé de telle sorte qu'il évite la collision. Le robot se déplace essentiellement vers le bas et dès qu'il détecte un o
Arduino Obstacle évitant Robot

Arduino Obstacle évitant Robot

Dans ce instructable je vais vous montrer comment faire votre propre obstacle évitant robot !Nous allons utiliser la carte de Arduino uno et un capteur à ultrason. Si le robot détecte un objet devant lui, à l'aide d'un petit servomoteur, il balaye la
ÉVITEMENT d’obstacles avec le KY-032

ÉVITEMENT d’obstacles avec le KY-032

Salut tout le monde! J'ai fait un autre exemple de projet, j'utilise le KY-032 pour vous montrer comment obstacle avoidance capteurs fonctionnent. Le code est simple mais fonctionne très bien pour des choses simples. À partir du code, vous pouvez cré
Obstacle en évitant de Robot par ultrasons avec evive (Arduino alimenté embarqué plate-forme)

Obstacle en évitant de Robot par ultrasons avec evive (Arduino alimenté embarqué plate-forme)

Nous avons construit un obstacle en évitant le robot à l'aide d'evive. Contrairement à d'autres, nous avons monté notre capteur à ultrasons sur un servo. Donc après la détection de collision, le robot analyse quelle direction est le meilleur pour all
Robot Arduino-basé avec radar IR

Robot Arduino-basé avec radar IR

le prototype de robot dans ce Instructable est mon deuxième axée sur l'Arduino « slumbot » qui est un robot autonome. Il est attaché ainsi que des restes et des articles ménagers. Le robot « voit » avec un IR numérisation capteur entraîné en rotation