Përmbajtje:

Stabilizues i kamerës së dorës: 13 hapa (me fotografi)
Stabilizues i kamerës së dorës: 13 hapa (me fotografi)

Video: Stabilizues i kamerës së dorës: 13 hapa (me fotografi)

Video: Stabilizues i kamerës së dorës: 13 hapa (me fotografi)
Video: Шок!!! ДУШИ МЕРТВЕЦОВ В ЗАТОЧЕНИИ У ДЕМОНА В ЭТОМ СТРАШНОМ ДОМЕ / HERE ARE THE SOULS OF THE DEAD 2024, Nëntor
Anonim
Stabilizues i kamerës së dorës
Stabilizues i kamerës së dorës

Prezantimi

Ky është një udhëzues për krijimin e një pajisjeje stabilizimi të kamerës me 3 boshte për një GoPro duke përdorur një Bord Zhvillimi Digilent Zybo Zynq-7000. Ky projekt u zhvillua për klasën e Sistemeve Operative të CPE në kohë reale CPE (CPE 439). Stabilizuesi përdor tre servos dhe një IMU për të korrigjuar lëvizjen e përdoruesit për të mbajtur nivelin e kamerës.

Pjesët e kërkuara për projektin

  • Bordi i Zhvillimit Digilent Zybo Zynq-7000
  • Sparkfun IMU Breakout - MPU 9250
  • 2 HiTec HS-5485HB Servos (blini lëvizje ose program 180 gradë nga 90 në 180 gradë)
  • 1 HiTec HS-5685MH Servo (blini lëvizje ose program 180 gradë nga 90 në 180 gradë)
  • 2 kllapa standarde servo
  • 1 Dërrasë buke
  • 15 tela bluzë meshkuj me meshkuj
  • 4 tela bluzë meshkuj me femra
  • Ngjitës i nxehtë
  • Rrokje ose Dorezë
  • Kunj druri me diametër 5 mm
  • GoPro ose kamera të tjera dhe pajisje montimi
  • Furnizimi me energji elektrike i aftë të dalë 5V.
  • Qasja në Printerin 3D

Hapi 1: Konfigurimi i Vivado Hardware

Konfigurimi i harduerit Vivado
Konfigurimi i harduerit Vivado

Le të fillojmë me krijimin e modelit themelor të bllokut për projektin.

  1. Hapni Vivado 2016.2, klikoni ikonën "Krijo projekt të ri" dhe klikoni "Tjetër>".
  2. Emërtoni projektin tuaj dhe klikoni "Next>".
  3. Zgjidhni projektin RTL dhe shtypni "Tjetër>".
  4. Shkruani në shiritin e kërkimit xc7z010clg400-1 dhe më pas zgjidhni pjesën dhe shtypni "Next>" dhe "Finish".

Hapi 2: Vendosja e Dizajnit të Bllokut

Tani do të fillojmë të gjenerojmë modelin e bllokut duke shtuar dhe konfiguruar Bllokun IP Zynq.

  1. Në panelin e majtë, nën IP Integrator, klikoni "Krijo dizajn blloku" dhe pastaj kliko "OK".
  2. Klikoni me të djathtën në skedën "Diagram" dhe zgjidhni "Shto IP …".
  3. Shkruani "ZYNQ7 Processing System" dhe klikoni përzgjedhjen.
  4. Klikoni dy herë në bllokun Zynq që shfaqet.
  5. Klikoni "Importo Cilësimet XPS" dhe importoni skedarin "ZYBO_zynq_def.xml" të dhënë.
  6. Shkoni te "Konfigurimi MIO" dhe zgjidhni "Njësia e përpunuesit të aplikacionit" dhe aktivizoni kohëmatësit Timer 0 dhe Watchdog.
  7. Në të njëjtën skedë, nën "Periferikët I/O", zgjidhni ENET 0 (dhe ndryshoni menunë zbritëse në "MIO 16.. 27", USB 0, SD 0, UART 1, I2C 0.
  8. Nën "GPIO", kontrolloni GPIO MIO, ENET Reset, USB Reset dhe I2C Reset.
  9. Tani lundroni te "Konfigurimi i orës". Zgjidhni FCLK_CLK0 nën orët e rrobave PL. Pastaj, klikoni "OK".

Hapi 3: Krijoni Bllok IP të personalizuar PWM

Ky bllok IP lejon bordin të dërgojë një sinjal PWM jashtë për të kontrolluar lëvizjen e servos. Puna u bazua shumë nga mësimi nga Digitronix Nepal, i gjetur këtu. Logjika u shtua për të ngadalësuar orën në mënyrë që pulsi të dilte me ritmin e duhur. Blloku merr një numër nga 0 në 180 dhe e konverton atë në një impuls nga 750-2150 usec.

  1. Tani, nën skedën Mjetet pranë këndit të sipërm të majtë, klikoni "Krijo dhe Paketo IP …" dhe goditi Next.
  2. Pastaj zgjidhni "Krijo një periferik të ri AXI4" dhe shtypni Next.
  3. Emërtoni bllokun tuaj IP PWM (e quajtëm pwm_core) dhe klikoni Next dhe pastaj klikoni Next në faqen tjetër gjithashtu.
  4. Tani klikoni "Ndrysho IP" dhe shtypni Finish. Kjo do të hapë një dritare të re për të redaktuar bllokun pwm.
  5. Në skedën "Burimet" dhe nën "Burimet e Dizajnit", zgjeroni 'pwm_core_v1_0' (zëvendësoni pwm_core me emrin tuaj) dhe hapni skedarin që bëhet i dukshëm.
  6. Kopjoni dhe ngjisni kodin e dhënë nën 'pwm_core_v1_0_S00_AXI.v' në skedarin zip në fund të projektit. Ctrl + Shift + R dhe zëvendësoni 'pwm_core' me emrin tuaj për bllokun ip.
  7. Pastaj hapni 'emrin _v1_0' dhe kopjoni në kodin e dhënë në skedarin 'pwm_core_v1_0.v'. Ctrl + Shift + R dhe zëvendësoni 'pwm_core' me emrin.
  8. Tani lundroni te skedari 'Paketa IP - emri' dhe zgjidhni "Parametrat e personalizimit".
  9. Në këtë skedë do të ketë një shirit të verdhë në krye që ka tekst të lidhur. Zgjidhni këtë dhe "Parametrat e fshehur" do të shfaqen në kuti.
  10. Tani shkoni te "Customization GUI" dhe klikoni me të djathtën në Pwm Counter Max zgjidhni "Edit Parameter …".
  11. Kontrolloni kutitë "Të dukshme në GUI të personalizimit" dhe "Specifikoni gamën".
  12. Ndryshoni menunë zbritëse "Lloji:" në Gama e numrave të plotë dhe vendosni minimumin në 0 dhe maksimumin në 65535 dhe kontrolloni kutinë "Trego diapazonin". Tani klikoni OK.
  13. Tërhiqeni Pwm Counter Max nën pemën "Faqe 0". Tani shkoni te "Rishikimi dhe Paketa" dhe klikoni në butonin "Ri-Paketimi IP".

Hapi 4: Shtoni PWM IP Block në Dizajn

Shtoni PWM IP Bllok në Dizajn
Shtoni PWM IP Bllok në Dizajn

Ne do të shtojmë bllokun IP në modelin e bllokut për të lejuar qasjen e përdoruesit në bllokun PWM IP përmes procesorit.

  1. Klikoni me të djathtën në skedën e diagramit dhe klikoni "Cilësimet IP …". Shkoni te skedari "Menaxheri i Depove".
  2. Klikoni në butonin e gjelbër plus dhe zgjidhni atë. Tani gjeni ip_repo në File Manager dhe shtojeni atë në projekt. Pastaj shtypni Aplikoni dhe pastaj OK.
  3. Klikoni me të djathtën në skedën e diagramit dhe klikoni "Shto IP …". Shkruani emrin e bllokut tuaj PWM IP dhe zgjidhni atë.
  4. Duhet të ketë një shirit të gjelbër në krye të ekranit, së pari zgjidhni "Run Connection Automation" dhe klikoni OK. Pastaj klikoni "Run Block Automation" dhe klikoni OK.
  5. Klikoni dy herë në bllokun PWM dhe ndryshoni Pwm Counter Max në 1024 nga 128.
  6. Rri pezull treguesin e miut mbi PWM0 në bllokun PWM. Duhet të ketë një laps të vogël që shfaqet kur e bëni. Klikoni me të djathtën dhe zgjidhni "Krijo Portin …" dhe klikoni OK kur të hapet një dritare. Kjo krijon një port të jashtëm për transmetimin e sinjalit.
  7. Përsëriteni hapin 6 edhe për PWM1 dhe PWM2.
  8. Gjeni ikonën e vogël rrethore me shigjetë të dyfishtë në shiritin anësor dhe klikoni atë. Do të rigjenerojë paraqitjen dhe dizajni juaj i bllokut duhet të duket si fotografia e mësipërme.

Hapi 5: Konfiguroni mbështjellësin HDL dhe vendosni skedarin e kufizimeve

Konfiguroni mbështjellësin HDL dhe vendosni skedarin e kufizimeve
Konfiguroni mbështjellësin HDL dhe vendosni skedarin e kufizimeve

Tani do të krijojmë Dizajnin e Nivelit të Lartë për Dizajnin tonë të Bllokut dhe më pas do të hartojmë kunjat PWM0, PWM1 dhe PWM2 në Pmod në tabelën Zybo.

  1. Shkoni te skedari "Burimet". Klikoni me të djathtën në skedarin tuaj të dizajnit të bllokut nën "Burimet e Dizajnit" dhe klikoni "Krijo mbështjellës HDL …". Zgjidhni "Kopjo mbështjellësin e krijuar për të lejuar redaktimet e përdoruesit" dhe kliko OK. Kjo gjeneron Dizajnin e Nivelit të Lartë për Dizajnin e Bllokut që krijuam.
  2. Pmod -i ku do të dalim është JE.
  3. Nën File, zgjidhni "Shto burime …" dhe zgjidhni "Shto ose krijoni kufizime" dhe klikoni Tjetër.
  4. Klikoni shtoni skedarë dhe zgjidhni skedarin "ZYBO_Master.xdc" të përfshirë. Nëse shikoni në këtë skedar do të vini re se gjithçka nuk është e komentuar përveç gjashtë rreshtave "set_property" nën "## Pmod Header JE". Ju do të vini re se PWM0, PWM1 dhe PWM2 janë argumentet për këto rreshta. Ata hartojnë në Pin 1, Pin 2 dhe Pin 3 të JE Pmod.

Hapi 6: Gjenerimi i Bitstream

Ne duhet të krijojmë bitstream që dizajni i harduerit të eksportojë në SDK para se të vazhdojmë.

  1. Nën "Programi dhe Debug" në shiritin anësor, zgjidhni "Generate Bitstream". Kjo do të drejtojë sintezën, pastaj zbatimin, dhe më pas do të gjenerojë bitstream për dizajnin.
  2. Korrigjoni çdo gabim që shfaqet, por paralajmërimet në përgjithësi mund të injorohen.
  3. Shkoni te File-> Launch SDK dhe klikoni OK. Kjo do të hapë SDK Xilinx.

Hapi 7: Vendosja e Projektit në SDK

Kjo pjesë mund të jetë pak zhgënjyese. Kur jeni në dyshim, bëni një BSP të re dhe zëvendësoni atë të vjetër. Kjo na kurseu një mori kohe korrigjimi.

  1. Filloni duke shkarkuar këtu versionin më të fundit të FreeRTOS.
  2. Nxirrni gjithçka nga shkarkimi dhe importoni FreeRTOS në SDK duke klikuar Skedar-> Import, dhe nën "Të përgjithshme" klikoni "Projektet Ekzistuese në Hapësirën e Punës" pastaj klikoni Tjetër.
  3. Shkoni te "FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702" brenda dosjes FreeRTOS. Importoni vetëm "RTOSDemo" nga ky vendndodhje.
  4. Tani krijoni një Paketë Mbështetëse të Bordit (BSP) duke klikuar Skedar-> Paketa e Re e Mbështetjes së Bordit.
  5. Zgjidhni "ps7_cortexa9_0" dhe kontrolloni "lwip141" dhe klikoni OK.
  6. Klikoni me të djathtën në dosjen RTOSDemo blu dhe zgjidhni "Referencat e Projektit".
  7. Hiqni zgjedhjen "RTOSDemo_bsp" dhe kontrolloni BSP -në e re që sapo kemi krijuar.

Hapi 8: Ndryshimet e Kodit FreeRTOS

Kodi që ne ofrojmë mund të ndahet në 7 skedarë të ndryshëm. main.c, iic_main_thread.c, xil_printfloat.c, xil_printfloat.h, IIC_funcs.c, IIC_funcs.h dhe iic_imu.h. Kodi në iic_main_thread.c është përshtatur nga biblioteka e Kris Winer, e cila mund të gjendet këtu. Ne kryesisht e transformuam kodin e tij për të përfshirë detyrat dhe për ta bërë atë të funksionojë me bordin Zybo. Ne gjithashtu shtuam funksione për llogaritjen e korrigjimit të orientimit të kamerës. Ne kemi lënë në disa deklarata të shtypura që janë të dobishme për korrigjimin. Shumica prej tyre komentohen, por nëse e ndjeni nevojën, mund t'i komentoni ato.

  1. Mënyra më e lehtë për të modifikuar skedarin main.c është zëvendësimi i kodit me kod të kopjuar nga skedari ynë i përfshirë main.c.
  2. Për të krijuar një skedar të ri, klikoni me të djathtën në dosjen src nën RTOSDemo dhe zgjidhni C File File. Emërtojeni këtë skedar "iic_main_thread.c".
  3. Kopjoni kodin nga "iic_main_thread.c" të përfshirë dhe ngjiteni në skedarin tuaj të krijuar rishtas.
  4. Përsëritni hapat 2 dhe 3 me skedarët e mbetur.
  5. kërkon një udhëzim lidhës në gcc. Për ta shtuar këtë në rrugën e ndërtimit klikoni me të djathtën në RTOSDemo dhe zgjidhni "C/C ++ Build Settings".
  6. Do të hapet një dritare e re. Shkoni te lidhësi ARM v7 gcc-> Bibliotekat. Zgjidhni skedarin e vogël të shtimit në këndin e sipërm të djathtë dhe shkruani "m". Kjo do të përfshijë bibliotekën e matematikës në projekt.
  7. Ndërtoni projekt me Ctrl + B për të konfirmuar se gjithçka funksionon. Kontrolloni paralajmërimet që krijohen, por ju mund të jeni në gjendje t'i injoroni ato.
  8. Ka disa vende që do të kenë nevojë për modifikim, kryesisht deklinimi magnetik i vendndodhjes tuaj aktuale. Ne do të shpjegojmë se si ta ndryshojmë këtë në pjesën e kalibrimit të mësimit.

Hapi 9: Shtypja 3D për Stabilizuesin

Printim 3D për Stabilizues
Printim 3D për Stabilizues

Ju duhet të printoni 3D disa pjesë për këtë projekt. Me siguri mund të blini pjesë që janë me përmasa/madhësi të ngjashme me pjesët tona të shtypura.

  1. Përdorni skedarët e dhënë për të printuar krahun dhe mbajtësen e mbajtjes për GoPro.
  2. Ju duhet të shtoni skela në skedarin.stl.
  3. Pritini/pastroni pjesët e skelave të tepërta pasi të printohen.
  4. Ju mund ta zëvendësoni kunjin prej druri me një pjesë të printuar 3D nëse dëshironi.

Hapi 10: Montimi i pjesëve

Montimi i Pjesëve
Montimi i Pjesëve

Janë disa pjesë për montimin e stabilizatorit. Kllapat e blera vijnë me 4 vida vetë-përgjimi dhe 4 bulona me arra. Meqenëse ka 3 servos, një nga brirët e servo duhet të preket paraprakisht për të lejuar që 2 prej bulonave të futen.

  1. Bashkoni 8 kunja në daljen e IMU, 4 në secilën anë.
  2. IMU është bashkangjitur në kllapën mbajtëse të shtypur 3D për GoPro në qendër të kllapës.
  3. Orientoni kllapën në mënyrë që vrimat e montimit të servo të jenë në anën tuaj të majtë. Vendoseni IMU në skajin më të afërt me ju, me kunjat që varen nga buza. Pastaj, vendoseni montuesin GoPro në krye të IMU, duke ngjitur IMU dhe montuesin në vend në kllapa.
  4. Bashkangjitni një HS-5485HB në kllapa servo që është e integruar në krahun e printuar 3D.
  5. Vidhosni kllapën GoPro në servo të bashkuar me krah, duke u siguruar që servo të jetë vendosur në mënyrë që të jetë në mes të intervalit të lëvizjes.
  6. Tjetra, lidhni servo HS-5685MH në një kllapa servo. Pastaj trokitni lehtë mbi bririn e servo me një nga vidhat. Tani bashkoni servo në fund të kllapës së fundit të servo.
  7. Tani lidhni servo-n e fundit në kllapa në të cilën është vidhosur servo HS-5685MH. Pastaj vidhosni krahun në këtë servo, duke u siguruar që krahu është i dehur në mënyrë që të lëvizë 90 gradë në çdo drejtim.
  8. Për të përfunduar ndërtimin e gimbalit, shtoni një pjesë të vogël të kunjit prej druri për t'u lidhur midis kllapës GoPro dhe krahut të printuar 3D. Tani keni montuar stabilizuesin.
  9. Së fundi, mund të shtoni një dorezë të lidhur me kllapën e servo -s së poshtme.

Hapi 11: Lidhja e Zybo me Stabilizuesin

Lidhja e Zybo me Stabilizuesin
Lidhja e Zybo me Stabilizuesin

Ka disa gjëra që duhet pasur kujdes kur e bëni këtë. Ju dëshironi të siguroheni që 5V nga furnizimi me energji të mos hyjë kurrë në bordin Zybo, pasi kjo do të çonte në probleme me bordin. Sigurohuni që të kontrolloni dy herë kërcyesit tuaj për të konfirmuar që telat nuk po ndërrohen.

  1. Për të bashkangjitur Zybo në stabilizator do t'ju duhen 15 kërcyes meshkuj te meshkuj dhe 4 kërcues meshkuj te femra.
  2. Së pari, lidhni dy kërcyes me energjinë tuaj 5V përgjatë shinave + dhe - të bordit të bukës. Këto do të furnizojnë me energji servos.
  3. Pastaj, lidhni 3 palë kërcyes me binarët + dhe - të dërrasës së bukës. Këto do të jenë fuqia për secilin nga servos.
  4. Lidhni skajin tjetër të kërcyesit + dhe - në secilën nga servos.
  5. Lidhni një kërcyes midis shiritit të dërrasës së bukës dhe një prej kunjave GND në Zybo JE Pmod (Shihni Figurën e Hapit 5). Kjo do të krijojë një bazë të përbashkët midis bordit Zybo dhe furnizimit me energji elektrike.
  6. Tjetra lidhni një tel sinjali në pin 1, pin 2 dhe pin 3 të JE Pmod. Vendosni hartat 1 në servo -n e poshtme, lidhni 2 harta në servo në fund të krahut dhe lidhni 3 harta në servo -n e mesme.
  7. Lidhni 4 telat femra në kunjat GND, VDD, SDA dhe SCL të daljes IMU. GND dhe VDD futen në GND dhe 3V3 në kunjat JF. Futni kunjin SDA në kunjin 8 dhe SCL në kunjin 7 në JF (Shihni Figurën e Hapit 5).
  8. Së fundi, lidhni kompjuterin me bordin duke përdorur një kabllo mikro usb. Kjo do të lejojë komunikimin uart dhe do t'ju lejojë të programoni bordin Zybo.

Hapi 12: Korrigjimi i Veriut të Vërtetë

Korrigjimi i Veriut i Vërtetë
Korrigjimi i Veriut i Vërtetë

Kalibrimi i magnetometrit në IMU është i rëndësishëm për funksionimin e saktë të pajisjes. Deklinacioni magnetik, i cili korrigjon veriun magnetik në veriun e vërtetë.

  1. Për të korrigjuar ndryshimin nga veriu magnetik dhe i vërtetë, duhet të përdorni një kombinim të dy shërbimeve, Google Maps dhe llogaritësin e fushës magnetike të NOAA.
  2. Përdorni Google Maps për të gjetur gjerësinë dhe gjatësinë tuaj të vendndodhjes tuaj aktuale.
  3. Merrni gjatësinë dhe gjerësinë gjeografike aktuale dhe futeni në kalkulatorin e fushës magnetike.
  4. Ajo që kthehet është deklinimi magnetik. Futeni këtë llogaritje në kodin në linjën 378 të "iic_main_thread.c". Nëse prirja juaj është në lindje, atëherë zbritni nga vlera e yaw, nëse në perëndim atëherë shtoni vlerën e yaw.

*fotografia është marrë nga udhëzuesi i lidhjes së Sparkfun MPU 9250, i gjetur këtu.

Hapi 13: Drejtimi i Programit

Drejtimi i Programit
Drejtimi i Programit

Momenti që keni pritur! Pjesa më e mirë e projektit është ta shihni atë duke punuar. Një problem që kemi vënë re është se ka një zhvendosje nga vlerat e raportuara nga IMU. Një filtër me kalim të ulët mund të ndihmojë në korrigjimin e këtij ndryshimi, dhe ngatërrimi me magnetometrin, përshpejtimin dhe kalibrimet xhiro do të ndihmojë gjithashtu në korrigjimin e këtij devijimi.

  1. Së pari, ndërtoni gjithçka në SDK, kjo mund të bëhet duke shtypur Ctrl + B.
  2. Sigurohuni që furnizimi me energji elektrike është i ndezur dhe vendosur në 5V. Kontrolloni dy herë që të gjitha telat po shkojnë në vendet e tyre të sakta.
  3. Pastaj, për të ekzekutuar programin, shtypni trekëndëshin e gjelbër në qendër të sipërme të shiritit të detyrave.
  4. Kur programi të funksionojë, servos të gjithë do të rivendosen në 0 pozicionet e tyre, kështu që jini gati që pajisja të lëvizë. Pasi programi të fillojë, servos do të kthehen përsëri në pozicionet e tyre 90 gradë.
  5. Një funksion i kalibrimit të magnetometrit do të funksionojë dhe udhëzimet do të printohen në terminalin UART, me të cilin mund të lidheni nëpërmjet një monitori serik siç është "stuko" ose monitori serik i dhënë në SDK.
  6. Kalibrimi do t'ju detyrojë të lëvizni pajisjen në një figurë 8 për rreth 10 sekonda. Ju mund ta hiqni këtë hap duke komentuar rreshtin 273 të "iic_main_thread.c". Nëse e komentoni, duhet të komentoni rreshtat 323 - 325 "iic_main_thread.c". Këto vlera fillimisht u mblodhën nga kalibrimi i magnetometrit më lart dhe më pas u lidhën si vlera.
  7. Pas kalibrimit, kodi i stabilizimit do të inicializohet dhe pajisja do ta mbajë kamerën të qëndrueshme.

Recommended: