INHOUDSOPGAWE:
- Stap 1: Motivering en probleem
- Stap 2: Kry die rou -bit -inligting vanaf die Basys USB
- Stap 3: Ontleding van die USB -inligting
- Stap 4: Vertoon die geverfde beeld via VGA en redigeer wat geteken word
- Stap 5: Geniet u skepping
Video: VGA -skilderprogram: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Projek deur: Adam Klein, Ian Strachan, Brandon Slater
Die projek wat ons wou voltooi, was om inligting vanaf 'n USB -muis in die vorm van 'n skilderprogram op te slaan, te ontleed en te vertoon. Die idee agter die projek is om die muis- en VGA-kabels in die ingeboude poorte van die Basys-bord aan te sluit en die muis as 'n beweegbare vierkante op die monitor te laat sien en verskillende kleure te verander as u met die linker- en regterkliek klik gebruik. In wese sou ons 'n bestuurder skep vir die gebruik van die muis met die basys -bord en die monitor as ons verifikasie van funksionaliteit. Wat uiteindelik gebeur het, was die skep van 'n tekenprogram met die basysbord as insetstelsel en 'n semi-funksionele data-opname stelsel vir die muis.
In hierdie instruksies breek ons die stappe van muisinvoer na vga -uitvoer af.
Stap 1: Motivering en probleem
Motivering:
Die belangrikste motivering vir ons projek was om 'n muisbestuurder vir die Basys3 -bord te skep wat toekomstige CPE 133 -studente in die toekoms vir hul finale projekte sou kon gebruik. Ons het hierdie idee egter 'n stap verder gevoer deur 'n skilderprogram op te stel, een waarmee toekomstige studente ook kan bou.
Probleem:
Die probleem wat ons ontdek het, is dat daar geen duidelike muismodule gereed is om af te laai en te gebruik vir die Basys3 -bord nie. Om hierdie probleem op te los, het ons probeer om self een te skep. Deur dit te doen, het ons daarna gestreef om 'n muismodule te skep waarmee toekomstige studente makliker muise -invoer in hul projekte kan implementeer.
Stap 2: Kry die rou -bit -inligting vanaf die Basys USB
- Baie van wat ons vir die muis in hierdie projek gedoen het, kom uit die Basys3 -dokumentasie. Uit die klein gids op die Basys USB -poort in die pdf, het ons gevind dat die Basys -bord 'n ingeboude klok het om stukkies op die regte spoed van USB -toestelle te lees.
- Die muis stuur in wese stukkies na usb vanaf 'n ledige toestand, lees 32 bisse wat die muisstatus, x -posisie en y -posisie voorstel, en eindig uiteindelik met nog 'n ledige bietjie. Om dit te doen, gebruik die muis -invoerkomponent 'n verskuiwingsregister en 'n 32 -bit teller, waar die skuifregister gebruik word om 32 bisse inkomende data van die muis te stoor, en die 32 -bis teller word gebruik om die aantal bisse wat gestoor word, te tel, sodat die toestand registreer om die volgende stel 32 inkomende stelle te herstel en op te slaan.
- Die kode vir die skofregister, 32 -bis teller en data -leser kan hieronder afgelaai word, sowel as die beperkingslêer wat aangepas is vir ons gebruik van die USB -poort as invoer
Stap 3: Ontleding van die USB -inligting
- Nadat die muis -invoer na die usb -komponent geskep is, was die volgende stap om die usb -stukkies na vektor -inligtingskomponent te skep wat die data wat deur die muis ontvang is, vir die vga leesbaar sou maak.
- Hierdie komponent gebruik 'n staatsmasjien wat die stel stukkies opneem wat deur die muis -invoer na usb gestuur word en deur die toestande beweeg, gebaseer op die vraag of nuwe stukkies wat die status en posisie van die muis verander, ingevoer is.
- Die blokdiagram vir die eerste twee stappe van die projek word hier getoon, en die twee vhdl -lêers is vir die toets van die implementering van die muis met behulp van die basys LED's ('n toets wat ongelukkig nooit geslaag is nie) en om die bitstroom van die USB af te gooi poort na spoed en posisie vektore wat die VGA kan gebruik.
- Die prent langs die blokdiagram hierbo is 'n klein kiekie (instruksies laat ons nie toe om die volledige wye beeld te vertoon nie) van die bietjie inligting wat ons in die basiese dokumentasie gevind het om hierdie stap te voltooi.
Stap 4: Vertoon die geverfde beeld via VGA en redigeer wat geteken word
- Die VGA -kabel het 14 bisse uitvoer, 4 bisse vir elk van die drie kleure en 'n bietjie vir horisontale en vertikale sinchronisasie.
-
OtherVGA is die meegeleverde VGA -module en funksioneer soos volg:
- Die monitor is verdeel in 40x30 blokke van 16x16 pixels vir 'n skerm met 'n resolusie van 640x480, soos op die foto hierbo gesien. Die module kies 'n blokadres om een van die 1200 blokke op die monitor voor te stel. Die blokadres word gekies deur die volgende vergelyking: adres = 40y + x
- Die kleur word voorgestel deur 'n 12 bis -sein wat korreleer met 'n RRRRGGGGBBBB -waarde wat die geselekteerde blok kleur.
-
Ons beheerkode, VGAtest en VGAtestconst, funksioneer soos volg:
- Dit stel die geselekteerde blok eers in die middel van die monitor.
- Die kleur van die blok word bepaal deur 12 skakelaars op die bord, wat die RRRRGGGGBBBB -waarde stel.
- Die vier rigtingknoppies op die bord verander die geselekteerde adres. As u byvoorbeeld op die regterknoppie druk, sal 1 by die adres gevoeg word en die blok een regs van die vorige blok kies. Deur op die afknoppie te druk, word 40 by die adres gevoeg en die blokkie onder die vorige blok gekies.
- Die middelste knoppie word gebruik om al die kleurwaardes op 0 te stel as dit ingedruk word. Dit is bedoel om op te tree as 'n vee -knoppie wat maklik is vir die gebruiker om te gebruik, sodat die gebruiker nie elke skakelaar na 0 moet draai om dit uit te vee nie.
- Die laaste beeld is die blokdiagram vir die beheerder. Dit is redelik breed, aangesien dit komponente van die module bevat en moontlik nie volledig vertoon word nie.
Stap 5: Geniet u skepping
Hier is 'n vinnige tydsverloop van die plesier wat u met die finale projek kan hê, selfs net deur die skakelaars en knoppies op die basysbord as invoer te gebruik.
Dankie vir die lees!
Aanbeveel:
Afwisselend deur die digoptiese wysiger van stereoskopiese transmissie 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: 6 stappe
Afwisselend deur die dichoptiese wysiger van stereoskopiese transmissie 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: Ek werk al 'n geruime tyd aan 'n opvolger van die oorspronklike AODMoST. Nuwe toestel gebruik vinniger en beter 32-bis mikro-kontroleerder en vinniger analoog video-skakelaar. Dit stel AODMoST 32 in staat om met hoër resolusies te werk en nuwe funksionele te implementeer
Afwisselend deur die dichoptiese wysiger van stereoskopiese transmissie [ATmega328P+HEF4053B VGA Superimposer]: 7 stappe
Afwisselend deur die digoptiese wysiger van stereoskopiese transmissie [ATmega328P+HEF4053B VGA Superimposer]: Na my eksperimente met vloeibare kristalglase wat die oë toemaak (hier en daar), het ek besluit om iets te bou wat bietjie meer gesofistikeerd is en ook nie die gebruiker dwing nie om PCB op sy of haar voorkop te dra (mense kan soms gedra
Eksterne VGA / GPU vir skootrekenaars wat EXP GDC Beast gebruik: 15 stappe (met foto's)
Eksterne VGA / GPU vir skootrekenaars met behulp van EXP GDC Beast: Hi ouens .. Dit is my eerste tutoriaal oor instruksies. Engels is nie my eerste taal nie, so vergewe my grammatikale foute. Ek het dit gemaak op grond van my ervaring met die opgradering van my skootrekenaar. En ek sal u nie met 'n lang inleiding verveel nie, want ek weet nie
ESP32 VGA Arcade Games en Joystick: 6 stappe (met foto's)
ESP32 VGA Arcade Games en Joystick: In hierdie instruksies sal ek wys hoe u vier arcade -speletjies kan reproduseer - Tetris - Snake - Breakout - Bomber - met 'n ESP32, met die uitset vir 'n VGA -monitor. Die resolusie is 320 x 200 pixels, in 8 kleure. Ek het voorheen 'n weergawe gemaak met
Arduino Basic PC met VGA -uitvoer: 5 stappe (met foto's)
Arduino Basic PC met VGA-uitvoer: In my vorige Instructable het ek getoon hoe u 'n retro 8-bis-rekenaar met BASIC kan bou, met twee Arduino, en met 'n uitsetsignaal in B & W vir 'n TV-skerm. Nou sal ek wys hoe om dieselfde rekenaar te bou, maar met die uitsetsignaal in