Përmbajtje:
- Hapi 1: Konfigurimi i Vivado
- Hapi 2: Paketimi IP i Shoferit VGA
- Hapi 3: Zynq IP
- Hapi 4: IPI GPIO
- Hapi 5: Bllokoni kujtesën
- Hapi 6: IP të tjera
- Hapi 7: SDK
- Hapi 8: Përfundimi
Video: Ekrani i pasqyrës: 8 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:22
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
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
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
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
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
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:
Bëni një Kub të Pasqyrës së Pafundësisë së Lehtë - JO Printim 3D dhe JO Programim: 15 hapa (me fotografi)
Bëni një Kub të Pasqyrës së Pafundësisë së Lehtë | JO Printim 3D dhe JO Programim: Të gjithëve u pëlqen një kub i mirë pafundësi, por ato duken sikur do të ishin të vështira për t'u bërë. Qëllimi im për këtë Instructable është t'ju tregoj hap pas hapi se si ta bëni atë. Jo vetëm kaq, por me udhëzimet që po ju jap, do të keni mundësi të bëni një
Një Galaxy në dorën tuaj! Kutia e pasqyrës së pafundësisë: 3 hapa (me fotografi)
Një Galaxy në dorën tuaj! Kutia e pasqyrës së pafundësisë: Ky mësim ka të bëjë me krijimin e një forme të vogël që krijon shumë reflektime brenda. Me vrima në çdo kënd për dritën dhe një dritare të vogël për të parë, ju mund të shikoni këtë proces pafundësie në dorën tuaj! Ideja erdhi nga shikimi i pafundësisë mirr
Ora e Pasqyrës Infinity Me Potenciometra: 3 Hapa
Ora e Pasqyrës së Pafundësisë me Potenciometra: Kam hasur në pasqyrën e pafundësisë dhe e kam parë të jetë vërtet e lezetshme. Kjo më frymëzoi të bëja një pasqyrë të pafundme, por më duhej që ajo të kishte një qëllim. Kështu, vendosa të bëj një orë pasqyre funksionuese të pafundësisë. Kjo është një pasqyrë e pafundësisë që ju lejon të
Ora e pasqyrës Infinity: 5 hapa (me fotografi)
Infinity Mirror Clock: Kjo është një orë e punuar me dorë kryesisht për zbukurim. Ka disa drita LED në orë, kur ndizet, është një dekorim i bukur për dhomën e gjumit. Kur fiket, është një pasqyrë e vogël. Sigurisht, është një orë në vetvete
Ndërtoni një Arduino në një Nissan Qashqai për të automatizuar palosjen e pasqyrës së krahut ose ndonjë gjë tjetër: 9 hapa (me fotografi)
Ndërtoni një Arduino në një Nissan Qashqai për të automatizuar palosjen e pasqyrës së krahut ose ndonjë gjë tjetër: Nissan Qashqai J10 ka disa gjëra pak të bezdisshme në lidhje me kontrollet që mund të jenë lehtësisht më të mira. Njëra prej tyre është të mbani mend të shtyni çelësin e hapjes/mbylljes së pasqyrave para se të hiqni çelësin nga ndezja. Një tjetër është konfigurimi i vogël