Indholdsfortegnelse:

Spejlvisning: 8 trin
Spejlvisning: 8 trin

Video: Spejlvisning: 8 trin

Video: Spejlvisning: 8 trin
Video: Citroen C4 X (2023) - Подробное руководство - Размеры, Багажник, Интерьер, Экстерьер - Руководство 2024, November
Anonim
Spejl Display
Spejl Display
Spejl Display
Spejl Display
Spejl Display
Spejl Display

Målet med dette projekt er at skabe billedvisningens funktionalitet for et Smart Mirror. Spejlet kan vise prognoser (solrig, delvis solrig, overskyet, blæsende, regn, torden og sne) og temperaturværdier fra -9999 ° til 9999 °. Prognoser og temperaturværdier er hårdt kodet, som om de skal efterlignes ved at blive analyseret fra et vejr -API.

Projektet bruger et Zynq-Zybo-7000-kort, der kører FreeRTOS og bruger Vivado 2018.2 til at designe og programmere hardwaren.

Dele:

Zynq-Zybo-7000 (med FreeRTOS)

19 LCD (640x480)

VGA -kabel

12 "x 18" akryl spejl

Trin 1: Konfiguration af Vivado

Konfiguration af Vivado
Konfiguration af Vivado
Konfiguration af Vivado
Konfiguration af Vivado

Download Vivado 2018.2 fra Xilinx, og brug Webpack -licensen. Start Vivado og "Opret nyt projekt", og giv det et navn. Vælg derefter "RTL -projekt", og markér "Angiv ikke kilder på nuværende tidspunkt." Når du vælger en del, skal du vælge "xc7z010clg400-1" og hit "Afslut" på den næste side.

Trin 2: Emballage VGA Driver IP

Emballage VGA Driver IP
Emballage VGA Driver IP
Emballage VGA Driver IP
Emballage VGA Driver IP

Føj filen vga_driver.sv til designkilderne. Klik derefter på "Værktøjer" og vælg "Opret og pakk ny IP". Vælg "Pak dit nuværende projekt". Vælg derefter en IP -placering og "Inkluder.xci -filer." Klik på "OK" i pop op -vinduet og derefter på "Afslut".

Gå til "Emballagetrin" til "Gennemgang og pakke", og vælg "Pakke -IP".

Nu skulle vga_driver være tilgængelig som en IP -blok.

Trin 3: Zynq IP

Zynq IP
Zynq IP
Zynq IP
Zynq IP
Zynq IP
Zynq IP
Zynq IP
Zynq IP

Vælg "Opret blokdesign" under afsnittet "IP Integrator". Tilføj "ZYNQ7 Processing System", og dobbeltklik på blokken. Klik på "Importer XPS -indstillinger", og upload filen ZYBO_zynq_def.xml.

Dernæst skal du under "PS-PL-konfiguration" åbne rullemenuen for "AXI Non Secure Enablement" og kontrollere "M AXI GP0 interface."

Dernæst skal du under "MIO -konfiguration" åbne rullemenuen for "Application Processor Unit" og kontrollere "Timer 0" og "Watchdog".

Endelig skal du under "Urkonfiguration" åbne rullemenuen for "PL Fabric Clocks" og kontrollere "FCLK_CLK0" og ved 100 MHz.

Trin 4: GPIO IP

GPIO IP
GPIO IP
GPIO IP
GPIO IP

Tilføj to GPIO -blokke til blokdesignet. GPIO'erne bruges til at styre pixeladressen og pixelernes RGB -komponenter. Konfigurer blokkene som vist på billederne ovenfor. Når du har tilføjet og konfigureret begge blokke, skal du klikke på "Kør forbindelsesautomatisering".

GPIO 0 - Kanal 1 styrer pixeladressen, og kanal 2 styrer den røde farve.

GPIO 1 - Kanal 1 styrer den grønne farve, og kanal 2 styrer den blå farve.

Trin 5: Bloker hukommelse

Bloker hukommelse
Bloker hukommelse
Bloker hukommelse
Bloker hukommelse
Bloker hukommelse
Bloker hukommelse

Tilføj en blokhukommelsesgenerator -IP til blokdesignet, og konfigurer som vist ovenfor. Pixelfarverne skrives til hukommelsesadresser, som derefter læses af VGA -driveren. Adresselinjen skal matche mængden af pixels, der bruges, så den skal være 16 bit. Dataene i er også 16 bits, da der er 16 farvebits. Vi er ligeglade med at læse nogen anerkendelsesbits.

Trin 6: Anden IP

Den vedhæftede pdf viser det færdige blokdesign. Tilføj den manglende IP, og afslut forbindelserne. Også "Make Externals" til VGA -farveudgange og de lodrette og vandrette synkroniseringsudgange.

xlconcat_0 - Sammenkæder de enkelte farver for at danne et 16 bit RGB -signal, der føres ind i Block RAM.

xlconcat_1 - Sammenkæder kolonne- og ræksignalerne fra VGA -driveren og føres ind i Port B i Block RAM. Dette gør det muligt for VGA -driveren at læse pixelfarveværdier.

VDD - Konstant HIGH forbundet til skrive -aktiveringen af Block RAM, så vi altid kan rette det.

xlslice_0, 1, 2 - Skiverne bruges til at bryde RGB -signalet til individuelle R-, G- og B -signaler, der kan indføres i VGA -driveren.

Når blokdesignet er fuldført, skal du generere en HDL -indpakning og tilføje begrænsningsfilen.

*Blokdesign er baseret på selvstudiet skrevet af benlin1994*

Trin 7: SDK

Koden, der kører dette blokdesign, er inkluderet nedenfor. Init.c indeholder de funktioner, der håndterer tegningen (prognoser, tal, gradersymbol osv.). Hovedløkken i main.c er det, der bliver kørt, når tavlen er programmeret. Denne loop indstiller prognose- og temperaturværdierne og kalder derefter draw -funktionerne i init.c. Den går i øjeblikket igennem alle syv prognoser og viser den ene efter den anden. Det anbefales, at du tilføjer et brudpunkt på linje 239, så du kan se hvert billede. Koden kommenteres og giver dig mere information.

Trin 8: Konklusion

For at forbedre det nuværende projekt kunne man uploade forudindlæste prognosebilleder i form af COE -filer til Block Memory Generators. Så i stedet for at tegne prognoserne manuelt som vi gjorde i C -koden, kunne man få billederne læst ind. Vi forsøgte at gøre dette, men kunne ikke få det til at fungere. Vi var i stand til at læse pixelværdier og udsende dem, men det skabte rodede billeder, der ikke lignede dem, vi uploadede til RAM. Block Memory Generator -databladet er nyttigt at læse.

Projektet er i det væsentlige et halvt Smart Mirror, da det mangler internetforbindelsesaspektet. Tilføjelse af dette ville give et komplet Smart Mirror.

Anbefalede: