Sisällysluettelo:
- Vaihe 1: Motivaatio ja ongelma
- Vaihe 2: Raakabittitietojen hankkiminen Basys USB -laitteelta
- Vaihe 3: USB -tietojen jäsentäminen
- Vaihe 4: Maalatun kuvan näyttäminen VGA: n kautta ja piirrettävän muokkaaminen
- Vaihe 5: Nauti luomastasi
Video: VGA -maalausohjelma: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Projekti: Adam Klein, Ian Strachan, Brandon Slater
Projektin, jonka päätimme saattaa päätökseen, oli tallentaa, jäsentää ja näyttää tietoja USB -hiirestä maalausohjelman muodossa. Projektin ajatuksena on, että hiiri ja VGA-kaapelit voidaan kytkeä Basys-korttiin sen sisäänrakennettuissa porteissa ja että hiiri näytetään siirrettävänä maalausruuduna näytöllä, jolloin värit muuttuvat, kun vasen ja oikea napsautus käytetty. Pohjimmiltaan loisimme ohjaimen hiiren käyttämiseksi bassokortin kanssa ja näytön toimivuuden varmistamiseksi. Lopulta todella tapahtui piirustusohjelman luominen, jossa syöttöjärjestelmä oli bassotaulu ja hiirelle puolitoiminnallinen tiedonkeruujärjestelmä.
Tässä ohjeessa jaamme vaiheet hiiren syöttämisestä vga -lähtöön.
Vaihe 1: Motivaatio ja ongelma
Motivaatio:
Projektimme päämotivaatio oli luoda hiiren ajuri Basys3 -kortille, jota tulevat CPE 133 -opiskelijat voivat käyttää lopullisissa projekteissaan tulevaisuudessa. Otimme kuitenkin tämän ajatuksen askeleen pidemmälle luomalla maalausohjelman, josta myös tulevat opiskelijat voisivat rakentaa.
Ongelma:
Havaitsemamme ongelma oli se, että Basys3 -kortille ei ole ladattavaa ja käytettävää selkeää hiirimoduulia. Tämän ongelman ratkaisemiseksi yritimme luoda sellaisen itse. Näin pyrimme luomaan hiirimoduulin, jonka avulla tulevat opiskelijat voisivat helpommin ottaa hiiren syötteen käyttöön projekteissaan.
Vaihe 2: Raakabittitietojen hankkiminen Basys USB -laitteelta
- Suuri osa siitä, mitä teimme hiirelle tässä projektissa, tuli Basys3 -dokumentaatiosta. Tämän pdf -tiedoston Basys -USB -portin pienestä oppaasta havaitsimme, että Basys -kortilla on sisäänrakennettu kello, jolla voidaan lukea bittejä oikealla nopeudella USB -laitteista.
- Pohjimmiltaan hiiri lähettää bittejä usb: lle valmiustilasta alkaen, lukee 32 bittiä, jotka edustavat hiirien tilaa, x -asemaa ja y -asemaa, ja lopulta päättyy toisella käyttämättömällä bitillä. Tätä varten hiiren syöttökomponentti käyttää siirtorekisteriä ja 32 -bittistä laskuria, jossa siirtorekisteriä käytetään tallentamaan 32 bittiä hiirestä tulevaa dataa ja 32 -bittistä laskuria käytetään laskemaan tallennettavien bittien lukumäärä rekisteröi nollataksesi ja tallentaaksesi seuraavan 32 saapuvan bitin sarjan.
- Alla on ladattavissa vuororekisterin, 32 -bittisen laskurin ja datanlukijan koodi sekä rajoitustiedosto, joka on sovitettu käyttämään USB -porttia tulona
Vaihe 3: USB -tietojen jäsentäminen
- Kun olet luonut hiiren tulon usb -komponenttiin, seuraava askel oli luoda usb -bitit vektori -informaatiokomponentiksi, joka tekisi hiiren vastaanottamasta datasta luettavan vga: lle.
- Tämä komponentti käyttää tilakonetta, joka ottaa hiiren tulon antamat bittisarjat usb: lle ja liikkuu tilojen mukaan sen mukaan, onko hiiren tilaa ja sijaintia muuttavia uusia bittejä syötetty.
- Hankkeen kahden ensimmäisen vaiheen lohkokaavio on esitetty tässä, ja kaksi vhdl -tiedostoa on tarkoitettu hiiren toteutuksen testaamiseen basys -LEDien avulla (testi, joka ei valitettavasti koskaan läpäissyt) ja bittivirran lähettämiseen USB -liitännältä portin nopeuden ja sijainnin vektoreihin, joita VGA voi käyttää.
- Yllä olevan lohkokaavion vieressä oleva kuva on pieni tilannekuva (Instructables ei salli meidän näyttää koko laajaa kuvaa) bittitiedoista, jotka löysimme perusasiakirjoista tämän vaiheen suorittamiseksi.
Vaihe 4: Maalatun kuvan näyttäminen VGA: n kautta ja piirrettävän muokkaaminen
- VGA -kaapelissa on 14 bittiä lähtöä, 4 bittiä kullekin kolmesta väristä ja bitti vaakasynkronointiin ja pystysynkronointiin.
-
Muu VGA on toimitettu VGA -moduuli ja se toimii seuraavasti:
- Näyttö on jaettu 40 x 30 lohkoon 16 x 16 pikseliä 640 x 480 resoluution näytölle, kuten yllä olevassa kuvassa näkyy. Moduuli valitsee lohkoosoitteen edustamaan yhtä monitorin 1200 lohkosta. Lohko -osoite valitaan seuraavan yhtälön avulla: osoite = 40y + x
- Väriä edustaa 12 -bittinen signaali, joka vastaa RRRRGGGGBBBB -arvoa, joka värittää valitun lohkon.
-
Ohjauskoodimme VGAtest ja VGAtestconst toimivat seuraavasti:
- Se asettaa ensin valitun lohkon näytön keskelle.
- Lohkon väri määräytyy 12 levyn kytkimestä, jotka asettavat RRRRGGGGBBBB -arvon.
- Taululla olevat neljä suuntapainiketta muuttavat valitun osoitteen. Esimerkiksi oikeanpuoleisen painikkeen painaminen lisää osoitteeseen 1 ja valitse lohkon yksi edellisen lohkon oikealta puolelta. Alas -painikkeen painaminen lisää osoitteeseen 40 ja valitse lohko edellisen lohkon alapuolelta.
- Keskipainiketta käytetään asettamaan kaikki väri -arvot arvoon 0, kun niitä painetaan. Tämä on tarkoitettu toimimaan poistopainikkeena, jota käyttäjä on helppo käyttää, joten käyttäjän ei tarvitse kääntää jokaista kytkintä 0 -asentoon poistamiseksi.
- Viimeinen kuva on ohjaimen lohkokaavio. Se on melko leveä, koska se sisältää moduulin komponentteja, eikä sitä välttämättä näytetä kokonaan.
Vaihe 5: Nauti luomastasi
Tässä linkissä on nopea timelapse hauskuudesta, joka sinulla voi olla lopullisessa projektissa, vaikka vain käyttäisit bassotaulun kytkimiä ja painikkeita tulona.
Kiitos lukemisesta!
Suositeltava:
Vaihtoehtoisesti estettäessä stereoskooppisen lähetyksen dikoptinen muokkaaja 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: 6 vaihetta
Vaihtoehtoisesti stereoskooppisen lähetyksen dikoptinen muunnin 32 [STM32F103C8T6+STMAV340 VGA Superimposer]: Olen jo jonkin aikaa työskennellyt alkuperäisen AODMoST: n seuraajan parissa. Uusi laite käyttää nopeampaa ja parempaa 32-bittistä mikro-ohjainta ja nopeampaa analogista videokytkintä. Sen avulla AODMoST 32 voi työskennellä suuremmilla resoluutioilla ja toteuttaa uusia toiminnallisia
Vaihtoehtoisesti estettäessä stereoskooppisen lähetyksen dikoptinen muokkaaja [ATmega328P+HEF4053B VGA Superimposer]: 7 vaihetta
Vaihtoehtoisesti stereoskooppisen lähetyksen dikoptinen muokkaaja [ATmega328P+HEF4053B VGA Superimposer]: Kokeiltuani silmiä tukkevia nestekidelaseja (täällä ja siellä) päätin rakentaa jotain, joka on hieman kehittyneempi eikä pakota käyttäjää käyttää PCB: tä otsaansa (ihmiset voivat joskus käyttäytyä
Ulkoinen VGA / GPU kannettaville tietokoneille EXP GDC Beastia käyttäen: 15 vaihetta (kuvien kanssa)
Ulkoinen VGA / GPU kannettaville tietokoneille EXP GDC Beast: Hei kaverit .. Tämä on ensimmäinen opetusohjelmani ohjeista. Englanti ei ole ensimmäinen kieleni, joten anna anteeksi kieliopilliset virheeni. Tein tämän kokemukseni perusteella kannettavan tietokoneen päivittämisestä. Enkä kyllästytä sinua pitkällä johdannolla, koska en tiedä mitään
ESP32 VGA Arcade Games ja ohjaussauva: 6 vaihetta (kuvilla)
ESP32 VGA Arcade Games ja ohjaussauva: Tässä ohjeessa näytän kuinka toistaa neljä arcade -tyyppistä peliä - Tetris - Snake - Breakout - Bomber - käyttämällä ESP32 -laitetta, VGA -näytön ulostulolla. Resoluutio on 320 x 200 pikseliä, 8 väriä. Olen aikaisemmin tehnyt version
Arduino Basic PC VGA -ulostulolla: 5 vaihetta (kuvilla)
Arduino Basic PC VGA-ulostulolla: Aiemmassa Instructable-ohjelmassani olen näyttänyt kuinka rakentaa retro-8-bittinen tietokone, joka käyttää BASIC-ohjelmaa kahden Arduinon avulla ja jossa on TV-ruudun lähtösignaali mustavalkoisena. Nyt näytän kuinka rakentaa sama tietokone, mutta lähtösignaalin ollessa