Sisukord:

Käeshoitav kaamera stabilisaator: 13 sammu (piltidega)
Käeshoitav kaamera stabilisaator: 13 sammu (piltidega)

Video: Käeshoitav kaamera stabilisaator: 13 sammu (piltidega)

Video: Käeshoitav kaamera stabilisaator: 13 sammu (piltidega)
Video: ТОП настроек камеры iPhone 2024, Juuli
Anonim
Käeshoitav kaamera stabilisaator
Käeshoitav kaamera stabilisaator

Sissejuhatus

See on juhend 3-teljelise käeshoitava kaamera stabiliseerimisseadme loomiseks GoPro jaoks, kasutades Digilent Zybo Zynq-7000 arendusplaati. See projekt töötati välja CPE reaalajas kasutatavate operatsioonisüsteemide klassi (CPE 439) jaoks. Stabilisaator kasutab kolme servot ja IMU -d, et parandada kasutaja liikumist, et hoida kaamera tasemel.

Projekti jaoks vajalikud osad

  • Digilent Zybo Zynq-7000 arendusnõukogu
  • Sparkfun IMU Breakout - MPU 9250
  • 2 HiTec HS-5485HB servot (ostke 180-kraadine liikumine või programm 90 kuni 180 kraadi)
  • 1 HiTec HS-5685MH servo (ostke 180-kraadine liikumine või programm 90 kuni 180 kraadi)
  • 2 standardset servoklambrit
  • 1 Leivalaud
  • 15 isast-meessoost džemprijuhet
  • 4 isas-naissoost hüppajajuhet
  • Kuum liim
  • Haare või käepide
  • 5 mm läbimõõduga puidust tüübel
  • GoPro või muu kaamera ja kinnitusvahendid
  • Toiteallikas, mis suudab väljastada 5V.
  • Juurdepääs 3D -printerile

Samm: Vivado riistvara seadistamine

Vivado riistvara häälestus
Vivado riistvara häälestus

Alustame projekti aluseks oleva ploki kujunduse loomisega.

  1. Avage Vivado 2016.2, klõpsake ikooni "Loo uus projekt" ja seejärel nuppu "Järgmine>".
  2. Pange oma projektile nimi ja klõpsake nuppu "Järgmine>".
  3. Valige RTL -projekt ja klõpsake nuppu "Järgmine>".
  4. Sisestage otsinguribale xc7z010clg400-1 ja seejärel valige osa ning vajutage "Next>" ja "Finish".

2. samm: plokkide kujunduse seadistamine

Nüüd hakkame looma ploki kujundust, lisades ja seadistades Zynq IP -ploki.

  1. Klõpsake vasakpoolsel paneelil IP -integraatori jaotises "Loo plokkide kujundus" ja seejärel nuppu "OK".
  2. Paremklõpsake vahekaardil "Diagramm" ja valige "Lisa IP …".
  3. Tippige "ZYNQ7 Processing System" ja klõpsake valikut.
  4. Topeltklõpsake kuvatavat Zynqi plokki.
  5. Klõpsake "Impordi XPS -i seaded" ja importige pakutav fail "ZYBO_zynq_def.xml".
  6. Minge jaotisse "MIO Configuration" ja valige "Application Processor Unit" ning lubage taimer 0 ja Watchdog taimerid.
  7. Valige samal vahekaardil jaotises "I/O välisseadmed" ENET 0 (ja muutke rippmenüü "MIO 16.. 27", USB 0, SD 0, UART 1, I2C 0.
  8. Kontrollige jaotises „GPIO” GPIO MIO, ENET Reset, USB Reset ja I2C Reset.
  9. Nüüd liikuge jaotisse "Kella seadistamine". Valige PL Fabric Clocks alt FCLK_CLK0. Seejärel klõpsake "OK".

Samm: looge kohandatud PWM -i IP -plokk

See IP -plokk võimaldab plaadil saata PWM -signaali, et kontrollida servode liikumist. Töö põhines suuresti siit leitud Digitronix Nepali õpetusel. Kella aeglustamiseks lisati loogika, nii et pulss väljus õigel kiirusel. Plokk võtab arvu vahemikus 0 kuni 180 ja teisendab selle impulssiks 750–250 kasutust.

  1. Nüüd klõpsake vasakus ülanurgas asuval vahekaardil Tööriistad nuppu „Loo ja paketi IP…” ja klõpsake nuppu Edasi.
  2. Seejärel valige "Loo uus AXI4 välisseade" ja klõpsake nuppu Edasi.
  3. Nimetage oma PWM IP -plokk (panime sellele nimeks pwm_core) ja klõpsake nuppu Edasi ning seejärel ka järgmisel lehel nuppu Edasi.
  4. Nüüd klõpsake "Muuda IP -d" ja klõpsake nuppu Lõpeta. See avab uue akna pwm -ploki muutmiseks.
  5. Laiendage vahekaardil „Allikad” ja jaotises „Kujundusallikad” valikut „pwm_core_v1_0” (asendage pwm_core oma nimega) ja avage nähtavaks muutuv fail.
  6. Kopeerige ja kleepige projekti allosas asuvasse ZIP -faili koodis „pwm_core_v1_0_S00_AXI.v” esitatud kood. Ctrl + Shift + R ja asendage 'pwm_core' oma IP -ploki nimega.
  7. Seejärel avage „nimi _v1_0” ja kopeerige failis „pwm_core_v1_0.v” esitatud kood. Ctrl + Tõstuklahv + R ja asendage „pwm_core” nimega.
  8. Nüüd liikuge vahekaardile „Paketi IP - nimi” ja valige „Kohandamisparameetrid”.
  9. Sellel vahekaardil on ülaosas kollane riba, millel on lingitud tekst. Valige see ja kastis kuvatakse "Varjatud parameetrid".
  10. Nüüd minge jaotisse "Kohandamise graafiline kasutajaliides" ja paremklõpsake Pwm Counter Max ja valige "Edit Parameter …".
  11. Märkige ruudud "Nähtav kohandamisliideses" ja "Määrake vahemik".
  12. Muutke rippmenüü "Tüüp:" täisarvude vahemik ja seadke miinimum 0 ja maksimaalne 65535 ning märkige ruut "Kuva vahemik". Nüüd klõpsake nuppu OK.
  13. Lohistage Pwm Counter Max puu 'Page 0' alla. Nüüd minge jaotisse "Ülevaade ja pakett" ja klõpsake nuppu "Paki IP uuesti".

Samm: lisage disainile PWM IP -plokk

Lisage disainile PWM IP -plokk
Lisage disainile PWM IP -plokk

Lisame IP -ploki ploki kujundusse, et võimaldada kasutajal protsessori kaudu juurdepääs PWM -i IP -plokile.

  1. Paremklõpsake diagrammi vahekaardil ja klõpsake "IP -seaded …". Liikuge vahekaardile "Hoidla haldur".
  2. Klõpsake rohelist plussnuppu ja valige see. Nüüd leidke failihaldurist ip_repo ja lisage see projekti. Seejärel klõpsake nuppu Rakenda ja seejärel nuppu OK.
  3. Paremklõpsake diagrammi vahekaardil ja klõpsake "Lisa IP …". Sisestage oma PWM IP -ploki nimi ja valige see.
  4. Ekraani ülaosas peaks olema roheline riba, kõigepealt valige "Käivita ühenduse automatiseerimine" ja klõpsake nuppu OK. Seejärel klõpsake "Käivita plokkide automatiseerimine" ja klõpsake nuppu OK.
  5. Topeltklõpsake PWM plokki ja muutke Pwm Counter Max väärtuseks 1024 128 -lt.
  6. Hõljutage hiirekursorit PWM ploki PWM0 kohal. Peaks olema väike pliiats, mis ilmub, kui seda teete. Paremklõpsake ja valige "Loo port …" ning klõpsake akna avamisel nuppu OK. See loob välise pordi signaali edastamiseks.
  7. Korrake sammu 6 ka PWM1 ja PWM2 puhul.
  8. Leidke külgribalt väike ümmargune topeltnool ja klõpsake seda. See taastab paigutuse ja teie ploki kujundus peaks välja nägema ülaltoodud pildil.

Samm: seadistage HDL -pakend ja seadistage piirangute fail

Seadistage HDL -pakend ja seadistage piirangute fail
Seadistage HDL -pakend ja seadistage piirangute fail

Nüüd genereerime oma plokidisaini jaoks kõrgetasemelise kujunduse ja seejärel kaardistame PWM0, PWM1 ja PWM2 Zybo plaadil olevatele Pmod -tihvtidele.

  1. Minge vahekaardile "Allikad". Paremklõpsake jaotises "Disainiallikad" oma plokkide kujundusfaili ja klõpsake "Loo HDL -pakend …". Valige „Kopeeri loodud ümbris kasutaja muudatuste lubamiseks” ja klõpsake nuppu OK. See loob meie loodud plokidisaini kõrgetasemelise kujunduse.
  2. Pmod, mida me väljastame, on JE.
  3. Valige jaotises Fail "Lisa allikaid …", valige "Lisa või looge piiranguid" ja klõpsake nuppu Edasi.
  4. Klõpsake nuppu Lisa failid ja valige kaasatud fail "ZYBO_Master.xdc". Kui vaatate seda faili, märkate, et kõik on kommenteerimata, välja arvatud kuus "set_property" rida jaotises "## Pmod Header JE". Märkate, et PWM0, PWM1 ja PWM2 on nende ridade argumendid. Need kaardistatakse JE Pmod'i tihvtide 1, 2 ja 3 külge.

6. samm: bitivoo genereerimine

Enne edasiliikumist peame looma bitivoo, et riistvara disain saaks SDK -sse eksportida.

  1. Valige külgriba jaotises "Programm ja silumine" "Loo bitivoog". See käivitab sünteesi, seejärel juurutamise ja genereerib seejärel disainilahenduse bitivoo.
  2. Parandage ilmnenud vead, kuid hoiatusi võib üldiselt ignoreerida.
  3. Avage Fail-> Käivita SDK ja klõpsake nuppu OK. See avab Xilinxi SDK.

7. toiming: projekti seadistamine SDK -s

See osa võib olla pisut masendav. Kahtluse korral tehke uus BSP ja asendage vana. See säästis meile hulga silumise aega.

  1. Alustuseks laadige siit alla FreeRTOSi uusim versioon.
  2. Eemaldage kõik FreeRTOS-i allalaadimisest ja importimisest SDK-sse, klõpsates nuppu File-> Import ja jaotises "General" klõpsake "Existing Projects Into Workspace" ja seejärel Next.
  3. Minge kausta FreeRTOS kausta "FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702". Importige sellest asukohast ainult "RTOSDemo".
  4. Nüüd genereerige Board Support Package (BSP), klõpsates File-> New Board Support Package.
  5. Valige "ps7_cortexa9_0", märkige "lwip141" ja klõpsake nuppu OK.
  6. Paremklõpsake RTOSDemo sinist kausta ja valige "Projekti viited".
  7. Tühjendage märkeruut „RTOSDemo_bsp” ja kontrollige äsja loodud uut BSP -d.

Samm: FreeRTOS -koodi muutmine

Meie pakutava koodi saab jagada 7 erinevaks failiks. main.c, iic_main_thread.c, xil_printfloat.c, xil_printfloat.h, IIC_funcs.c, IIC_funcs.h ja iic_imu.h. Iic_main_thread.c kood on kohandatud Kris Wineri raamatukogust, mille leiate siit. Me muutsime tema koodi peamiselt ülesannete lisamiseks ja Zybo plaadiga töötamiseks. Lisasime ka kaamera suuna korrektsiooni arvutamise funktsioonid. Oleme jätnud mitu trükiväljaannet, mis on silumiseks kasulikud. Enamikku neist kommenteeritakse, kuid kui tunnete vajadust, võite neist loobuda.

  1. Lihtsaim viis main.c -faili muuta on asendada kood meie kaasatud failist main.c kopeeritud koodiga.
  2. Uue faili loomiseks paremklõpsake RTOSDemo all kausta src ja valige C Source File. Pange sellele failile nimi "iic_main_thread.c".
  3. Kopeerige kood lisatud failist „iic_main_thread.c” ja kleepige see äsja loodud faili.
  4. Korrake samme 2 ja 3 ülejäänud failidega.
  5. nõuab linkimist gcc -s. Selle ehitusteele lisamiseks paremklõpsake RTOSDemo ja valige "C/C ++ Ehituse seaded".
  6. Avaneb uus aken. Avage ARM v7 gcc linker-> Teegid. Valige paremas ülanurgas väike lisamisfail ja tippige "m". See hõlmab projekti matemaatikakogu.
  7. Ehitage projekt klahvikombinatsiooniga Ctrl + B, et kõik toimiks. Kontrollige loodud hoiatusi, kuid võite neid ignoreerida.
  8. Muutmist vajavad mõned kohad, peamiselt teie praeguse asukoha magnetiline deklinatsioon. Kuidas seda muuta, selgitame õpetuse kalibreerimisosas.

9. samm: 3D -printimine stabilisaatori jaoks

3D -printimine stabilisaatori jaoks
3D -printimine stabilisaatori jaoks

Selle projekti jaoks peate paar osa 3D -printima. Tõenäoliselt saab osta osi, mille mõõtmed/suurused on meie trükitud osadega sarnased.

  1. Kasutage kaasasolevaid faile GoPro käe ja hoidiku printimiseks.
  2. Failile.stl tuleb lisada tellingud.
  3. Pärast trükkimist lõigake/puhastage liigsete tellingute osad.
  4. Soovi korral saate puidust tüübli asendada 3D -prinditud osaga.

10. samm: osade kokkupanek

Osade kokkupanek
Osade kokkupanek

Stabilisaatori kokkupanekuks on mitu osa. Ostetud sulgudega on kaasas 4 isekeermestavat kruvi ja 4 mutrit. Kuna servosid on 3, tuleb üks servosarvedest eelnevalt koputada, et 2 poldi läbi mahuks.

  1. Jootke 8 tihvti IMU katkestusele, 4 mõlemal küljel.
  2. IMU on kinnitatud GoPro 3D -prinditud hoidiku külge kronsteini keskel.
  3. Suunake kronstein nii, et servo kinnitusavad oleksid teie vasakul küljel. Asetage IMU endale lähimale servale, tihvtid rippuvad servast maha. Seejärel asetage GoPro kinnitus IMU kohale, kleepides IMU ja kinnitus kronsteini külge.
  4. Kinnitage HS-5485HB servoklambri külge, mis on integreeritud 3D-prinditud õlga.
  5. Keerake GoPro klamber käe külge kinnitatud servosse, veendudes, et servo on seatud nii, et see oleks oma liikumisulatuse keskel.
  6. Seejärel kinnitage servo HS-5685MH servoklambri külge. Seejärel koputage ühe kruviga servosarve. Nüüd kinnitage servo viimase servoklambri põhja.
  7. Nüüd kinnitage viimane servo kronsteini külge, millesse HS-5685MH servo on keeratud. Seejärel keerake käsi sellesse servosse, veendudes, et õlg on kruvitud, nii et see saaks liikuda 90 kraadi kummalegi poole.
  8. Kardaani ehituse lõpetamiseks lisage väike tükk puidust tüüblist, et ühendada GoPro klamber ja 3D -prinditud õlg. Nüüd olete stabilisaatori kokku pannud.
  9. Lõpuks saate lisada alumise servoklambriga ühendatud käepideme.

Samm: ühendage Zyboy stabilisaatoriga

Zyboomi ühendamine stabilisaatoriga
Zyboomi ühendamine stabilisaatoriga

Seda tehes tuleb paar asja ettevaatlik olla. Soovite veenduda, et toiteallika 5V ei satuks kunagi Zybo plaati, kuna see tooks kaasa probleeme plaadiga. Kontrollige kindlasti oma hüppajaid, veendumaks, et juhtmeid ei vahetata.

  1. Zyboomi stabilisaatorile kinnitamiseks vajate 15 mees- ja 4 naissoost hüppajat.
  2. Kõigepealt ühendage kaks džemprit oma 5V toiteallikaga mööda leivaplaadi + ja - rööpaid. Need annavad servodele toite.
  3. Seejärel ühendage 3 paari džemprid leivalaua + ja - rööbastega. See on iga servo jõud.
  4. Ühendage džemprite + ja - teine ots iga servoga.
  5. Ühendage hüppaja leivaplaadi rööpa ja Zybo JE Pmod ühe GND tihvti vahele (vt 5. samm). See loob ühise keele Zybo plaadi ja toiteallika vahel.
  6. Seejärel ühendage signaalijuhe JE Pmod kontakti 1, 2 ja 3 külge. Kinnitage 1 kaart alumise servo külge, 2 tihvti käe otsas oleva servo külge ja 3 kaarti keskmise servo külge.
  7. Ühendage 4 naissoost juhet IMU katkestuse GND, VDD, SDA ja SCL kontaktidega. GND ja VDD ühendatakse JF -i tihvtide GND -ga ja 3V3 -ga. Ühendage SDA tihvt tihvtiga 8 ja SCL pistikuga JF 7. (vt 5. sammu pilt).
  8. Lõpuks ühendage arvuti mikro -USB -kaabli abil plaadiga. See võimaldab uart -suhtlust ja võimaldab teil programmeerida Zybo plaati.

12. samm: tõeline põhjaparandus

Tõeline põhjaparandus
Tõeline põhjaparandus

Magnetomeetri kalibreerimine IMU -s on seadme õigeks toimimiseks oluline. Magnetiline deklinatsioon, mis korrigeerib magnetilist põhja tõelise põhja suunas.

  1. Magnetilisest ja tõelisest põhjast erinevuse parandamiseks peate kasutama kahe teenuse - Google Mapsi ja NOAA magnetvälja kalkulaatori - kombinatsiooni.
  2. Kasutage Google Mapsi, et leida oma praeguse asukoha laius- ja pikkuskraadid.
  3. Võtke praegune pikkus ja laiuskraad ning ühendage see magnetvälja kalkulaatoriga.
  4. Tagastatav on magnetiline deklinatsioon. Ühendage see arvutus "iic_main_thread.c" rea 378 koodiga. Kui teie deklinatsioon on ida pool, siis lahutage kõrvalekalde väärtusest, kui lääne, siis lisage kõrvalekalde väärtusele.

*foto on tehtud Sparkfuni MPU 9250 ühendamisjuhendist, mis on leitav siit.

Samm: programmi käivitamine

Programmi käivitamine
Programmi käivitamine

Hetk, mida olete oodanud! Projekti parim osa on näha selle toimimist. Üks probleem, mida oleme märganud, on see, et IMU teatatud väärtustest on kõrvalekaldeid. Madalpääsfilter võib aidata seda triivi korrigeerida ning magnetomeetri, kiirenduse ja güroskoopi kalibreerimisega tegelemine aitab samuti seda triivi parandada.

  1. Esmalt looge kõik SDK -sse, seda saab teha, vajutades klahvikombinatsiooni Ctrl + B.
  2. Veenduge, et toide on sisse lülitatud ja seadistatud 5V -le. Kontrollige veelkord, kas kõik juhtmed lähevad õigesse kohta.
  3. Seejärel vajutage programmi käivitamiseks tegumiriba ülaosas asuvat rohelist kolmnurka.
  4. Programmi käivitamisel lähtestatakse kõik servod 0 asendisse, nii et olge valmis seadme liikumiseks. Kui programm on initsialiseeritud, liiguvad servod tagasi oma 90 -kraadisesse asendisse.
  5. Magnetomeetri kalibreerimisfunktsioon käivitub ja juhised prinditakse välja UART -terminali, millega saate ühenduse luua jadamonitoriga (nt kitt) või SDK -s sisalduva jadamonitoriga.
  6. Kalibreerimisega liigutate seadet joonisel 8 umbes 10 sekundit. Selle sammu saate eemaldada, kommenteerides lehe „iic_main_thread.c” rida 273. Kui kommenteerite, peate tühistama read 323 - 325 "iic_main_thread.c". Need väärtused koguti esialgu ülaltoodud magnetomeetri kalibreerimisest ja ühendati seejärel väärtustega.
  7. Pärast kalibreerimist stabiliseerimiskood lähtestatakse ja seade hoiab kaamerat stabiilsena.

Soovitan: