INHOUDSOPGAWE:
- Stap 1: Stel 'n projek op in Vivado vir Ernie
- Stap 2: Skep Ernie's PWM in Vivado
- Stap 3: Skep Ernie's TDOA in Vivado
- Stap 4: Verpak en voer Ernie uit
- Stap 5: Bou Ernie
- Stap 6: Ernie se eerste BSP
- Stap 7: FreeRTOS'e Ernie
- Stap 8: Die invoer van Ernie's C -kode
- Stap 9: Ontfout Ernie
- Stap 10: Maak Ernie outonoom
- Stap 11: Maak Ernie oulik
Video: Hoe om Ernie te maak: 11 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Dit is 'n handleiding oor hoe u Ernie, u outonome klank na robot, met 'n Zybo -bord kan bou. Dit gaan oor hoe om: 'n projek in Vivado te skep, PWM-agtige servomotorbestuurders in die FPGA te skep, koppelvlak met twee klanksensors, 'n tydsverskil van aankoms-IP te skep, freeRTOS te gebruik en die zybo van 'n battery af te laai. Dit was ons laaste projek vir 'n Real Time Operating Systems -klas (CPE 439) by Cal Poly SLO.
Toerustinglys:
- 1 - ZYBO Zynq 7000 Ontwikkelingsraad
- 2 - Parallax Continuous Rotation Servo
- 2 - Klanksensor (SparkFun -klankdetektor)
- 1 - 5v litium -ion USB -batterypak (vir bord)
- 4 - AA -batterye (vir servo's)
- 1 - AA -batterypak (met 4 batterygleuwe)
- 1 - Mikro -USB -kabel
- 1 - Broodbord
- baie - Manlike tot Manlike drade
- 1 - Servo onderstel
Sagteware vereistes:
- Xilinx Vivado Design Suite 2016.2
- Digilent Adept 2.16.1
Stap 1: Stel 'n projek op in Vivado vir Ernie
- 'N towenaar verskyn
- Klik op Volgende
-
Noem dan die projek
- Moet nooit 'n projeknaam of gidspad met spasies daarin gebruik nie !!!!!
- Dit sal 'n RTL -projek wees.
- Ons wil nie bronne spesifiseer nie
-
As u op Volgende klik, kom ons na die deelbladsy. Ons gebruik 'n ZYNQ XC7Z010-1CLG400C.
- Die Zybo word nie by Vivado gelys as een van die vooraf gedefinieerde borde nie. Kies: "dele" en soek dan na xc7z010clg400-1.
- As u per ongeluk die verkeerde deel kies, kan u maklik die skyfies verander: Tools -> Project Settings -> General en klik op die kolletjies regs van "Project Device"
-
Klik op Skep blokontwerp.
Noem dit ontwerp_1 vir eers
- U sal 'n groen balk sien wat sê Voeg IP toe, klik daarop.
-
Soek Zynq.
- Dubbelklik op die ZYNQ7 -verwerkingstelsel,
- Hierdie blok sal in ons blokontwerp verskyn.
- U sal 'n groen balk sien wat sê Run Block Automation, klik daarop.
- Laai zybo_zynq_def.xml hieronder af.
-
Klik in Vivado op “Import XPS Settings” en kies “zybo_zynq_def.xml”
Dit vul die Vivado-blokkonfigurasie vooraf in met al die ingeboude randapparatuur en pin-toewysings van die Zybo-bord
-
Dubbelklik op die ZYNQ -blok.
-
MIO -opset
- Aktiveer tydteller 0 (onder Toepassingsverwerkingseenheid - afb 1)
- Aktiveer waghond (onder Toepassingsverwerker-eenheid- afb 1)
- Aktiveer GPIO-> GPIO MIO (onder Toepassingsverwerkingseenheid - afb 2)
- Aktiveer GPIO-> ENET Herstel (onder I/O randapparatuur- afb 2)
-
Opstelling van die klok
Skakel FCLK0 uit (onder PL -stofklokke - afb 3)
-
- Klik op Ok.
-
"Begin nou blokautomatisering".
Daar sal 'n paar vrae oor seine wees, sê OK
-
Klik op "Genereer HDL Wrapper".
Ons sal die gegenereerde omslag wil kopieer om gebruikersbewerkings moontlik te maak
- Klik op OK.
Stap 2: Skep Ernie's PWM in Vivado
Hierdie stap genereer 'n PWM IP met insette wat via die AXI -biblioteek gestuur word.
-
Skep AXI GPIO-blok deur met die rechtermuisknop op die agtergrond te klik en op "voeg IP" te klik
tik "AXI_GPIO" in die soekbalk en kies hierdie pakket
-
Pas die IP weer aan deur te dubbelklik op die nuwe axi_gpio_0 blok
- stel GPIO -breedte onder GPIO in op 2. Hierdie bisse sal die PWM_ON -sein wees om elke PWM -module -instansie aan te dryf.
- klik op "aktiveer tweekanaal"
- onder GPIO 2, stel GPIO -breedte op 2. Hierdie bisse is die PWM_FW -sein om die rigting van elke PWM -module -instansie in te stel.
-
Klik met die rechtermuisknop op die axi_gpio_0 -uitvoerpoort met die naam GPIO en kies 'Maak ekstern'
- Klik op die nuwe uitvoer met die naam GPIO, en gaan na die oortjie "eienskappe" in die linker werkbalk en verander die naam na PWM_ON
- Klik op die nuwe uitvoer met die naam GPIO2, en gaan na die oortjie "eienskappe" in die linker werkbalk en verander die naam na PWM_FW
-
Kies Run Connection Automation in die groen vaandel bo die blokdiagram.
As u die poorte handmatig verbind, word AXI -adresse moontlik nie gekonfigureer nie, wat later kommunikasieprobleme kan veroorsaak
-
Kies in die Flow Navigator -venster projekbestuurder -> Voeg bronne by om 'n nuwe pasgemaakte IP -blok te skep
- kies 'voeg by of skep ontwerpbronne' en klik dan verder
- klik op "skep lêer", verander lêertipe na "SystemVerilog" en tik "pwm" in die lêernaamveld, en klik dan op OK
- klik op Voltooi
-
ignoreer die venster Definieer module deur op OK te druk (ons sal dit later oorskryf)
As dit vra of u seker is, klik dan op Ja
-
Dubbelklik op die bronne-oortjie op die pwm.sv (geleë in "Ontwerpbronne/design_1_wrapper")
Kopieer/plak die hele SystemVerilog -kode uit die pwm.txt -lêer wat hieronder aangeheg is
Stap 3: Skep Ernie's TDOA in Vivado
Hierdie stap genereer 'n TDOA IP waarvan die uitset gelees kan word via die AXI -biblioteek
-
Skep AXI GPIO-blok deur met die rechtermuisknop op die agtergrond te klik en op "voeg IP" te klik
tik "AXI_GPIO" in die soekbalk en kies hierdie pakket
-
Pas die IP weer aan deur te dubbelklik op die nuwe axi_gpio_1-blok
- onder GPIO, merk die boks "Alle insette" en stel die breedte van GPIO op 32. Hierdie bus is die tydsverskil tussen aankoms tussen die twee sensors.
- binne die axi_gpio_1 -blok, klik op die + langs die GPIO -poort om gpio_io_i [31: 0] te openbaar.
-
Klik met die rechtermuisknop op die axi_gpio_1 -uitvoerpoort met die naam gpio_io_i [31: 0] en kies 'Maak ekstern'
Klik op die nuwe invoer met die naam gpio_io_i [31: 0], en gaan na die oortjie "eienskappe" in die linker werkbalk, en verander die naam na TDOA_val
-
Kies Run Connection Automation in die groen vaandel bo die blokdiagram.
As u die poorte met die hand verbind, word AXI -adresse moontlik nie gekonfigureer nie, wat later kommunikasieprobleme kan veroorsaak
-
Kies in die Flow Navigator -venster projekbestuurder -> Voeg bronne by om 'n nuwe pasgemaakte IP -blok te skep
- kies 'voeg by of skep ontwerpbronne' en klik daarop
- klik op "skep lêer", verander lêertipe na "SystemVerilog" en tik "tdoa" in die lêernaamveld, en klik dan op OK
- klik op Voltooi
-
ignoreer die venster Definieer module deur op OK te druk (ons sal dit later oorskryf)
As dit vra of u seker is, klik dan op Ja
-
Dubbelklik op die tabblad bronne op die tdoa.sv (geleë in "Ontwerpbronne/design_1_wrapper")
Kopieer/plak die hele SystemVerilog -kode uit die tdoa.txt -lêer wat hieronder aangeheg is
Stap 4: Verpak en voer Ernie uit
- Verifieer dat die blokdiagram lyk soos die aangehegte skermkiekie
-
Klik met die rechtermuisknop op design_1.bd in die bronne-oortjie en kies "Skep HDL Wrapper …"
- Kies "Kopieer gegenereerde uitvoer om gebruikersbewerkings toe te laat", en druk dan "OK"
- Kopieer die kode van die ontwerp_1_wrapper.txt wat hieronder aangeheg is en plak dit in die plek van die gegenereerde design_1_wrapper.v -kode
- stoor design_1_wrapper.v
-
Dubbelklik in die bronne-oortjie op die ZYBO_Master.xdc-lêer onder Beperkings/beperkings1
- Kopieer die kode van die onderstaande ZYBO_Master.txt en plak dit in die plek van die bestaande ZYBO_Master.xdc -kode
-
Let op die volgende invoer/uitset penne:
- L15: PWM -sein vir die linkermotor (Pmod JA2 op die Zybo)
- L14: PWM -sein vir die regte motor (Pmod JA8 op die Zybo)
- V12: poortinvoer van klanksensor 1 (Pmod JE1 op die Zybo)
- K16: poortinvoer van klanksensor 2 (Pmod JE2 op die Zybo)
-
Klik in die Flow Navigator -venster op "Genereer bitstroom" onder Program en ontfout
as u dink dat dit dadelik gedoen is, is dit waarskynlik nie so nie. ernstig, maak tee
-
Klik op File-> Export-> Generate Hardware
Merk "Sluit Bitstream in" en druk OK
- Klik op File-> Launch SDK
Stap 5: Bou Ernie
- Monteer die servo's aan die servo -onderstel.
-
Volg die datablad vir die servo's:
- verbind die grond van die servo's met grondpenne op die Zybo se JA Pmod (sien aangehegte pinout -prent)
-
koppel die kragpen van die servo's aan die AA -battery
Ons het gevind dat wanneer die servo's aan die Zybo's Vdd gekoppel is, die bord te veel stroom trek, wat veroorsaak dat die bord voortdurend herstel word
- verbind die ingangseinpenne met die gepaste uitsetpenne van die Zybo (links: JA2, regs: JA8)
- monteer die klanksensors aan die voorkant van die onderstel, vorentoe, en hou hulle so na as moontlik aan mekaar
-
gebruik die aansluitingsgids van die klanksensor om die klanksensors te integreer
- Draai die grond- en Vdd -penne van elke klanksensor na die grond en Vdd -penne op die Zybo se JE Pmod (sien aangehegte pinout -prent)
- dra die poortpen van die linker klanksensor na JE1
- dra die poortpen van die regte klanksensor na JE2
Stap 6: Ernie se eerste BSP
-
Skep 'n BSP om die platform wat ons pas geskep het, af te handel.
U kan dit kry deur File -> New -> Board Support Package
-
'N Tovenaar verskyn om u te help om die BSP te skep.
- Ons wil hierdie BSP verbind met ons platform wat ons so pas geskep het
- Die hardeware -platform moet ooreenstem met die een wat ons pas geskep het (sien afb 1)
- Ons SVE sal die _0 SVE wees.
- Klik op Voltooi
- Maak seker dat u lwip141 afmerk vir opname met u bsp in die venster wat verskyn (sien afb 2)
Stap 7: FreeRTOS'e Ernie
-
Laai die nuutste FreeRTOS -weergawe van Sourceforge af.
As die aflaai uitvoerbaar is, voer dit uit om die FreeRTOS -lêers in u projekgids te onttrek
- Hou die SDK oop en klik op File -> Import.
- Ons wil op Algemeen-> Van 'n bestaande werkruimte klik, en dan sal ons wil navigeer na waar ons FreeRTOS afgelaai het.
-
Ons demo sal in FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702 geleë wees. By die keuse van hierdie gids, moet ons sien dat drie projekte opduik (ons kode (bedryfstelsel), dit is BSP en die HW -platform).
Voer SLEGS RTOSDemo in in u huidige werkruimte
-
Op alle "blou" vouerprojekte verander die BSP waarna verwys word
- Klik met die rechtermuisknop en kies 'Verander BSP waarna verwys word.'
- Kies die BSP wat u pas vir u Zybo geskep het
- Kodebewerking in Xilinx se SDK Blue -vouers is die werklike kodeprojekte.
Stap 8: Die invoer van Ernie's C -kode
- Oorskryf in die RTOSDemo/src -gids die bestaande main.c met die main.c -lêer hier aangeheg.
- Kopieer die main_sound.c -lêer in die RTOSDemo/src -gids.
Stap 9: Ontfout Ernie
- Kies Uitvoer -> Ontfoutkonfigurasies
- Skep 'n nuwe stelselopsporingstelsel in die linkerpaneel
-
Op die oortjie Doelopstelling,
kies "Herstel hele stelsel" sodat beide die en ps7_init gekies word
-
Kies nou die blad Toepassing.
- Kies 'aflaai -toepassing'
- Stel die cortexa9_0 kern op "stop by programinskrywing"
- Klik op Apply en ontfout.
- Verifieer dat daar geen foute in die ontfoutingsproses is nie
- Hou die robot fyn dop en druk op die hervat -knoppie totdat die program loop sonder om enige breekpunte te bereik
- Die robot moet nou draai en na harde geluide beweeg. Yay!
Stap 10: Maak Ernie outonoom
- Sodra u projek gereed is (u kan sonder probleme deur die ontfouter loop), is u gereed om dit na die flash -geheue op u bord te laai.
-
Skep 'n sogenaamde 'first stage boot loader' (FSBL) -projek en bevat al die instruksies wat u raad nodig het om u projeklêers (die bitstroom en bedryfstelsel) tydens die opstart te laai.
- Kies: File-> New-> Application Project en die volgende venster moet verskyn.
- Noem dit wat u wil hê (dws "FSBL")
- Maak seker dat die hardeware -platform die een is waarmee u werk
- Druk volgende (Moenie op Voltooi druk nie)
- Kies die Zynq FSBL -sjabloon
- Klik klaar.
- Sodra die skeppingsproses voltooi is, sal u weet of alles gewerk het as u die volgende twee nuwe vouers in die Project Explorer -venster sien.
-
Skep 'n opstartprent Nou moet u die opstartafbeelding skep.
- Klik met die rechtermuisknop op u projekmap (in hierdie geval word myne “RTOSDemo” genoem)
- Klik op 'Create Boot image' in die vervolg keuselys
-
As alles korrek gekoppel is, sal die projek weet watter lêers dit nodig het, en die volgende venster sal soos u hieronder sien (die belangrikste is dat u 3 partisies onder Boot image -afdeling, die bootloader, u bit -lêer en u projekte.elf -lêer het)).
As dit nie die geval is nie, is daar moontlik iets fout met die koppeling van u projek. Verseker dat die projekvouers gekoppel is aan hul onderskeie BSP's
- Klik op die knoppie "Skep prentjie"
-
Die laaste stap om in sagteware uit te voer, is om u prent wat u voorheen gemaak het, nou in die geheue van die bord te flits
- Kies Xilinx Tools-> Program Flash Memory uit die hoofwerktuigbalk van die SDK
- Maak seker dat die korrekte hardeware -platform gekies is en dat die prentlêerpad korrek wys na die. BIN -lêer wat in die vorige stap geskep is.
- Kies 'qspi single' uit die Flash -tipe
- Merk die 'Verifieer na flits' om die integriteit te verseker, maar dit is nie nodig nie
- Stel u bord op U moet uiteindelik verseker dat die bordprogrammeringsmodus -jumper (JP5) korrek ingestel is om te kies om te begin vanaf die qspi (wat bevat wat u pas geflits het) wanneer die BootROM uitgevoer word.
- Skakel nou net die toestel aan en maak seker dat die "Logic Configuration Done LED" (LED 10) groen brand.
Stap 11: Maak Ernie oulik
- Bont
- Baie bont
- Groot oë!
- … keil
Aanbeveel:
Hoe om 'n hoë huidige bestuurder vir 'n stappermotor te maak: 5 stappe
Hoe om 'n hoë huidige bestuurder vir 'n stappermotor te maak: hier sal ons kyk hoe u 'n stappermotorbestuurder kan maak met behulp van Toshiba se TB6560AHQ -beheerder. Dit is 'n volledige kontroleerder wat slegs 2 veranderlikes as invoer benodig en dit doen al die werk. Aangesien ek twee hiervan nodig gehad het, het ek hulle albei gemaak met die
Hoe om 'n Linux -opstartskyf te maak (en hoe om dit te gebruik): 10 stappe
Hoe om 'n Linux Boot Drive te skep (en hoe om dit te gebruik): Dit is 'n eenvoudige inleiding oor hoe u met Linux, spesifiek Ubuntu, kan begin
Hoe om 'n hommeltuig te maak met Arduino UNO - Maak 'n quadcopter met behulp van mikrokontroller: 8 stappe (met foto's)
Hoe om 'n hommeltuig te maak met Arduino UNO | Maak 'n quadcopter met behulp van mikrobeheerder: inleiding Besoek my Youtube -kanaal 'n Drone is 'n baie duur apparaat (produk) om te koop. In hierdie pos gaan ek bespreek hoe ek dit goedkoop kan maak ?? En hoe kan u u eie goedkoop maak teen goedkoop pryse … In Indië is al die materiale (motors, ESC's
Hoe om 'n hoë krag LED -koplamp vir die fiets te maak: 4 stappe (met foto's)
Hoe om 'n hoë krag LED -koplamp vir 'n fiets te maak: dit is altyd gerieflik om 'n helder lig te hê terwyl u snags fietsry vir duidelike visie en veiligheid. Dit waarsku ook ander in donker plekke en vermy ongelukke. So in hierdie instruksies sal ek demonstreer hoe u 'n 100 watt LED p bou en installeer
Musiekreaktiewe lig -- Hoe om 'n super -eenvoudige musiekreaktiewe lig te maak vir die maak van 'n tafelblad: 5 stappe (met foto's)
Musiekreaktiewe lig || Hoe om 'n super -eenvoudige musiekreaktiewe lig te maak om lessenaars te maak: Hallo ouens, vandag bou ons 'n baie interessante projek. Vandag gaan ons musiek reaktiewe lig bou. Die LED sal sy helderheid verander volgens die bas wat eintlik 'n lae-frekwensie klanksein is. Dit is baie eenvoudig om te bou. Ons sal