Obsah:

Zrcadlový displej: 8 kroků
Zrcadlový displej: 8 kroků

Video: Zrcadlový displej: 8 kroků

Video: Zrcadlový displej: 8 kroků
Video: ANDROID MÁ JEDNO SKRYTÉ NASTAVENÍ 🤖 2024, Červenec
Anonim
Zrcadlový displej
Zrcadlový displej
Zrcadlový displej
Zrcadlový displej
Zrcadlový displej
Zrcadlový displej

Cílem tohoto projektu je vytvořit funkci zobrazení obrazu Smart Mirror. Zrcadlo je schopno zobrazit předpovědi (slunečno, polojasno, zataženo, větrno, déšť, hrom a sníh) a hodnoty teploty od -9999 ° do 9999 °. Hodnoty předpovědi a teploty jsou pevně zakódovány, jako by je bylo třeba emulovat, a jsou analyzovány z API pro počasí.

Projekt využívá desku Zynq-Zybo-7000 se systémem FreeRTOS a k návrhu a programování hardwaru používá Vivado 2018.2.

Díly:

Zynq-Zybo-7000 (s FreeRTOS)

19 LCD (640 x 480)

VGA kabel

Akrylové zrcadlo 12 x 18 palců

Krok 1: Konfigurace Vivado

Konfigurace Vivado
Konfigurace Vivado
Konfigurace Vivado
Konfigurace Vivado

Stáhněte si Vivado 2018.2 z Xilinx a použijte licenci Webpack. Spusťte Vivado a „Vytvořit nový projekt“a pojmenujte ho. Dále vyberte „Projekt RTL“a zaškrtněte „V tuto chvíli neuvádějte zdroje“. Při výběru dílu vyberte „xc7z010clg400-1“a na další stránce klikněte na „Dokončit“.

Krok 2: Zabalení IP ovladače VGA

Balení VGA Driver IP
Balení VGA Driver IP
Balení VGA Driver IP
Balení VGA Driver IP

Přidejte soubor vga_driver.sv do zdrojů návrhu. Dále klikněte na „Nástroje“a vyberte „Vytvořit a zabalit novou IP“. Vyberte „Zabalit váš aktuální projekt“. Poté vyberte umístění IP a „Zahrnout soubory.xci“. Ve vyskakovacím okně klikněte na „OK“a poté na „Dokončit“.

V části „Balící kroky“přejděte na „Zkontrolovat a zabalit“a vyberte „Balíček IP“.

Nyní by měl být vga_driver k dispozici jako blok IP.

Krok 3: Zynq IP

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

V části „IP Integrator“vyberte „Create Block Design“. Přidejte „Systém zpracování ZYNQ7“a dvakrát klikněte na blok. Klikněte na „Importovat nastavení XPS“a nahrajte soubor ZYBO_zynq_def.xml.

Dále v části „Konfigurace PS-PL“otevřete rozevírací seznam „AXI Non Secure Enablement“a zaškrtněte „Rozhraní M AXI GP0“.

Dále v části „Konfigurace MIO“otevřete rozbalovací nabídku „Jednotka procesorů aplikací“a zaškrtněte „Časovač 0“a „Hlídací pes“.

Nakonec v části „Konfigurace hodin“otevřete rozevírací seznam „Hodiny PL Fabric“a zaškrtněte „FCLK_CLK0“a na frekvenci 100 MHz.

Krok 4: GPIO IP

GPIO IP
GPIO IP
GPIO IP
GPIO IP

Přidejte dva bloky GPIO do návrhu bloku. GPIO budou použity k ovládání adresy pixelu a složek RGB pixelů. Bloky nakonfigurujte podle obrázků výše. Jakmile přidáte a nakonfigurujete oba bloky, klikněte na „Spustit automatizaci připojení“.

GPIO 0 - kanál 1 ovládá adresu pixelu a kanál 2 ovládá červenou barvu.

GPIO 1 - Kanál 1 ovládá zelenou barvu a Kanál 2 ovládá modrou barvu.

Krok 5: Blokovat paměť

Blokovat paměť
Blokovat paměť
Blokovat paměť
Blokovat paměť
Blokovat paměť
Blokovat paměť

Přidejte IP generátoru blokové paměti do návrhu bloku a nakonfigurujte, jak je uvedeno výše. Barvy pixelů jsou zapsány na adresy paměti, které jsou potom načteny ovladačem VGA. Adresní řádek musí odpovídat množství použitých pixelů, takže musí mít 16 bitů. Data jsou také 16 bitů, protože existuje 16 barevných bitů. Nestaráme se o čtení jakýchkoli potvrzovacích bitů.

Krok 6: Další IP

Přiložený pdf ukazuje hotový Block Design. Přidejte chybějící IP a dokončete připojení. Také „Make Externals“pro barevné výstupy VGA a vertikální a horizontální synchronizační výstupy.

xlconcat_0 - spojuje jednotlivé barvy do jednoho 16bitového signálu RGB, který je přiváděn do bloku RAM.

xlconcat_1 - Zřetězí signály sloupců a řádků z ovladače VGA a přivede se do portu B bloku RAM. To umožňuje ovladači VGA číst hodnoty barev pixelů.

VDD - konstantní VYSOKÁ připojena k povolení zápisu do bloku RAM, abychom na ni měli vždy právo.

xlslice_0, 1, 2 - Řezy se používají k rozdělení signálu RGB na jednotlivé signály R, G a B, které lze přenést do ovladače VGA.

Jakmile je návrh bloku dokončen, vygenerujte obal HDL a přidejte soubor omezení.

*Block Design vychází z tutoriálu napsaného benlin1994*

Krok 7: SDK

Níže je uveden kód, který spouští tento návrh bloku. Init.c obsahuje funkce, které zpracovávají kreslení (předpovědi, čísla, symbol stupňů atd.). Hlavní smyčka v main.c je spuštěna, když je deska naprogramována. Tato smyčka nastavuje hodnoty předpovědi a teploty a poté vyvolá funkce kreslení v init.c. Aktuálně prochází všemi sedmi prognózami a zobrazuje se jeden po druhém. Doporučujeme, abyste na řádek 239 přidali bod zlomu, abyste viděli každý obrázek. Kód je okomentován a poskytne vám více informací.

Krok 8: Závěr

Aby se zlepšil současný projekt, bylo možné do blokových generátorů paměti nahrát předem načtené předpovědní obrázky ve formátech souborů COE. Takže místo toho, abychom kreslili předpovědi ručně, jako jsme to dělali v kódu C, mohli jsme nechat načíst obrázky. Pokusili jsme se to udělat, ale nemohli jsme to spustit. Byli jsme schopni přečíst hodnoty pixelů a vyvést je, ale vytvořilo to chaotický obraz, který se ničím nepodobal těm, které jsme nahráli do RAM. Datový list generátoru blokové paměti je užitečné ke čtení.

Projekt je v podstatě polovinou Smart Mirror, protože mu chybí aspekt připojení k internetu. Přidáním toho získáte kompletní Smart Mirror.

Doporučuje: