Innehållsförteckning:

VGA -målningsprogram: 5 steg
VGA -målningsprogram: 5 steg

Video: VGA -målningsprogram: 5 steg

Video: VGA -målningsprogram: 5 steg
Video: VMS твоя СИСТЕМА ВИДЕОНАБЛЮДЕНИЯ на ПК ноутбуке 2024, Juli
Anonim
VGA -målningsprogram
VGA -målningsprogram

Projekt av: Adam Klein, Ian Strachan, Brandon Slater

Projektet som vi tänkte slutföra var att lagra, analysera och visa information från en USB -mus i form av ett målningsprogram. Tanken bakom projektet är att kunna ansluta musen och VGA-kablarna till Basys-kortet i dess inbyggda portar, och få musen att visas som en rörlig målningsruta på monitorn, ändra olika färger när vänster och höger klick är Begagnade. I huvudsak skulle vi skapa en drivrutin för att använda musen med grundkortet och ha bildskärmen som vår verifiering av funktionalitet. Det som slutligen verkligen hände var skapandet av ett ritprogram med basyboardet som inmatningssystem och ett halvfunktionellt datainsamlingssystem för musen.

I denna instruerbara del bryter vi ner stegen från musinmatning till vga -utgång.

Steg 1: Motivation och problem

Motivation och problem
Motivation och problem

Motivering:

Den främsta motivationen för vårt projekt var att skapa en musdrivrutin för Basys3 -kortet som framtida CPE 133 -studenter skulle kunna använda för sina slutprojekt i framtiden. Vi tog dock denna idé ett steg längre genom att skapa ett målningsprogram, ett som framtida studenter också kan bygga på.

Problem:

Problemet vi upptäckte var att det inte finns någon tydlig musmodul redo att ladda ner och använda för Basys3 -kortet. För att lösa detta problem försökte vi skapa ett själv. Genom att göra det strävar vi efter att skapa en musmodul som gör att framtida studenter lättare kan implementera musinmatning i sina projekt.

Steg 2: Skaffa Raw Bit -informationen från Basys USB

Få information om Raw Bit från Basys USB
Få information om Raw Bit från Basys USB
  • Mycket av det vi gjorde för musen i detta projekt kom från Basys3 -dokumentationen. Från den lilla guiden på Basys USB -port i den pdf -filen fann vi att Basys -kortet har en inbyggd klocka för att läsa bitar med rätt hastighet från USB -enheter.
  • I huvudsak skickar musen bitar till usb med utgångspunkt från ett viloläge, läser 32 bitar som representerar musens status, x -position och y -position och slutar slutligen med en annan inaktiv bit. För att göra detta använder musens ingångskomponent ett skiftregister och 32 bitars räknare där skiftregistret används för att lagra 32 bitar inkommande data från musen och 32 bitars räknaren används för att räkna antalet bitar som lagras så att tillståndet registrera för att återställa och lagra nästa uppsättning av 32 inkommande bitar.
  • Koden för skiftregistret, 32 -bitarsräknaren och dataläsaren kan laddas ner nedan, liksom begränsningsfilen anpassad till vår användning av USB -porten som ingång

Steg 3: Analysera USB -informationen

Analysera USB -informationen
Analysera USB -informationen
Analysera USB -informationen
Analysera USB -informationen
  • Efter att ha skapat musinmatningen till usb -komponenten var nästa steg att skapa usb -bitarna till vektorinformationskomponenten som skulle göra data som mottogs av musen läsbar för vga.
  • Denna komponent använder en tillståndsmaskin som tar in uppsättningen bitar som matas ut från musens ingång till usb och rör sig genom tillstånden baserat på om nya bitar som ändrar musens status och position matades in.
  • Blockdiagrammet för de två första stegen i projektet visas här, och de två vhdl -filerna är för att testa implementeringen av musen med basys LED: er (ett test som tyvärr aldrig klarades) och för att kasta bitströmmen från USB port till hastighets- och positionsvektorer som VGA kan använda.
  • Bilden bredvid blockdiagrammet ovan är en liten ögonblicksbild (Instructables tillåter inte att vi visar hela bredbilden) av bitinformationen som vi hittade i grunddokumentationen för att slutföra detta steg.

Steg 4: Visa den målade bilden över VGA och redigera vad som ritas

Visa den målade bilden över VGA och redigera vad som ritas
Visa den målade bilden över VGA och redigera vad som ritas
Visa den målade bilden över VGA och redigera vad som ritas
Visa den målade bilden över VGA och redigera vad som ritas
Visa den målade bilden över VGA och redigera vad som ritas
Visa den målade bilden över VGA och redigera vad som ritas
  • VGA -kabeln har 14 bitar utgång, 4 bitar för var och en av de tre färgerna och en bit för horisontell synkronisering och vertikal synkronisering.
  • OtherVGA är den medföljande VGA -modulen och den fungerar som följande:

    • Skärmen är uppdelad i 40x30 block med 16x16 pixlar för en skärm med en upplösning på 640x480 som visas på bilden ovan. Modulen väljer en blockadress för att representera ett av de 1200 blocken på monitorn. Blockadressen väljs genom följande ekvation: address = 40y + x
    • Färgen representeras av en 12 bitars signal som korrelerar till ett RRRRGGGGBBBB -värde som färgar det valda blocket.
  • Vår kontrollkod, VGAtest och VGAtestconst, fungerar som följande:

    • Det sätter först det valda blocket i mitten av monitorn.
    • Färgen på blocket bestäms av 12 omkopplare på kortet, som ställer in RRRRGGGGBBBB -värdet.
    • De fyra riktningsknapparna på tavlan ändrar den valda adressen. Till exempel, genom att trycka på höger knapp läggs 1 till adressen, markera blocket ett till höger om det föregående blocket. Genom att trycka på nedåtknappen läggs 40 till i adressen, markera blocket under föregående block.
    • Mittknappen används för att ställa in alla färgvärden till 0 när den trycks in. Detta är tänkt att bete sig som en raderingsknapp som är lätt för användaren att använda, så att användaren inte behöver vända varje omkopplare till 0 för att radera.
  • Den sista bilden är blockdiagrammet för styrenheten. Den är ganska bred eftersom den innehåller komponenter i modulen och kanske inte visas helt.

Steg 5: Njut av din skapelse

Länkad här är en snabb tidsfördröjning av det roliga du kan ha med det slutliga projektet, till och med bara genom att använda omkopplarna och knapparna på basys -kortet som ingång.

Tack för att du läser!

Rekommenderad: