Tartalomjegyzék:
- 1. lépés: Vivado hardver beállítása
- 2. lépés: A blokktervezés beállítása
- 3. lépés: Hozzon létre egyéni PWM IP -blokkot
- 4. lépés: PWM IP -blokk hozzáadása a tervezéshez
- 5. lépés: A HDL -csomagoló konfigurálása és a kényszerfájl beállítása
- 6. lépés: Bitfolyam létrehozása
- 7. lépés: A projekt beállítása az SDK -ban
- 8. lépés: FreeRTOS kódmódosítások
- 9. lépés: 3D nyomtatás a stabilizátorhoz
- 10. lépés: Az alkatrészek összeszerelése
- 11. lépés: A Zybook csatlakoztatása a stabilizátorhoz
- 12. lépés: Igazi északi korrekció
- 13. lépés: A program futtatása
Videó: Kézi kamera stabilizátor: 13 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Bevezetés
Ez egy útmutató egy 3 tengelyes kézi fényképezőgép-stabilizáló berendezés létrehozásához a GoPro számára a Digilent Zybo Zynq-7000 fejlesztőlap segítségével. Ezt a projektet a CPE valós idejű operációs rendszerek osztályához (CPE 439) fejlesztették ki. A stabilizátor három szervót és egy IMU -t használ a felhasználó mozgásának korrigálására, hogy a kamera szintben maradjon.
A projekthez szükséges alkatrészek
- Digilent Zybo Zynq-7000 Fejlesztési Tanács
- Sparkfun IMU Breakout - MPU 9250
- 2 HiTec HS-5485HB szervó (vásároljon 180 fokos mozgást vagy programot 90 és 180 fok között)
- 1 HiTec HS-5685MH szervo (vásároljon 180 fokos mozgást vagy programot 90 és 180 fok között)
- 2 standard szervo konzol
- 1 Kenyeretábla
- 15 férfi-férfi áthidaló vezeték
- 4 férfi-női áthidaló vezeték
- Forró ragasztó
- Markolat vagy fogantyú
- 5 mm átmérőjű fa dübel
- GoPro vagy más kamera és rögzítő hardver
- Tápellátás 5 V -os kimenetre.
- Hozzáférés a 3D nyomtatóhoz
1. lépés: Vivado hardver beállítása
Kezdjük a projekt mögöttes blokktervének létrehozásával.
- Nyissa meg a Vivado 2016.2 programot, kattintson az "Új projekt létrehozása" ikonra, majd a "Tovább>" gombra.
- Nevezze el a projektet, majd kattintson a "Tovább>" gombra.
- Válassza ki az RTL projektet, és kattintson a "Tovább>" gombra.
- Írja be az xc7z010clg400-1 keresősávba, majd válassza ki a részt, majd nyomja meg a "Tovább>" és a "Befejezés" gombot.
2. lépés: A blokktervezés beállítása
Most elkezdjük létrehozni a blokktervet a Zynq IP -blokk hozzáadásával és beállításával.
- A bal oldali panelen, az IP -integrátor alatt kattintson a "Blokktervezés létrehozása", majd az "OK" gombra.
- Kattintson a jobb gombbal a "Diagram" fülre, és válassza az "IP hozzáadása …" lehetőséget.
- Írja be a "ZYNQ7 Processing System" parancsot, és kattintson a kiválasztásra.
- Kattintson duplán a megjelenő Zynq blokkra.
- Kattintson az "XPS -beállítások importálása" gombra, és importálja a mellékelt "ZYBO_zynq_def.xml" fájlt.
- Lépjen a "MIO Configuration" menübe, és válassza az "Application Processor Unit" lehetőséget, majd engedélyezze a Timer 0 és a Watchdog időzítőt.
- Ugyanezen a lapon, az "I/O perifériák" alatt válassza az ENET 0 lehetőséget (és módosítsa a legördülő menüt "MIO 16.. 27", USB 0, SD 0, UART 1, I2C 0 értékre.
- A "GPIO" alatt ellenőrizze a GPIO MIO, ENET Reset, USB Reset és I2C Reset beállításokat.
- Most lépjen az "Óra konfigurálása" elemre. Válassza az FCLK_CLK0 lehetőséget a PL Fabric Clocks alatt. Ezután kattintson az "OK" gombra.
3. lépés: Hozzon létre egyéni PWM IP -blokkot
Ez az IP -blokk lehetővé teszi, hogy a tábla PWM jelet küldjön a szervók mozgásának szabályozására. A munka nagymértékben az itt található Digitronix Nepál oktatóanyagán alapult. Logikát adtak hozzá az óra lelassításához, így az impulzus a megfelelő sebességgel szólt. A blokk 0-tól 180-ig terjedő számot vesz fel, és 750-2150 felhasználásból impulzussá alakítja.
- Most, az Eszközök lapon, a bal felső sarok közelében kattintson a "Létrehozás és csomagolás IP …" gombra, majd kattintson a Tovább gombra.
- Ezután válassza az "Új AXI4 periféria létrehozása" lehetőséget, és nyomja meg a Tovább gombot.
- Nevezze el a PWM IP -blokkját (ezt neveztük el pwm_core -nak), majd kattintson a Tovább, majd a következő oldalon a Tovább gombra.
- Most kattintson az "IP szerkesztése" gombra, és kattintson a Befejezés gombra. Ez új ablakot nyit a pwm blokk szerkesztéséhez.
- A „Források” lapon és a „Tervezési források” alatt bontsa ki a „pwm_core_v1_0” lehetőséget (cserélje ki a pwm_core értéket a saját nevével), és nyissa meg a láthatóvá váló fájlt.
- Másolja ki és illessze be a projekt alján található zip fájlba a „pwm_core_v1_0_S00_AXI.v” alatt megadott kódot. Ctrl + Shift + R, és cserélje le a „pwm_core” nevet az ip blokk nevére.
- Ezután nyissa meg a „name _v1_0” nevet, és másolja be a megadott kódot a „pwm_core_v1_0.v” fájlba. Ctrl + Shift + R, és cserélje le a „pwm_core” nevet.
- Most lépjen a „Csomag IP - név” fülre, és válassza a „Testreszabási paraméterek” lehetőséget.
- Ezen a lapon egy sárga sáv lesz a tetején, amely linkelt szöveget tartalmaz. Válassza ezt, és a "Rejtett paraméterek" megjelenik a mezőben.
- Most menjen a "Testreszabási felhasználói felület" -hez, és kattintson a jobb egérgombbal a Pwm Counter Max elemre, és válassza a "Paraméter szerkesztése …" lehetőséget.
- Jelölje be a "Látható a testreszabási felhasználói felületen" és a "Tartomány megadása" négyzeteket.
- Változtassa meg a "Típus:" legördülő menüt egész szám tartományra, és állítsa a minimális értéket 0 -ra, a maximumot 65535 -re, és jelölje be a "Tartomány megjelenítése" négyzetet. Most kattintson az OK gombra.
- Húzza a Pwm Counter Max -et a 'Page 0' fa alá. Most lépjen a "Felülvizsgálat és csomagolás" oldalra, és kattintson az "Újracsomag IP" gombra.
4. lépés: PWM IP -blokk hozzáadása a tervezéshez
Hozzáadjuk az IP -blokkot a blokktervhez, hogy lehetővé tegye a felhasználó számára a PWM IP -blokk elérését a processzoron keresztül.
- Kattintson a jobb gombbal a diagram fülre, és kattintson az "IP -beállítások …" elemre. Lépjen a "Repository Manager" fülre.
- Kattintson a zöld plusz gombra, és válassza ki. Most keresse meg az ip_repo fájlt a Fájlkezelőben, és adja hozzá a projekthez. Ezután nyomja meg az Alkalmaz, majd az OK gombot.
- Kattintson a jobb gombbal a diagram fülre, és kattintson az "IP hozzáadása …" gombra. Írja be a PWM IP -blokk nevét, és válassza ki.
- A képernyő tetején zöld sávnak kell lennie, először válassza a "Kapcsolati automatizálás futtatása" lehetőséget, majd kattintson az OK gombra. Ezután kattintson a "Blokk automatizálás futtatása" gombra, majd kattintson az OK gombra.
- Kattintson duplán a PWM blokkra, és módosítsa a Pwm Counter Max értékét 1024 -re 128 -ról.
- Vigye az egérmutatót a PWM blokk PWM0 fölé. Ott kell lennie egy kis ceruzának, amely megjelenik, amikor ezt teszi. Kattintson a jobb egérgombbal, és válassza a "Port létrehozása …" lehetőséget, majd kattintson az OK gombra, amikor megnyílik egy ablak. Ez külső portot hoz létre a jel továbbítására.
- Ismételje meg a 6. lépést a PWM1 és a PWM2 esetében is.
- Keresse meg a kis kör alakú, dupla nyíl ikont az oldalsávon, és kattintson rá. Ez helyreállítja az elrendezést, és a blokk kialakításának a fenti képhez kell hasonlítania.
5. lépés: A HDL -csomagoló konfigurálása és a kényszerfájl beállítása
Most létrehozzuk a blokktervünk magas szintű tervezését, majd leképezzük a PWM0, PWM1 és PWM2 Pmod csapokat a Zybo táblán.
- Lépjen a "Források" fülre. Kattintson a jobb gombbal a blokktervező fájljára a "Tervezési források" alatt, majd kattintson a "HDL csomagoló létrehozása …" gombra. Válassza a "Generált csomagolóanyag másolása a felhasználói szerkesztések engedélyezéséhez" lehetőséget, majd kattintson az OK gombra. Ez generálja a magas szintű tervezést az általunk létrehozott blokktervhez.
- A Pmod, amelyet kiadunk, a JE.
- A Fájl alatt válassza a "Források hozzáadása …" lehetőséget, válassza a "Kényszerek hozzáadása vagy létrehozása" lehetőséget, majd kattintson a Tovább gombra.
- Kattintson a Fájlok hozzáadása gombra, és válassza ki a mellékelt "ZYBO_Master.xdc" fájlt. Ha megnézi ezt a fájlt, észre fogja venni, hogy minden megjegyzés nincs megjegyezve, kivéve hat "set_property" sort a "## Pmod Header JE" alatt. Észre fogja venni, hogy a PWM0, PWM1 és PWM2 érvek ezekhez a sorokhoz. A JE Pmod 1., 2. és 3. tűjére képezik le őket.
6. lépés: Bitfolyam létrehozása
Mielőtt továbblépnénk, létre kell hoznunk a bitfolyamot, hogy a hardvertervezés exportálhasson az SDK -ba.
- Az oldalsáv "Program és hibakeresés" pontjában válassza a "Bitfolyam generálása" lehetőséget. Ez lefuttatja a szintézist, majd a megvalósítást, majd generálja a bitfolyamot a tervezéshez.
- Javítsa ki a felbukkanó hibákat, de a figyelmeztetések általában figyelmen kívül hagyhatók.
- Lépjen a Fájl-> SDK indítása elemre, majd kattintson az OK gombra. Ez megnyitja a Xilinx SDK -t.
7. lépés: A projekt beállítása az SDK -ban
Ez a rész kissé frusztráló tud lenni. Ha kétségei vannak, készítsen új BSP -t, és cserélje ki a régit. Ezzel rengeteg hibakeresési időt spóroltunk meg.
- Kezdje itt a FreeRTOS legújabb verziójának letöltésével.
- Bontson ki mindent a FreeRTOS letöltéséből és importálásából az SDK-ba a Fájl-> Importálás gombra kattintva, majd az "Általános" alatt kattintson a "Meglévő projektek a munkaterületre", majd a Tovább gombra.
- Lépjen a FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702 mappába a FreeRTOS mappában. Csak az "RTOSDemo" importálása innen.
- Most hozzon létre egy Board Support Package-t (BSP) a Fájl-> Új Board Support Package elemre kattintva.
- Válassza a "ps7_cortexa9_0" lehetőséget, jelölje be az "lwip141" lehetőséget, majd kattintson az OK gombra.
- Kattintson a jobb gombbal az RTOSDemo kék mappára, és válassza a "Projekt hivatkozások" lehetőséget.
- Törölje a jelet az "RTOSDemo_bsp" jelölőnégyzetből, és ellenőrizze az újonnan létrehozott BSP -t.
8. lépés: FreeRTOS kódmódosítások
Az általunk megadott kód 7 különböző fájlra bontható. main.c, iic_main_thread.c, xil_printfloat.c, xil_printfloat.h, IIC_funcs.c, IIC_funcs.h és iic_imu.h. Az iic_main_thread.c fájlban található kódot Kris Winer könyvtárából alakítottuk át, amely itt található. Főleg a kódját úgy alakítottuk át, hogy belefoglalja a feladatokat, és működjön együtt a Zybo táblával. Funkciókat is hozzáadtunk a kamera tájolásának korrekciójának kiszámításához. Több nyomtatott nyilatkozatot hagytunk, amelyek hasznosak a hibakereséshez. Legtöbbjük megjegyzést fűz hozzá, de ha szükségesnek érzi, megszüntetheti őket.
- A main.c fájl módosításának legegyszerűbb módja, ha a kódot a mellékelt main.c fájlból másolt kódra cseréli.
- Új fájl létrehozásához kattintson a jobb gombbal az RTOSDemo alatti src mappára, és válassza a C Forrásfájl lehetőséget. Nevezze el ezt a fájlt "iic_main_thread.c".
- Másolja ki a kódot a mellékelt "iic_main_thread.c" fájlból, és illessze be az újonnan létrehozott fájlba.
- Ismételje meg a 2. és 3. lépést a többi fájllal.
- linkelési utasítást igényel a gcc -ben. Ha hozzá szeretné adni ezt az építési útvonalhoz, kattintson jobb gombbal az RTOSDemo elemre, és válassza a "C/C ++ Build Settings" lehetőséget.
- Egy új ablak nyílik meg. Keresse meg az ARM v7 gcc linker-> Könyvtárakat. Válassza ki a kis hozzáadási fájlt a jobb felső sarokban, és írja be az "m" -t. Ez magában foglalja a matematikai könyvtárat is a projektben.
- Építsen projektet a Ctrl + B billentyűvel, hogy megerősítse, hogy minden működik. Ellenőrizze a generált figyelmeztetéseket, de figyelmen kívül hagyhatja azokat.
- Van néhány hely, ahol módosítani kell, főleg az aktuális tartózkodási hely mágneses deklinációját. Az oktatóanyag kalibrációs részében elmagyarázzuk, hogyan lehet ezt megváltoztatni.
9. lépés: 3D nyomtatás a stabilizátorhoz
Ehhez a projekthez néhány részt 3D -ben kell kinyomtatnia. Valószínűleg olyan alkatrészeket vásárolhat, amelyek hasonló méretűek/méretűek, mint a nyomtatott részeink.
- Használja a mellékelt fájlokat a GoPro karjának és tartókonzoljának kinyomtatásához.
- Állványokat kell hozzáadnia a.stl fájlhoz.
- Nyomtatás után vágja le/tisztítsa meg a felesleges állványzat részeit.
- Ha szeretné, a fadübelt lecserélheti 3D nyomtatott alkatrészre.
10. lépés: Az alkatrészek összeszerelése
A stabilizátor összeszerelésének több része van. A megvásárolt konzolokhoz 4 önmetsző csavar és 4 csavar tartozik. Mivel 3 szervó van, az egyik szervókürtöt előre meg kell ütni, hogy 2 csavar beférjen.
- Forrasztjon 8 tüskét az IMU törésre, 4 -et mindkét oldalon.
- Az IMU a GoPro 3D nyomtatott tartókonzoljához van rögzítve a konzol közepén.
- Irányítsa a tartót úgy, hogy a szervo rögzítőfuratai a bal oldalon legyenek. Helyezze az IMU -t a legközelebbi szélére, és a csapokat lógassa le a széléről. Ezután helyezze a GoPro tartóelemet az IMU tetejére, az IMU -t és a rögzítőt rögzítve a konzolra.
- Csatlakoztasson egy HS-5485HB-t a 3D nyomtatott karba integrált szervo konzolhoz.
- Csavarja be a GoPro konzolt a karhoz rögzített szervóba, ügyelve arra, hogy a szervó úgy legyen beállítva, hogy a mozgási tartományának közepén legyen.
- Ezután csatlakoztassa a HS-5685MH szervót egy szervo konzolhoz. Ezután érintse meg a szervo kürtöt az egyik csavarral. Most rögzítse a szervót az utolsó szervo konzol aljára.
- Most rögzítse az utolsó szervót a konzolhoz, amelybe a HS-5685MH szervo van csavarozva. Ezután csavarja be a kart ebbe a szervóba, ügyelve arra, hogy a kar be legyen csavarva, hogy 90 fokban mozoghasson.
- A kardántengely felépítésének befejezéséhez adjon hozzá egy kis darab fa dübelt a GoPro konzol és a 3D nyomtatott kar közé. Most összeállította a stabilizátort.
- Végül hozzáadhat egy fogantyút az alsó szervo konzolhoz.
11. lépés: A Zybook csatlakoztatása a stabilizátorhoz
Van pár dolog, amire figyelni kell, amikor ezt megteszi. Biztosítani szeretné, hogy a tápegységből származó 5 V soha ne kerüljön a Zybo kártyára, mivel ez problémákat okozhat a táblával. Győződjön meg róla, hogy kétszer ellenőrizze az áthidalókat, hogy megbizonyosodjon arról, hogy nincsenek vezetékek cserélve.
- A Zybook stabilizátorhoz való rögzítéséhez 15 férfi -férfi és 4 férfi -női ugróra lesz szüksége.
- Először csatlakoztasson két jumpert az 5V -os tápegységhez a kenyérpálya + és - sínje mentén. Ezek biztosítják a szervók áramellátását.
- Ezután csatlakoztasson 3 pár jumpert a kenyértábla + és - síneire. Ez lesz az erő minden szervó számára.
- Csatlakoztassa a + és - jumper másik végét minden szervóhoz.
- Csatlakoztasson egy jumpert a kenyértábla - sínje és a Zybo JE Pmod egyik GND csapja közé (lásd az 5. lépés képét). Ez közös alapot teremt a Zybo kártya és a tápegység között.
- Ezután csatlakoztasson egy jelvezetéket a JE Pmod 1., 2. és 3. tűjéhez. Rögzítse az 1 -es térképeket az alsó szervóhoz, a 2 -es térképeket a kar végén lévő szervóhoz, és a 3 -as térképeket a középső szervóhoz.
- Csatlakoztassa a 4 hüvelyes vezetéket az IMU törés GND, VDD, SDA és SCL csapjaihoz. A GND és a VDD a GND -hez és a 3V3 -as csatlakozóhoz csatlakozik. Csatlakoztassa az SDA tüskét a 8 -as érintkezőbe, és az SCL -t a 7 -es tűbe a JF -en (lásd az 5. lépés képét).
- Végül csatlakoztassa a számítógépet az alaplaphoz mikro -usb -kábellel. Ez lehetővé teszi az uart kommunikációt, és lehetővé teszi a Zybo tábla programozását.
12. lépés: Igazi északi korrekció
A magnetométer kalibrálása az IMU -ban fontos az eszköz helyes működéséhez. A mágneses deklináció, amely a mágneses északot igaz északra korrigálja.
- A mágneses és a valódi észak közötti különbség kijavításához két szolgáltatás, a Google Térkép és a NOAA mágneses mező számológépének kombinációját kell használnia.
- A Google Térkép segítségével keresse meg jelenlegi tartózkodási helyének szélességi és hosszúsági fokát.
- Vegye ki jelenlegi hosszúsági és szélességi fokát, és csatlakoztassa a mágneses mező számológépéhez.
- A visszatérő mágneses deklináció. Dugja be ezt a számítást az "iic_main_thread.c" 378. sorában található kódba. Ha a deklináció keleti, akkor vonja le az elfordulási értékből, ha nyugat, akkor adja hozzá az elfordulási értékhez.
*A fotó a Sparkfun MPU 9250 csatlakoztatási útmutatójából készült, itt található.
13. lépés: A program futtatása
A pillanat, amire vártál! A projekt legjobb része, hogy látja, hogy működik. Az egyik problémát észrevettük, hogy az IMU által jelentett értékek eltérnek. Az aluláteresztő szűrő segíthet korrigálni ezt az eltolódást, és a mágneses mérőműszerrel való gyorsítás, a gyorsulás és a giroszkóp kalibrálása is segít az eltolás korrigálásában.
- Először készítsen mindent az SDK -ban, ezt a Ctrl + B billentyűkombinációval teheti meg.
- Győződjön meg arról, hogy a tápegység be van kapcsolva, és 5 V -ra van állítva. Ellenőrizze, hogy az összes vezeték a megfelelő helyre kerül -e.
- Ezután a program futtatásához nyomja meg a zöld háromszöget a tálca felső közepén.
- Amikor a program fut, a szervók mind visszaállnak 0 helyzetükbe, ezért készen kell állnia a berendezés mozgatására. A program inicializálása után a szervók visszaállnak 90 fokos helyzetükbe.
- A magnetométer kalibrálási funkciója elindul, és az utasítások kinyomtatásra kerülnek az UART terminálra, amelyhez soros monitoron, például "gitt" vagy az SDK -ban található soros monitoron keresztül csatlakozhat.
- A kalibrálás során a készüléket a 8. ábrán körülbelül 10 másodpercig mozgatja. Ezt a lépést az "iic_main_thread.c" 273. sorának megjegyzésével távolíthatja el. Ha megjegyzést fűz hozzá, törölnie kell a 323 - 325 "iic_main_thread.c" sorokat. Ezeket az értékeket kezdetben a fenti magnetométer kalibrálásából gyűjtötték össze, majd értékekként csatlakoztatták.
- A kalibrálás után a stabilizáló kód inicializálódik, és a készülék stabilan tartja a kamerát.
Ajánlott:
Kézi BASIC számítógép: 6 lépés (képekkel)
Kézi BASIC számítógép: Ez az utasítás leírja a BASIC -t futtató kis kézi számítógép építésének folyamatát. A számítógép az ATmega 1284P AVR chip köré épült, amely a számítógép buta nevét is inspirálta (HAL 1284). Ezt a konstrukciót HEAVILY ihlette
Gimbal stabilizátor projekt: 9 lépés (képekkel)
Gimbal Stabilizer Project: Hogyan készítsünk egy kardántengelyt? Ismerje meg, hogyan készítsen kéttengelyes kardántengelyt az akciókamerájához. A mai kultúrában mindannyian szeretjük a videókat rögzíteni és megörökíteni a pillanatokat, különösen akkor, ha Ön olyan tartalomkészítő, mint én, biztosan szembesült azzal a problémával, hogy ilyen remegő videó
Prototípus kamera stabilizátor (2DOF): 6 lépés
Prototípus kamera stabilizátor (2DOF): Szerzők: Robert de Mello e Souza, Jacob Paxton, Moises Farias Köszönetnyilvánítás: Hálás köszönet a Kaliforniai Állami Egyetem Tengerészeti Akadémiájának, annak Mérnöki Technológiai Programjának és Dr. Chang-Siu-nak, hogy segítettek nekünk sikerrel projekt ilyen
Arduino kamera stabilizátor DIY: 4 lépés (képekkel)
Arduino fényképezőgép -stabilizátor DIY: Kamera stabilizátort készítettem arduino segítségével egy iskolai projekthez. Szüksége lesz: 1x Arduino Uno3x szervomotor 1x giroszkóp MP60502x gomb 1x potenciométer 1x kenyértábla (1x külső tápegység)
Kamera stabilizátor ENV2 vagy más fényképezőgépes telefonokhoz: 6 lépés
Kamera stabilizátor az ENV2 vagy más fényképezőgépes telefonokhoz: Valaha szeretne videót készíteni, de csak kamerás telefonja van? Csináltál már videót kamerás telefonnal, de nem tudod mozdulatlanul tartani? Nos, ez tanulságos számodra