Sadržaj:

Ogledalo: 8 koraka
Ogledalo: 8 koraka

Video: Ogledalo: 8 koraka

Video: Ogledalo: 8 koraka
Video: Как разобраться в корнях ? Квадратный корень 8 класс | Математика TutorOnline 2024, Juli
Anonim
Mirror Display
Mirror Display
Mirror Display
Mirror Display
Mirror Display
Mirror Display

Cilj ovog projekta je stvoriti funkcionalnost prikaza slike pametnog ogledala. Ogledalo može prikazati prognoze (sunčano, djelomično sunčano, oblačno, vjetrovito, kiša, grmljavina i snijeg) i vrijednosti temperature od -9999 ° do 9999 °. Vrijednosti predviđanja i temperature su teško kodirane kao da oponašaju njihovo raščlanjivanje iz vremenskog API -ja.

Projekt koristi ploču Zynq-Zybo-7000 sa FreeRTOS-om i koristi Vivado 2018.2 za dizajniranje i programiranje hardvera.

Dijelovi:

Zynq-Zybo-7000 (sa FreeRTOS-om)

19 LCD (640x480)

VGA kabel

12 "x 18" ogledalo od akrila

Korak 1: Konfiguriranje Vivada

Konfiguriranje Vivada
Konfiguriranje Vivada
Konfiguriranje Vivada
Konfiguriranje Vivada

Preuzmite Vivado 2018.2 s Xilinxa i koristite licencu Webpack. Pokrenite Vivado i "Create New Project" i dajte mu ime. Zatim odaberite "RTL Project" i označite "Ne navodite izvore trenutno". Prilikom odabira dijela, odaberite "xc7z010clg400-1" i pritisnite "Završi" na sljedećoj stranici.

Korak 2: Pakiranje IP -a VGA upravljačkog programa

Pakovanje VGA upravljačkog programa IP
Pakovanje VGA upravljačkog programa IP
Pakovanje VGA upravljačkog programa IP
Pakovanje VGA upravljačkog programa IP

Dodajte datoteku vga_driver.sv u izvore dizajna. Zatim kliknite "Alati" i odaberite "Kreiraj i pakiraj novi IP". Odaberite "Pakirajte svoj trenutni projekt." Zatim odaberite IP lokaciju i "Uključi.xci datoteke." Kliknite na "OK" na skočnom prozoru, a zatim na "Finish".

Na stranici "Koraci pakiranja" idite na "Pregled i paket" i odaberite "Paket IP".

Sada bi vga_driver trebao biti dostupan kao IP blok.

Korak 3: Zynq IP

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

U odjeljku "IP integrator" odaberite "Kreiraj dizajn bloka". Dodajte "ZYNQ7 procesni sistem" i dvaput kliknite blok. Kliknite "Uvoz XPS postavki" i učitajte datoteku ZYBO_zynq_def.xml.

Zatim, pod "PS-PL Configuration" otvorite padajući izbornik za "AXI Non Secure Enablement" i označite "M AXI GP0 interface".

Zatim, pod "MIO konfiguracija" otvorite padajući izbornik "Procesorska jedinica aplikacije" i označite "Tajmer 0" i "Nadzorni pas".

Na kraju, pod "Konfiguracija sata" otvorite padajući izbornik za "PL Fabric Clocks" i označite "FCLK_CLK0" na 100 MHz.

Korak 4: GPIO IP

GPIO IP
GPIO IP
GPIO IP
GPIO IP

U dizajn bloka dodajte dva GPIO bloka. GPIO -i će se koristiti za kontrolu adrese piksela i RGB komponenti piksela. Konfigurirajte blokove kako je prikazano na gornjim slikama. Nakon što dodate i konfigurirate oba bloka, kliknite "Pokreni automatizaciju veze".

GPIO 0 - Kanal 1 kontroliše adresu piksela, a kanal 2 kontroliše crvenu boju.

GPIO 1 - Kanal 1 kontrolira zelenu boju, a kanal 2 kontrolira plavu boju.

Korak 5: Blokirajte memoriju

Blokiraj memoriju
Blokiraj memoriju
Blokiraj memoriju
Blokiraj memoriju
Blokiraj memoriju
Blokiraj memoriju

Dodajte Block Memory Generator IP u Block Design i konfigurirajte kao što je prikazano gore. Boje piksela se zapisuju na memorijske adrese koje zatim čita VGA upravljački program. Linija adrese mora odgovarati količini piksela koji se koriste, tako da mora biti 16 bita. Podaci su također 16 bita jer postoji 16 bitova u boji. Ne marimo za čitanje bitova za potvrdu.

Korak 6: Ostali IP

U priloženom pdf -u prikazan je dovršeni dizajn bloka. Dodajte IP koji nedostaje i dovršite povezivanje. Takođe "Make Externals" za VGA izlaze u boji i vertikalne i horizontalne izlaze za sinhronizaciju.

xlconcat_0 - Povezuje pojedinačne boje kako bi formirao jedan 16 -bitni RGB signal koji se unosi u blok RAM.

xlconcat_1 - Povezuje signale kolone i reda iz VGA upravljačkog programa i dovodi ih u port B blok RAM -a. Ovo omogućava VGA upravljačkom programu da čita vrednosti boje piksela.

VDD - konstanta HIGH povezana s omogućavanjem upisivanja blok RAM -a tako da uvijek možemo na nju.

xlslice_0, 1, 2 - Kriške se koriste za razbijanje RGB signala na pojedinačne R, G i B signale koji se mogu unositi u VGA upravljački program.

Nakon što je dizajn bloka dovršen, generirajte HDL omot i dodajte datoteku ograničenja.

*Blok dizajn zasnovan je na vodiču koji je napisao benlin1994*

Korak 7: SDK

Kod koji pokreće ovaj Block Design nalazi se ispod. Init.c sadrži funkcije koje rukuju crtežom (predviđanja, brojevi, simbol stepena itd.). Glavna petlja u main.c -u je ono što se pokreće kada se ploča programira. Ova petlja postavlja vrijednosti predviđanja i temperature, a zatim poziva funkcije crtanja u init.c. Trenutno se petlja kroz svih sedam prognoza i prikazuje jednu za drugom. Preporučuje se da dodate tačku prekida u red 239 kako biste mogli vidjeti svaku sliku. Kôd je komentiran i pružit će vam više informacija.

Korak 8: Zaključak

Kako bi se poboljšao trenutni projekt, mogle bi se učitati slike predviđanja unaprijed učitavanja u obliku COE datoteka u Block Memory Generators. Dakle, umjesto da ručno crtamo prognoze kao što smo to radili u C kodu, moglo bi se pročitati slike. Pokušali smo to učiniti, ali nismo uspjeli. Mogli smo čitati vrijednosti piksela i izlaziti ih, ali stvorili su neuredne slike koje nisu bile nimalo slične onima koje smo učitali u RAM. Tehnički list Block Memory Generator je koristan za čitanje.

Projekt je u osnovi pola pametnog ogledala jer mu nedostaje aspekt internetske povezanosti. Dodavanjem ovoga dobilo bi se potpuno pametno ogledalo.

Preporučuje se: