Turinys:
- 1 veiksmas: projekto „Vivado“nustatymas Ernie
- 2 žingsnis: Ernie PWM kūrimas „Vivado“
- 3 žingsnis: Ernie TDOA kūrimas „Vivado“
- 4 žingsnis: Ernie įvyniojimas ir eksportavimas
- 5 žingsnis: Ernio statyba
- 6 žingsnis: Pirmasis Ernie BSP
- 7 žingsnis: FreeRTOSinging Ernie
- 8 veiksmas: Ernie C kodo importavimas
- 9 veiksmas: derinimas Ernie
- 10 žingsnis: Padarykite Ernie autonominį
- 11 žingsnis: padarykite Ernie mielą
Video: Kaip padaryti Ernie: 11 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Tai yra pamoka, kaip sukurti „Ernie“, jūsų autonominį garso sekimo robotą, naudojant „Zybo Board“. Tai apims: kaip sukurti projektą „Vivado“, sukurti į PWM panašius servo variklio tvarkykles FPGA, sąsają su dviem garso jutikliais, sukurti atvykimo laiko skirtumą, naudoti „freeRTOS“ir paleisti „zybo“iš akumuliatoriaus. Tai buvo mūsų paskutinis projektas „Real Poly“operacinių sistemų klasei (CPE 439) „Cal Poly SLO“.
Įrangos sąrašas:
- 1 - „ZYBO Zynq 7000“plėtros valdyba
- 2 - „Parallax“nuolatinio sukimosi servo sistema
- 2 - garso jutiklis („SparkFun“garso detektorius)
- 1 - 5 V ličio jonų USB akumuliatorius (skirtas plokštėms)
- 4 - AA baterijos (servo)
- 1 - AA baterija (su 4 baterijų lizdais)
- 1 - „Micro USB“kabelis
- 1 - Duonos lenta
- daugelis - nuo vyrų iki vyrų laidai
- 1 - Servo važiuoklė
Programinės įrangos reikalavimai:
- „Xilinx Vivado Design Suite“2016.2
- „Digilent Adept“2.16.1
1 veiksmas: projekto „Vivado“nustatymas Ernie
- Atsidarys vedlys
- Spustelėkite Pirmyn
-
Kitas projekto pavadinimas
- Niekada nenaudokite projekto pavadinimo ar katalogo kelio, kuriame yra tarpų !!!!!
- Tai bus RTL projektas.
- Mes nenorime nurodyti šaltinių
-
Spustelėję Kitas, pateksime į dalį. Mes naudojame ZYNQ XC7Z010-1CLG400C.
- „Vivado“neturi „Zybo“kaip iš anksto nustatytų lentų. Pasirinkite: „dalys“, tada ieškokite xc7z010clg400-1.
- Jei per klaidą pasirinkote netinkamą dalį, galite lengvai pakeisti lustus: Įrankiai -> Projekto nustatymai -> Bendra ir spustelėkite taškus, esančius dešinėje „Projekto įrenginys“
-
Spustelėkite Sukurti bloko dizainą.
Kol kas pavadinkite jį „design_1“
- Pamatysite žalią juostą, kurioje sakoma Pridėti IP, spustelėkite ją.
-
Ieškoti Zynq.
- Dukart spustelėkite ZYNQ7 apdorojimo sistemą,
- Šis blokas bus rodomas mūsų bloko dizaine.
- Pamatysite žalią juostą, kurioje sakoma „Vykdyti blokavimo automatizavimą“, spustelėkite ją.
- Atsisiųskite zybo_zynq_def.xml žemiau.
-
„Vivado“spustelėkite „Importuoti XPS nustatymus“ir pasirinkite „zybo_zynq_def.xml“
Tai iš anksto užpildo „Vivado“bloko konfigūraciją su visais „Zybo“plokštės integruotais periferiniais įrenginiais ir kaiščių priskyrimais
-
Dukart spustelėkite ZYNQ bloką.
- MIO konfigūracija
- Įjungti laikmatį 0 (taikomųjų programų procesoriaus bloke - img 1)
- Įgalinti sargybinį (taikomųjų programų procesoriaus bloke- img 1)
- Įgalinti GPIO-> GPIO MIO („Application Processor Unit“- img 2)
- Įgalinti GPIO-> ENET Reset (pagal I/O išorinius įrenginius- img 2)
- Laikrodžio konfigūracija
Išjungti FCLK0 (pagal „PL Fabric Clocks“- img 3)
- MIO konfigūracija
- Spustelėkite Gerai.
-
„Vykdyti blokavimo automatizavimą“dabar.
Bus keletas klausimų apie signalus, pasakykite Gerai
-
Spustelėkite „Generate HDL Wrapper“.
Norėsime nukopijuoti sukurtą įvyniojimą, kad naudotojai galėtų redaguoti
- Spustelėkite Gerai.
2 žingsnis: Ernie PWM kūrimas „Vivado“
Šis veiksmas sukurs PWM IP su įėjimais, siunčiamais per AXI biblioteką.
-
Sukurkite AXI GPIO bloką dešiniuoju pelės klavišu spustelėdami foną ir spustelėdami „pridėti IP“
į paieškos juostą įveskite „AXI_GPIO“ir pasirinkite šį paketą
-
Iš naujo pritaikykite IP, dukart spustelėdami naują „axi_gpio_0“bloką
- pagal GPIO, nustatykite GPIO plotį į 2. Šie bitai bus PWM_ON signalas, nukreipiantis kiekvieną PWM modulio egzempliorių.
- spustelėkite „įgalinti dvigubą kanalą“
- pagal GPIO 2 nustatykite GPIO plotį į 2. Šie bitai bus PWM_FW signalas, skirtas nustatyti kiekvieno PWM modulio egzemplioriaus kryptį.
-
Dešiniuoju pelės mygtuku spustelėkite axi_gpio_0 išvesties prievadą, pažymėtą GPIO, ir pasirinkite „Make External“
- Spustelėkite naują išvestį, pažymėtą GPIO, ir eikite į skirtuką „Ypatybės“kairėje įrankių juostoje ir pakeiskite pavadinimą į PWM_ON
- Spustelėkite naują išvestį, pažymėtą GPIO2, ir eikite į skirtuką „Ypatybės“kairėje įrankių juostoje ir pakeiskite pavadinimą į PWM_FW
-
Žaliojoje reklamjuostėje virš blokinės diagramos pasirinkite Vykdyti ryšio automatizavimą.
Jei prievadus jungiate rankiniu būdu, AXI adresai gali būti nesukonfigūruoti, todėl vėliau gali kilti ryšio problemų
-
Srauto naršyklės srityje pasirinkite projekto valdytojas -> Pridėti šaltinių, kad sukurtumėte naują pasirinktinį IP bloką
- pasirinkite „pridėti arba sukurti dizaino šaltinius“ir spustelėkite kitą
- spustelėkite „sukurti failą“, pakeiskite failo tipą į „SystemVerilog“ir į failo pavadinimo lauką įveskite „pwm“, tada spustelėkite Gerai
- spustelėkite Baigti
-
nepaisykite lango Apibrėžti modulį paspausdami Gerai (vėliau juos perrašysime)
jei jis klausia, ar esate tikras, spustelėkite Taip
-
Skirtuke šaltiniai dukart spustelėkite pwm.sv (esantis skiltyje „Dizaino šaltiniai/design_1_wrapper“)
Nukopijuokite/įklijuokite visą „SystemVerilog“kodą iš toliau pridėto failo pwm.txt
3 žingsnis: Ernie TDOA kūrimas „Vivado“
Šis veiksmas sukurs TDOA IP, kurio išvestį galima perskaityti per AXI biblioteką
-
Sukurkite AXI GPIO bloką dešiniuoju pelės klavišu spustelėdami foną ir spustelėdami „pridėti IP“
į paieškos juostą įveskite „AXI_GPIO“ir pasirinkite šį paketą
-
Iš naujo tinkinkite IP, dukart spustelėdami naują „axi_gpio_1“bloką
- pagal GPIO pažymėkite langelį „Visos įvestys“ir nustatykite GPIO plotį į 32. Ši magistralė bus laiko skirtumas tarp dviejų jutiklių atvykimo.
- „axi_gpio_1“bloko viduje spustelėkite + šalia GPIO prievado, kad būtų parodytas „gpio_io_i“[31: 0].
-
Dešiniuoju pelės mygtuku spustelėkite axi_gpio_1 išvesties prievadą, pažymėtą gpio_io_i [31: 0], ir pasirinkite „Make External“
Spustelėkite naują įvestį, pažymėtą gpio_io_i [31: 0], ir eikite į skirtuką „Ypatybės“kairėje įrankių juostoje ir pakeiskite pavadinimą į TDOA_val
-
Žaliojoje reklamjuostėje virš blokinės diagramos pasirinkite Vykdyti ryšio automatizavimą.
Jei prievadus jungiate rankiniu būdu, AXI adresai gali būti nesukonfigūruoti, todėl vėliau gali kilti ryšio problemų
-
Srauto naršyklės srityje pasirinkite projekto valdytojas -> Pridėti šaltinių, kad sukurtumėte naują pasirinktinį IP bloką
- pasirinkite „pridėti arba sukurti dizaino šaltinius“ir spustelėkite kitą
- spustelėkite „sukurti failą“, pakeiskite failo tipą į „SystemVerilog“ir įveskite „tdoa“į failo pavadinimo lauką, tada spustelėkite Gerai
- spustelėkite Baigti
-
nepaisykite lango Apibrėžti modulį paspausdami Gerai (vėliau juos perrašysime)
jei jis klausia, ar esate tikras, spustelėkite Taip
-
Skirtuke šaltiniai dukart spustelėkite tdoa.sv (esančią skiltyje „Dizaino šaltiniai/design_1_wrapper“)
Nukopijuokite/įklijuokite visą „SystemVerilog“kodą iš tdoa.txt failo, pridėto žemiau
4 žingsnis: Ernie įvyniojimas ir eksportavimas
- Patikrinkite, ar blokinė schema atrodo kaip pridėta ekrano kopija
-
Skirtuke „Šaltiniai“dešiniuoju pelės mygtuku spustelėkite „design_1.bd“ir pasirinkite „Sukurti HDL įvyniojimą …“
- Pasirinkite „Kopijuoti sukurtą išvestį, kad naudotojai galėtų redaguoti“, tada paspauskite „Gerai“
- Nukopijuokite kodą iš failo design_1_wrapper.txt, pridėto žemiau, ir įklijuokite jį vietoje sugeneruoto dizaino_1_wrapper.v kodo
- išsaugoti design_1_wrapper.v
-
Skirtuke Šaltiniai dukart spustelėkite failą ZYBO_Master.xdc, esantį skyriuje Apribojimai/constrs1
- Nukopijuokite kodą iš toliau pridėto ZYBO_Master.txt failo ir įklijuokite jį į esamą ZYBO_Master.xdc kodą
-
Atkreipkite dėmesį į šiuos įvesties/išvesties kaiščius:
- L15: kairiojo variklio PWM signalas (Pmod JA2 „Zybo“)
- L14: PWM signalas dešiniajam varikliui (Pmod JA8 „Zybo“)
- V12: vartų įvestis iš 1 garso jutiklio (Pmod JE1 „Zybo“)
- K16: vartų įvestis iš garso jutiklio 2 („Pmod JE2“„Zybo“)
-
Srauto naršyklės srityje spustelėkite „Generuoti srautą“skiltyje „Programos ir derinimas“
jei manote, kad tai padaryta iš karto, greičiausiai taip nėra. rimtai, išgerk arbatos
-
Spustelėkite Failas-> Eksportuoti-> Generuoti aparatūrą
Pažymėkite „Įtraukti srautą“ir paspauskite Gerai
- Spustelėkite Failas-> Paleisti SDK
5 žingsnis: Ernio statyba
- Sumontuokite servo servo prie važiuoklės.
-
Vadovaudamiesi servo duomenų lapu, atlikite šiuos veiksmus:
- prijunkite servo žemę prie „Zybo“JA Pmod įžeminimo kaiščių (žr. pridėtą „pinout“paveikslėlį)
-
prijunkite servo maitinimo kištuką prie AA baterijos
Mes nustatėme, kad kai servos yra prijungtos prie „Zybo“Vdd, plokštė naudoja per daug srovės, todėl plokštė nuolat atstatoma
- prijunkite įvesties signalo kaiščius prie atitinkamų „Zybo“išvesties kaiščių (kairėje: JA2, dešinėje: JA8)
- garso jutiklius pritvirtinkite prie važiuoklės priekio, nukreipdami į priekį, laikydami juos kuo arčiau vienas kito
-
Norėdami integruoti garso jutiklius, naudokite garso jutiklio prijungimo vadovą
- prijunkite kiekvieno garso jutiklio įžeminimo ir Vdd kaiščius prie žemės ir „Zybo“„JE Pmod“Vdd kaiščius (žr. pridėtą „pinout“paveikslėlį)
- prijunkite kairiojo garso jutiklio vartų kaištį prie JE1
- prijunkite dešiniojo garso jutiklio vartų kaištį prie JE2
6 žingsnis: Pirmasis Ernie BSP
-
Sukurkite BSP, kad užbaigtumėte ką tik sukurtą platformą.
Tai galite gauti per Failas -> Naujas -> Valdybos palaikymo paketas
-
Bus rodomas vedlys, padėsiantis sukurti BSP.
- Mes norime susieti šį BSP su mūsų ką tik sukurta platforma
- Techninės įrangos platforma turėtų atitikti ką tik sukurtą (žr. 1 pav.)
- Mūsų procesorius bus _0.
- Spustelėkite Baigti
- Iššokusiame lange būtinai patikrinkite, ar lwip141 nėra įtrauktas į jūsų bsp (žr. Img 2)
7 žingsnis: FreeRTOSinging Ernie
-
Atsisiųskite naujausią „FreeRTOS“versiją iš „Sourceforge“.
Jei atsisiuntimas yra vykdomasis, paleiskite jį, kad ištrauktumėte „FreeRTOS“failus į savo projekto katalogą
- Laikykite tą SDK atidarytą ir spustelėkite Failas -> Importuoti.
- Norime spustelėti Bendra-> Iš esamos darbo srities, tada norėsime pereiti į vietą, kur atsisiuntėme „FreeRTOS“.
-
Mūsų demonstracinė versija bus FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702. Pasirinkę šį aplanką, turėtume pamatyti tris iššokančius projektus (mūsų kodas (OS), tai BSP ir HW platforma).
TIK importuokite „RTOSDemo“į dabartinę darbo vietą
-
Visuose „mėlynų“aplankų projektuose pakeiskite nurodytą BSP
- Dešiniuoju pelės mygtuku spustelėkite ir pasirinkite „Keisti nurodytą BSP“.
- Pasirinkite BSP, kurį ką tik sukūrėte savo „Zybo“
- Kodo redagavimas „Xilinx“SDK mėlynos spalvos aplankuose yra tikri kodo projektai.
8 veiksmas: Ernie C kodo importavimas
- RTOSDemo/src kataloge perrašykite esamą main.c su čia pridėtu failu main.c
- Nukopijuokite failą main_sound.c į katalogą RTOSDemo/src.
9 veiksmas: derinimas Ernie
- Pasirinkite Vykdyti -> Derinti konfigūracijas
- Kairiojoje srityje sukurkite naują sistemos derinimo programą
- Skirtuke Tikslinė sąranka
pasirinkite „Iš naujo nustatyti visą sistemą“, kad būtų pasirinktas ir tas, ir ps7_init
-
Dabar pasirinkite skirtuką Programos.
- Pasirinkite „atsisiųsti programą“
- Nustatykite „cortexa9_0“šerdį į „sustoti įvedant programą“
- Spustelėkite Taikyti ir derinti.
- Patikrinkite, ar derinimo procese nėra klaidų
- Atidžiai stebėdami robotą, paspauskite mygtuką „Tęsti“, kol programa pradės veikti nepasiekdama jokių pertraukos taškų
- Dabar robotas turėtų pasisukti ir judėti link garsių garsų. Valio!
10 žingsnis: Padarykite Ernie autonominį
- Kai jūsų projektas bus paruoštas darbui (be klaidų galite paleisti per derintuvą), būsite pasiruošę įkelti jį į savo plokštės „flash“atmintį.
-
Sukurkite vadinamąjį „pirmojo etapo įkrovos įkroviklio“(FSBL) projektą ir jame yra visos instrukcijos, kurių jūsų plokštei reikės norint paleisti projekto failus (bitų srautą ir OS).
- Pasirinkite: Failas-> Naujas-> Taikymo projektas ir turėtų pasirodyti toks langas.
- Pavadinkite tai, ką norite (pvz., „FSBL“)
- Įsitikinkite, kad aparatūros platforma yra ta, su kuria dirbate
- Paspauskite kitą (nespauskite „Baigti“)
- Pasirinkite „Zynq FSBL“šabloną
- Spustelėkite baigti.
- Kai kūrimo procesas bus baigtas, žinosite, ar viskas veikė, jei „Project Explorer“lange pamatysite šiuos du naujus aplankus.
-
Sukurkite įkrovos vaizdą Dabar turėsite sukurti įkrovos vaizdą.
- Dešiniuoju pelės mygtuku spustelėkite savo projekto aplanką (šiuo atveju mano pavadinimas yra „RTOSDemo“)
- Išskleidžiamajame meniu spustelėkite „Sukurti įkrovos vaizdą“
-
Jei viskas yra susieta teisingai, projektas žinos, kokių failų jam reikia, ir šis langas atrodys taip, kaip matote žemiau (svarbiausia, kad skyriuje „Įkrovos vaizdas“turite 3 skaidinius, įkrovos įkėlimo programą, bitų failą ir jūsų projektų.elf failą)).
Jei taip nėra, jūsų projekto susiejime gali būti kažkas negerai. Įsitikinkite, kad projekto aplankai yra susieti su atitinkamais BSP
- Spustelėkite mygtuką „Sukurti vaizdą“
-
Paskutinis žingsnis, kurį reikia atlikti programinėje įrangoje, yra dabar jau sukurto vaizdo perkėlimas į lentos atmintį
- Iš pagrindinės SDK įrankių juostos pasirinkite „Xilinx Tools-> Program Flash Flash“
- Įsitikinkite, kad pasirinkta tinkama aparatinės įrangos platforma ir ar vaizdo failo kelias teisingai nukreiptas į. BIN failą, sukurtą atlikus ankstesnį veiksmą.
- Iš „Flash“tipo pasirinkite „qspi single“
- Pažymėkite „Tikrinti po blykstės“, kad užtikrintumėte vientisumą, tačiau to nereikia
- Lentos konfigūravimas Galiausiai turite įsitikinti, kad lentų programavimo režimo trumpiklis (JP5) yra teisingai nustatytas paleisti iš „qspi“(kuriame yra ką tik mirgėjęs), kai paleidžiamas „BootROM“.
- Dabar tiesiog įjunkite įrenginį ir įjunkite ir įsitikinkite, kad „Logic Configuration Done LED“(LED 10) dega žalia spalva.
11 žingsnis: padarykite Ernie mielą
- Kailiniai
- Daug kailių
- Didelės akys!
- … skrybėlę
Rekomenduojamas:
Kaip padaryti, kad „Windows 7“atrodytų kaip „Windows 95“: 7 veiksmai
Kaip padaryti, kad „Windows 7“atrodytų kaip „Windows 95“: noriu parodyti, kaip padaryti, kad „Windows 7“atrodytų kaip „Windows 95“, ir įtraukiau papildomą žingsnį, kad jis atrodytų kaip „Windows 98“, taip pat skirtas žmonėms, norintiems sukurti „Windows 7“atrodo kaip „Windows 98.“Žmonėms, norintiems, kad „Windows 7“atrodytų
KAIP PADARYTI ARDUINO NANO/MINI - Kaip įrašyti įkrovos įkroviklį: 5 žingsniai
KAIP PADARYTI ARDUINO NANO/MINI | Kaip įrašyti įkrovos įkroviklį: šioje instrukcijoje aš jums parodysiu, kaip padaryti „Arduino MINI“iš nulio. Šioje instrukcijoje aprašyta procedūra gali būti naudojama bet kokioms „arduino“plokštėms sukurti pagal jūsų pasirinktinius projekto reikalavimus. Jei norite geriau suprasti, žiūrėkite vaizdo įrašą
Kaip padaryti, kad „Windows Vista“ar „XP“atrodytų kaip „Mac Os X“, nekeliant pavojaus kompiuteriui: 4 veiksmai
Kaip padaryti, kad „Windows Vista“ar „XP“atrodytų kaip „Mac Os X“, nekeliant pavojaus kompiuteriui: Yra paprastas būdas priversti nuobodų seną „Vista“ar „XP“atrodyti beveik taip pat, kaip „Mac Os X“, tai tikrai lengva išmokti! Norėdami atsisiųsti, eikite į http://rocketdock.com
Kaip padaryti, kad jūsų kompiuteris atrodytų kaip „Windows Vista“!: 5 žingsniai
Kaip padaryti, kad jūsų kompiuteris atrodytų kaip „Windows Vista“!: Dabar aš jums parodysiu, kaip „Windows XP“atrodyti kaip „Windows Vista“. Taigi aš lažinuosi, kad kai kurie iš jūsų klausia …. kas yra „Windows Vista“… Na, ar jūs kada nors girdėjote apie „Windows XP“, todėl tai yra geriausia OS. Dabar lažinuosi, kad kai kurie iš jūsų manęs klausia
Kaip padaryti, kad „Windows 2000“atrodytų kaip „Windows XP“: 5 žingsniai
Kaip padaryti, kad „Windows 2000“atrodytų kaip „Windows XP“: Per šią pamoką galėsite paversti savo nuobodžią „Windows 2000“sąsają lygiai taip pat, kaip XP, naudodami kelias programas. Yra keletas elementų, kurie nebus įtraukti, pvz., Valdymo skydelio išvaizda ir pan. Tu būsi