Orodha ya maudhui:

Jinsi ya Kufanya Ernie: Hatua 11
Jinsi ya Kufanya Ernie: Hatua 11

Video: Jinsi ya Kufanya Ernie: Hatua 11

Video: Jinsi ya Kufanya Ernie: Hatua 11
Video: Namna rahisi na nyepesi ya kuresize passport kwa ajili ya bodi ya mikopo 2024, Novemba
Anonim
Jinsi ya Kufanya Ernie
Jinsi ya Kufanya Ernie

Hii ni mafunzo juu ya jinsi ya kujenga Ernie, sauti yako ya kujifuata inayofuata robot, kwa kutumia Bodi ya Zybo. Itashughulikia jinsi ya: kuunda mradi huko Vivado, kuunda madereva ya servo ya PWM-kama FPGA, kiunga na sensorer mbili za sauti, tengeneza utofauti wa wakati wa IP ya kuwasili, tumia freeRTOS, na utekeleze zybo kwenye kifurushi cha betri. Huu ulikuwa mradi wetu wa mwisho kwa darasa la Mifumo ya Uendeshaji ya Wakati Halisi (CPE 439) huko Cal Poly SLO.

Orodha ya vifaa:

  • 1 - ZYBO Zynq Bodi ya Maendeleo 7000
  • 2 - Parallax Mzunguko Mzunguko wa Servo
  • 2 - Sensor ya Sauti (SparkFun Sound Detector)
  • 1 - 5v pakiti ya betri ya Lithium Ion USB (kwa bodi)
  • Betri 4 - AA (kwa servos)
  • Kifurushi cha betri 1 - AA (w / 4 nafasi za betri)
  • 1 - kebo ndogo ya USB
  • 1 - Bodi ya mkate
  • nyingi - Wanaume kwa waya za Kiume
  • 1 - Chassis ya Servo

Mahitaji ya programu:

  • Xilinx Vivado Design Suite 2016.2
  • Wataalam wa Digilent 2.16.1

Hatua ya 1: Kuanzisha Mradi huko Vivado kwa Ernie

Kuanzisha Mradi huko Vivado kwa Ernie
Kuanzisha Mradi huko Vivado kwa Ernie
Kuanzisha Mradi huko Vivado kwa Ernie
Kuanzisha Mradi huko Vivado kwa Ernie
Kuanzisha Mradi huko Vivado kwa Ernie
Kuanzisha Mradi huko Vivado kwa Ernie
  1. Mchawi ataibuka
  2. Bonyeza Ijayo
  3. Jina linalofuata mradi huo

    1. Kamwe usitumie jina la mradi au njia ya saraka ambayo ina nafasi ndani yake !!!!!
    2. Huu utakuwa mradi wa RTL.
  4. Hatutaki kutaja vyanzo
  5. Kubonyeza Ijayo, tunapata ukurasa wa Sehemu. Tunatumia ZYNQ XC7Z010-1CLG400C.

    1. Vivado haina Zybo iliyoorodheshwa kama moja ya bodi zilizofafanuliwa hapo awali. Chagua: "sehemu" kisha utafute xc7z010clg400-1.
    2. Ikiwa unachagua sehemu isiyo sahihi kwa makosa unaweza kubadilisha chips: Zana -> Mipangilio ya Mradi -> Jumla na ubonyeze nukta upande wa kulia wa "Kifaa cha Mradi"
  6. Bonyeza Unda Ubunifu wa Zuia.

    Ipe jina design_1 kwa sasa

  7. Utaona bar ya kijani ambayo inasema Ongeza IP, bonyeza hiyo.
  8. Tafuta Zynq.

    1. Bonyeza mara mbili Mfumo wa Usindikaji wa ZYNQ7,
    2. Kizuizi hiki kitaonekana katika muundo wetu wa vizuizi.
  9. Utaona bar ya kijani ambayo inasema Run Block Automation, bonyeza hiyo.
  10. Pakua zybo_zynq_def.xml hapa chini.
  11. Katika Vivado, bonyeza "Leta Mipangilio ya XPS" na uchague "zybo_zynq_def.xml"

    Hii inajaza usanidi wa vizuizi vya Vivado na vifaa vyote vya kujengwa vya bodi ya Zybo na kazi za pini

  12. Bonyeza mara mbili kwenye kizuizi cha ZYNQ.

    1. Usanidi wa MIO

      1. Washa kipima muda 0 (chini ya Kitengo cha Usindikaji wa Maombi - img 1)
      2. Washa Mtazamaji (chini ya Kitengo cha Usindikaji wa Maombi- img 1)
      3. Wezesha GPIO-> GPIO MIO (chini ya Kitengo cha Usindikaji wa Maombi - img 2)
      4. Wezesha GPIO-> ENET Rudisha (chini ya Vipimo vya I / O- img 2)
    2. Usanidi wa Saa

      Lemaza FCLK0 (chini ya Saa za Vitambaa vya PL - img 3)

  13. Bonyeza Ok.
  14. "Run Block Automation" sasa.

    Kutakuwa na maswali kadhaa juu ya ishara, sema sawa

  15. Bonyeza "Tengeneza kifuniko cha HDL".

    Tutataka kunakili kifuniko kilichotengenezwa ili kuruhusu mabadiliko ya mtumiaji

  16. Bonyeza OK.

Hatua ya 2: Kuunda PWM ya Ernie huko Vivado

Kuunda PWM ya Ernie huko Vivado
Kuunda PWM ya Ernie huko Vivado
Kuunda PWM ya Ernie huko Vivado
Kuunda PWM ya Ernie huko Vivado

Hatua hii itazalisha PWM IP na pembejeo zilizotumwa kupitia maktaba ya AXI.

  1. Unda kizuizi cha AXI GPIO kwa kubonyeza kulia nyuma, na kubofya "ongeza IP"

    andika "AXI_GPIO" kwenye upau wa utaftaji, na uchague kifurushi hiki

  2. Badilisha mapendeleo ya IP kwa kubofya mara mbili kizuizi kipya cha axi_gpio_0

    1. chini ya GPIO, weka upana wa GPIO hadi 2. bits hizi zitakuwa ishara ya PWM_ON kuendesha kila mfano wa moduli ya PWM.
    2. bonyeza "wezesha kituo mbili"
    3. chini ya GPIO 2, weka upana wa GPIO hadi 2. bits hizi zitakuwa ishara ya PWM_FW kuweka mwelekeo wa kila mfano wa moduli ya PWM.
  3. Bonyeza kulia kwenye bandari ya pato ya axi_gpio_0 iliyoitwa GPIO, na uchague "Fanya ya nje"

    1. Bonyeza kwenye pato mpya iliyoitwa GPIO, na nenda kwenye kichupo cha "mali" kwenye upau wa zana wa kushoto, na ubadilishe jina kuwa PWM_ON
    2. Bonyeza kwenye pato mpya iliyoitwa GPIO2, na nenda kwenye kichupo cha "mali" kwenye upau wa zana wa kushoto, na ubadilishe jina kuwa PWM_FW
  4. Chagua Run Run Automation kwenye bendera ya kijani juu ya mchoro wa kuzuia.

    Ukiunganisha bandari kwa mikono, anwani za AXI zinaweza kusanidiwa, na kusababisha maswala ya mawasiliano baadaye

  5. Katika Pane ya Navigator ya Mtiririko, chagua meneja wa mradi -> Ongeza Vyanzo kuunda kizuizi kipya cha IP maalum

    1. chagua "ongeza au unda vyanzo vya muundo", na ugonge ijayo
    2. bonyeza "unda faili", badilisha aina ya faili kuwa "SystemVerilog", na andika "pwm" kwenye uwanja wa jina la faili, kisha bonyeza OK
    3. bonyeza Maliza
    4. kupuuza dirisha la Moduli ya Kufafanua kwa kubonyeza OK (tutaandika haya baadaye)

      ikiwa inauliza ikiwa una uhakika, bonyeza Ndio

  6. Katika kichupo cha vyanzo, bonyeza mara mbili pwm.sv (iko katika "Vyanzo vya Ubunifu / design_1_wrapper")

    Nakili / weka msimbo mzima wa SystemVerilog kutoka kwa faili ya pwm.txt iliyowekwa hapa chini

Hatua ya 3: Kuunda TDOA ya Ernie huko Vivado

Kuunda TDOA ya Ernie huko Vivado
Kuunda TDOA ya Ernie huko Vivado
Kuunda TDOA ya Ernie huko Vivado
Kuunda TDOA ya Ernie huko Vivado

Hatua hii itazalisha IP ya TDOA ambayo pato lake linaweza kusomwa kupitia maktaba ya AXI

  1. Unda kizuizi cha AXI GPIO kwa kubonyeza kulia nyuma, na kubofya "ongeza IP"

    andika "AXI_GPIO" kwenye upau wa utaftaji, na uchague kifurushi hiki

  2. Badilisha upya IP kwa kubonyeza mara mbili kizuizi kipya cha axi_gpio_1

    1. chini ya GPIO, angalia sanduku la "Pembejeo Zote", na uweke upana wa GPIO kuwa 32. Basi hii itakuwa tofauti ya wakati wa kuwasili kati ya sensorer mbili.
    2. ndani ya kizuizi cha axi_gpio_1, bonyeza + karibu na bandari ya GPIO kufunua gpio_io_i [31: 0].
  3. Bonyeza kulia kwenye bandari ya pato ya axi_gpio_1 iliyoandikwa gpio_io_i [31: 0], na uchague "Fanya ya nje"

    Bonyeza kwenye pembejeo mpya iliyoandikwa gpio_io_i [31: 0], na uende kwenye kichupo cha "mali" kwenye upau wa zana wa kushoto, na ubadilishe jina kuwa TDOA_val

  4. Chagua Run Run Automation kwenye bendera ya kijani juu ya mchoro wa kuzuia.

    Ukiunganisha bandari kwa mikono, anwani za AXI zinaweza kusanidiwa, na kusababisha maswala ya mawasiliano baadaye

  5. Katika Pane ya Navigator ya Mtiririko, chagua meneja wa mradi -> Ongeza Vyanzo kuunda kizuizi kipya cha IP maalum

    1. chagua "ongeza au unda vyanzo vya muundo", na ugonge ijayo
    2. bonyeza "unda faili", badilisha aina ya faili kuwa "SystemVerilog", na andika "tdoa" kwenye uwanja wa jina la faili, kisha bonyeza OK
    3. bonyeza Maliza
    4. kupuuza Dirisha la Moduli kwa kubonyeza OK (tutaandika haya baadaye)

      ikiwa inauliza ikiwa una uhakika, bonyeza Ndio

  6. Katika kichupo cha vyanzo, bonyeza mara mbili tdoa.sv (iko katika "Vyanzo vya Ubunifu / design_1_wrapper")

    Nakili / weka msimbo mzima wa SystemVerilog kutoka faili ya tdoa.txt iliyowekwa hapa chini

Hatua ya 4: Kufunga na kusafirisha Ernie

Kufunga na kusafirisha Ernie
Kufunga na kusafirisha Ernie
  1. Thibitisha kuwa mchoro wa block unaonekana kama skrini iliyoambatishwa
  2. Katika kichupo cha vyanzo, bonyeza-click design_1.bd na uchague "Unda Kifunga HDL …"

    1. Chagua "Nakili pato lililozalishwa ili kuruhusu mabadiliko ya mtumiaji", kisha bonyeza "Sawa"
    2. Nakili nambari kutoka kwa design_1_wrapper.txt iliyoambatanishwa hapa chini, na ibandike mahali pa nambari iliyoundwa_1_wrapper.v
    3. kuokoa design_1_wrapper.v
  3. Katika kichupo cha vyanzo, bonyeza mara mbili faili ya ZYBO_Master.xdc chini ya Vizuizi / constrs1

    1. Nakili nambari kutoka ZYBO_Master.txt iliyoambatanishwa hapa chini, na ibandike badala ya nambari iliyopo ya ZYBO_Master.xdc
    2. Kumbuka pini zifuatazo za kuingiza / kutoa:

      1. L15: ishara ya PWM ya motor ya kushoto (Pmod JA2 kwenye Zybo)
      2. L14: ishara ya PWM ya gari inayofaa (Pmod JA8 kwenye Zybo)
      3. V12: pembejeo la lango kutoka kwa sensa ya sauti 1 (Pmod JE1 kwenye Zybo)
      4. K16: pembejeo la lango kutoka kwa sensa ya sauti 2 (Pmod JE2 kwenye Zybo)
  4. Katika Pane ya Navigator ya Mtiririko, Bonyeza "Zalisha Bitstream" chini ya Programu na Utatuzi

    ikiwa unafikiria imefanywa mara moja, labda sio. kwa umakini, tengeneza chai

  5. Bonyeza Faili-> Hamisha-> Zalisha vifaa

    Angalia "Jumuisha Bitstream" na ugonge sawa

  6. Bonyeza Faili-> Anzisha SDK

Hatua ya 5: Kujenga Ernie

Ujenzi wa Ernie
Ujenzi wa Ernie
Ujenzi wa Ernie
Ujenzi wa Ernie
  1. Panda servos kwenye chassis ya servo.
  2. Kufuatia data ya data kwa servos, fanya zifuatazo:

    1. unganisha ardhi ya servos na pini za ardhini kwenye JA Pmod ya Zybo (angalia picha ya pinout iliyoambatishwa)
    2. unganisha pini ya nguvu ya servos na kifurushi cha betri cha AA

      Tuligundua kuwa wakati servos zimeunganishwa na Vdd ya Zybo, bodi inachora sasa nyingi, na kusababisha bodi kuendelea upya

    3. unganisha pini za ishara ya kuingiza kwenye pini zinazofaa za Zybo (kushoto: JA2, kulia: JA8)
  3. weka sensorer za sauti mbele ya chasisi, ikitazama mbele, ikiwaweka karibu iwezekanavyo
  4. tumia mwongozo wa sensa ya sauti ili kuunganisha sensorer za sauti

    1. waya chini na pini za Vdd za kila sensorer ya sauti chini na pini za Vdd kwenye Zmbo ya JE Pmod (angalia picha ya pini iliyoambatishwa)
    2. waya pini ya sensorer ya sauti ya kushoto kwa JE1
    3. waya pini ya sensa ya sauti ya kulia ya JE2

Hatua ya 6: BSP ya kwanza ya Ernie

BSP ya kwanza ya Ernie
BSP ya kwanza ya Ernie
BSP ya kwanza ya Ernie
BSP ya kwanza ya Ernie
  1. Unda BSP kumaliza jukwaa ambalo tumetengeneza tu.

    Unaweza kupata hii kupitia Faili -> Mpya -> Kifurushi cha Usaidizi wa Bodi

  2. Mchawi ataibuka kukusaidia kuunda BSP.

    1. Tunataka kufunga BSP hii na Jukwaa letu ambalo tumetengeneza tu, kwa hivyo
    2. Jukwaa la vifaa linapaswa kujipanga na ile tu iliyoundwa (tazama img 1)
    3. CPU yetu itakuwa _0 CPU.
    4. Bonyeza Maliza
    5. Hakikisha kuzima lwip141 kwa ujumuishaji na bsp yako kwenye dirisha linalojitokeza (tazama img 2)

Hatua ya 7: BureRTOS'ing Ernie

  1. Pakua toleo la hivi karibuni la FreeRTOS kutoka Sourceforge.

    Ikiwa upakuaji ni wa kutekelezeka, endesha ili kutoa faili za FreeRTOS kwenye saraka ya mradi wako

  2. Weka SDK hiyo wazi, na ubofye Faili -> Ingiza.
  3. Tunataka kubonyeza General-> Kutoka kwenye Sehemu ya Kazi iliyopo, na kisha tutataka kuelekea mahali tulipopakua FreeRTOS.
  4. Maonyesho yetu yatapatikana katika FreeRTOS / Demo / CORTEX_A9_Zynq_ZC702. Baada ya kuchagua folda hii, tunapaswa kuona miradi mitatu ikiibuka (nambari yetu (OS), ni BSP, na Jukwaa la HW).

    Leta tu RTOSDemo kwenye nafasi yako ya kazi ya sasa

  5. Kwenye miradi yote ya folda "bluu" badilisha BSP iliyotajwa
    1. Bonyeza kulia na uchague "Badilisha BSP Inayorejelewa."
    2. Chagua BSP uliyounda Zybo yako
    3. Kuhariri Nambari katika folda za Xilinx za SDK za Xilinx ndio miradi halisi ya kificho.

Hatua ya 8: Kuingiza Nambari ya C ya Ernie

  1. Katika saraka ya RTOSDemo / src, andika kuu iliyopo.c na faili kuu.c iliyoambatanishwa hapa.
  2. Nakili moto wa main_sound.c kwenye saraka ya RTOSDemo / src.

Hatua ya 9: Kutatua Ernie

  1. Chagua Run -> Usanidi wa Utatuzi
  2. Kwenye kidirisha cha kushoto unda run mpya ya Mfumo wa Kutatua
  3. Katika kichupo cha Kuweka Malengo,

    chagua "Weka upya Mfumo Mzima" ili zote na ps7_init zichaguliwe

  4. Sasa chagua kichupo cha Maombi.

    1. Chagua "programu ya kupakua"
    2. Weka msingi wa cortexa9_0 ili "kusimama wakati wa kuingia kwa programu"
    3. Bonyeza Tumia na utatue.
  5. Thibitisha kuwa hakuna makosa katika mchakato wa utatuaji
  6. Kuweka uangalizi wa karibu kwenye roboti, bonyeza kitufe cha Endelea hadi programu iendelee bila kupiga sehemu za mapumziko
  7. Roboti inapaswa sasa igeuke na kuelekea kwenye kelele kubwa. Ndio!

Hatua ya 10: Kumfanya Ernie Awe na Uhuru

  1. Mara tu mradi wako uko tayari kwenda (unaweza kukimbia bila shida kupitia kitatuaji) uko tayari kuipakia kwenye kumbukumbu ya flash kwenye bodi yako.
  2. Unda kile kinachoitwa mradi wa "hatua ya kwanza boot loader" (FSBL) na ina maagizo yote ambayo bodi yako itahitaji ili kupakia faili zako za mradi (mkondo kidogo na OS) wakati wa kuanza.

    1. Chagua: Faili-> Mpya-> Mradi wa Maombi na dirisha ifuatayo inapaswa kuonekana.
    2. Ipe jina unachotaka (yaani "FSBL")
    3. Hakikisha jukwaa la vifaa ndio unafanya kazi na
    4. Bonyeza ijayo (Usisisitize Maliza)
    5. Chagua kiolezo cha Zynq FSBL
    6. Bonyeza kumaliza.
  3. Mchakato wa uumbaji ukikamilika utajua ikiwa kila kitu kimefanya kazi ikiwa utaona folda mbili zifuatazo kwenye dirisha la Mradi wa Mradi.
  4. Unda Picha ya Boot Sasa utahitaji kuunda picha ya Boot.

    1. Bonyeza kulia kwenye folda ya mradi wako (katika kesi hii mgodi unaitwa "RTOSDemo")
    2. Bonyeza "Unda picha ya Boot" kutoka kwa kushuka chini
    3. Ikiwa kila kitu kimeunganishwa kwa usahihi, mradi utajua ni faili gani zinahitajika na dirisha ifuatayo itaonekana kama unavyoona hapa chini (muhimu kuwa una sehemu 3 chini ya sehemu ya picha ya Boot, bootloader, faili yako kidogo, na faili zako za miradi.elf).

      Ikiwa sivyo ilivyo kuna uwezekano wa kitu kibaya na mradi wako kuunganisha. Hakikisha kwamba folda za mradi zimeunganishwa na BSP zao

    4. Bonyeza kitufe cha "Unda Picha"
  5. Hatua ya mwisho ya kufanya katika programu ni sasa kuangaza picha yako iliyoundwa hapo awali kwenye kumbukumbu ya bodi

    1. Chagua kutoka kwa mwambaa wa zana kuu wa SDK chagua Zana za Xilinx-> Programu ya Kumbukumbu ya Flash
    2. Hakikisha kwamba jukwaa sahihi la vifaa limechaguliwa na kwamba njia ya faili ya picha inaelekeza kwa usahihi faili ya. BIN iliyoundwa katika hatua ya awali.
    3. Chagua "qspi moja" kutoka kwa aina ya Flash
    4. Weka alama kwenye "Thibitisha baada ya mwangaza" ili kuhakikisha uadilifu lakini hauhitajiki
  6. Sanidi Bodi yako Mwishowe unahitaji kuhakikisha kuwa jumper ya mfumo wa programu za bodi (JP5) imewekwa kwa usahihi kuchagua boot kutoka qspi (ambayo ina kile ulichomeremeta tu) wakati BootROM inaendeshwa.
  7. Sasa tu mzunguko wa nguvu wa kifaa na uhakikishe "Usanidi wa Mantiki Umefanya LED" (LED 10) imewashwa kijani.

Hatua ya 11: Kumfanya Ernie Cute

  1. Manyoya
  2. Manyoya mengi
  3. Macho makubwa!
  4. … Kofia ya juu

Ilipendekeza: