Sisällysluettelo:

Peilinäyttö: 8 vaihetta
Peilinäyttö: 8 vaihetta

Video: Peilinäyttö: 8 vaihetta

Video: Peilinäyttö: 8 vaihetta
Video: AUTOVIIHDE-MINICAM-HD-PEILI-NÄYTTÖ 2024, Marraskuu
Anonim
Peilinäyttö
Peilinäyttö
Peilinäyttö
Peilinäyttö
Peilinäyttö
Peilinäyttö

Tämän projektin tavoitteena on luoda Smart Mirror -näytön toiminnallisuus. Peili näyttää ennusteet (aurinkoinen, osittain aurinkoinen, pilvinen, tuulinen, sade, ukkonen ja lumi) ja lämpötila -arvot -9999 ° -9999 °. Ennuste- ja lämpötila -arvot on koodattu kovalla tavalla ikään kuin matkivat niitä, kun ne jäsennellään sääsovellusliittymästä.

Projekti käyttää Zynq-Zybo-7000-korttia, jossa on FreeRTOS, ja käyttää Vivadoa 2018.2 laitteiston suunnitteluun ja ohjelmointiin.

Osat:

Zynq-Zybo-7000 (FreeRTOS)

19 LCD (640x480)

VGA -kaapeli

12 "x 18" akryylipeili

Vaihe 1: Vivadon määrittäminen

Vivadon määrittäminen
Vivadon määrittäminen
Vivadon määrittäminen
Vivadon määrittäminen

Lataa Vivado 2018.2 Xilinxistä ja käytä Webpack -lisenssiä. Käynnistä Vivado ja "Luo uusi projekti" ja anna sille nimi. Valitse seuraavaksi "RTL -projekti" ja "Älä määritä lähteitä tällä hetkellä". Kun valitset osaa, valitse "xc7z010clg400-1" ja napsauta "Valmis" seuraavalla sivulla.

Vaihe 2: Pakkaa VGA -ohjaimen IP

Pakkaus VGA -ohjain IP
Pakkaus VGA -ohjain IP
Pakkaus VGA -ohjain IP
Pakkaus VGA -ohjain IP

Lisää vga_driver.sv -tiedosto suunnittelulähteisiin. Napsauta sitten "Työkalut" ja valitse "Luo ja pakkaa uusi IP". Valitse "Pakkaa nykyinen projektisi". Valitse sitten IP -sijainti ja "Sisällytä.xci -tiedostot". Napsauta ponnahdusikkunassa "OK" ja sitten "Valmis".

Siirry "Pakkausvaiheet" -kohtaan "Tarkista ja pakkaa" ja valitse "Paketin IP".

Nyt vga_driverin pitäisi olla saatavilla IP -lohkona.

Vaihe 3: Zynq IP

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

Valitse IP -integraattori -osiosta Luo lohkosuunnittelu. Lisää "ZYNQ7 Processing System" ja kaksoisnapsauta lohkoa. Napsauta "Tuo XPS -asetukset" ja lataa ZYBO_zynq_def.xml -tiedosto.

Avaa seuraavaksi "PS-PL Configuration" -kohdasta "AXI Non Secure Enablement" -valikko ja valitse "M AXI GP0 -liitäntä".

Avaa sitten "MIO Configuration" -kohdasta "Application Processor Unit" -valikko ja tarkista "Timer 0" ja "Watchdog".

Avaa lopuksi "Kellon määritys" -kohdassa "PL Fabric Clocks" -valikko ja tarkista "FCLK_CLK0" ja 100 MHz.

Vaihe 4: GPIO IP

GPIO IP
GPIO IP
GPIO IP
GPIO IP

Lisää kaksi GPIO -lohkoa lohkon suunnitteluun. GPIO: ita käytetään pikselien osoitteen ja pikselien RGB -komponenttien ohjaamiseen. Määritä lohkot yllä olevien kuvien mukaisesti. Kun olet lisännyt ja määrittänyt molemmat lohkot, napsauta "Suorita yhteysautomaatio".

GPIO 0 - Kanava 1 ohjaa kuvapisteen osoitetta ja kanava 2 punaista väriä.

GPIO 1 - Kanava 1 ohjaa vihreää väriä ja kanava 2 ohjaa sinistä väriä.

Vaihe 5: Estä muisti

Estä muisti
Estä muisti
Estä muisti
Estä muisti
Estä muisti
Estä muisti

Lisää lohkomuistin generaattorin IP -esto lohkon suunnitteluun ja määritä yllä kuvatulla tavalla. Pikselivärit kirjoitetaan muistiosoitteisiin, jotka VGA -ohjain lukee. Osoiterivin on vastattava käytettävien pikselien määrää, joten sen on oltava 16 bittiä. Tiedot ovat myös 16 bittiä, koska niitä on 16 väribittiä. Emme välitä kuittausbittien lukemisesta.

Vaihe 6: Muu IP

Liitteenä oleva pdf -tiedosto näyttää valmistuneen lohkosuunnittelun. Lisää puuttuva IP ja viimeistele yhteydet. Myös "Tee ulkoiset" VGA -värilähtöille ja pystysuorille ja vaakasuorille synkronointilähdöille.

xlconcat_0 - Yhdistää yksittäiset värit yhdeksi 16 -bittiseksi RGB -signaaliksi, joka syötetään Block RAM -muistiin.

xlconcat_1 - Ketjuttaa sarake- ja rivisignaalit VGA -ohjaimesta ja syötetään lohkon RAM -muistin porttiin B. Tämän avulla VGA -ohjain voi lukea pikseliväriarvot.

VDD - Constant HIGH on kytketty Block RAM -laitteen kirjoitustoimintoon, jotta voimme aina olla oikeassa.

xlslice_0, 1, 2 - Viipaleita käytetään RGB -signaalin jakamiseen yksittäisiksi R-, G- ja B -signaaleiksi, jotka voidaan syöttää VGA -ohjaimeen.

Kun lohkon suunnittelu on valmis, luo HDL -kääre ja lisää rajoitustiedosto.

*Lohkosuunnittelu perustuu opaskirjaan, jonka on kirjoittanut benlin1994*

Vaihe 7: SDK

Tämän lohkon suunnittelua käyttävä koodi on alla. Init.c sisältää piirustusta käsittelevät toiminnot (ennusteet, luvut, asteen symboli jne.). Main.c: n pääsilmukka suoritetaan, kun levy on ohjelmoitu. Tämä silmukka asettaa ennuste- ja lämpötila -arvot ja kutsuu sitten piirtotoiminnot init.c. Se kiertää tällä hetkellä kaikki seitsemän ennustetta ja näyttää ne peräkkäin. On suositeltavaa lisätä katkaisupiste riville 239, jotta näet kaikki kuvat. Koodi kommentoidaan ja antaa sinulle lisätietoja.

Vaihe 8: Johtopäätös

Nykyisen projektin parantamiseksi voitaisiin ladata esiladattuja kuvia COE -tiedostoina Block Memory Generators -laitteisiin. Joten sen sijaan, että olisimme piirtäneet ennusteet manuaalisesti kuten C -koodissa, voisimme saada kuvat lukemaan. Yritimme tehdä tämän, mutta emme saaneet sitä toimimaan. Pystyimme lukemaan pikseliarvot ja tulostamaan ne, mutta se loi sotkuisia kuvia, jotka eivät olleet mitään sellaisia kuin ne, jotka latasimme RAM -muistiin. Block Memory Generator -lomake on hyödyllinen luettavaksi.

Projekti on pohjimmiltaan puoliksi älykäs peili, koska siitä puuttuu Internet -yhteys. Tämän lisääminen antaisi täydellisen Smart Mirrorin.

Suositeltava: