Obsah:

Ručný stabilizátor fotoaparátu: 13 krokov (s obrázkami)
Ručný stabilizátor fotoaparátu: 13 krokov (s obrázkami)

Video: Ručný stabilizátor fotoaparátu: 13 krokov (s obrázkami)

Video: Ručný stabilizátor fotoaparátu: 13 krokov (s obrázkami)
Video: Единственная камера, которая вам нужна? с участием НОВОГО Lumix G9II! 2024, Júl
Anonim
Ručný stabilizátor fotoaparátu
Ručný stabilizátor fotoaparátu

Úvod

Toto je návod na vytvorenie 3-osovej ručnej stabilizačnej kamery pre GoPro pomocou vývojovej dosky Digilent Zybo Zynq-7000. Tento projekt bol vyvinutý pre triedu CPE Real-Time Operating Systems (CPE 439). Stabilizátor používa tri servá a IMU na korekciu pohybu používateľa tak, aby bola kamera v úrovni.

Potrebné diely pre projekt

  • Vývojová rada Digilent Zybo Zynq-7000
  • Sparkfun IMU Breakout - MPU 9250
  • 2 serva HiTec HS-5485HB (kúpte si pohyb 180 stupňov alebo program od 90 do 180 stupňov)
  • 1 servo HiTec HS-5685MH (kúpte si pohyb 180 stupňov alebo program od 90 do 180 stupňov)
  • 2 štandardné servopohony
  • 1 Breadboard
  • 15 prepojovacích káblov muž-muž
  • 4 prepojovacie vodiče medzi mužom a ženou
  • Horúce lepidlo
  • Úchop alebo rukoväť
  • Drevená hmoždinka s priemerom 5 mm
  • GoPro alebo iný kamerový a montážny hardvér
  • Napájací zdroj s výstupom 5 V.
  • Prístup k 3D tlačiarni

Krok 1: Nastavenie hardvéru Vivado

Nastavenie hardvéru Vivado
Nastavenie hardvéru Vivado

Začnime s vytvorením podkladového bloku pre projekt.

  1. Otvorte Vivado 2016.2, kliknite na ikonu „Vytvoriť nový projekt“a kliknite na „Ďalej>“.
  2. Pomenujte svoj projekt a kliknite na „Ďalej>“.
  3. Vyberte projekt RTL a kliknite na „Ďalej>“.
  4. Napíšte do vyhľadávacieho panela xc7z010clg400-1 a potom vyberte časť a kliknite na „Ďalej>“a „Dokončiť“.

Krok 2: Nastavenie dizajnu bloku

Teraz začneme generovať návrh bloku pridaním a nastavením bloku Zynq IP.

  1. Na ľavom paneli v časti IP Integrator kliknite na „Vytvoriť návrh bloku“a potom kliknite na „OK“.
  2. Kliknite pravým tlačidlom myši na kartu „Diagram“a zvoľte „Pridať IP …“.
  3. Napíšte „ZYNQ7 Processing System“a kliknite na výber.
  4. Dvakrát kliknite na zobrazený blok Zynq.
  5. Kliknite na „Importovať nastavenia XPS“a importujte poskytnutý súbor „ZYBO_zynq_def.xml“.
  6. Prejdite na „Konfigurácia MIO“, vyberte „Jednotka aplikačného procesora“a povoľte časovače Timer 0 a Watchdog.
  7. Na tej istej karte v časti „I/O periférie“vyberte ENET 0 (a zmeňte rozbaľovaciu ponuku na „MIO 16.. 27“, USB 0, SD 0, UART 1, I2C 0.
  8. V časti „GPIO“začiarknite políčka GPIO MIO, ENET Reset, USB Reset a I2C Reset.
  9. Teraz prejdite na „Konfigurácia hodín“. Vyberte položku FCLK_CLK0 v časti Hodiny z látky PL. Potom kliknite na „OK“.

Krok 3: Vytvorte vlastný blok IP PWM

Tento blok IP umožňuje doske odoslať signál PWM von na ovládanie pohybu serv. Práca vo veľkej miere vychádzala z tutoriálu Digitronix Nepál, ktorý sa tu nachádza. Bola pridaná logika na spomalenie hodín, takže impulz vychádzal správnou rýchlosťou. Blok vezme číslo od 0 do 180 a prevedie ho na impulz od 750 do 2150 usec.

  1. Teraz na karte Nástroje v ľavom hornom rohu kliknite na „Vytvoriť a zabaliť IP…“a kliknite na Ďalej.
  2. Potom vyberte „Vytvoriť novú perifériu AXI4“a kliknite na Ďalej.
  3. Pomenujte svoj blok IP PWM (pomenovali sme ho pwm_core) a kliknite na Ďalej a potom na ďalšej stránke tiež na Ďalej.
  4. Teraz kliknite na „Upraviť IP“a kliknite na Dokončiť. Tým sa otvorí nové okno na úpravu bloku pwm.
  5. Na karte „Zdroje“a v časti „Zdroje návrhu“rozbaľte „pwm_core_v1_0“(nahraďte pwm_core svojim menom) a otvorte viditeľný súbor.
  6. Skopírujte a prilepte kód poskytnutý v časti „pwm_core_v1_0_S00_AXI.v“do súboru zip v spodnej časti projektu. Ctrl + Shift + R a nahraďte „pwm_core“svojim názvom pre blok ip.
  7. Ďalej otvorte 'name _v1_0' a skopírujte poskytnutý kód do súboru 'pwm_core_v1_0.v'. Ctrl + Shift + R a nahraďte „pwm_core“názvom.
  8. Teraz prejdite na kartu „Balíček IP - názov“a zvoľte „Parametre prispôsobenia“.
  9. Na tejto karte bude v hornej časti žltý pruh, ktorý spája prepojený text. Vyberte toto a v poli sa zobrazí „Skryté parametre“.
  10. Teraz prejdite na „GUI prispôsobenia“a kliknite pravým tlačidlom myši na Pwm Counter Max, zvoľte „Upraviť parameter …“.
  11. Začiarknite políčka „Visible in Customization GUI“a „Specify Range“.
  12. Zmeňte rozbaľovaciu ponuku „Typ:“na Rozsah celých čísel a nastavte minimum na 0 a maximum na 65535 a začiarknite políčko „Zobraziť rozsah“. Teraz kliknite na OK.
  13. Presuňte počítadlo Pwm Max pod strom „Stránka 0“. Teraz prejdite na „Skontrolovať a zabaliť“a kliknite na tlačidlo „Znovu zabaliť balík IP“.

Krok 4: Pridajte do návrhu blok IP PWM

Pridajte blok PWM IP do návrhu
Pridajte blok PWM IP do návrhu

IP blok pridáme do dizajnu bloku, aby mal užívateľ prístup k bloku IP PWM prostredníctvom procesora.

  1. Kliknite pravým tlačidlom myši na kartu diagramu a kliknite na položku „Nastavenia IP …“. Prejdite na kartu „Správca úložiska“.
  2. Kliknite na zelené tlačidlo plus a vyberte ho. Teraz nájdite ip_repo v Správcovi súborov a pridajte ho do projektu. Potom kliknite na položku Použiť a potom na tlačidlo OK.
  3. Kliknite pravým tlačidlom myši na kartu diagramu a kliknite na „Pridať IP …“. Zadajte názov bloku IP PWM a vyberte ho.
  4. V hornej časti obrazovky by mal byť zelený pruh, najskôr zvoľte „Spustiť automatizáciu pripojenia“a kliknite na tlačidlo OK. Potom kliknite na položku „Spustiť automatizáciu blokov“a kliknite na tlačidlo OK.
  5. Dvakrát kliknite na blok PWM a zmeňte Pwm Counter Max na 1024 zo 128.
  6. Umiestnite kurzor myši na PWM0 v bloku PWM. Mala by existovať malá ceruzka, ktorá sa objaví, keď to urobíte. Kliknite pravým tlačidlom myši, zvoľte „Vytvoriť port …“a po otvorení okna kliknite na tlačidlo OK. Tým sa vytvorí externý port, do ktorého sa má prenášať signál.
  7. Krok 6 zopakujte aj pre PWM1 a PWM2.
  8. Nájdite na bočnom paneli malú ikonu kruhovej dvojitej šípky a kliknite na ňu. Obnoví rozloženie a váš návrh bloku by mal vyzerať ako na obrázku vyššie.

Krok 5: Konfigurujte HDL Wrapper a nastavte súbor obmedzení

Nakonfigurujte HDL Wrapper a nastavte súbor obmedzení
Nakonfigurujte HDL Wrapper a nastavte súbor obmedzení

Teraz vygenerujeme návrh vysokej úrovne pre náš návrh blokov a potom namapujeme piny PWM0, PWM1 a PWM2 na Pmod na doske Zybo.

  1. Prejdite na kartu „Zdroje“. Pravým tlačidlom myši kliknite na súbor návrhu bloku v časti „Zdroje návrhu“a kliknite na „Vytvoriť obal HDL …“. Vyberte možnosť „Kopírovať generovaný obal, aby bolo možné vykonávať úpravy používateľa“, a kliknite na tlačidlo OK. To vytvára dizajn na vysokej úrovni pre návrh bloku, ktorý sme vytvorili.
  2. Pmod, do ktorého budeme vystupovať, je JE.
  3. V časti Súbor vyberte položku „Pridať zdroje…“, vyberte položku „Pridať alebo vytvoriť obmedzenia“a kliknite na tlačidlo Ďalej.
  4. Kliknite na položku Pridať súbory a vyberte zahrnutý súbor „ZYBO_Master.xdc“. Ak sa pozriete do tohto súboru, všimnete si, že je všetko odkomentované, okrem šiestich riadkov „set_property“v časti „## Pmod Header JE“. Všimnite si, že PWM0, PWM1 a PWM2 sú argumenty pre tieto riadky. Mapujú na Pin 1, Pin 2 a Pin 3 JE Pmod.

Krok 6: Generovanie bitového toku

Predtým, ako sa pohneme ďalej, musíme vygenerovať bitový tok pre návrh hardvéru na export do SDK.

  1. V časti „Program a ladenie“na bočnom paneli vyberte „Generovať bitový tok“. Spustí sa syntéza, potom implementácia a potom sa vygeneruje bitový tok pre návrh.
  2. Opravte všetky chyby, ktoré sa zobrazia, ale upozornenia je spravidla možné ignorovať.
  3. Prejdite na Súbor-> Spustiť SDK a kliknite na OK. Tým sa otvorí súprava Xilinx SDK.

Krok 7: Nastavenie projektu v súprave SDK

Táto časť môže byť trochu frustrujúca. Ak máte pochybnosti, vytvorte nový BSP a nahraďte starý. To nám ušetrilo veľa času na ladenie.

  1. Začnite stiahnutím najnovšej verzie FreeRTOS tu.
  2. Extrahujte všetko zo sťahovania a importujte FreeRTOS do SDK kliknutím na Súbor-> Importovať a v časti „Všeobecné“kliknite na „Existujúce projekty do pracovného priestoru“a potom kliknite na Ďalej.
  3. V priečinku FreeRTOS prejdite na „FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702“. Importujte „RTOSDemo“iba z tohto umiestnenia.
  4. Teraz vygenerujte balík Board Board Package (BSP) kliknutím na Súbor-> Nový balík podpory Board.
  5. Vyberte „ps7_cortexa9_0“a začiarknite políčko „lwip141“a kliknite na tlačidlo OK.
  6. Pravým tlačidlom myši kliknite na modrý priečinok RTOSDemo a zvoľte „Referencie projektu“.
  7. Zrušte začiarknutie políčka „RTOSDemo_bsp“a začiarknite nový BSP, ktorý sme práve vytvorili.

Krok 8: Úpravy kódu FreeRTOS

Nami poskytovaný kód je možné rozdeliť do 7 rôznych súborov. main.c, iic_main_thread.c, xil_printfloat.c, xil_printfloat.h, IIC_funcs.c, IIC_funcs.h a iic_imu.h. Kód v iic_main_thread.c bol upravený z knižnice Krisa Winera, ktorú nájdete tu. Jeho kód sme predovšetkým transformovali tak, aby zahŕňal úlohy a aby fungoval s doskou Zybo. Pridali sme aj funkcie na výpočet korekcie orientácie fotoaparátu. Zostalo nám niekoľko tlačových vyhlásení, ktoré sú užitočné na ladenie. Väčšina z nich je komentovaná, ale ak cítite potrebu, môžete ich odkomentovať.

  1. Najľahší spôsob, ako upraviť súbor main.c, je nahradiť kód skopírovaným kódom z nášho zahrnutého súboru main.c.
  2. Ak chcete vytvoriť nový súbor, kliknite pravým tlačidlom myši na priečinok src v časti RTOSDemo a vyberte položku C Zdrojový súbor. Tento súbor pomenujte „iic_main_thread.c“.
  3. Skopírujte kód z priloženého súboru „iic_main_thread.c“a vložte ho do novovytvoreného súboru.
  4. Kroky 2 a 3 zopakujte so zvyšnými súbormi.
  5. vyžaduje návod na prepojenie v gcc. Ak to chcete pridať do cesty zostavenia, kliknite pravým tlačidlom myši na RTOSDemo a zvoľte „Nastavenia zostavenia C/C ++“.
  6. Otvorí sa nové okno. Prejdite na odkazovač ARC v7 gcc-> Knižnice. Vyberte malý súbor na pridanie v pravom hornom rohu a zadajte „m“. To bude zahŕňať projekt matematickú knižnicu.
  7. Vytvorte projekt pomocou Ctrl + B a potvrďte, že všetko funguje. Skontrolujte generované varovania, ale môžete ich ignorovať.
  8. Existuje niekoľko miest, ktoré budú potrebovať úpravu, hlavne magnetická deklinácia vašej aktuálnej polohy. V kalibračnej časti tutoriálu vysvetlíme, ako to zmeniť.

Krok 9: 3D tlač pre stabilizátor

3D tlač pre stabilizátor
3D tlač pre stabilizátor

Pre tento projekt musíte 3D tlačiť niekoľko dielov. Pravdepodobne je možné kúpiť diely, ktoré majú podobné rozmery/veľkosti ako naše tlačené diely.

  1. Pomocou dodaných súborov vytlačte držiak a držiak GoPro.
  2. Do súboru.stl musíte pridať lešenie.
  3. Po vytlačení orežte/vyčistite časti prebytočného lešenia.
  4. Ak chcete, drevenú hmoždinku môžete nahradiť 3D tlačenou časťou.

Krok 10: Zostavenie dielov

Zostavenie dielov
Zostavenie dielov

Existuje niekoľko častí na montáž stabilizátora. K zakúpeným konzolám patria 4 samorezné skrutky a 4 skrutky s maticami. Pretože existujú 3 servá, na jeden zo servo rohov je potrebné vopred poklepať, aby mohli prejsť 2 skrutky.

  1. Spájkujte 8 kolíkov na otvor IMU, 4 na každej strane.
  2. Jednotka IMU je pripevnená k 3D tlačenému držiaku GoPro v strede konzoly.
  3. Orientujte konzolu tak, aby boli otvory na upevnenie serva na ľavej strane. Umiestnite IMU na najbližší okraj k vám, pričom kolíky visia mimo okraj. Potom umiestnite držiak GoPro na vrch IMU, prilepte IMU a držiak na miesto na konzole.
  4. Pripojte HS-5485HB k držiaku serva, ktoré je integrované do ramena s 3D tlačou.
  5. Naskrutkujte držiak GoPro na servo pripevnené k ramenu a uistite sa, že je servo nastavené tak, aby bolo v strede rozsahu jeho pohybu.
  6. Potom pripevnite servo HS-5685MH k držiaku serva. Potom poklepte na servo roh jednou zo skrutiek. Teraz pripevnite servo k spodnej časti posledného držiaka serva.
  7. Teraz pripevnite posledné servo k držiaku, do ktorého je naskrutkované servo HS-5685MH. Potom zaskrutkujte rameno do tohto serva a uistite sa, že je rameno naskrutkované tak, aby sa mohlo pohybovať o 90 stupňov v každom smere.
  8. Na dokončenie konštrukcie kardanového závesu pridajte malý kúsok drevenej hmoždinky na spojenie medzi konzolou GoPro a ramenom s 3D tlačou. Teraz ste zmontovali stabilizátor.
  9. Nakoniec môžete pridať rukoväť spojenú so spodným držiakom serva.

Krok 11: Pripojenie Zybo k stabilizátoru

Pripojenie Zybo k stabilizátoru
Pripojenie Zybo k stabilizátoru

Pri tomto postupe je potrebné dávať pozor na niekoľko vecí. Chcete sa uistiť, že 5 V z napájacieho zdroja nikdy neprejde na dosku Zybo, pretože by to viedlo k problémom s doskou. Nezabudnite znova skontrolovať prepojky, aby ste sa presvedčili, že nie sú prepínané žiadne káble.

  1. Na pripevnenie Zyba k stabilizátoru budete potrebovať 15 prepojok mužského a mužského pohlavia a 4 prepojky mužského a ženského pohlavia.
  2. Najprv pripojte dve prepojky k vášmu napájaniu 5 V pozdĺž koľajníc + a - na nepájivom poli. Tieto budú dodávať energiu do serva.
  3. Potom pripojte 3 páry prepojok k + a - lištám nepájivého poľa. To bude sila pre každé zo serv.
  4. Druhý koniec prepojok + a - zapojte do každého zo serva.
  5. Pripojte prepojku medzi - lištu nepájivého poľa a jeden z kolíkov GND na Zybo JE Pmod (pozri obrázok kroku 5). Tým sa vytvorí spoločná zem medzi doskou Zybo a napájacím zdrojom.
  6. Potom pripojte signálny vodič k pinom 1, pin 2 a pin 3 JE Pmod. Pin 1 mapuje na spodné servo, pin 2 mapy na servo na konci ramena a pin 3 mapy na stredné servo.
  7. Pripojte 4 zásuvkové vodiče k pinom GND, VDD, SDA a SCL prerušenia IMU. GND a VDD zapojte do GND a 3V3 na piny JF. Zapojte kolík SDA do kolíka 8 a SCL do kolíka 7 na JF (pozri obrázok krok 5).
  8. Nakoniec pripojte počítač k doske pomocou mikro USB kábla. To umožní uart komunikáciu a umožní vám naprogramovať dosku Zybo.

Krok 12: Skutočná severná oprava

Skutočná severná oprava
Skutočná severná oprava

Kalibrácia magnetometra v IMU je dôležitá pre správnu funkciu zariadenia. Magnetická deklinácia, ktorá koriguje magnetický sever na skutočný sever.

  1. Na opravu rozdielu od magnetického a pravého severu musíte použiť kombináciu dvoch služieb, Google Maps a kalkulačku magnetického poľa NOAA.
  2. Pomocou Máp Google vyhľadajte svoju zemepisnú šírku a dĺžku vašej aktuálnej polohy.
  3. Zistite svoju aktuálnu zemepisnú dĺžku a šírku a zapojte ju do kalkulačky magnetického poľa.
  4. To, čo sa vráti, je magnetická deklinácia. Pripojte tento výpočet do kódu v riadku 378 „iic_main_thread.c“. Ak je vaša deklinácia na východe, odpočítajte ju od hodnoty vybočenia, ak na západe, pridajte k hodnote vybočenia.

*fotografia bola prevzatá zo sprievodcu pripojením MPark 9250 spoločnosti Sparkfun, ktorý nájdete tu.

Krok 13: Spustenie programu

Spustenie programu
Spustenie programu

Moment, na ktorý ste čakali! Najlepšia časť projektu je vidieť, ako funguje. Jeden problém, ktorý sme si všimli, je, že dochádza k odchýlke od hodnôt hlásených z IMU. Drift môže pomôcť napraviť dolnopriepustný filter a korigovať drift pomôže aj manipulácia s magnetometrom, akceleráciou a gyroskopickou kalibráciou.

  1. Najprv vytvorte všetko v súprave SDK, čo sa dá urobiť stlačením klávesov Ctrl + B.
  2. Uistite sa, že je napájanie zapnuté a nastavené na 5V. Znova skontrolujte, či sú všetky vodiče na správnych miestach.
  3. Potom na spustenie programu stlačte zelený trojuholník v strede hore na paneli úloh.
  4. Po spustení programu sa všetky serva vrátia do svojich 0 polôh, takže buďte pripravení na pohyb zariadenia. Akonáhle sa program inicializuje, serva sa potom prichytia späť do svojich 90 stupňových polôh.
  5. Spustí sa funkcia kalibrácie magnetometra a pokyny sa vytlačia na terminál UART, ku ktorému sa môžete pripojiť pomocou sériového monitora, ako je „tmel“, alebo sériového monitora dodaného v súprave SDK.
  6. Pri kalibrácii budete zariadenie pohybovať na obrázku 8 približne 10 sekúnd. Tento krok môžete odstrániť tak, že okomentujete riadok 273 v „iic_main_thread.c“. Ak to komentujete, musíte odkomentovať riadky 323 - 325 „iic_main_thread.c“. Tieto hodnoty boli pôvodne zhromaždené z vyššie uvedenej kalibrácie magnetometra a potom zapojené ako hodnoty.
  7. Po kalibrácii sa inicializuje stabilizačný kód a zariadenie udrží kameru stabilnú.

Odporúča: