Përmbajtje:

Ekrani i pasqyrës: 8 hapa
Ekrani i pasqyrës: 8 hapa

Video: Ekrani i pasqyrës: 8 hapa

Video: Ekrani i pasqyrës: 8 hapa
Video: Black Screen 🖥 8 Hour Timer (Silent) 1 Hour Loud Alarm [Sleeping and Relaxation] 2024, Korrik
Anonim
Shfaqja e pasqyrës
Shfaqja e pasqyrës
Shfaqja e pasqyrës
Shfaqja e pasqyrës
Shfaqja e pasqyrës
Shfaqja e pasqyrës

Qëllimi i këtij projekti është të krijojë funksionalitetin e shfaqjes së imazhit të një Pasqyre të Zgjuar. Pasqyra është në gjendje të shfaqë parashikimet (me diell, pjesërisht me diell, me re, me erë, shi, bubullima dhe borë) dhe vlerat e temperaturës nga -9999 ° në 9999 °. Vlerat e parashikimit dhe temperaturës janë të koduara vështirë sikur të imitojnë ato duke u analizuar nga një API moti.

Projekti përdor një bord Zynq-Zybo-7000 që funksionon FreeRTOS dhe përdor Vivado 2018.2 për të hartuar dhe programuar pajisjen.

Pjesët:

Zynq-Zybo-7000 (me FreeRTOS)

LCD 19 (640x480)

Kabllo VGA

Pasqyrë akrilike 12 "x 18"

Hapi 1: Konfigurimi i Vivado

Konfigurimi i Vivado
Konfigurimi i Vivado
Konfigurimi i Vivado
Konfigurimi i Vivado

Shkarkoni Vivado 2018.2 nga Xilinx dhe përdorni licencën Webpack. Nisni Vivado dhe "Krijo Projekt të Ri" dhe jepini një emër. Tjetra zgjidhni "RTL Project" dhe kontrolloni "Mos specifikoni burimet në këtë kohë." Kur zgjidhni një pjesë, zgjidhni "xc7z010clg400-1" dhe shtypni "Finish" në faqen tjetër.

Hapi 2: Paketimi IP i Shoferit VGA

Paketimi IP i Shoferit VGA
Paketimi IP i Shoferit VGA
Paketimi IP i Shoferit VGA
Paketimi IP i Shoferit VGA

Shtoni skedarin vga_driver.sv në Burimet e Dizajnit. Tjetra, klikoni "Tools" dhe zgjidhni "Krijo dhe Paketo IP të Re". Zgjidhni "Paketoni projektin tuaj aktual". Pastaj zgjidhni një vendndodhje IP dhe "Përfshini skedarët.xci". Klikoni "OK" në dritaren që shfaqet dhe pastaj "Mbaro".

Në "Hapat e Paketimit" shkoni te "Rishikimi dhe Paketa" dhe zgjidhni "Paketa IP".

Tani vga_driver duhet të jetë i disponueshëm si një bllok IP.

Hapi 3: Zynq IP

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

Nën seksionin "IP Integrator", zgjidhni "Krijo dizajn blloku". Shtoni "Sistemin e Përpunimit ZYNQ7" dhe klikoni dy herë bllokun. Klikoni "Importo cilësimet e XPS" dhe ngarkoni skedarin ZYBO_zynq_def.xml.

Tjetra, nën "Konfigurimi PS-PL" hapni listën për "AXI Non Secure Enablement" dhe kontrolloni "M AXI GP0 interface".

Tjetra, nën "Konfigurimi MIO" hapni listën zbritëse për "Njësia e përpunuesit të aplikacioneve" dhe kontrolloni "Timer 0" dhe "Watchdog".

Së fundmi, nën "Konfigurimi i orës" hapni listën zbritëse për "Ora me pëlhurë PL" dhe kontrolloni "FCLK_CLK0" dhe në 100 MHz.

Hapi 4: IPI GPIO

IPI GPIO
IPI GPIO
IPI GPIO
IPI GPIO

Shtoni dy blloqe GPIO në Dizajnin e Bllokut. GPIO -të do të përdoren për të kontrolluar adresën e pikselit dhe përbërësit RGB të pikselave. Konfiguroni blloqet siç tregohet në imazhet e mësipërme. Pasi të shtoni dhe konfiguroni të dy blloqet, pastaj klikoni "Drejtoni automatizimin e lidhjes".

GPIO 0 - Kanali 1 kontrollon adresën e pikselit dhe Kanali 2 kontrollon ngjyrën e kuqe.

GPIO 1 - Kanali 1 kontrollon ngjyrën e gjelbër dhe Kanali 2 kontrollon ngjyrën blu.

Hapi 5: Bllokoni kujtesën

Blloko kujtesën
Blloko kujtesën
Blloko kujtesën
Blloko kujtesën
Blloko kujtesën
Blloko kujtesën

Shtoni një IP të gjeneratorit të kujtesës së bllokut në dizajnin e bllokut dhe konfiguroni siç tregohet më sipër. Ngjyrat e pikselit shkruhen në adresat e kujtesës të cilat më pas lexohen nga drejtuesi i VGA. Linja e adresave duhet të përputhet me sasinë e pikselëve që po përdoren, kështu që duhet të jetë 16 bit. Të dhënat në janë gjithashtu 16 bit pasi ka 16 bit ngjyra. Nuk na intereson të lexojmë ndonjë pjesë të njohjes.

Hapi 6: IP të tjera

Pdf -ja e bashkangjitur tregon Dizajnin e përfunduar të Bllokut. Shtoni IP -në që mungon dhe përfundoni lidhjet. Gjithashtu "Bëni eksternale" për daljet e ngjyrave VGA dhe daljet e sinkronizimit vertikal dhe horizontal.

xlconcat_0 - Bashkon ngjyrat individuale për të formuar një sinjal RGB 16 bit që futet në bllokun RAM.

xlconcat_1 - Bashkon sinjalet e kolonës dhe rreshtit nga drejtuesi VGA dhe futet në Portën B të RAM -it të Bllokut. Kjo i lejon drejtuesit VGA të lexojë vlerat e ngjyrave të pikselit.

VDD - Constant HIGH e lidhur me aftësinë e shkrimit të RAM -it të Bllokut, në mënyrë që ne të mund t'i drejtohemi gjithmonë asaj.

xlslice_0, 1, 2 - Feta përdoren për të thyer sinjalin RGB në sinjale individuale R, G dhe B që mund të futen në drejtuesin VGA.

Pasi të përfundojë Dizajni i Bllokut, krijoni një mbështjellës HDL dhe shtoni skedarin e kufizimeve.

*Dizajni i Bllokut bazohet në tutorialin e shkruar nga benlin1994*

Hapi 7: SDK

Kodi që drejton këtë Block Design është përfshirë më poshtë. Init.c përmban funksionet që trajtojnë vizatimin (parashikimet, numrat, simbolin e shkallës, etj.). Laku kryesor në main.c është ajo që funksionon kur bordi është i programuar. Ky lak vendos vlerat e parashikimit dhe temperaturës dhe më pas thërret funksionet e tërheqjes në init.c. Aktualisht ai kalon të shtatë parashikimet dhe shfaqet njëri pas tjetrit. Rekomandohet që të shtoni një pikë pushimi në rreshtin 239 në mënyrë që të shihni çdo imazh. Kodi është komentuar dhe do t'ju japë më shumë informacion.

Hapi 8: Përfundimi

Për të përmirësuar projektin aktual, mund të ngarkoni imazhe paraprake të parashikimit në formatin e skedarëve COE në Block Memory Generators. Pra, në vend që të vizatoni parashikimet me dorë, siç bëmë në kodin C, mund të lexoni imazhet. Ne u përpoqëm ta bënim këtë, por nuk arritëm të funksiononte. Ne ishim në gjendje të lexonim vlerat e pikselëve dhe t'i nxirrnim ato, por krijoi imazhe të çrregullta që nuk ishin aspak si ato që ngarkuam në RAM. Fleta e të dhënave e Block Memory Generator është e dobishme për tu lexuar.

Projekti është në thelb gjysma e Smart Mirror pasi mungon aspekti i lidhjes në internet. Shtimi i kësaj do të jepte një Pasqyrë të plotë Smart.

Recommended: