Satura rādītājs:
- 1. darbība: Vivado konfigurēšana
- 2. darbība: VGA draivera IP iesaiņošana
- 3. darbība: Zynq IP
- 4. darbība: GPIO IP
- 5. darbība: bloķējiet atmiņu
- 6. darbība: cits IP
- 7. darbība: SDK
- 8. solis. Secinājums
Video: Spoguļa displejs: 8 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Šī 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
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
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
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
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
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:
Izveidojiet bezgalības spoguļa pulksteni: 15 soļi (ar attēliem)
Izveidojiet bezgalības spoguļa pulksteni: Iepriekšējā projektā es uzbūvēju bezgalības spoguli, kur mans galvenais mērķis bija to padarīt par pulksteni. (Izveidojiet krāsainu bezgalības spoguli) Pēc tā uzbūvēšanas es to nedarīju, jo, lai gan tas izskatījās forši, bija dažas lietas ar
Izveidojiet vieglu bezgalības spoguļa kubu - Bez 3D drukāšanas un bez programmēšanas: 15 soļi (ar attēliem)
Izveidojiet vieglu bezgalības spoguļa kubu | NAV 3D drukāšanas un NAV programmēšanas: ikvienam patīk labs bezgalības kubs, taču izskatās, ka tos būtu grūti izgatavot. Mans šīs instrukcijas mērķis ir soli pa solim parādīt, kā to izveidot. Ne tikai to, bet arī ar norādījumiem, ko es jums dodu, jūs varēsit izveidot vienu
Izveidojiet bezgalības spoguļa kubu: 12 soļi (ar attēliem)
Izveidojiet bezgalības spoguļa kubu: meklējot informāciju, veidojot savu pirmo bezgalības spoguli, es saskāros ar dažiem bezgalības kubu attēliem un videoklipiem, un es noteikti gribēju izveidot savu. Galvenais, kas mani kavēja, bija tas, ka es gribēju darīt citādi
Bezgalības spoguļa pulkstenis ar potenciometriem: 3 soļi
Bezgalības spoguļa pulkstenis ar potenciometriem: es saskāros ar bezgalības spoguli, un es atklāju, ka tas ir patiešām foršs. Tas mani iedvesmoja izveidot bezgalības spoguli, bet man tas bija vajadzīgs, lai tam būtu kāds mērķis. Tātad, es nolēmu izveidot funkcionējošu bezgalības spoguļa pulksteni. Šis ir bezgalības spogulis, kas ļauj
TTGO (krāsains) displejs ar mikropitonu (TTGO T displejs): 6 soļi
TTGO (krāsains) displejs ar mikropitonu (TTGO T displejs): TTGO T-displejs ir tāfele, kuras pamatā ir ESP32 un kurā ir 1,14 collu krāsu displejs. Dēli var iegādāties par balvu, kas mazāka par 7 ASV dolāriem (ieskaitot piegādi, balva redzama banggood). Tā ir neticama balva par ESP32, ieskaitot displeju