Satura rādītājs:

Spoguļa displejs: 8 soļi
Spoguļa displejs: 8 soļi

Video: Spoguļa displejs: 8 soļi

Video: Spoguļa displejs: 8 soļi
Video: Как легко идеально наклеить защитное стекло (ДАЖЕ РЕБЕНКУ) 2024, Novembris
Anonim
Spoguļa displejs
Spoguļa displejs
Spoguļa displejs
Spoguļa displejs
Spoguļa displejs
Spoguļa displejs

Šī projekta mērķis ir izveidot viedā spoguļa attēla attēlošanas funkcionalitāti. Spogulis spēj parādīt prognozes (saulains, daļēji saulains, mākoņains, vējains, lietus, pērkons un sniegs) un temperatūras vērtības no -9999 ° līdz 9999 °. Prognozes un temperatūras vērtības ir kodētas tā, it kā atdarinātu to parsēšanu no laika apstākļu API.

Projektā tiek izmantota Zynq-Zybo-7000 plate, kurā darbojas FreeRTOS, un aparatūras projektēšanai un programmēšanai tiek izmantota Vivado 2018.2.

Daļas:

Zynq-Zybo-7000 (ar FreeRTOS)

19 collu LCD (640x480)

VGA kabelis

12 "x 18" akrila spogulis

1. darbība: Vivado konfigurēšana

Vivado konfigurēšana
Vivado konfigurēšana
Vivado konfigurēšana
Vivado konfigurēšana

Lejupielādējiet Vivado 2018.2 no Xilinx un izmantojiet Webpack licenci. Palaidiet Vivado un "Izveidot jaunu projektu" un piešķiriet tam nosaukumu. Tālāk atlasiet “RTL projekts” un atzīmējiet “Nenorādīt avotus šobrīd”. Izvēloties daļu, atlasiet "xc7z010clg400-1" un nākamajā lapā noklikšķiniet uz "Pabeigt".

2. darbība: VGA draivera IP iesaiņošana

Iepakojums VGA draiveris IP
Iepakojums VGA draiveris IP
Iepakojums VGA draiveris IP
Iepakojums VGA draiveris IP

Pievienojiet failu vga_driver.sv dizaina avotiem. Pēc tam noklikšķiniet uz "Rīki" un atlasiet "Izveidot un iepakot jaunu IP". Atlasiet “Iepakot pašreizējo projektu”. Pēc tam izvēlieties IP atrašanās vietu un "Iekļaut.xci failus". Uznirstošajā logā noklikšķiniet uz "Labi" un pēc tam uz "Pabeigt".

Sadaļā "Iepakošanas soļi" dodieties uz "Pārskatīšana un pakotne" un atlasiet "Pakotnes IP".

Tagad vga_driver vajadzētu būt pieejamam kā IP blokam.

3. darbība: Zynq IP

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

Sadaļā "IP integrētājs" atlasiet "Izveidot bloku dizainu". Pievienojiet "ZYNQ7 Processing System" un veiciet dubultklikšķi uz bloka. Noklikšķiniet uz "Importēt XPS iestatījumus" un augšupielādējiet failu ZYBO_zynq_def.xml.

Pēc tam sadaļā “PS-PL konfigurācija” atveriet nolaižamo izvēlni “AXI Non Secure Enablement” un atzīmējiet “M AXI GP0 interfeiss”.

Pēc tam sadaļā "MIO konfigurācija" atveriet nolaižamo izvēlni "Lietojumprogrammu procesora vienība" un pārbaudiet "Taimeris 0" un "Sargsuns".

Visbeidzot, sadaļā "Pulksteņa konfigurācija" atveriet nolaižamo izvēlni "PL Fabric Clocks" un pārbaudiet "FCLK_CLK0" un pie 100 MHz.

4. darbība: GPIO IP

GPIO IP
GPIO IP
GPIO IP
GPIO IP

Bloka noformējumam pievienojiet divus GPIO blokus. GPIO tiks izmantoti, lai kontrolētu pikseļu adresi un pikseļu RGB komponentus. Konfigurējiet blokus, kā parādīts iepriekš attēlos. Kad esat pievienojis un konfigurējis abus blokus, noklikšķiniet uz "Palaist savienojuma automatizāciju".

GPIO 0 - 1. kanāls kontrolē pikseļu adresi, bet 2. kanāls - sarkano krāsu.

GPIO 1 - 1. kanāls kontrolē zaļo krāsu, bet 2. kanāls - zilo krāsu.

5. darbība: bloķējiet atmiņu

Bloķēt atmiņu
Bloķēt atmiņu
Bloķēt atmiņu
Bloķēt atmiņu
Bloķēt atmiņu
Bloķēt atmiņu

Pievienojiet bloka noformējumam bloka atmiņas ģeneratora IP un konfigurējiet, kā parādīts iepriekš. Pikseļu krāsas tiek ierakstītas atmiņas adresēs, kuras pēc tam nolasa VGA draiveris. Adreses rindai jāatbilst izmantoto pikseļu skaitam, tāpēc tai jābūt 16 bitiem. Dati ir arī 16 biti, jo ir 16 krāsu biti. Mums vienalga, ka mēs lasām jebkādus atzīšanas bitus.

6. darbība: cits IP

Pievienotajā pdf ir parādīts pabeigtais bloka dizains. Pievienojiet trūkstošo IP un pabeidziet savienojumus. Arī "Make Externals" VGA krāsu izejām un vertikālās un horizontālās sinhronizācijas izejām.

xlconcat_0 - apvieno atsevišķas krāsas, veidojot vienu 16 bitu RGB signālu, kas tiek ievadīts bloķētajā RAM.

xlconcat_1 - Saskaņo kolonnu un rindu signālus no VGA draivera un tiek ievadīts bloķētās RAM B portā. Tas ļauj VGA draiverim nolasīt pikseļu krāsu vērtības.

VDD - Pastāvīga HIGH ir savienota ar Block RAM rakstīšanas iespējošanu, lai mēs vienmēr varētu uz to pareizi.

xlslice_0, 1, 2 - šķēles tiek izmantotas, lai sadalītu RGB signālu atsevišķos R, G un B signālos, kurus var ievadīt VGA draiverī.

Kad bloka dizains ir pabeigts, izveidojiet HDL iesaiņojumu un pievienojiet ierobežojumu failu.

*Bloka dizains ir balstīts uz apmācību, ko rakstīja benlin1994*

7. darbība: SDK

Kods, kas vada šo bloka dizainu, ir iekļauts zemāk. Init.c satur funkcijas, kas apstrādā zīmējumu (prognozes, skaitļi, grādu simbols utt.). Main.c galvenā cilpa ir tā, kas tiek palaista, kad tāfele ir ieprogrammēta. Šī cilpa nosaka prognozes un temperatūras vērtības un pēc tam izsauc zīmēšanas funkcijas init.c. Pašlaik tiek apskatītas visas septiņas prognozes un tiek parādītas viena pēc otras. Ieteicams 239. rindā pievienot pārtraukuma punktu, lai jūs varētu redzēt katru attēlu. Kods ir komentēts un sniegs jums vairāk informācijas.

8. solis. Secinājums

Lai uzlabotu pašreizējo projektu, Block Memory Generators varētu augšupielādēt iepriekš ielādētus prognozes attēlus COE failu veidā. Tā vietā, lai prognozes zīmētu manuāli, kā mēs to darījām C kodā, varētu likt attēliem nolasīt. Mēs mēģinājām to izdarīt, bet nevarējām panākt, lai tas darbotos. Mēs varējām nolasīt pikseļu vērtības un tās izvadīt, taču tas radīja netīrus attēlus, kas nebija līdzīgi tiem, kurus augšupielādējām RAM. Block Memory Generator datu lapa ir noderīga lasīšanai.

Projekts būtībā ir puse no viedā spoguļa, jo tam trūkst interneta savienojuma aspekta. Pievienojot to, tiktu iegūts pilnīgs viedais spogulis.

Ieteicams: