Tartalomjegyzék:
- 1. lépés: A Vivado konfigurálása
- 2. lépés: A VGA illesztőprogram IP -címének csomagolása
- 3. lépés: Zynq IP
- 4. lépés: GPIO IP
- 5. lépés: Blokkolja a memóriát
- 6. lépés: Egyéb IP
- 7. lépés: SDK
- 8. lépés: Következtetés
Videó: Tükör kijelző: 8 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
A projekt célja egy intelligens tükör képmegjelenítési funkciójának létrehozása. A tükör képes megjeleníteni az előrejelzéseket (napos, részben napos, felhős, szeles, eső, mennydörgés és hó) és a -9999 ° és 9999 ° közötti hőmérsékletértékeket. Az előrejelzés és a hőmérséklet értékei keményen vannak kódolva, mintha az időjárási API -ból származó elemzés utánozzák őket.
A projekt egy FreeRTOS rendszert futtató Zynq-Zybo-7000 táblát használ, és a Vivado 2018.2 programot használja a hardver tervezéséhez és programozásához.
Alkatrészek:
Zynq-Zybo-7000 (FreeRTOS-szal)
19 hüvelykes LCD (640x480)
VGA kábel
12 "x 18" akril tükör
1. lépés: A Vivado konfigurálása
Töltse le a Vivado 2018.2 programot a Xilinx webhelyről, és használja a Webpack licencet. Indítsa el a Vivadot és az "Új projekt létrehozása" -t, és adjon nevet. Ezután válassza az "RTL Project" lehetőséget, és jelölje be a "Ne adjon meg forrásokat ebben az időben" jelölőnégyzetet. Alkatrész kiválasztásakor válassza az "xc7z010clg400-1" lehetőséget, majd kattintson a "Befejezés" gombra a következő oldalon.
2. lépés: A VGA illesztőprogram IP -címének csomagolása
Adja hozzá a vga_driver.sv fájlt a tervezési forrásokhoz. Ezután kattintson az "Eszközök" gombra, és válassza az "Új IP létrehozása és csomagolása" lehetőséget. Válassza a "Csomagolja össze az aktuális projektet" lehetőséget. Ezután válasszon egy IP -helyet, és válassza ki a.xci fájlokat. Kattintson az "OK" gombra a felugró ablakban, majd a "Befejezés" gombra.
A „Csomagolási lépések” szakaszban lépjen a „Felülvizsgálat és csomag” elemre, és válassza a „Csomag IP” lehetőséget.
Most a vga_driver IP -blokkként legyen elérhető.
3. lépés: Zynq IP
Az "IP -integrátor" szakaszban válassza a "Blokkterv létrehozása" lehetőséget. Adja hozzá a "ZYNQ7 feldolgozó rendszert", és kattintson duplán a blokkra. Kattintson az "XPS -beállítások importálása" gombra, és töltse fel a ZYBO_zynq_def.xml fájlt.
Ezután a "PS-PL Configuration" alatt nyissa meg az "AXI Non Secure Enablement" legördülő menüt, és jelölje be az "M AXI GP0 interface" lehetőséget.
Ezután a "MIO Configuration" alatt nyissa meg az "Application Processor Unit" legördülő menüt, és jelölje be az "Timer 0" és a "Watchdog" elemeket.
Végül, az "Óra konfigurálása" alatt nyissa meg a "PL Fabric Clocks" legördülő menüt, és jelölje be az "FCLK_CLK0" lehetőséget, és 100 MHz -en.
4. lépés: GPIO IP
Adjon hozzá két GPIO blokkot a blokktervhez. A GPIO -k a pixelcím és a pixelek RGB összetevőinek vezérlésére szolgálnak. Állítsa be a blokkokat a fenti képeken látható módon. Miután hozzáadta és konfigurálta mindkét blokkot, kattintson a "Kapcsolati automatizálás futtatása" gombra.
GPIO 0 - Az 1. csatorna vezérli a pixelcímet, a 2. csatorna pedig a piros színt.
GPIO 1 - Az 1. csatorna szabályozza a zöld színt, a 2. csatorna pedig a kék színt.
5. lépés: Blokkolja a memóriát
Adjon hozzá egy blokk memóriagenerátor IP -t a blokktervezéshez, és konfigurálja a fentiek szerint. A képpontszínek memóriacímekre íródnak, amelyeket a VGA illesztőprogram olvas. A címsornak meg kell egyeznie a használt pixelek mennyiségével, így 16 bitnek kell lennie. A benne lévő adatok is 16 bitesek, mivel 16 színbit van. Nem törődünk semmilyen nyugtázó rész elolvasásával.
6. lépés: Egyéb IP
A mellékelt pdf az elkészült blokktervet mutatja. Adja hozzá a hiányzó IP -címet, és fejezze be a kapcsolatokat. Szintén "Make Externals" a VGA színes kimenetekhez és a függőleges és vízszintes szinkron kimenetekhez.
xlconcat_0 - Összekapcsolja az egyes színeket, hogy egy 16 bites RGB jelet képezzen, amelyet a blokk RAM -ba táplálnak.
xlconcat_1 - Összekapcsolja az oszlop- és sorjeleket a VGA illesztőprogramból, és betáplálja a Block RAM B portjába. Ez lehetővé teszi a VGA illesztőprogram számára a pixel színértékek leolvasását.
VDD - Az állandó HIGH csatlakozik a Block RAM írási engedélyezéséhez, hogy mindig jogosultak lehessünk rá.
xlslice_0, 1, 2 - A szeleteket arra használják, hogy az RGB jelet egyes R, G és B jelekre bontják, amelyeket a VGA meghajtóba lehet betáplálni.
A blokktervezés befejezése után hozzon létre egy HDL csomagolót, és adja hozzá a megszorítások fájlt.
*A blokktervezés a benlin1994 által írt oktatóanyagon alapul*
7. lépés: SDK
A blokk kialakítását futtató kód az alábbiakban található. Az Init.c tartalmazza a rajzot kezelő funkciókat (előrejelzések, számok, fokjel stb.). A main.c fő hurka az, ami a tábla programozásakor fut. Ez a ciklus beállítja az előrejelzési és a hőmérsékleti értékeket, majd meghívja a rajzolási függvényeket az init.c -ben. Jelenleg végigmegy mind a hét előrejelzésen, és egymás után jelenik meg. Javasoljuk, hogy adjon meg egy töréspontot a 239. sorhoz, hogy minden kép látható legyen. A kód megjegyzéseket tartalmaz, és további információkat tartalmaz.
8. lépés: Következtetés
A jelenlegi projekt javítása érdekében előre feltöltött előrejelző képeket tölthet fel COE fájlok formájában a Block Memory Generators programba. Tehát ahelyett, hogy kézzel rajzolnánk az előrejelzéseket, mint a C kódban, a képeket beolvashatjuk. Megpróbáltuk ezt megtenni, de nem tudtuk működni. Képesek voltunk a pixelértékeket leolvasni és kiadni, de rendetlen képeket hozott létre, amelyek nem hasonlítottak azokhoz, amelyeket a RAM -ba töltöttünk. A blokk memóriagenerátor adatlapja hasznos az olvasáshoz.
A projekt lényegében fél intelligens tükör, mivel hiányzik belőle az internetkapcsolat. Ha ezt hozzáadja, akkor teljes intelligens tükröt kap.
Ajánlott:
Készítsen végtelen tükör órát: 15 lépés (képekkel)
Készíts egy végtelen tükör órát: Egy korábbi projektemben építettem egy végtelen tükröt, ahol a végső célom az volt, hogy órává váljon. (Készíts egy színes végtelen tükröt) Az építés után nem folytattam ezt, mert bár jól nézett ki, volt néhány dolog a
Könnyű végtelen tükör Arduino Gemma és Neo Pixelekkel: 8 lépés (képekkel)
Könnyű végtelen tükör Arduino Gemma & NeoPixels -el: Íme! Nézzen mélyen a varázslatos és megtévesztően egyszerű végtelen tükörbe! A LED -ek egyetlen csíkja befelé ragyog a tükör szendvicsen, hogy a végtelen tükröződés hatását keltse. Ez a projekt az Arduin bevezetőm készségeit és technikáit fogja alkalmazni
Elektronikus megerősítő tükör: 8 lépés (képekkel)
Elektronikus megerősítő tükör: Ha belenéz a tükörbe, ki ne használhatna néhány bátorító szót? Építsen kijelzőt a tükör belsejébe, és görgessen a saját tükörképén olvasható egyéni megerősítések között. Ez a csiszolt projekt könnyen összeáll a boltban vásárolt shadowbo-val
Végtelen tükör LCD és IR érzékelővel: 5 lépés
Végtelen tükör LCD és IR érzékelővel: Ez a projekt megmutatja, hogyan készíthet végtelen tükröt. Az alapkoncepció az, hogy a tükrön lévő LED -ek olyan fényt hoznak létre, amely visszapattan a hátsó tükörről az első tükörre, ahol némi fény kiszökik, hogy beláthassuk a belsőt és így tovább
TTGO (színes) kijelző Micropython-szal (TTGO T-kijelző): 6 lépés
TTGO (színes) kijelző Micropython-szal (TTGO T-kijelző): A TTGO T-Display az ESP32 alapú tábla, amely 1,14 hüvelykes színes kijelzőt tartalmaz. A táblát 7 dollárnál kisebb nyereményért lehet megvásárolni (beleértve a szállítást, a banggoodon látható díjat). Ez hihetetlen nyeremény egy kijelzővel ellátott ESP32 -ért