Table des matières:
- Étape 1: Motivation et problème
- Étape 2: Obtenir les informations brutes sur les bits à partir de l'USB Basys
- Étape 3: Analyser les informations USB
- Étape 4: Affichage de l'image peinte sur VGA et édition de ce qui est dessiné
- Étape 5: Profitez de votre création
Vidéo: Programme de peinture VGA : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Projet de: Adam Klein, Ian Strachan, Brandon Slater
Le projet que nous avons entrepris de réaliser consistait à stocker, analyser et afficher des informations à partir d'une souris USB sous la forme d'un programme de peinture. L'idée derrière le projet est de pouvoir brancher la souris et les câbles VGA sur la carte Basys dans ses ports intégrés, et d'avoir la souris affichée comme un carré de peinture mobile sur le moniteur, changeant de couleurs différentes lorsque les clics gauche et droit sont utilisé. Essentiellement, nous créerions un pilote pour utiliser la souris avec la carte basys et utiliser le moniteur comme vérification de fonctionnalité. Ce qui s'est finalement produit, c'est la création d'un programme de dessin avec la carte basys comme système d'entrée et un système de capture de données semi-fonctionnel pour la souris.
Dans cette instructable, nous allons décomposer les étapes de l'entrée de la souris à la sortie vga.
Étape 1: Motivation et problème
Motivation:
La motivation principale de notre projet était de créer un pilote de souris pour la carte Basys3 que les futurs étudiants du CPE 133 pourraient utiliser pour leurs projets de fin d'études à l'avenir. Cependant, nous avons poussé cette idée un peu plus loin en créant un programme de peinture, sur lequel les futurs étudiants pourraient également s'appuyer.
Problème:
Le problème que nous avons découvert était qu'il n'y avait pas de module de souris clair prêt à être téléchargé et utilisé pour la carte Basys3. Pour résoudre ce problème, nous avons tenté d'en créer un nous-mêmes. Ce faisant, nous nous efforcions de créer un module de souris qui permettrait aux futurs étudiants d'implémenter plus facilement la saisie de la souris dans leurs projets.
Étape 2: Obtenir les informations brutes sur les bits à partir de l'USB Basys
- Une grande partie de ce que nous avons fait pour la souris dans ce projet provient de la documentation Basys3. D'après le petit guide sur le port USB Basys dans ce pdf, nous avons constaté que la carte Basys a une horloge intégrée pour lire les bits à la bonne vitesse à partir des périphériques USB.
- Essentiellement, la souris envoie des bits à l'usb à partir d'un état inactif, lit 32 bits représentant l'état de la souris, la position x et la position y, et se termine enfin par un autre bit inactif. Pour ce faire, le composant d'entrée de la souris utilise un registre à décalage et un compteur 32 bits où le registre à décalage est utilisé pour stocker 32 bits de données entrantes de la souris et le compteur 32 bits est utilisé pour compter le nombre de bits stockés permettant à l'état registre pour réinitialiser et stocker le prochain ensemble de 32 bits entrants.
- Le code du registre à décalage, du compteur 32 bits et du lecteur de données sont téléchargeables ci-dessous, ainsi que le fichier de contraintes adapté à notre utilisation du port USB en entrée
Étape 3: Analyser les informations USB
- Après avoir créé l'entrée de la souris vers le composant usb, l'étape suivante consistait à créer les bits usb vers le composant d'informations vectorielles qui rendraient les données reçues par la souris lisibles pour le vga.
- Ce composant utilise une machine d'état qui prend l'ensemble de bits sortis par l'entrée de la souris sur USB et se déplace à travers les états en fonction de l'entrée de nouveaux bits qui modifient l'état et la position de la souris.
- Le schéma fonctionnel des deux premières étapes du projet est présenté ici, et les deux fichiers vhdl servent à tester l'implémentation de la souris à l'aide des LED basys (un test qui n'a malheureusement jamais été réussi) et à diffuser le flux de bits à partir de l'USB port pour accélérer et positionner les vecteurs que le VGA peut utiliser.
- L'image à côté du schéma fonctionnel ci-dessus est un petit instantané (Instructables ne nous permet pas d'afficher l'image large complète) des informations sur les bits que nous avons trouvées dans la documentation de basys pour terminer cette étape.
Étape 4: Affichage de l'image peinte sur VGA et édition de ce qui est dessiné
- Le câble VGA a 14 bits de sortie, 4 bits pour chacune des trois couleurs et un bit pour la synchronisation horizontale et la synchronisation verticale.
-
OtherVGA est le module VGA fourni et il fonctionne comme suit:
- Le moniteur est divisé en blocs de 40x30 de 16x16 pixels pour un écran de résolution 640x480 comme le montre l'image ci-dessus. Le module sélectionne une adresse de bloc pour représenter l'un des 1200 blocs sur le moniteur. L'adresse du bloc est sélectionnée par l'équation suivante: adresse = 40y + x
- La couleur est représentée par un signal de 12 bits qui correspond à une valeur RRRRGGGGBBBB qui colore le bloc sélectionné.
-
Notre code de contrôle, VGAtest et VGAtestconst, fonctionne comme suit:
- Il place d'abord le bloc sélectionné au centre du moniteur.
- La couleur du bloc est déterminée par 12 commutateurs sur la carte, définissant la valeur RRRRGGGGBBBB.
- Les quatre boutons directionnels du tableau modifient l'adresse sélectionnée. Par exemple, appuyer sur le bouton droit ajoutera 1 à l'adresse, en sélectionnant le bloc un à droite du bloc précédent. Appuyer sur le bouton bas ajoutera 40 à l'adresse, en sélectionnant le bloc un sous le bloc précédent.
- Le bouton central est utilisé pour définir toutes les valeurs de couleur sur 0 lorsqu'il est enfoncé. Ceci est censé se comporter comme un bouton d'effacement facile à utiliser pour l'utilisateur, de sorte que l'utilisateur n'a pas à basculer chaque commutateur sur 0 pour effacer.
- La dernière image est le schéma fonctionnel du contrôleur. Il est assez large car il inclut des composants du module et peut ne pas être affiché entièrement.
Étape 5: Profitez de votre création
Lié ici est un timelapse rapide du plaisir que vous pouvez avoir avec le projet final, même en utilisant simplement les commutateurs et les boutons de la carte basys comme entrée.
Merci d'avoir lu!
Conseillé:
Robot de peinture alimenté par Arduino : 11 étapes (avec photos)
Robot de peinture alimenté par Arduino : Vous êtes-vous déjà demandé si un robot pouvait faire des peintures et des œuvres d'art fascinantes ? Dans ce projet, j'essaie de faire de cela une réalité avec un robot de peinture alimenté par Arduino. L'objectif est que le robot soit capable de faire des peintures tout seul et d'utiliser une réf
Peinture sensorielle : 5 étapes
Peinture sensorielle: La peinture sensorielle est un projet conçu pour l'alguien sans vidente pueda pintar o dibujar dentro de bordes que uno pueda delimitar. En este caso utilizaremos un Kultrun de la cultura y pueblo mapuche. SP te avisará mediante sonidos de un Trompe
Tableau tactile avec peinture électrique et MakeyMakey : 4 étapes
Tableau tactile avec peinture électrique et MakeyMakey : une belle peinture avec un effet surprenant, parfaite pour amener les enfants à des interactions personnelles. Combine le dessin, le TapeArt, la peinture et un codage simple avec scratch et quelques fichiers sons peut-être faits maison
Pots de peinture pour tableau : 5 étapes (avec photos)
Pots de peinture pour tableau noir : chaque scientifique fou a besoin de pots et ces pots ont besoin d'étiquettes, et comme j'aime réutiliser mes pots, les étiquettes des pots devraient être réinscriptibles. Heureusement, il est facile de créer des étiquettes réinscriptibles pour les bocaux en verre avec de la peinture pour tableau. Tout ce dont vous avez besoin pour vous faire
Comment faire de la peinture conductrice à la maison : 6 étapes
Comment faire de la peinture conductrice à la maison : dans ce tutoriel, je vais vous montrer comment faire de la peinture conductrice à la maison et aussi montrer comment contrôler la lumière avec cela