Sisukord:
- 1. samm: projekti loomine Vivados Ernie jaoks
- 2. samm: Ernie PWM -i loomine Vivados
- 3. samm: Ernie TDOA loomine Vivados
- Samm: Ernie pakkimine ja eksportimine
- Samm: Ernie ehitamine
- 6. samm: Ernie esimene BSP
- 7. samm: FreeRTOS -i kasutamine Ernie
- 8. samm: Ernie C -koodi importimine
- 9. samm: Ernie silumine
- Samm: muutke Ernie autonoomseks
- Samm 11: Ernie armsaks tegemine
Video: Ernie valmistamine: 11 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
See on õpetus selle kohta, kuidas Znie Boardi abil luua oma autonoomne heli jälgiv robot Ernie. See hõlmab järgmisi toiminguid: Vivados projekti loomine, FPGA-s PWM-sarnaste servomootorite draiverite loomine, kahe helianduriga liides, saabumisaja IP-i ajavahe loomine, freeRTOS-i kasutamine ja zybo aku käivitamine. See oli meie viimane projekt Cal Poly SLO reaalajas opsüsteemide klassi (CPE 439) jaoks.
Varustuse loend:
- 1 - ZYBO Zynq 7000 arendusnõukogu
- 2 - Parallaxi pideva pöörlemise servo
- 2 - heliandur (SparkFun helidetektor)
- 1 - 5 V liitiumioonaku USB -aku (plaadile)
- 4 - AA patareid (servodele)
- 1 - AA patareipakk (4 akupesaga)
- 1 - mikro -USB -kaabel
- 1 - leivalaud
- palju - meessoost juhtmed
- 1 - Servo šassii
Tarkvara nõuded:
- Xilinx Vivado disainikomplekt 2016.2
- Digilent Adept 2.16.1
1. samm: projekti loomine Vivados Ernie jaoks
- Ilmub nõustaja
- Klõpsake nuppu Edasi
-
Järgmine projekti nimi
- Ärge kunagi kasutage projekti nime ega kataloogi teed, kus on tühikuid !!!!!
- See saab olema RTL -i projekt.
- Me ei taha allikaid täpsustada
-
Klõpsates nuppu Edasi, jõuame lehele Osa. Kasutame seadet ZYNQ XC7Z010-1CLG400C.
- Vivadol pole Zybo-d etteantud tahvlitena loetletud. Valige: „osad”, seejärel otsige xc7z010clg400-1.
- Kui valite kogemata vale osa, saate kiipe hõlpsalt vahetada: Tööriistad -> Projekti seaded -> Üldine ja klõpsake jaotisel „Projekti seade” paremal asuvaid punkte
-
Klõpsake nuppu Loo ploki kujundus.
Pange sellele praegu nimi design_1
- Näete rohelist riba, mis ütleb Lisa IP, klõpsake seda.
-
Otsi Zynq.
- Topeltklõpsake töötlemissüsteemi ZYNQ7,
- See plokk ilmub meie ploki kujunduses.
- Näete rohelist riba, mis ütleb Run Block Automation, klõpsake seda.
- Laadige alla zybo_zynq_def.xml.
-
Vivados klõpsake "Impordi XPS -i seaded" ja valige "zybo_zynq_def.xml"
See täidab Vivado ploki konfiguratsiooni kõigi Zybo plaadi sisseehitatud välisseadmete ja tihvtide määramisega
-
Topeltklõpsake plokki ZYNQ.
-
MIO konfiguratsioon
- Luba taimer 0 (rakenduse töötleja üksuse all - img 1)
- Valvekoera lubamine (rakenduse töötleja üksuse all- img 1)
- Luba GPIO-> GPIO MIO (rakenduse töötleja üksuse all - img 2)
- Luba GPIO-> ENET lähtestamine (I/O välisseadmete all- img 2)
-
Kella seadistamine
Keela FCLK0 (PL -kangakellade all - img 3)
-
- Klõpsake nuppu OK.
-
„Käivita plokkide automatiseerimine” kohe.
Signaalide kohta tekib küsimusi, öelge OK
-
Klõpsake „Loo HDL -pakend”.
Soovime loodud ümbrise kopeerida, et kasutaja saaks seda muuta
- Klõpsake nuppu OK.
2. samm: Ernie PWM -i loomine Vivados
See samm loob PWM IP sisenditega, mis saadetakse AXI raamatukogu kaudu.
-
Looge AXI GPIO plokk, paremklõpsates taustal ja klõpsates nuppu "Lisa IP"
tippige otsinguribale "AXI_GPIO" ja valige see pakett
-
Kohandage IP-d uuesti, topeltklõpsates uut plokki axi_gpio_0
- GPIO all määrake GPIO laiuseks 2. Need bitid on PWM_ON -signaaliks iga PWM -mooduli eksemplari juhtimiseks.
- klõpsake "Luba kahe kanaliga"
- GPIO 2 all seadke GPIO laius väärtuseks 2. Need bitid on PWM_FW signaal, et määrata iga PWM -mooduli eksemplari suund.
-
Paremklõpsake väljundporti axi_gpio_0 sildiga GPIO ja valige käsk "Tee väline"
- Klõpsake uut väljundit nimega GPIO ja navigeerige vasakul tööriistaribal vahekaardile "Atribuudid" ja muutke nimeks PWM_ON
- Klõpsake uut väljundit nimega GPIO2 ja navigeerige vasakul tööriistaribal vahekaardile "Atribuudid" ja muutke nimeks PWM_FW
-
Valige plokkskeemi kohal asuvas rohelises ribas käsk Käivita ühenduse automatiseerimine.
Kui ühendate pordid käsitsi, ei pruugi AXI -aadresse konfigureerida, mis põhjustab hiljem sideprobleeme
-
Paanil Flow Navigator valige uue kohandatud IP -ploki loomiseks projektijuht -> Lisa allikad
- valige "Lisa või loo kujundusallikaid" ja klõpsake nuppu Järgmine
- klõpsake "loo fail", muutke failitüübiks "SystemVerilog" ja tippige failinime väljale "pwm", seejärel klõpsake nuppu OK
- klõpsake nuppu Lõpeta
-
ignoreerige mooduli määratlemise akent, vajutades OK (kirjutame need hiljem üle)
kui küsitakse, kas olete kindel, klõpsake nuppu Jah
-
Topeltklõpsake vahekaardil Allikad pwm.sv (see asub jaotises „Disainiallikad/design_1_wrapper”)
Kopeerige/kleepige kogu SystemVerilogi kood allpool lisatud failist pwm.txt
3. samm: Ernie TDOA loomine Vivados
See samm loob TDOA IP, mille väljundit saab lugeda AXI raamatukogu kaudu
-
Looge AXI GPIO plokk, paremklõpsates taustal ja klõpsates nuppu "Lisa IP"
tippige otsinguribale "AXI_GPIO" ja valige see pakett
-
Kohandage IP-d uuesti, topeltklõpsates uut axi_gpio_1 plokki
- GPIO all märkige ruut "Kõik sisendid" ja määrake GPIO laius 32. See buss on kahe anduri saabumise aja erinevus.
- klõpsake axi_gpio_1 ploki sees GPIO pordi kõrval olevat +, et näha gpio_io_i [31: 0].
-
Paremklõpsake väljundporti axi_gpio_1 sildiga gpio_io_i [31: 0] ja valige „Tee väline”
Klõpsake uut sisendit nimega gpio_io_i [31: 0] ja navigeerige vasakul tööriistaribal vahekaardile "Atribuudid" ja muutke nimeks TDOA_val
-
Valige plokkskeemi kohal asuvas rohelises ribas käsk Käivita ühenduse automatiseerimine.
Kui ühendate pordid käsitsi, ei pruugi AXI -aadresse konfigureerida, mis põhjustab hiljem sideprobleeme
-
Paanil Flow Navigator valige uue kohandatud IP -ploki loomiseks projektijuht -> Lisa allikad
- valige "Lisa või loo kujundusallikaid" ja klõpsake nuppu Järgmine
- klõpsake "loo fail", muutke failitüübiks "SystemVerilog" ja tippige failinime väljale "tdoa", seejärel klõpsake nuppu OK
- klõpsake nuppu Lõpeta
-
ignoreerige mooduli määratlemise akent, vajutades OK (kirjutame need hiljem üle)
kui küsitakse, kas olete kindel, klõpsake nuppu Jah
-
Topeltklõpsake vahekaardil Allikad allikat tdoa.sv (see asub jaotises „Disainiallikad/design_1_wrapper”)
Kopeerige/kleepige kogu SystemVerilogi kood allpool lisatud failist tdoa.txt
Samm: Ernie pakkimine ja eksportimine
- Veenduge, et plokkskeem näeb välja nagu manustatud ekraanipilt
-
Vahekaardil Allikad paremklõpsake disaini_1.bd ja valige „Loo HDL-pakend…”
- Valige "Kopeeri loodud väljund kasutaja redigeerimiseks", seejärel vajutage "OK"
- Kopeerige kood alltoodud failist design_1_wrapper.txt ja kleepige see loodud koodi_1_wrapper.v asemel
- salvesta design_1_wrapper.v
-
Topeltklõpsake vahekaardil Allikad faili ZYBO_Master.xdc jaotises Constraints/constrs1
- Kopeerige kood alltoodud failist ZYBO_Master.txt ja kleepige see olemasoleva koodi ZYBO_Master.xdc asemele
-
Pange tähele järgmisi sisendi/väljundi kontakte:
- L15: PWM -signaal vasaku mootori jaoks (Pmod JA2 Zybo -l)
- L14: PWM -signaal paremale mootorile (Pmod JA8 Zybo -l)
- V12: värava sisend heliandurist 1 (Pmod JE1 Zyboyl)
- K16: värava sisend heliandurist 2 (Pmod JE2 Zybo -l)
-
Klõpsake paanil Flow Navigator nuppu Programm ja silumine jaotises "Loo bitivool"
kui arvate, et see on kohe tehtud, siis ilmselt mitte. tõsiselt, tee teed
- Klõpsake Fail-> Eksport-> Loo riistvara
Märkige "Kaasa bitivool" ja klõpsake nuppu OK
- Klõpsake Fail-> Käivita SDK
Samm: Ernie ehitamine
- Paigaldage servod šassii külge.
-
Tehke servode andmelehe järgi järgmist.
- ühendage servode maandus Zybo's JA Pmod maandusnõeltega (vt lisatud pinout -pilti)
- ühendage servode toitenupp AA patareiga
Leidsime, et kui servod on Zybo Vdd -ga ühendatud, tõmbab plaat liiga palju voolu, põhjustades plaadi pideva lähtestamise
- ühendage sisendsignaali tihvtid Zybo vastavate väljundpistikutega (vasakul: JA2, paremal: JA8)
- paigaldage heliandurid šassii ette, näoga ettepoole, hoides neid võimalikult lähestikku
-
heliandurite integreerimiseks kasutage helianduri ühendamisjuhendit
- ühendage iga helianduri maandus ja Vdd -tihvtid maapinnaga ja Zyboy JE Pmod Vdd -tihvtidega (vt lisatud pinout -pilti)
- ühendage vasaku helianduri värava tihvt JE1 külge
- ühendage parem helianduri värava tihvt JE2 -ga
6. samm: Ernie esimene BSP
-
Looge BSP, et lõpetada äsja loodud platvorm.
Selle saate hankida menüüst File -> New -> Board Support Package
-
Ilmub viisard, mis aitab teil BSP -d luua.
- Me tahame siduda selle BSP oma platvormiga, mille me just lõime
- Riistvaraplatvorm peaks vastama äsja loodud platvormile (vt img 1)
- Meie protsessoriks on _0 protsessor.
- Klõpsake nuppu Lõpeta
- Kontrollige kindlasti lwip141, kas teie bsp -ga kaasatakse avanevas aknas (vt img 2)
7. samm: FreeRTOS -i kasutamine Ernie
-
Laadige alla uusim FreeRTOS -i versioon Sourceforge'ist.
Kui allalaaditav fail on käivitatav, käivitage see FreeRTOS -failide hankimiseks oma projekti kataloogi
- Hoidke see SDK avatuna ja klõpsake nuppu Fail -> Impordi.
- Tahame klõpsata Üldine-> Olemasolevast tööruumist ja seejärel navigeerida kohta, kust FreeRTOS-i alla laadisime.
-
Meie demo asub FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702. Selle kausta valimisel peaksime nägema kolme projekti (meie kood (OS), see on BSP ja HW platvorm).
AINULT importige RTOSDemo oma praegusesse tööruumi
-
Kõigil sinise kausta projektidel muutke viidatud BSP -d
- Paremklõpsake ja valige „Muuda viidatud BSP -d”.
- Valige oma Bybo jaoks just loodud BSP
- Koodide redigeerimine Xilinxi SDK Blue kaustades on tegelikud koodiprojektid.
8. samm: Ernie C -koodi importimine
- Kirjutage kataloogis RTOSDemo/src olemasolev main.c üle siia lisatud failiga main.c.
- Kopeerige fail main_sound.c kataloogi RTOSDemo/src.
9. samm: Ernie silumine
- Valige Käivita -> silumiskonfiguratsioonid
- Vasakul paanil looge uus System Debugger
-
Vahekaardil Sihthäälestus
valige „Lähtesta kogu süsteem”, et valida nii see kui ka ps7_init
-
Nüüd valige vahekaart Rakendus.
- Valige "rakenduse allalaadimine"
- Seadke cortexa9_0 tuum olekule „peatu programmi sisenemisel”
- Klõpsake nuppu Rakenda ja silumine.
- Veenduge, et silumisprotsessis pole vigu
- Jälgides robotit tähelepanelikult, vajutage nuppu Jätka, kuni programm töötab ilma katkestuspunkte tabamata
- Nüüd peaks robot pöörama ja liikuma valju müra suunas. Jaa!
Samm: muutke Ernie autonoomseks
- Kui teie projekt on kõik valmis (saate siluri kaudu probleemideta joosta), olete valmis selle oma tahvli välkmällu laadima.
-
Looge nn esimese etapi alglaaduri (FSBL) projekt ja see sisaldab kõiki juhiseid, mida teie plaat vajab teie projektifailide (bitivoog ja OS) käivitamisel laadimiseks.
- Valige: Fail-> Uus-> Rakendusprojekt ja peaks ilmuma järgmine aken.
- Pange sellele nimi, mida soovite (nt „FSBL”)
- Veenduge, et riistvaraplatvorm oleks see, millega te töötate
- Vajutage järgmist (ärge vajutage nuppu Lõpeta)
- Valige Zynq FSBL mall
- Klõpsake nuppu Lõpeta.
- Kui loomisprotsess on lõpule jõudnud, teate, kas kõik toimis, kui näete Project Exploreri aknas järgmisi kahte uut kausta.
-
Looge alglaadimispilt Nüüd peate looma alglaadimispildi.
- Paremklõpsake oma projekti kausta (sel juhul nimetatakse minu nime "RTOSDemo")
- Klõpsake rippmenüüst käsku Loo alglaadimispilt
-
Kui kõik on õigesti lingitud, teab projekt, milliseid faile see vajab, ja järgmine aken näeb välja selline, nagu näete allpool (võtmeks on see, et teil on jaotise Boot image all 3 sektsiooni, alglaadur, teie bitifail ja teie projektide.elf -fail.).
Kui see pole nii, võib teie projekti linkimisel olla midagi valesti. Veenduge, et projekti kaustad on seotud nende vastavate BSP -dega
- Klõpsake nuppu „Loo pilt”
- Tarkvara viimane samm on nüüd oma varem loodud pildi välklamp tahvli mällu välgutada
- Valige SDK põhitööriistaribalt Xilinxi tööriistad-> Programmeerige välkmälu
- Veenduge, et valitud on õige riistvaraplatvorm ja et pildifaili tee osutab õigesti eelmises etapis loodud. BIN -failile.
- Valige välgu tüübist „qspi single“
- Ehtsuse tagamiseks märkige ruut „Verify after flash”, kuid seda pole vaja
- Tahvli konfigureerimine Lõpuks peate veenduma, et tahvlite programmeerimisrežiimi hüppaja (JP5) on õigesti valitud nii, et BootROM -i käivitamisel käivitatakse qspi -st (mis sisaldab äsja välklampi).
- Nüüd lülitage seade lihtsalt sisse ja veenduge, et loogikakonfiguratsiooni LED (LED 10) põleb roheliselt.
Samm 11: Ernie armsaks tegemine
- Karusnahk
- Palju karusnahka
- SUURED silmad!
- … Silmusmüts
Soovitan:
Lineaarse ajami valmistamine: 3 sammu
Lineaarsed ajamid: Lineaarsed ajamid on masinad, mis muudavad pöörlemise või mis tahes liikumise tõuke- või tõmbeliigutuseks. Siin õpetan teile, kuidas teha elektrilist lineaarset ajamit majapidamis- ja hobiobjektide abil. See on väga odav
LED -kuubiku valmistamine LED -kuup 4x4x4: 3 sammu
LED -kuubiku valmistamine LED -kuup 4x4x4: LED -kuubikut võib pidada LED -ekraaniks, milles lihtsad 5 mm LED -id mängivad digitaalsete pikslite rolli. LED -kuup võimaldab meil luua pilte ja mustreid, kasutades optilise nähtuse kontseptsiooni, mida nimetatakse nägemise püsivuseks (POV). Niisiis
Vastava humanoidroboti valmistamine: 11 sammu
Ühilduva humanoidroboti meisterdamine: värskendage & Leht: 17.01.2021 Pea, nägu jne - lisatud veebikaameraKõõlused & Lihased - PTFE lisandidNärvid & Nahka juhtiv kummitulemus "Mis see asi pildil on?" See on osa robotkehast, täpsemalt prototüübist
T2 - Tee Bot -tee valmistamine on lihtne: 4 sammu
T2 - Tea Bot - Tea Brewing Made Easy: Tee bot valmistati selleks, et aidata kasutajal teed valmistada soovitatud valmistamisajani. Üks disainieesmärke oli hoida see lihtsana. ESP8266 on programmeeritud veebiserveriga servomootori juhtimiseks. ESP8266 veebiserver on mobiilile reageeriv ja
Odavate ja lihtsate kõlarialuste valmistamine: 8 sammu
Odavate ja lihtsate kõlarialuste valmistamine: meie klassil on uus stuudio salvestamiseks ja redigeerimiseks. Stuudios on monitorikõlarid, kuid nende laual istumine raskendab kuulmist. Kõlarite täpseks kuulamiseks õigele kõrgusele saamiseks otsustasime teha mõned kõlarialused. Meie