Obsah:
- Krok 1: Nastavenie projektu vo Vivado pre Ernie
- Krok 2: Vytvorenie Ernieho PWM vo Vivado
- Krok 3: Vytvorenie Ernieho TDOA vo Vivado
- Krok 4: Balenie a export Ernie
- Krok 5: Budovanie Ernie
- Krok 6: Ernieho prvý BSP
- Krok 7: FreeRTOS'ing Ernie
- Krok 8: Import Ernieho kódu C
- Krok 9: Ladenie Ernie
- Krok 10: Urobte Ernie autonómnym
- Krok 11: Make Ernie Cute
Video: Ako urobiť Ernie: 11 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
Toto je návod, ako vytvoriť Ernie, vášho autonómneho robota sledujúceho zvuk, pomocou dosky Zybo. Bude sa zaoberať tým, ako: vytvoriť projekt vo Vivado, vytvoriť ovládače servomotorov podobných PWM v FPGA, rozhranie s dvoma zvukovými senzormi, vytvoriť časový rozdiel príjazdovej IP, použiť freeRTOS a spustiť zybo z batérie. Toto bol náš konečný projekt pre triedu operačných systémov v reálnom čase (CPE 439) v spoločnosti Cal Poly SLO.
Zoznam vybavenia:
- 1 - Vývojová rada ZYBO Zynq 7000
- 2 - Servo s nepretržitým otáčaním paralaxy
- 2 - Zvukový senzor (SparkFun Sound Detector)
- 1 - 5v lítium -iónová batéria USB (na dosku)
- 4 - batérie AA (pre serva)
- 1 - batéria AA (so 4 slotmi na batérie)
- 1 - Micro USB kábel
- 1 - Breadboard
- mnoho - mužské až mužské drôty
- 1 - Podvozok serva
Požiadavky na softvér:
- Suita Xilinx Vivado Design Suite 2016.2
- Digilent Adept 2.16.1
Krok 1: Nastavenie projektu vo Vivado pre Ernie
- Zobrazí sa sprievodca
- Kliknite na Ďalej
-
Ďalej pomenujte projekt
- Nikdy nepoužívajte názov projektu alebo cestu k adresáru, ktorá obsahuje medzery !!!!!
- Pôjde o projekt RTL.
- Nechceme špecifikovať zdroje
-
Kliknutím na Ďalej sa dostaneme na stránku Časti. Používame ZYNQ XC7Z010-1CLG400C.
- Vivado nemá Zybo uvedeného ako jednu z preddefinovaných dosiek. Vyberte: „diely“a potom vyhľadajte xc7z010clg400-1.
- Ak omylom vyberiete nesprávnu časť, môžete čipy ľahko prepnúť: Nástroje -> Nastavenia projektu -> Všeobecné a kliknite na bodky napravo od položky „Zariadenie projektu“
-
Kliknite na položku Vytvoriť návrh bloku.
Zatiaľ to pomenujte design_1
- Uvidíte zelený pruh s názvom Pridať IP, kliknite naň.
-
Vyhľadajte Zynq.
- Dvakrát kliknite na ZYNQ7 Processing System,
- Tento blok sa objaví v našom dizajne bloku.
- Uvidíte zelený pruh, ktorý hovorí Spustiť automatizáciu blokov, kliknite naň.
- Nižšie si stiahnite zybo_zynq_def.xml.
-
V programe Vivado kliknite na „Importovať nastavenia XPS“a vyberte „zybo_zynq_def.xml“
Toto vopred naplní konfiguráciu bloku Vivado všetkými vstavanými perifériami a priradením pinov dosky Zybo
-
Dvakrát kliknite na blok ZYNQ.
-
Konfigurácia MIO
- Povoliť časovač 0 (pod jednotkou aplikačného procesora - obrázok 1)
- Povoliť strážneho psa (pod jednotkou aplikačného procesora- obrázok 1)
- Povoliť GPIO-> GPIO MIO (pod jednotkou aplikačného procesora - obrázok 2)
- Povoliť reset GPIO-> ENET (pod I/O perifériami- obrázok 2)
-
Konfigurácia hodín
Zakázať FCLK0 (pod hodinkami PL Fabric - obrázok 3)
-
- Kliknite na Ok.
-
Teraz spustite automatizáciu blokov.
Bude niekoľko otázok o signáloch, povedzte OK
-
Kliknite na „Generovať HDL Wrapper“.
Generovaný wrapper budeme chcieť skopírovať, aby sme mohli vykonávať úpravy používateľov
- Kliknite na tlačidlo OK.
Krok 2: Vytvorenie Ernieho PWM vo Vivado
Tento krok vygeneruje IP PWM so vstupmi odoslanými prostredníctvom knižnice AXI.
-
Vytvorte blok AXI GPIO kliknutím pravým tlačidlom myši na pozadie a kliknutím na „pridať IP“
do vyhľadávacieho panela zadajte „AXI_GPIO“a vyberte tento balík
-
Prispôsobte IP dvojitým kliknutím na nový blok axi_gpio_0
- pod GPIO nastavte šírku GPIO na 2. Tieto bity budú signálom PWM_ON na pohon každej inštancie modulu PWM.
- kliknite na „povoliť dvojkanálový“
- pod GPIO 2 nastavte šírku GPIO na 2. Tieto bity budú signálom PWM_FW na nastavenie smeru každej inštancie modulu PWM.
-
Kliknite pravým tlačidlom myši na výstupný port axi_gpio_0 označený ako GPIO a zvoľte „Vytvoriť externý“
- Kliknite na nový výstup s názvom GPIO a v ľavom paneli s nástrojmi prejdite na kartu „Vlastnosti“a zmeňte názov na PWM_ON
- Kliknite na nový výstup označený ako GPIO2 a v ľavom paneli s nástrojmi prejdite na kartu „Vlastnosti“a zmeňte názov na PWM_FW.
-
V zelenom banneri nad blokovým diagramom vyberte položku Spustiť automatizáciu pripojenia.
Ak porty pripájate manuálne, adresy AXI nemusia byť nakonfigurované, čo môže viesť k problémom s komunikáciou neskôr
-
Na table Flow Navigator vyberte projektový manažér -> Pridať zdroje a vytvorte nový vlastný blok IP
- zvoľte „pridať alebo vytvoriť zdroje návrhu“a kliknite na tlačidlo Ďalej
- kliknite na „vytvoriť súbor“, zmeňte typ súboru na „SystemVerilog“, do poľa pre názov súboru zadajte „pwm“a potom kliknite na tlačidlo OK
- kliknite na Dokončiť
-
ignorujte okno Definovať modul stlačením OK (prepíšeme ich neskôr)
ak sa vás spýta, či ste si istí, kliknite na tlačidlo Áno
-
Na karte zdroje dvakrát kliknite na súbor pwm.sv (nachádza sa v časti „Zdroje návrhu/design_1_wrapper“)
Skopírujte/prilepte celý kód SystemVerilog zo súboru pwm.txt, ktorý je pripojený nižšie
Krok 3: Vytvorenie Ernieho TDOA vo Vivado
Tento krok vygeneruje IP TDOA, ktorej výstup je možné čítať prostredníctvom knižnice AXI
-
Vytvorte blok AXI GPIO kliknutím pravým tlačidlom myši na pozadie a kliknutím na „pridať IP“
do vyhľadávacieho panela zadajte „AXI_GPIO“a vyberte tento balík
-
Prispôsobte IP dvojitým kliknutím na nový blok axi_gpio_1
- v časti GPIO začiarknite políčko „Všetky vstupy“a nastavte šírku GPIO na 32. Táto zbernica bude predstavovať časový rozdiel medzi príchodom dvoch senzorov.
- vnútri bloku axi_gpio_1 kliknutím na + vedľa portu GPIO odhalíte gpio_io_i [31: 0].
-
Kliknite pravým tlačidlom myši na výstupný port axi_gpio_1 označený ako gpio_io_i [31: 0] a zvoľte „Vytvoriť externý“
Kliknite na nový vstup s názvom gpio_io_i [31: 0], prejdite na kartu „vlastnosti“na ľavom paneli s nástrojmi a zmeňte názov na TDOA_val
-
V zelenom banneri nad blokovým diagramom vyberte položku Spustiť automatizáciu pripojenia.
Ak porty pripájate manuálne, adresy AXI nemusia byť nakonfigurované, čo môže viesť k problémom s komunikáciou neskôr
-
Na table Flow Navigator vyberte projektový manažér -> Pridať zdroje a vytvorte nový vlastný blok IP
- zvoľte „pridať alebo vytvoriť zdroje návrhu“a kliknite na tlačidlo Ďalej
- kliknite na „vytvoriť súbor“, zmeňte typ súboru na „SystemVerilog“, do poľa pre názov súboru zadajte „tdoa“a potom kliknite na tlačidlo OK
- kliknite na Dokončiť
-
ignorujte okno Definovať modul stlačením OK (prepíšeme ich neskôr)
ak sa vás spýta, či ste si istí, kliknite na tlačidlo Áno
-
Na karte zdroje dvakrát kliknite na súbor tdoa.sv (nachádza sa v časti „Zdroje návrhu/design_1_wrapper“)
Skopírujte/prilepte celý kód SystemVerilog zo súboru tdoa.txt, ktorý je pripojený nižšie
Krok 4: Balenie a export Ernie
- Overte, či blokový diagram vyzerá ako priložený obrázok
-
Na karte zdrojov kliknite pravým tlačidlom myši na design_1.bd a vyberte položku „Vytvoriť Wrapper HDL …“
- Vyberte „Kopírovať generovaný výstup, aby sa povolili úpravy používateľa“, a potom kliknite na „OK“
- Skopírujte kód z súboru design_1_wrapper.txt, ktorý je priložený nižšie, a prilepte ho namiesto vygenerovaného kódu design_1_wrapper.v
- uložiť design_1_wrapper.v
-
Na karte zdroje dvakrát kliknite na súbor ZYBO_Master.xdc v časti Obmedzenia/constrs1
- Skopírujte kód zo súboru ZYBO_Master.txt, ktorý je priložený nižšie, a prilepte ho namiesto existujúceho kódu ZYBO_Master.xdc
-
Všimnite si nasledujúcich vstupných/výstupných pinov:
- L15: Signál PWM pre ľavý motor (Pmod JA2 na Zybo)
- L14: Signál PWM pre pravý motor (Pmod JA8 na Zybo)
- V12: vstup brány zo zvukového senzora 1 (Pmod JE1 na Zybo)
- K16: vstup brány zo zvukového senzora 2 (Pmod JE2 na Zybo)
-
Na table Flow Navigator kliknite na „Generovať bitový tok“v časti Program a ladenie
ak si myslíte, že je to hneď hotové, tak to asi nie je. vážne, urob si čaj
-
Kliknite na položku Súbor-> Exportovať-> Generovať hardvér
Začiarknite políčko „Zahrnúť bitový tok“a kliknite na tlačidlo OK
- Kliknite na Súbor-> Spustiť SDK
Krok 5: Budovanie Ernie
- Namontujte serva na podvozok serva.
-
Podľa technického listu pre serva urobte nasledujúce:
- pripojte uzemnenie serva k uzemňovacím kolíkom na ZABO JA Pmod (pozri priložený obrázok vývodu)
- pripojte napájací kolík serva k batérii AA
Zistili sme, že keď sú serva pripojené k Zybo's Vdd, doska odoberá príliš veľa prúdu, čo spôsobuje, že sa doska kontinuálne resetuje
- pripojte kolíky vstupného signálu k príslušným výstupným kolíkom Zybo (vľavo: JA2, vpravo: JA8)
- namontujte zvukové senzory na prednú časť šasi smerom dopredu a držte ich čo najbližšie k sebe
-
pomocou sprievodcu pripojením zvukového senzora integrujte zvukové snímače
- zapojte uzemnenie a kolíky Vdd každého zvukového senzora k zemi a kolíky Vdd na zariadení Zybo JE Pmod (pozri priložený obrázok vývodu)
- zapojte kolík brány ľavého zvukového senzora do JE1
- zapojte pravý kolík brány snímača zvuku do JE2
Krok 6: Ernieho prvý BSP
-
Vytvorte BSP na zabalenie platformy, ktorú sme práve vytvorili.
Môžete to získať prostredníctvom Súboru -> Nový -> Balíček podpory dosky
-
Zobrazí sa sprievodca, ktorý vám pomôže vytvoriť BSP.
- Chceme spojiť tento BSP s našou platformou, ktorú sme práve vytvorili, takže
- Hardvérová platforma by mala byť v súlade s tou, ktorú sme práve vytvorili (pozri obr. 1)
- Náš CPU bude _0 CPU.
- Kliknite na Dokončiť
- V okne, ktoré sa otvorí, nezabudnite zaškrtnúť políčko lwip141 s vašou bsp (pozri obrázok 2)
Krok 7: FreeRTOS'ing Ernie
-
Stiahnite si najnovšie vydanie FreeRTOS z Sourceforge.
Ak je sťahovanie spustiteľný, spustite ho a extrahujte súbory FreeRTOS do adresára projektu
- Ponechajte túto súpravu SDK otvorenú a kliknite na položku Súbor -> Importovať.
- Chceme kliknúť na Všeobecné-> Z existujúceho pracovného priestoru, a potom sa budeme chcieť navigovať tam, kde sme stiahli FreeRTOS.
-
Naše demo bude umiestnené vo FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702. Po výbere tohto priečinka by sa mali objaviť tri projekty (náš kód (OS), je to BSP a HW platforma).
Importujte IBA RTOSDemo do aktuálneho pracovného priestoru
-
Na všetkých projektoch „modrých“priečinkov zmeňte odkazovaný BSP
- Kliknite pravým tlačidlom myši a zvoľte „Zmeniť referenčnú BSP“.
- Vyberte BSP, ktorý ste práve vytvorili pre svoje Zybo
- Úpravy kódu v priečinkoch Xilinx SDK Blue sú skutočnými projektmi kódu.
Krok 8: Import Ernieho kódu C
- V adresári RTOSDemo/src prepíšte existujúci súbor main.c tu priloženým súborom main.c.
- Skopírujte súbor main_sound.c do adresára RTOSDemo/src.
Krok 9: Ladenie Ernie
- Vyberte položku Spustiť -> Konfigurácie ladenia
- Na ľavom paneli vytvorte nový beh ladenia systému
- Na karte Nastavenie cieľa
vyberte „Resetovať celý systém“, aby boli vybraté položky that and ps7_init
-
Teraz vyberte kartu Aplikácia.
- Vyberte „stiahnuť aplikáciu“
- Nastavte jadro cortexa9_0 na „zastavenie pri vstupe do programu“
- Kliknite na položku Použiť a ladiť.
- Overte, či v procese ladenia nie sú žiadne chyby
- Robota pozorne sledujte a stláčajte tlačidlo Pokračovať, kým sa program nespustí bez toho, aby ste narazili na zarážky
- Robot by sa mal teraz otočiť a pohybovať smerom k hlasným zvukom. Jéj!
Krok 10: Urobte Ernie autonómnym
- Akonáhle je váš projekt pripravený (môžete ho bez problémov spustiť pomocou ladiaceho programu), môžete ho načítať do pamäte Flash na doske.
-
Vytvorte projekt, ktorý sa nazýva „prvý stupeň zavádzača“(FSBL) a obsahuje všetky pokyny, ktoré bude vaša doska potrebovať na načítanie súborov projektu (bitový tok a operačný systém) pri spustení.
- Vyberte: Súbor-> Nový-> Projekt aplikácie a malo by sa objaviť nasledujúce okno.
- Pomenujte ho, ako chcete (t.j. „FSBL“)
- Zaistite, aby bola hardvérová platforma tá, s ktorou pracujete
- Stlačte tlačidlo Ďalej (Nestláčajte Dokončiť)
- Vyberte šablónu Zynq FSBL
- Kliknite na Dokončiť.
- Po dokončení procesu vytvárania budete vedieť, či všetko fungovalo, ak v okne Project Explorer uvidíte nasledujúce dva nové priečinky.
-
Vytvoriť bootovací obrázok Teraz budete musieť vytvoriť bootovací obrázok.
- Kliknite pravým tlačidlom myši na priečinok projektu (v tomto prípade sa ten môj nazýva „RTOSDemo“)
- V rozbaľovacej ponuke kliknite na položku „Vytvoriť zavádzací obrázok“
-
Ak je všetko prepojené správne, projekt bude vedieť, aké súbory potrebuje, a nasledujúce okno bude vyzerať tak, ako vidíte nižšie (kľúčové je, že v sekcii Boot image máte 3 oddiely, bootloader, váš bitový súbor a súbor.elf vášho projektu).
Ak to tak nie je, je možné, že s prepojením vášho projektu nie je niečo v poriadku. Zaistite, aby boli priečinky projektu prepojené s ich príslušnými BSP
- Kliknite na tlačidlo „Vytvoriť obrázok“
-
Posledným krokom, ktorý je potrebné vykonať v softvéri, je teraz flashovať predtým vytvorený obrázok do pamäte dosky
- Na hlavnom paneli s nástrojmi SDK vyberte položku Xilinx Tools-> Program Flash Flash
- Zaistite, aby bola vybratá správna hardvérová platforma a aby cesta k súboru s obrázkom správne smerovala na súbor. BIN vytvorený v predchádzajúcom kroku.
- Z typu Flash vyberte „qspi single“
- Začiarknutím políčka „Overiť po blesku“zaistíte integritu, nie je to však potrebné
- Nakonfigurujte svoju dosku Nakoniec je potrebné zaistiť, aby bol prepojovací prepínač režimov programovania dosiek (JP5) správne nastavený na výber zavedenia z qspi (ktorý obsahuje to, čo ste práve blikali) pri spustení BootROM.
- Teraz jednoducho zapnite napájanie zariadenia a zaistite, aby „LED dióda logickej konfigurácie dokončená“(LED 10) svietila zelene.
Krok 11: Make Ernie Cute
- Kožušina
- Veľa kožušiny
- Veľké oči!
- … Cylindr
Odporúča:
Ako urobiť klapku? Vypínač ON/OFF -- Bez akéhokoľvek IC: 6 krokov
Ako urobiť klapku? Vypínač ON/OFF || Bez akéhokoľvek IC: Toto je zapnutie prepínača bez akéhokoľvek IC. Môžete tlieskať? Prvýkrát potom žiarovka? ZAPNÚŤ a druhýkrát tlieskať žiarovku? VYPNUTÉ. Tento obvod je založený na klopnom obvode SR. Komponenty 1. Tranzistory BC547 NPN (4 ks) 2. Rezistory 10 k (5 ks) 3. 1K odoláva
Chrome -gadget na ovládanie dinosaurom ovládaný gestami / Ako to urobiť / #smartcreativity: 14 krokov
Gadget ovládaný gestom ruky Chrome Dinosaur / Ako to urobiť / #smartcreativity: Dobrý deň, priatelia, v tomto návode vám ukážem veľmi exkluzívny projekt. Takže dnes vám ukážem, ako ovládať hru Dinosaur Chrome gestom ruky veľmi ľahko. Ak budete používať túto technológiu na ovládanie chrómu DINO, spadnete
Ako urobiť počítadlo krokov?: 3 kroky (s obrázkami)
Ako urobiť počítadlo krokov ?: Predtým som dobre fungoval v mnohých športoch: chôdza, beh, jazda na bicykli, hranie bedmintonu atď. Rád jazdím a dlho cestujem. Pozrite sa na moje brucho …… No, každopádne som sa rozhodol začať cvičiť. Aké vybavenie si mám pripraviť?
Ako urobiť Mareografo: 5 krokov
Ako urobiť Mareografo: O JSN-SR04T é senzor ultrassônico de distância. Ultrassônico senzor senzora sa používa na dosah a vzdialenosť medzi základňami a príručkami. Teraz si prečítajte návod, ako sa naučiť pracovať s týmto senzorom. Distribúcia vstupu
Ako urobiť A.I. Časť 2: 9 krokov
Ako urobiť A.I. Časť 2: Toto je časť 2 o krokoch, ktoré som vykonal pri vytváraní AI na počítači so systémom Windows pomocou bezplatnej databázy, nástroja na vývoj programovania a bezplatného vstavaného motora TTS, ktorý je súčasťou systému Windows. Slovo „Windows“patrí spoločnosti Microsoft. Slovo „Dra