Mundarija:

Qo'l kamerasi stabilizatori: 13 qadam (rasmlar bilan)
Qo'l kamerasi stabilizatori: 13 qadam (rasmlar bilan)

Video: Qo'l kamerasi stabilizatori: 13 qadam (rasmlar bilan)

Video: Qo'l kamerasi stabilizatori: 13 qadam (rasmlar bilan)
Video: Номозни масхара килган шайтон жазосини олди 🙀 2024, Iyul
Anonim
Qo'l kamerasi stabilizatori
Qo'l kamerasi stabilizatori

Kirish

Bu Digilent Zybo Zynq-7000 ishlab chiqish platasi yordamida GoPro uchun 3 o'qli portativ kamera stabilizatorini yaratish bo'yicha qo'llanma. Ushbu loyiha CPE real vaqtda operatsion tizimlar sinfi (CPE 439) uchun ishlab chiqilgan. Stabilizator kameraning darajasini ushlab turish uchun foydalanuvchining harakatini to'g'rilash uchun uchta servo va IMUdan foydalanadi.

Loyiha uchun zarur bo'lgan qismlar

  • Digilent Zybo Zynq-7000 ishlab chiqish kengashi
  • Sparkfun IMU uzilishi - MPU 9250
  • 2 HiTec HS-5485HB servolari (180 gradusli harakat yoki 90 dan 180 gradusgacha bo'lgan dasturni sotib oling)
  • 1 HiTec HS-5685MH Servo (180 gradusli harakat yoki 90 dan 180 gradusgacha bo'lgan dasturni sotib oling)
  • 2 standart servo qavs
  • 1 Non paneli
  • Erkak-erkak 15 ta o'tish simlari
  • Erkak-ayol 4 ta o'tish simlari
  • Issiq elim
  • Tutqich yoki tutqich
  • 5 mm diametrli yog'och dublon
  • GoPro yoki boshqa kamera va o'rnatish uskunalari
  • 5 V kuchlanishli quvvat manbai.
  • 3D printerga kirish

1 -qadam: Vivado uskunasini sozlash

Vivado uskunasini sozlash
Vivado uskunasini sozlash

Loyihaning asosiy blok dizaynini yaratishni boshlaylik.

  1. Vivado 2016.2 -ni oching, "Yangi loyiha yaratish" belgisini bosing va "Keyingi" -ni bosing.
  2. Loyihangizga nom bering va "Keyingi>" ni bosing.
  3. RTL loyihasini tanlang va "Keyingi>" ni bosing.
  4. Qidiruv satriga xc7z010clg400-1 kiriting va keyin qismini tanlang va "Keyingi>" va "Finish" ni bosing.

2 -qadam: Blok dizaynini sozlash

Endi biz Zynq IP -blokini qo'shish va sozlash orqali blok dizaynini yaratishni boshlaymiz.

  1. Chap panelda, IP -integrator ostida "Blok dizaynini yaratish" -ni bosing va "OK" -ni bosing.
  2. "Diagramma" yorlig'ini o'ng tugmasini bosing va "IP -ni qo'shish …" -ni tanlang.
  3. "ZYNQ7 Processing System" ni kiriting va tanlovni bosing.
  4. Ko'rsatilgan Zynq blokini ikki marta bosing.
  5. "XPS sozlamalarini import qilish" ni bosing va taqdim etilgan "ZYBO_zynq_def.xml" faylini import qiling.
  6. "MIO konfiguratsiyasi" ga o'ting va "Dastur protsessor birligi" ni tanlang va Timer 0 va Watchdog taymerlarini yoqing.
  7. Xuddi shu yorliqda "I/U tashqi qurilmalari" ostida ENET 0 -ni tanlang (va ochiladigan menyuni "MIO 16.. 27", USB 0, SD 0, UART 1, I2C 0 ga o'zgartiring).
  8. "GPIO" ostida GPIO MIO, ENET Reset, USB Reset va I2C Reset -ni tekshiring.
  9. Endi "Soat konfiguratsiyasi" ga o'ting. PL Fabric Clocks ostida FCLK_CLK0 -ni tanlang. Keyin, "OK" ni bosing.

3 -qadam: Maxsus PWM IP -blokini yarating

Ushbu IP -blok taxtaga servolarning harakatini boshqarish uchun PWM signalini yuborish imkonini beradi. Ish asosan bu erda joylashgan Digitronix Nepal o'quv qo'llanmasiga asoslangan. Mantiq soatni sekinlashtirish uchun qo'shilgan, shuning uchun puls to'g'ri tezlikda chiqardi. Blok 0 dan 180 gacha bo'lgan raqamni oladi va uni 750-2150 usec pulsga aylantiradi.

  1. Endi, yuqori chap burchakdagi "Asboblar" yorlig'i ostida "IP-ni yaratish va paketlash …" -ni bosing va Keyingisini bosing.
  2. Keyin "Yangi AXI4 atrof -muhit qurilmasini yaratish" -ni tanlang va Keyingisini bosing.
  3. PWM IP -blokiga nom bering (biz uni pwm_core deb nomladik) va Keyingiga bosing va keyingi sahifada Keyingiga bosing.
  4. Endi "IP -ni tahrirlash" -ni bosing va Finish -ni bosing. Bu pwm blokini tahrirlash uchun yangi oyna ochiladi.
  5. "Manbalar" ko'rinishida va "Dizayn manbalari" ostida "pwm_core_v1_0" ni kengaytiring (pwm_core -ni ismingiz bilan almashtiring) va ko'rinadigan faylni oching.
  6. Loyihaning pastki qismidagi zip fayliga "pwm_core_v1_0_S00_AXI.v" ostida berilgan kodni nusxa ko'chiring va joylashtiring. Ctrl + Shift + R va ip -blok uchun "pwm_core" ni o'z ismingiz bilan almashtiring.
  7. Keyin "name _v1_0" ni oching va "pwm_core_v1_0.v" faylidagi kodni nusxa ko'chiring. Ctrl + Shift + R va "pwm_core" ni nom bilan almashtiring.
  8. Endi "Paket IP - nomi" yorlig'iga o'ting va "Moslashtirish parametrlari" ni tanlang.
  9. Bu varaqning yuqori qismida matn bilan bog'langan sariq chiziq bo'ladi. Buni tanlang, shunda "Yashirin parametrlar" paydo bo'ladi.
  10. Endi "GUI -ni sozlash" -ga o'ting va Pwm Counter Max -ni o'ng tugmasini bosing "Parametrni tahrirlash …" -ni tanlang.
  11. "Moslashtirishda ko'rinadigan GUI" va "qatorni belgilash" katakchalarini belgilang.
  12. "Turi:" ochiladigan menyusini tamsaytlar oralig'iga o'zgartiring va minimalni 0 va maksimalni 65535 ga qo'ying va "Ko'rish oralig'ini ko'rsatish" katagiga belgi qo'ying. Endi OK ni bosing.
  13. Pwm Counter Max -ni "Sahifa 0" daraxti ostiga torting. Endi "Ko'rib chiqish va paketlash" ga o'ting va "IP-ni qayta paketlash" tugmasini bosing.

4 -qadam: Dizaynga PWM IP -blokini qo'shing

Dizaynga PWM IP blokirovkasini qo'shing
Dizaynga PWM IP blokirovkasini qo'shing

Biz foydalanuvchiga protsessor orqali PWM IP -blokiga kirishga ruxsat berish uchun IP -blokni blok dizayniga qo'shamiz.

  1. Diagramma yorlig'ini o'ng tugmasini bosing va "IP sozlamalari …" ni bosing. "Ma'lumotlar ombori menejeri" yorlig'iga o'ting.
  2. Yashil plyus tugmachasini bosing va uni tanlang. Endi Fayl menejerida ip_repo -ni toping va uni loyihaga qo'shing. Keyin "Qo'llash" va keyin "OK" ni bosing.
  3. Diagramma yorlig'ini o'ng tugmasini bosing va "IP qo'shish …" ni bosing. PWM IP -blok nomini kiriting va uni tanlang.
  4. Ekranning yuqori qismida yashil chiziq bo'lishi kerak, avval "Ulanish avtomatizatsiyasini ishga tushirish" -ni tanlang va OK tugmasini bosing. Keyin "Blokni avtomatlashtirishni ishga tushirish" ni bosing va OK ni bosing.
  5. PWM blokini ikki marta bosing va Pwm Counter Max -ni 128 -dan 1024 -ga o'zgartiring.
  6. Sichqoncha ko'rsatgichini PWM blokidagi PWM0 ustiga olib boring. Siz qilganingizda ko'rsatiladigan kichik qalam bo'lishi kerak. Sichqonchaning o'ng tugmachasini bosing va "Port yaratish …" -ni tanlang va oyna ochilganda OK ni bosing. Bu signal uzatiladigan tashqi portni yaratadi.
  7. PWM1 va PWM2 uchun ham 6 -qadamni takrorlang.
  8. Yon paneldagi kichik dumaloq ikkita o'q belgisini toping va ustiga bosing. Bu tartibni qayta tiklaydi va sizning blokingiz dizayni yuqoridagi rasmga o'xshash bo'lishi kerak.

5 -qadam: HDL o'rash moslamasini sozlang va cheklovlar faylini o'rnating

HDL o'rash moslamasini sozlang va cheklovlar faylini o'rnating
HDL o'rash moslamasini sozlang va cheklovlar faylini o'rnating

Endi biz blok dizaynimiz uchun yuqori darajali dizaynni yaratamiz va keyin PWM0, PWM1 va PWM2 ni Zybo doskasidagi Pmod pinlariga joylashtiramiz.

  1. "Manbalar" yorlig'iga o'ting. "Dizayn manbalari" ostida blok dizayn faylini o'ng tugmasini bosing va "HDL o'rash moslamasini yaratish …" ni bosing. "Foydalanuvchilarni tahrirlash uchun yaratilgan o'rashni nusxalash" -ni tanlang va OK tugmasini bosing. Bu biz yaratgan blok dizayni uchun yuqori darajali dizaynni yaratadi.
  2. Biz chiqaradigan Pmod - bu JE.
  3. Fayl ostida "Manba qo'shish …" -ni tanlang va "Cheklovlarni qo'shish yoki yaratish" -ni tanlang va Keyingiga bosing.
  4. Fayl qo'shish -ni bosing va "ZYBO_Master.xdc" faylini tanlang. Agar siz ushbu faylga qarasangiz, "## Pmod Header JE" ostidagi "set_property" qatoridan tashqari hamma narsa izohlanmaganini ko'rasiz. Siz PWM0, PWM1 va PWM2 bu satrlar uchun dalillar ekanligini sezasiz. Ular JE Pmodning 1 -pin, 2 -pin va 3 -piniga xarita tuzadilar.

6 -qadam: Bitstream yaratish

Biz davom etishimizdan oldin SDK -ga eksport qilish uchun apparat dizayni uchun oqim oqimini yaratishimiz kerak.

  1. Yon paneldagi "Dastur va disk raskadrovka" ostida "Bitstream yaratish" -ni tanlang. Bu sintezni, keyin amalga oshirishni va keyin dizayn uchun bit oqimini yaratadi.
  2. Ochilgan xatolarni tuzating, lekin odatda ogohlantirishlarga e'tibor bermaslik mumkin.
  3. Fayl-> SDK-ni ishga tushirish-ga o'ting va OK-ni bosing. Bu Xilinx SDK -ni ochadi.

7 -qadam: SDKda loyihani o'rnatish

Bu qism biroz asabiylashishi mumkin. Agar shubhangiz bo'lsa, yangi BSP qiling va eskisini o'zgartiring. Bu bizga disk raskadrovka vaqtini tejadi.

  1. FreeRTOS -ning so'nggi versiyasini yuklab olishdan boshlang.
  2. Yuklab olishdan hamma narsani olib tashlang va FreeRTOS-ni SDK-ga Fayl-> Import-ni bosing va "Umumiy" ostida "Ish maydonida mavjud loyihalar" -ni bosing, so'ng "Keyingi" -ni bosing.
  3. FreeRTOS jildidagi "FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702" ga o'ting. Faqat bu joydan "RTOSDemo" ni import qiling.
  4. Endi Fayl-> Kengashni qo'llab-quvvatlashning yangi to'plami-ni bosish orqali kengashni qo'llab-quvvatlash paketini (BSP) yarating.
  5. "Ps7_cortexa9_0" -ni tanlang va "lwip141" -ni belgilang va OK tugmasini bosing.
  6. Moviy RTOSDemo papkasini o'ng tugmasini bosing va "Loyihaga havolalar" ni tanlang.
  7. "RTOSDemo_bsp" belgisini olib tashlang va biz yaratgan yangi BSP ni tekshiring.

8 -qadam: FreeRTOS kodini o'zgartirish

Biz bergan kodni 7 xil faylga ajratish mumkin. main.c, iic_main_thread.c, xil_printfloat.c, xil_printfloat.h, IIC_funcs.c, IIC_funcs.h va iic_imu.h. Iic_main_thread.c -dagi kod Kris Uinerning kutubxonasidan moslashtirilgan bo'lib, uni bu erda topishingiz mumkin. Biz asosan uning kodini vazifalarni birlashtirish va uni Zybo platasi bilan ishlashga aylantirdik. Shuningdek, biz kameraning yo'nalishini to'g'rilashni hisoblash funktsiyalarini qo'shdik. Biz disk raskadrovka uchun foydali bo'lgan bir nechta bosma bayonotlarni qoldirganmiz. Ularning aksariyati izohlanadi, lekin agar siz ularga ehtiyoj sezsangiz, ularni sharhlarsiz qoldirishingiz mumkin.

  1. Main.c faylini o'zgartirishning eng oson yo'li bu kodni main.c faylidan nusxa ko'chirish bilan almashtirishdir.
  2. Yangi fayl yaratish uchun RTOSDemo ostidagi src papkasini o'ng tugmasini bosing va C manba faylini tanlang. Bu faylga "iic_main_thread.c" deb nom bering.
  3. Kiritilgan "iic_main_thread.c" dan kodni nusxalash va uni yangi yaratilgan faylga joylashtirish.
  4. Qolgan fayllar bilan 2 va 3 -bosqichlarni takrorlang.
  5. gcc -da bog'lanish ko'rsatmalarini talab qiladi. Buni qurilish yo'liga qo'shish uchun RTOSDemo -ni o'ng tugmasini bosing va "C/C ++ Build Settings" -ni tanlang.
  6. Yangi oyna ochiladi. ARM v7 gcc linker-> Kutubxonalarga o'ting. O'ng yuqori burchakdagi kichik qo'shish faylini tanlang va "m" kiriting. Bu matematik kutubxonani loyihaga kiritadi.
  7. Hamma narsa ishlayotganini tasdiqlash uchun Ctrl + B yordamida loyiha yarating. Ogohlantirishlarni tekshiring, lekin ularni e'tiborsiz qoldirishingiz mumkin.
  8. O'zgartirishni talab qiladigan bir nechta joylar mavjud, asosan sizning hozirgi joylashuvingizning magnitli burilishi. Buni qanday o'zgartirish kerakligini darsning kalibrlash qismida tushuntiramiz.

9 -qadam: Stabilizator uchun 3D bosib chiqarish

Stabilizator uchun 3D bosib chiqarish
Stabilizator uchun 3D bosib chiqarish

Loyihani bajarish uchun siz 3D qismni bir necha qismdan bosib chiqarishingiz kerak. Ehtimol, biz bosilgan qismlarga o'xshash o'lchamdagi/o'lchamdagi qismlarni sotib olishimiz mumkin.

  1. GoPro uchun qo'l va ushlagichni bosib chiqarish uchun taqdim etilgan fayllardan foydalaning.
  2. . Stl fayliga iskala qo'shishingiz kerak.
  3. Ortiqcha iskala qismlarini chop eting/tozalang.
  4. Agar xohlasangiz, yog'och dublonni 3D bosma qism bilan almashtirishingiz mumkin.

10 -qadam: qismlarni yig'ish

Qismlarni yig'ish
Qismlarni yig'ish

Bu stabilizatorni yig'ishning bir necha qismlari. Sotib olingan qavslar 4 ta o'z-o'zidan tejamkor vint va yong'oqli 4 ta murvat bilan birga keladi. 3 ta servo mavjud bo'lganligi sababli, ikkita murvatni joylashtirish uchun servo shoxlaridan birini oldindan urish kerak.

  1. Harakatning har bir tomoniga 4 ta, 8 ta pinni lehimlang.
  2. IMU, Qavsning markazida GoPro uchun 3D bosilgan ushlab turuvchi qavsga biriktirilgan.
  3. Qavsni servo o'rnatish teshiklari chap tomoningizda bo'ladigan qilib yo'naltiring. O'chirish pinlarini chetiga osib qo'ygan holda, O'IHni sizga eng yaqin chetiga joylashtiring. Keyin, GoPro moslamasini IMU tepasiga joylashtiring, IMU va montajni qavsga joyiga qo'ying.
  4. HS-5485HB ni 3D bosilgan qo'lga o'rnatilgan servo qavsga ulang.
  5. GoPro braketini qo'l bilan biriktirilgan servoga burab, servo harakatlanish oralig'ining o'rtasida joylashganligiga ishonch hosil qiling.
  6. Keyin, HS-5685MH servosini servo qavsga ulang. Keyin vintlardan biri bilan servo shoxiga teging. Endi servoni oxirgi servo qavsning pastki qismiga ulang.
  7. Endi HS-5685MH servo vidalanadigan qavsga oxirgi servo ulang. Keyin qo'lni bu servoga burab qo'ying va qo'l har tomonga 90 gradusga harakatlanishi uchun vidalanganligiga ishonch hosil qiling.
  8. Gimbal qurilishini tugatish uchun, yog'och dübelning kichik bir qismini qo'shing, GoPro qavsini va 3D bosilgan qo'lni ulang. Endi siz stabilizatorni yig'dingiz.
  9. Nihoyat, siz pastki servo qavsga ulangan tutqichni qo'shishingiz mumkin.

11 -qadam: Zybo -ni stabilizatorga ulash

Zybo -ni stabilizatorga ulash
Zybo -ni stabilizatorga ulash

Buni amalga oshirishda bir nechta narsalarga e'tibor berish kerak. Quvvat manbai 5V hech qachon Zybo platasiga kirmasligiga ishonch hosil qilmoqchisiz, chunki bu karta bilan bog'liq muammolarga olib keladi. Hech qanday simlar almashtirilmaganligini tasdiqlash uchun o'tish moslamalarini ikki marta tekshirib ko'ring.

  1. Zybo -ni stabilizatorga ulash uchun sizga erkak -erkak -sakrashga 15 va ayol -sakrashga -4 erkak kerak bo'ladi.
  2. Birinchidan, nonvoyxonaning + va - relslari bo'ylab 5V quvvat manbaiga ikkita o'tish moslamasini ulang. Bu servolarni quvvat bilan ta'minlaydi.
  3. Keyin, 3 juft o'tish moslamasini non taxtasining + va - relslariga ulang. Bu har bir servo uchun kuch bo'ladi.
  4. + Va - o'tish moslamalarining ikkinchi uchini har bir servoga ulang.
  5. Non paneli va Zybo JE Pmod -dagi GND pinlaridan biri orasidagi o'tish moslamasini ulang (5 -qadam rasmiga qarang). Bu Zybo platasi va quvvat manbai o'rtasida umumiy asos yaratadi.
  6. Keyin signal simini JE Pmodning 1, 2 va 3 -pinlariga ulang. 1 xaritani pastki servoga, 2 xaritani qo'l uchiga va 3 xaritani o'rta servoga ulang.
  7. 4 ta ayol simlarini IMU uzilishining GND, VDD, SDA va SCL pinlariga ulang. GND va VDD JF pinlarida GND va 3V3 ga ulanadi. SDA pinini 8 -pin va SCL -ni JF -ning 7 -piniga ulang (5 -qadam rasmiga qarang).
  8. Nihoyat, mikro usb kabeli yordamida kompyuterni taxtaga ulang. Bu uart aloqasini ta'minlaydi va sizga Zybo platasini dasturlash imkonini beradi.

12 -qadam: haqiqiy shimoliy tuzatish

Haqiqiy Shimoliy tuzatish
Haqiqiy Shimoliy tuzatish

Qurilmaning to'g'ri ishlashi uchun magnitometrni kalibrlash juda muhim, magnit shimolni haqiqiy shimolga to'g'rilaydi.

  1. Magnit va haqiqiy shimoldan farqni to'g'rilash uchun siz ikkita xizmatning kombinatsiyasidan foydalanishingiz kerak: Google Maps va NOAA magnit maydon kalkulyatori.
  2. Hozirgi joylashuvingizning kengligi va uzunligini topish uchun Google Xaritalardan foydalaning.
  3. Joriy uzunlik va kenglikni oling va magnit maydon kalkulyatoriga ulang.
  4. Qaytgan narsa - magnitli burilish. Ushbu hisobni "iic_main_thread.c" ning 378 -satridagi kodga ulang. Agar sizning moyilligingiz sharq tomon bo'lsa, yaw qiymatidan aylantiring, agar g'arb bo'lsa, yaw qiymatini qo'shing.

*rasm Sparkfun MPU 9250 ulanish qo'llanmasidan olingan, bu erda topilgan.

13 -qadam: Dasturni ishga tushirish

Dasturni ishga tushirish
Dasturni ishga tushirish

Siz kutgan payt! Loyihaning eng yaxshi qismi uning ishlayotganini ko'rishdir. Biz payqagan muammolardan biri shundaki, O'IH tomonidan bildirilgan qiymatlardan chetga chiqish bor. Past o'tkazgichli filtr bu siljishni to'g'rilashga yordam beradi, magnitometr, tezlashtirish va girro kalibrlash bilan shug'ullanish ham bu siljishni to'g'rilashga yordam beradi.

  1. Birinchidan, barchasini SDK -da yarating, buni Ctrl + B tugmalar birikmasi yordamida amalga oshirish mumkin.
  2. Quvvat manbai yoqilganligini va 5V ga o'rnatilganligini tekshiring. Barcha simlar o'z joylariga to'g'ri kelishini ikki marta tekshiring.
  3. Keyin, dasturni ishga tushirish uchun, vazifalar panelining yuqori markazidagi yashil uchburchakni bosing.
  4. Dastur ishga tushganda, servolarning hammasi 0 holatiga qaytariladi, shuning uchun dastgohning harakatlanishiga tayyor bo'ling. Dastur ishga tushgandan so'ng, servolar 90 graduslik pozitsiyalariga qaytadi.
  5. Magnitometrni kalibrlash funktsiyasi ishga tushadi va yo'nalishlar UART terminaliga chop etiladi, siz unga "macun" kabi ketma -ket monitor yoki SDK -da berilgan ketma -ket monitor orqali ulanishingiz mumkin.
  6. Kalibrlash sizga qurilmani 8 soniya atrofida 10 soniya davomida siljitishga majbur qiladi. Siz bu qadamni "iic_main_thread.c" ning 273 -qatoriga izoh berish orqali olib tashlashingiz mumkin. Agar siz izoh qoldirsangiz, 323 - 325 "iic_main_thread.c" qatorlariga izoh qoldirishingiz kerak. Bu qiymatlar dastlab yuqoridagi magnitometr kalibridan yig'ilgan va keyin qiymat sifatida ulangan.
  7. Kalibrlashdan so'ng stabilizatsiya kodi ishga tushadi va qurilma kamerani barqaror ushlab turadi.

Tavsiya: