Tartalomjegyzék:
- 1. lépés: Projekt beállítása Vivadóban Ernie számára
- 2. lépés: Ernie PWM létrehozása Vivadóban
- 3. lépés: Ernie TDOA létrehozása Vivadóban
- 4. lépés: Ernie csomagolása és exportálása
- 5. lépés: Ernie építése
- 6. lépés: Ernie első BSP -je
- 7. lépés: FreeRTOSinging Ernie
- 8. lépés: Ernie C -kódjának importálása
- 9. lépés: Ernie hibakeresése
- 10. lépés: Ernie autonómvá tétele
- 11. lépés: Ernie aranyossá tétele
Videó: Ernie elkészítése: 11 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
Ez egy oktatóanyag arról, hogyan építheti fel Ernie -t, az önálló hangkövető robotját a Zybo Board segítségével. Ez a következőkre terjed ki: projekt létrehozása Vivadóban, PWM-szerű szervomotor-illesztőprogramok létrehozása az FPGA-ban, interfész két hangérzékelővel, időbeli eltérés létrehozása az érkezési IP-n, freeRTOS használata, és a zyboy akkumulátorról történő futtatása. Ez volt az utolsó projektünk a Cal Poly SLO Real Time Operating Systems osztályához (CPE 439).
Felszerelés lista:
- 1 - ZYBO Zynq 7000 Fejlesztési Tanács
- 2 - Parallax folyamatos forgás szervo
- 2 - Hangérzékelő (SparkFun hangérzékelő)
- 1 - 5 V lítium -ion USB akkumulátor (tábla)
- 4 - AA elem (szervókhoz)
- 1 - AA elemcsomag (4 elemrésszel)
- 1 - Micro USB kábel
- 1 - Kenyeretábla
- sok - férfi -férfi vezetékek
- 1 - Szervo alváz
Szoftverkövetelmények:
- Xilinx Vivado Design Suite 2016.2
- Digilent Adept 2.16.1
1. lépés: Projekt beállítása Vivadóban Ernie számára
- Egy varázsló jelenik meg
- Kattintson a Tovább gombra
-
Következő neve a projektnek
- Soha ne használjon olyan projektnevet vagy könyvtárútvonalat, amelyben szóközök vannak !!!!!
- Ez egy RTL projekt lesz.
- Nem akarunk forrásokat megadni
-
A Tovább gombra kattintva a Rész oldalra jutunk. ZYNQ XC7Z010-1CLG400C készüléket használunk.
- Vivado nem tartalmazza a Zybo-t, mint előre meghatározott táblákat. Válassza ki: „alkatrészek”, majd keressen rá az xc7z010clg400-1 kifejezésre.
- Ha véletlenül a rossz részt választja, könnyen válthat a chipek között: Eszközök -> Projektbeállítások -> Általános, és kattintson a „Projekteszköz” jobb oldalán található pontokra
-
Kattintson a Blokkterv létrehozása elemre.
Nevezze el egyelőre a design_1 nevet
- Látni fog egy zöld sávot, amely azt írja, hogy Add IP, kattintson rá.
-
Zynq keresése.
- Kattintson duplán a ZYNQ7 feldolgozó rendszerre,
- Ez a blokk megjelenik a blokk kialakításunkban.
- Látni fog egy zöld sávot, amely azt mondja, hogy Futtassa a blokk automatizálását, kattintson rá.
- Töltse le alább a zybo_zynq_def.xml fájlt.
-
A Vivado alkalmazásban kattintson az „XPS -beállítások importálása” elemre, és válassza a „zybo_zynq_def.xml” lehetőséget.
Ez előzetesen feltölti a Vivado blokkkonfigurációt a Zybo tábla összes beépített perifériájával és tű hozzárendelésével
-
Kattintson duplán a ZYNQ blokkra.
-
MIO konfiguráció
- Időzítő 0 engedélyezése (Alkalmazásfeldolgozó egység alatt - img 1)
- A Watchdog engedélyezése (az Alkalmazásfeldolgozó egység alatt- img 1)
- GPIO-> GPIO MIO engedélyezése (Alkalmazásfeldolgozó egység alatt - img 2)
- GPIO-> ENET Reset engedélyezése (I/O perifériák alatt- img 2)
- Óra beállítása
Az FCLK0 letiltása (a PL Fabric Clocks alatt - img 3)
-
- Kattintson az OK gombra.
-
„Futtassa a blokk -automatizálást” most.
Lesz néhány kérdés a jelekkel kapcsolatban, mondja az OK -t
-
Kattintson a „HDL csomagoló létrehozása” gombra.
Szeretnénk másolni a generált burkolólapot, hogy lehetővé tegyük a felhasználói szerkesztéseket
- Kattintson az OK gombra.
2. lépés: Ernie PWM létrehozása Vivadóban
Ez a lépés létrehoz egy PWM IP -t az AXI könyvtáron keresztül küldött bemenetekkel.
- Hozzon létre AXI GPIO blokkot a jobb egérgombbal a háttérben, majd az "IP hozzáadása" gombra kattintva
írja be a "AXI_GPIO" szót a keresősávba, és válassza ki ezt a csomagot
- Testreszabhatja az IP-t úgy, hogy duplán kattint az új axi_gpio_0 blokkra
- a GPIO alatt állítsa a GPIO szélességét 2 -re. Ezek a bitek lesznek a PWM_ON jel, amely meghajtja az egyes PWM modulpéldányokat.
- kattintson a "kétcsatornás engedélyezés" lehetőségre
- A GPIO 2 alatt állítsa a GPIO szélességét 2 -re. Ezek a bitek a PWM_FW jel, amely az egyes PWM modulpéldányok irányát állítja be.
-
Kattintson jobb gombbal az axi_gpio_0 GPIO feliratú kimeneti portra, és válassza a "Külső létrehozása" lehetőséget
- Kattintson a GPIO feliratú új kimenetre, navigáljon a "Properties" fülre a bal eszköztáron, és módosítsa a nevet PWM_ON -ra
- Kattintson a GPIO2 feliratú új kimenetre, navigáljon a "Properties" fülre a bal eszköztáron, és módosítsa a nevet PWM_FW -re
-
Válassza a Kapcsolat -automatizálás futtatása lehetőséget a tömbvázlat feletti zöld sávban.
Ha manuálisan csatlakoztatja a portokat, előfordulhat, hogy az AXI -címek nincsenek konfigurálva, ami később kommunikációs problémákhoz vezethet
-
A Flow Navigator ablaktáblán válassza ki a projektmenedzser -> Források hozzáadása elemet egy új egyéni IP -blokk létrehozásához
- válassza a "tervezési források hozzáadása vagy létrehozása" lehetőséget, majd nyomja meg a következő gombot
- kattintson a "fájl létrehozása" gombra, módosítsa a fájltípust "SystemVerilog" -ra, és írja be a "pwm" fájlt a fájlnév mezőbe, majd kattintson az OK gombra
- kattintson a Befejezés gombra
-
figyelmen kívül hagyja a Modul meghatározása ablakot az OK megnyomásával (ezeket később felülírjuk)
ha megkérdezi, hogy biztos -e, kattintson az Igen gombra
-
A források lapon kattintson duplán a pwm.sv fájlra (amely a "Tervezési források/design_1_wrapper" mappában található)
Másolja/illessze be a teljes SystemVerilog kódot az alább csatolt pwm.txt fájlból
3. lépés: Ernie TDOA létrehozása Vivadóban
Ez a lépés létrehoz egy TDOA IP -t, amelynek kimenete az AXI könyvtáron keresztül olvasható
- Hozzon létre AXI GPIO blokkot a jobb egérgombbal a háttérben, majd az "IP hozzáadása" gombra kattintva
írja be a "AXI_GPIO" szót a keresősávba, és válassza ki ezt a csomagot
- Testreszabhatja az IP-t úgy, hogy duplán kattint az új axi_gpio_1 blokkra
- A GPIO alatt jelölje be az "Összes bemenet" négyzetet, és állítsa a GPIO szélességét 32 -re. Ez a busz lesz a két érzékelő közötti érkezési időkülönbség.
- az axi_gpio_1 blokkban kattintson a GPIO port melletti + jelre a gpio_io_i [31: 0] megjelenítéséhez.
-
Kattintson a jobb gombbal a gpio_io_i [31: 0] feliratú axi_gpio_1 kimeneti portra, és válassza a "Külső létrehozása" lehetőséget
Kattintson a gpio_io_i [31: 0] feliratú új bemenetre, navigáljon a "Properties" fülre a bal eszköztáron, és módosítsa a nevet TDOA_val -ra
-
Válassza a Kapcsolati automatizálás futtatása lehetőséget a tömbvázlat feletti zöld sávban.
Ha manuálisan csatlakoztatja a portokat, előfordulhat, hogy az AXI -címek nincsenek konfigurálva, ami később kommunikációs problémákhoz vezethet
-
A Flow Navigator ablaktáblán válassza ki a projektmenedzser -> Források hozzáadása elemet egy új egyéni IP -blokk létrehozásához
- válassza a "tervezési források hozzáadása vagy létrehozása" lehetőséget, majd nyomja meg a következő gombot
- kattintson a "fájl létrehozása" gombra, módosítsa a fájltípust "SystemVerilog" -ra, és írja be a "tdoa" fájlt a fájlnév mezőbe, majd kattintson az OK gombra
- kattintson a Befejezés gombra
-
figyelmen kívül hagyja a Modul meghatározása ablakot az OK megnyomásával (ezeket később felülírjuk)
ha megkérdezi, hogy biztos -e, kattintson az Igen gombra
-
A források lapon kattintson duplán a tdoa.sv fájlra (amely a „Tervezési források/design_1_wrapper” mappában található)
Másolja/illessze be a teljes SystemVerilog kódot az alább csatolt tdoa.txt fájlból
4. lépés: Ernie csomagolása és exportálása
- Ellenőrizze, hogy a blokkdiagram úgy néz ki, mint a mellékelt képernyőkép
-
A források lapon kattintson a jobb gombbal a design_1.bd elemre, és válassza a "HDL csomagoló létrehozása …" lehetőséget.
- Válassza a "Generált kimenet másolása a felhasználói szerkesztések engedélyezéséhez" lehetőséget, majd nyomja meg az "OK" gombot
- Másolja a kódot az alább mellékelt design_1_wrapper.txt fájlból, és illessze be a létrehozott design_1_wrapper.v kód helyére
- mentés design_1_wrapper.v
-
A források lapon kattintson duplán a ZYBO_Master.xdc fájlra a Kényszerek/constrs1 alatt
- Másolja ki a kódot az alább csatolt ZYBO_Master.txt fájlból, és illessze be a meglévő ZYBO_Master.xdc kód helyére
-
Vegye figyelembe a következő bemeneti/kimeneti csapokat:
- L15: PWM jel a bal motorhoz (Pmod JA2 a Zybo -n)
- L14: PWM jel a jobb motorhoz (Pmod JA8 a Zybo -n)
- V12: kapu bemenet az 1. hangérzékelőből (Pmod JE1 a Zybo -n)
- K16: kapu bemenet a 2. hangérzékelőből (Pmod JE2 a Zybo -n)
-
A Folyamatnavigátor ablaktáblában kattintson a "Bitfolyam létrehozása" lehetőségre a Program és hibakeresés alatt
ha úgy gondolja, hogy azonnal elkészült, akkor valószínűleg nem. komolyan, főzz egy teát
-
Kattintson a Fájl-> Exportálás> Hardver létrehozása elemre
Jelölje be a „Bitstream beillesztése” lehetőséget, és nyomja meg az OK gombot
- Kattintson a Fájl-> SDK indítása elemre
5. lépés: Ernie építése
- Szerelje fel a szervókat a szervo alvázára.
-
A szervók adatlapját követve tegye a következőket:
- csatlakoztassa a szervók földjét a Zybo JA Pmod földelőcsapjaihoz (lásd a mellékelt pinout képet)
-
csatlakoztassa a szervók tápcsatlakozóját az AA elemhez
Azt tapasztaltuk, hogy amikor a szervókat csatlakoztatják a Zybo Vdd -jéhez, az alaplap túl sok áramot vesz fel, ami miatt az alaplap folyamatosan visszaáll
- csatlakoztassa a bemeneti jelcsapokat a Zybo megfelelő kimeneti csapjaihoz (bal: JA2, jobb: JA8)
- szerelje fel a hangérzékelőket az alváz elé, előre nézve, a lehető legközelebb tartva őket
-
használja a hangérzékelő csatlakoztatási útmutatóját a hangérzékelők integrálásához
- csatlakoztassa az egyes hangérzékelők földelő és Vdd csapjait a földhöz és a Zdd JE Pmod Vdd csapjaihoz (lásd a mellékelt pinout képet)
- csatlakoztassa a bal hangérzékelő kaputűjét a JE1 -hez
- csatlakoztassa a jobb hangérzékelő kaputűjét a JE2 -hez
6. lépés: Ernie első BSP -je
-
Hozzon létre egy BSP -t az imént létrehozott platform befejezéséhez.
Ezt a Fájl -> Új -> Board Support Package segítségével érheti el
-
Egy varázsló jelenik meg, amely segít a BSP létrehozásában.
- Ezt a BSP -t szeretnénk összekapcsolni a most létrehozott platformunkkal
- A hardverplatformnak összhangban kell lennie a most létrehozottal (lásd img 1)
- A CPUunk a _0 CPU lesz.
- Kattintson a Befejezés gombra
- Feltétlenül ellenőrizze, hogy az lwip141 -ben szerepel -e a bsp -je a felugró ablakban (lásd img 2)
7. lépés: FreeRTOSinging Ernie
-
Töltse le a FreeRTOS legújabb kiadását a Sourceforge -ból.
Ha a letöltés végrehajtható, akkor futtassa le a FreeRTOS fájlok kivonásához a projektkönyvtárba
- Tartsa nyitva az SDK -t, majd kattintson a Fájl -> Importálás gombra.
- Kattintson az Általános-> Egy meglévő munkaterületről lehetőségre, majd navigálni szeretnénk a FreeRTOS letöltési helyére.
-
Demónk a FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702 -ben található. A mappa kiválasztásakor három projektet kell látnunk (a kódunk (OS), ez a BSP és a HW Platform).
CSAK az RTOSDemo importálása az aktuális munkaterületre
-
Minden „kék” mappaprojektnél módosítsa a hivatkozott BSP -t
- Kattintson a jobb egérgombbal, és válassza a „Hivatkozott BSP módosítása” lehetőséget.
- Válassza ki az éppen létrehozott BSP -t a Zybook számára
- A kódszerkesztés a Xilinx SDK Blue mappáiban a tényleges kódprojektek.
8. lépés: Ernie C -kódjának importálása
- Az RTOSDemo/src könyvtárban írja felül a meglévő main.c fájlt az ide csatolt main.c fájllal.
- Másolja a main_sound.c fájlt az RTOSDemo/src könyvtárba.
9. lépés: Ernie hibakeresése
- Válassza a Futtatás -> Hibakeresési konfigurációk lehetőséget
- A bal oldali ablaktáblán hozzon létre egy új System Debugger futtatást
- A Célbeállítás lapon kattintson a
válassza a „Teljes rendszer visszaállítása” lehetőséget, hogy mind az, mind a ps7_init ki legyen választva
-
Most válassza az Alkalmazás fület.
- Válassza az „alkalmazás letöltése” lehetőséget
- Állítsa a cortexa9_0 magot „megállás a program belépésekor” értékre
- Kattintson az Alkalmazás és hibakeresés gombra.
- Ellenőrizze, hogy nincs -e hiba a hibakeresési folyamatban
- Figyelemmel kísérve a robotot, nyomja meg a Folytatás gombot, amíg a program fut, anélkül, hogy elérné a töréspontokat
- A robotnak most fordulnia és hangos zajok felé kell haladnia. Hurrá!
10. lépés: Ernie autonómvá tétele
- Miután a projekt készen áll az indulásra (problémamentesen futtatható a hibakeresőn keresztül), készen áll arra, hogy betöltse azt az alaplap flash memóriájába.
-
Hozza létre az úgynevezett „első lépcsőfokú rendszerbetöltő” (FSBL) projektet, és tartalmazza az összes utasítást, amelyre a táblának szüksége lesz a projektfájlok (bitfolyam és operációs rendszer) betöltéséhez az indításkor.
- Válassza ki: Fájl-> Új-> Alkalmazásprojekt, és a következő ablaknak kell megjelennie.
- Nevezze el, amit akar (pl. „FSBL”)
- Győződjön meg arról, hogy a hardverplatform az, amellyel dolgozik
- Nyomja meg a következő gombot (ne nyomja meg a Befejezés gombot)
- Válassza ki a Zynq FSBL sablont
- Kattintson a Befejezés gombra.
- A létrehozási folyamat befejezése után tudni fogja, hogy minden működött -e, ha a következő két új mappát látja a Project Explorer ablakban.
-
Boot kép létrehozása Most létre kell hoznia a Boot képet.
- Kattintson a jobb gombbal a projekt mappájára (ebben az esetben az enyém az „RTOSDemo”)
- Kattintson a „Boot image létrehozása” lehetőségre a legördülő menüben
-
Ha minden megfelelően van összekapcsolva, a projekt tudja, hogy milyen fájlokra van szüksége, és a következő ablak az alábbiak szerint fog kinézni (a lényeg az, hogy 3 partíciója van a Boot image szakasz alatt, a bootloader, a bitfájl és a projektek.elf fájlja).
Ha nem ez a helyzet, akkor valószínűleg valami baj van a projekt összekapcsolásával. Győződjön meg arról, hogy a projektmappák össze vannak kapcsolva a megfelelő BSP -kkel
- Kattintson a „Kép létrehozása” gombra
- A szoftverben végzett utolsó lépés az, hogy most villanja fel a korábban létrehozott képet a tábla memóriájába
- Válassza ki az SDK fő eszköztárából a Xilinx Eszközök-> Flash memória programozása lehetőséget
- Győződjön meg arról, hogy a megfelelő hardverplatformot választotta ki, és hogy a képfájl elérési útja megfelelően mutat az előző lépésben létrehozott. BIN fájlra.
- Válassza ki a „qspi single” lehetőséget a Flash típusból
- Jelölje be az „Ellenőrizze vaku után” jelölőnégyzetet az integritás biztosítása érdekében, de nincs rá szükség
- A tábla konfigurálása Végül meg kell győződnie arról, hogy a táblák programozási módjának jumperje (JP5) megfelelően van beállítva a qspi -ből (amely az imént villogott) való indítást választja a BootROM futtatásakor.
- Most egyszerűen kapcsolja be a készüléket, és győződjön meg arról, hogy a „Logikai konfiguráció kész LED” (LED 10) zölden világít.
11. lépés: Ernie aranyossá tétele
- Szőrme
- Sok prém
- Nagy szeme!
- … cilinder
Ajánlott:
Az Arduino automatikus hőmérséklet- és páratartalom -szabályozójának elkészítése: 3 lépés
Az Arduino automatikus hőmérséklet- és páratartalom -szabályozójának elkészítése: 1
Az első egyszerű szoftver elkészítése a Python használatával: 6 lépés
Hogyan készítsük el első egyszerű szoftverünket a Python használatával: Üdvözöljük ebben az utasításban. Itt elmondom, hogyan lehet saját szoftvert készíteni. Igen, ha van ötlete … de tudja, hogyan kell megvalósítani, vagy érdekli az új dolgok létrehozása, akkor ez az Ön számára …… Előfeltétel: Alapvető ismeretekkel kell rendelkeznie a P
A Mareografo elkészítése: 5 lépés
Hogyan készítsünk Mareografót: O JSN-SR04T és ultrassônico de distância sensor. Usaremos esse sensor ultrassônico para medir a distância entre o deck e a água.Neste tutorial, você aprenderá como usar esse sensor com o Arduíno, para konstrukir um Mareógrafo. Távolabbi entre o d
Az SMT sablon elkészítése: 3 lépés
Hogyan készül az SMT sablon: Miközben az elektronikaiparban megszokott módon kezdték használni a lyukon átvezető alkatrészeket, az SMT alkatrészek feltalálása esetleges cseréjükhöz vezet. Az SMT -k minden eddiginél sokkal gyorsabb NYÁK -gyártást tesznek lehetővé, lehetővé téve egy réteg forrasztópasztát
Az EchoLight elkészítése: 3 lépés
Hogyan készítsük el az EchoLight -ot: Az EchoLight egy viszonylag egyszerű eszköz, amelynek célja, hogy biztonságosabbá tegye az utat azáltal, hogy tudatosítja az emberekben, amikor gyorshajtást hajtanak végre. Az EchoLight egy Raspberry Pi alapú, csomópont-vörösben kódolt eszköz, amely többszínű LED-et világít, és riasztást ad, hogy figyelmeztesse az embereket