Satura rādītājs:

Kā pagatavot Erniju: 11 soļi
Kā pagatavot Erniju: 11 soļi

Video: Kā pagatavot Erniju: 11 soļi

Video: Kā pagatavot Erniju: 11 soļi
Video: Мамины пирожки как Пух! Тесто нежное, начинки много ❤😘! Попробуйте, и Вы 👉 останетесь в восторге! 2024, Novembris
Anonim
Kā pagatavot Erniju
Kā pagatavot Erniju

Šī ir apmācība, kā izveidot Ernie, savu autonomo skaņas sekošanas robotu, izmantojot Zybo dēli. Tas aptvers, kā: izveidot projektu Vivado, izveidot PWM līdzīgus servomotoru draiverus FPGA, saskarni ar diviem skaņas sensoriem, izveidot ierašanās IP atšķirību laikā, izmantot freeRTOS un palaist zybo no akumulatora bloka. Šis bija mūsu pēdējais projekts reāllaika operētājsistēmu klasē (CPE 439) Cal Poly SLO.

Aprīkojuma saraksts:

  • 1 - ZYBO Zynq 7000 attīstības padome
  • 2 - Parallax nepārtrauktas rotācijas servo
  • 2 - skaņas sensors (SparkFun skaņas detektors)
  • 1 - 5 V litija jonu USB akumulators (plāksnei)
  • 4 - AA baterijas (servos)
  • 1 - AA bateriju pakete (ar 4 akumulatora spraugām)
  • 1 - Micro USB kabelis
  • 1 - maizes dēlis
  • daudzi - no vīriešiem līdz vīriešiem
  • 1 - Servo šasija

Prasības programmatūrai:

  • Xilinx Vivado dizaina komplekts 2016.2
  • Digilent Adept 2.16.1

1. darbība: projekta iestatīšana Ernijai Vivado

Projekta izveide Ernijam Vivado
Projekta izveide Ernijam Vivado
Projekta izveide Ernijam Vivado
Projekta izveide Ernijam Vivado
Projekta izveide Ernijam Vivado
Projekta izveide Ernijam Vivado
  1. Parādīsies vednis
  2. Noklikšķiniet uz Tālāk
  3. Tālāk nosauciet projektu

    1. Nekad neizmantojiet projekta nosaukumu vai direktorija ceļu, kurā ir atstarpes !!!!!
    2. Šis būs RTL projekts.
  4. Mēs nevēlamies norādīt avotus
  5. Noklikšķinot uz Tālāk, mēs nokļūstam lapā Daļa. Mēs izmantojam ZYNQ XC7Z010-1CLG400C.

    1. Vivado nav iekļauts Zybo kā viens no tā iepriekš definētajiem dēļiem. Atlasiet: “daļas”, pēc tam meklējiet xc7z010clg400-1.
    2. Ja kļūdas dēļ izvēlaties nepareizu daļu, varat viegli pārslēgt mikroshēmas: Rīki -> Projekta iestatījumi -> Vispārīgi un noklikšķiniet uz punktiem labajā pusē no “Projekta ierīce”
  6. Noklikšķiniet uz Izveidot bloka dizainu.

    Pagaidām nosauciet to par dizainu_1

  7. Jūs redzēsit zaļu joslu ar uzrakstu Pievienot IP, noklikšķiniet uz tā.
  8. Meklēt Zynq.

    1. Veiciet dubultklikšķi uz apstrādes sistēmas ZYNQ7,
    2. Šis bloks parādīsies mūsu bloka dizainā.
  9. Jūs redzēsit zaļu joslu, kurā teikts Palaist bloķēšanas automatizāciju, noklikšķiniet uz tās.
  10. Lejupielādējiet zemāk zybo_zynq_def.xml.
  11. Programmā Vivado noklikšķiniet uz “Importēt XPS iestatījumus” un atlasiet “zybo_zynq_def.xml”.

    Tas iepriekš aizpilda Vivado bloka konfigurāciju ar visām Zybo plates iebūvētajām perifērijas ierīcēm un tapu piešķiršanu

  12. Veiciet dubultklikšķi uz bloka ZYNQ.

    1. MIO konfigurācija
      1. Iespējot taimeri 0 (lietojumprogrammu procesora vienībā - img 1)
      2. Iespējot Watchdog (zem lietojumprogrammu procesora vienības- img 1)
      3. Iespējot GPIO-> GPIO MIO (sadaļā Lietojumprogrammu procesora bloks - img 2)
      4. Iespējot GPIO-> ENET Reset (zem I/O perifērijas ierīces- img 2)
    2. Pulksteņa konfigurācija

      Atspējot FCLK0 (zem PL auduma pulksteņiem - img 3)

  13. Noklikšķiniet uz Labi.
  14. Tagad “Palaist bloķēšanas automatizāciju”.

    Būs daži jautājumi par signāliem, sakiet Labi

  15. Noklikšķiniet uz “Izveidot HDL iesaiņojumu”.

    Mēs vēlēsimies nokopēt ģenerēto iesaiņojumu, lai ļautu lietotājam rediģēt

  16. Noklikšķiniet uz Labi.

2. darbība: Ernie PWM izveide Vivado

Ernija PWM izveide Vivado
Ernija PWM izveide Vivado
Ernija PWM izveide Vivado
Ernija PWM izveide Vivado

Šis solis ģenerēs PWM IP ar ievadēm, kas nosūtītas, izmantojot AXI bibliotēku.

  1. Izveidojiet AXI GPIO bloku, ar peles labo pogu noklikšķinot uz fona un noklikšķinot uz "Pievienot IP"

    meklēšanas joslā ierakstiet "AXI_GPIO" un atlasiet šo pakotni

  2. Pielāgojiet IP, veicot dubultklikšķi uz jaunā bloka axi_gpio_0

    1. sadaļā GPIO iestatiet GPIO platumu uz 2. Šie biti būs PWM_ON signāls, lai vadītu katru PWM moduļa gadījumu.
    2. noklikšķiniet uz "iespējot divkanālu"
    3. sadaļā GPIO 2 iestatiet GPIO platumu uz 2. Šie biti būs PWM_FW signāls, lai iestatītu katra PWM moduļa gadījuma virzienu.
  3. Ar peles labo pogu noklikšķiniet uz izvades porta axi_gpio_0 ar nosaukumu GPIO un atlasiet “Izveidot ārēju”

    1. Noklikšķiniet uz jaunās izvades ar nosaukumu GPIO un pārejiet uz cilni "Rekvizīti" kreisajā rīkjoslā un nomainiet nosaukumu uz PWM_ON
    2. Noklikšķiniet uz jaunās izvades ar nosaukumu GPIO2 un pārejiet uz cilni "Rekvizīti" kreisajā rīkjoslā un nomainiet nosaukumu uz PWM_FW
  4. Zaļajā reklāmkarogā virs blokshēmas atlasiet Palaist savienojuma automatizāciju.

    Ja portus pievienojat manuāli, AXI adreses var nebūt konfigurētas, un vēlāk rodas saziņas problēmas

  5. Plūsmas navigācijas rūtī atlasiet projektu vadītājs -> Pievienot avotus, lai izveidotu jaunu pielāgotu IP bloku

    1. izvēlieties "pievienot vai izveidot dizaina avotus" un nospiediet nākamo
    2. noklikšķiniet uz "izveidot failu", mainiet faila tipu uz "SystemVerilog" un faila nosaukuma laukā ierakstiet "pwm", pēc tam noklikšķiniet uz Labi
    3. noklikšķiniet uz Pabeigt
    4. ignorējiet logu Definēt moduli, nospiežot OK (mēs tos vēlāk pārrakstīsim)

      ja tiek jautāts, vai esat pārliecināts, noklikšķiniet uz Jā

  6. Cilnē Avoti veiciet dubultklikšķi uz pwm.sv (atrodas sadaļā "Dizaina avoti/design_1_wrapper")

    Kopējiet/ielīmējiet visu SystemVerilog kodu no faila pwm.txt, kas pievienots zemāk

3. darbība: Ernie TDOA izveide Vivado

Ernija TDOA izveide Vivado
Ernija TDOA izveide Vivado
Ernija TDOA izveide Vivado
Ernija TDOA izveide Vivado

Šis solis ģenerēs TDOA IP, kura izvadi var nolasīt, izmantojot AXI bibliotēku

  1. Izveidojiet AXI GPIO bloku, ar peles labo pogu noklikšķinot uz fona un noklikšķinot uz "Pievienot IP"

    meklēšanas joslā ierakstiet "AXI_GPIO" un atlasiet šo pakotni

  2. Pielāgojiet IP, veicot dubultklikšķi uz jaunā bloka axi_gpio_1

    1. sadaļā GPIO atzīmējiet izvēles rūtiņu "Visas ievades" un iestatiet GPIO platumu uz 32. Šī kopne būs ierašanās starpība starp diviem sensoriem.
    2. bloka axi_gpio_1 iekšpusē noklikšķiniet uz + blakus GPIO portam, lai atklātu gpio_io_i [31: 0].
  3. Ar peles labo pogu noklikšķiniet uz izvades porta axi_gpio_1 ar nosaukumu gpio_io_i [31: 0] un atlasiet “Izveidot ārēju”

    Noklikšķiniet uz jaunās ievades ar nosaukumu gpio_io_i [31: 0], dodieties uz cilni "Rekvizīti" kreisajā rīkjoslā un nomainiet nosaukumu uz TDOA_val

  4. Zaļajā reklāmkarogā virs blokshēmas atlasiet Palaist savienojuma automatizāciju.

    Ja portus pievienojat manuāli, iespējams, AXI adreses nav konfigurētas, un vēlāk rodas saziņas problēmas

  5. Plūsmas navigācijas rūtī atlasiet projektu vadītājs -> Pievienot avotus, lai izveidotu jaunu pielāgotu IP bloku

    1. izvēlieties "pievienot vai izveidot dizaina avotus" un nospiediet nākamo
    2. noklikšķiniet uz "izveidot failu", mainiet faila tipu uz "SystemVerilog" un faila nosaukuma laukā ierakstiet "tdoa", pēc tam noklikšķiniet uz Labi
    3. noklikšķiniet uz Pabeigt
    4. ignorējiet logu Definēt moduli, nospiežot OK (mēs tos vēlāk pārrakstīsim)

      ja tiek jautāts, vai esat pārliecināts, noklikšķiniet uz Jā

  6. Cilnē Avoti veiciet dubultklikšķi uz tdoa.sv (atrodas sadaļā "Dizaina avoti/design_1_wrapper")

    Kopējiet/ielīmējiet visu SystemVerilog kodu no tdoa.txt faila, kas pievienots zemāk

4. solis: Ernie iesaiņošana un eksportēšana

Ernie iesaiņošana un eksportēšana
Ernie iesaiņošana un eksportēšana
  1. Pārbaudiet, vai blokshēma izskatās kā pievienotais ekrānuzņēmums
  2. Cilnē Avoti ar peles labo pogu noklikšķiniet uz dizaina_1.bd un atlasiet “Izveidot HDL iesaiņojumu…”

    1. Atlasiet "Kopēt ģenerēto izvadi, lai atļautu lietotāja rediģēšanu", pēc tam nospiediet "Labi"
    2. Nokopējiet kodu no faila design_1_wrapper.txt, kas pievienots zemāk, un ielīmējiet to izveidotā dizaina_1_wrapper.v koda vietā.
    3. saglabāt design_1_wrapper.v
  3. Cilnē Avoti veiciet dubultklikšķi uz faila ZYBO_Master.xdc sadaļā Ierobežojumi/constrs1

    1. Nokopējiet kodu no zemāk pievienotā faila ZYBO_Master.txt un ielīmējiet to esošā koda ZYBO_Master.xdc vietā
    2. Ievērojiet šādas ievades/izvades tapas:

      1. L15: PWM signāls kreisajam motoram (Pmod JA2 uz Zybo)
      2. L14: PWM signāls labajam motoram (Pmod JA8 uz Zybo)
      3. V12: vārtu ievade no skaņas sensora 1 (Pmod JE1 uz Zybo)
      4. K16: vārtu ievade no skaņas sensora 2 (Pmod JE2 Zybo)
  4. Plūsmas navigācijas rūtī sadaļā Programma un atkļūdošana noklikšķiniet uz "Izveidot bitu plūsmu"

    ja jūs domājat, ka tas ir izdarīts uzreiz, iespējams, tā nav. nopietni, uzvāri tēju

  5. Noklikšķiniet uz Fails-> Eksportēt-> Ģenerēt aparatūru

    Atzīmējiet “Iekļaut bitu plūsmu” un nospiediet Labi

  6. Noklikšķiniet uz Fails-> Palaist SDK

5. solis: Ēnijas celtniecība

Ēna Ernijs
Ēna Ernijs
Ēna Ernijs
Ēna Ernijs
  1. Uzstādiet servoservus pie servo šasijas.
  2. Sekojot servo datu lapai, rīkojieties šādi:

    1. savienojiet servo zemi ar Zybo's JA Pmod zemējuma tapām (skatiet pievienoto pinout attēlu)
    2. pievienojiet servo barošanas tapu AA bateriju blokam

      Mēs atklājām, ka tad, kad servo ir savienots ar Zybo Vdd, tāfele patērē pārāk daudz strāvas, kā dēļ tā tiek nepārtraukti atiestatīta

    3. pievienojiet ieejas signāla tapas atbilstošajām Zybo izejas tapām (pa kreisi: JA2, pa labi: JA8)
  3. uzstādiet skaņas sensorus pie šasijas priekšpuses, vērstus uz priekšu, turot tos pēc iespējas tuvāk viens otram
  4. izmantojiet skaņas sensora savienošanas rokasgrāmatu, lai integrētu skaņas sensorus

    1. pievienojiet katra skaņas sensora zemi un Vdd tapas zemei un Vdd tapas uz Zybo's JE Pmod (skatiet pievienoto pinout attēlu)
    2. pievienojiet kreisā skaņas sensora vārtu tapu JE1
    3. pievienojiet labās skaņas sensora vārtu tapu līdz JE2

6. solis: Ernija pirmais BSP

Ernija pirmais BSP
Ernija pirmais BSP
Ernija pirmais BSP
Ernija pirmais BSP
  1. Izveidojiet BSP, lai apkopotu tikko izveidoto platformu.

    To var iegūt, izmantojot failu -> jauns -> padomes atbalsta pakotne

  2. Parādīsies vednis, kas palīdzēs izveidot BSP.

    1. Mēs vēlamies saistīt šo BSP ar mūsu tikko izveidoto platformu
    2. Aparatūras platformai jāatbilst mūsu izveidotajai platformai (sk. 1. attēlu)
    3. Mūsu centrālais procesors būs _0.
    4. Noklikšķiniet uz Pabeigt
    5. Noteikti pārbaudiet, vai lwip141 ir iekļauts kopā ar savu bsp parādītajā logā (sk. Img 2)

7. solis: FreeRTOSinging Ernie

  1. Lejupielādējiet jaunāko FreeRTOS laidienu no Sourceforge.

    Ja lejupielāde ir izpildāma, palaidiet to, lai FreeRTOS failus iegūtu savā projektu direktorijā

  2. Turiet šo SDK atvērtu un noklikšķiniet uz Fails -> Importēt.
  3. Mēs vēlamies noklikšķināt uz Vispārīgi-> no esošas darbvietas, un tad mēs vēlēsimies pārvietoties uz vietu, kur lejupielādējām FreeRTOS.
  4. Mūsu demonstrācija atradīsies FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702. Izvēloties šo mapi, mums vajadzētu redzēt, ka parādās trīs projekti (mūsu kods (OS), tas ir BSP un HW platforma).

    TIKAI importējiet RTOSDemo savā pašreizējā darbvietā

  5. Visos “zilo” mapju projektos mainiet atsauces BSP

    1. Ar peles labo pogu noklikšķiniet un atlasiet “Mainīt atsauces BSP”.
    2. Izvēlieties BSP, ko tikko izveidojāt savam Zybo
    3. Koda rediģēšana Xilinx SDK Blue mapēs ir faktiskie koda projekti.

8. darbība: Ernija C koda importēšana

  1. RTOSDemo/src direktorijā pārrakstiet esošo main.c ar šeit pievienoto failu main.c
  2. Kopējiet failu main_sound.c direktorijā RTOSDemo/src.

9. darbība: Ernija atkļūdošana

  1. Atlasiet Palaist -> atkļūdošanas konfigurācijas
  2. Kreisajā rūtī izveidojiet jaunu sistēmas atkļūdotāja palaišanu
  3. Cilnē Mērķa iestatīšana

    atlasiet “Atiestatīt visu sistēmu”, lai tiktu atlasīts gan tas, gan ps7_init

  4. Tagad atlasiet cilni Lietojumprogramma.

    1. Atlasiet “lejupielādēt lietojumprogrammu”
    2. Iestatiet cortexa9_0 kodolu uz “apstāties pie programmas ievadīšanas”
    3. Noklikšķiniet uz Lietot un atkļūdot.
  5. Pārbaudiet, vai atkļūdošanas procesā nav kļūdu
  6. Rūpīgi sekojot robotam, nospiediet pogu Atsākt, līdz programma darbojas, nepārsniedzot pārtraukuma punktus
  7. Robotam tagad vajadzētu pagriezties un virzīties uz skaļiem trokšņiem. Yay!

10. solis: Padariet Erniju par autonomu

  1. Kad jūsu projekts ir gatavs darbam (jūs varat palaist bez problēmām, izmantojot atkļūdotāju), jūs esat gatavs to ielādēt tāfeles zibatmiņā.
  2. Izveidojiet projektu, ko sauc par “pirmā posma sāknēšanas ielādētāju” (FSBL), un tas satur visus norādījumus, kas būs nepieciešami jūsu padomei, lai startēšanas laikā ielādētu jūsu projekta failus (bitu straumi un OS).

    1. Atlasiet: Fails-> Jauns-> Lietojumprogrammas projekts un parādīsies šāds logs.
    2. Nosauciet to, ko vēlaties (piemēram, “FSBL”)
    3. Pārliecinieties, vai aparatūras platforma ir tā, ar kuru strādājat
    4. Nospiediet nākamo (nespiediet pogu Pabeigt)
    5. Atlasiet Zynq FSBL veidni
    6. Noklikšķiniet uz Pabeigt.
  3. Kad izveides process ir pabeigts, jūs zināt, vai viss strādāja, ja Project Explorer logā redzat šādas divas jaunas mapes.
  4. Izveidojiet sāknēšanas attēlu Tagad jums būs jāizveido sāknēšanas attēls.

    1. Ar peles labo pogu noklikšķiniet uz sava projekta mapes (šajā gadījumā manējo sauc par “RTOSDemo”)
    2. Nolaižamajā izvēlnē noklikšķiniet uz “Izveidot sāknēšanas attēlu”
    3. Ja viss ir pareizi saistīts, projekts zinās, kādi faili tam nepieciešami, un šāds logs izskatīsies zemāk (galvenais ir tas, ka sadaļā Sāknēšanas attēls ir 3 nodalījumi, sāknēšanas ielādētājs, jūsu bitu fails un jūsu projektu.).

      Ja tas tā nav, iespējams, ka jūsu projekta saistīšanā ir kaut kas nepareizs. Pārliecinieties, ka projekta mapes ir saistītas ar to attiecīgajiem BSP

    4. Noklikšķiniet uz pogas “Izveidot attēlu”
  5. Pēdējais solis, kas jāveic programmatūrā, tagad mirgo iepriekš izveidotais attēls tāfeles atmiņā

    1. SDK galvenajā rīkjoslā atlasiet Xilinx Tools-> Program Flash Memory
    2. Pārliecinieties, vai ir izvēlēta pareizā aparatūras platforma un vai attēla faila ceļš pareizi norāda uz. BIN failu, kas izveidots iepriekšējā solī.
    3. No zibspuldzes veida izvēlieties “qspi single”
    4. Atzīmējiet “Pārbaudīt pēc zibspuldzes”, lai nodrošinātu integritāti, taču tas nav nepieciešams
  6. Konfigurējiet savu dēli Visbeidzot, jums jāpārliecinās, vai dēļu programmēšanas režīma džemperis (JP5) ir pareizi iestatīts tā, lai sāknēšana no qspi (kas satur tikko mirgojošo), kad tiek palaists BootROM.
  7. Tagad vienkārši ieslēdziet ierīci un ieslēdziet to un pārliecinieties, ka “Loģiskās konfigurācijas pabeigšanas gaismas diode” (LED 10) deg zaļā krāsā.

11. solis: padariet Erniju mīļu

  1. Kažokādas
  2. Daudz kažokādu
  3. Lielas acis!
  4. … cilindrs

Ieteicams: