Tartalomjegyzék:

Tárgykövető kamera csúszka forgótengellyel. 3D nyomtatás és beépítés a RoboClaw DC motorvezérlőre és az Arduino -ra: 5 lépés (képekkel)
Tárgykövető kamera csúszka forgótengellyel. 3D nyomtatás és beépítés a RoboClaw DC motorvezérlőre és az Arduino -ra: 5 lépés (képekkel)

Videó: Tárgykövető kamera csúszka forgótengellyel. 3D nyomtatás és beépítés a RoboClaw DC motorvezérlőre és az Arduino -ra: 5 lépés (képekkel)

Videó: Tárgykövető kamera csúszka forgótengellyel. 3D nyomtatás és beépítés a RoboClaw DC motorvezérlőre és az Arduino -ra: 5 lépés (képekkel)
Videó: AOCHUAN Smart XR hordozható 3-tengelyes stabilizátor - AC Play - Smartphone Gimbal - Unboxing 2024, November
Anonim
Image
Image
Hardvertervezés + Build + 3D nyomtatás
Hardvertervezés + Build + 3D nyomtatás

Fusion 360 projektek »

Ez a projekt az egyik kedvenc projektem, mióta össze tudtam kapcsolni a videó készítés iránti érdeklődésemet a barkácsolással. Mindig néztem és akartam utánozni azokat a filmes felvételeket a filmekben, ahol a kamera mozog a képernyőn, miközben pásztázva követi az objektumot. Ez nagyon érdekes mélységhatást kölcsönöz az egyébként 2d -s videónak. Mivel meg akartam ismételni ezt anélkül, hogy több ezer dollárt költenék hollywoodi felszerelésre, úgy döntöttem, hogy magam is elkészítem egy ilyen kameracsúszkát.

Az egész projekt 3D nyomtatható alkatrészekre épül, és a kód a népszerű Arduino táblán fut. Az összes projektfájl, például a CAD -fájlok és -kód letölthető az alábbiakban.

CAD/ 3D nyomtatási fájlok itt érhetők el

Az Arduino Code fájl itt érhető el

A projekt a 2 fogaskerekű szálcsiszolt egyenáramú motor és a Basic Micro Roboclaw Motor vezérlő körül forog. Ez a motorvezérlő hihetetlen helyzetpontossággal, rengeteg nyomatékkal és teljes 360 fokos elforgatással képes a szálcsiszolt egyenáramú motorokat kiváló szervo -típusgá alakítani. Erről bővebben később.

Mielőtt folytatnánk, először nézze meg az itt linkelt oktatóvideót. Ez az oktatóanyag áttekintést nyújt a projekt felépítéséről, és ez az Instructables útmutató részletesebben bemutatja a projekt felépítését.

Anyagok-

  • 2x 1 méter hosszú m10 menetes rúd az összes alkatrész csatlakoztatásához
  • 8x M10 anya az alkatrészek menetes rudakhoz való rögzítéséhez
  • 2x 95 cm hosszú, 8 mm -es sima acél rudak a csúszka csúsztatásához
  • 4x lm8uu csapágy, hogy a csúszka simán csúszhasson az acél rudakon
  • 4x 10mm hosszú m3 anya a motor felszerelésére
  • 2 x gördeszka csapágy (22 mm külső átmérő, 8 mm belső átmérő) a forgástengelyhez
  • 1x 15 mm -es csapágy az üresjárati oldalhoz
  • 1x 4 cm hosszú m4 csavar m4 rögzítőanyával az ütközőcsapágy rögzítéséhez az alaplap 3d nyomtatott részéhez.
  • 20 fogú fogaskerék 4 mm belső átmérővel a csúszómotorhoz. A pontos szíjtárcsa nem túl fontos, mivel az egyenáramú motort megfelelő nyomatékra kell állítani. Csak győződjön meg arról, hogy ugyanaz a dőlésszög, mint az öv
  • 2 méter hosszú GT2 öv. Ismét bármilyen szíjat használhat, amíg az megfelel a szíjtárcsa fogainak dőlésszögéhez.

Elektronika

  • 2 * Hajtóműves egyenáramú motorok kódolókkal (az egyik az oldalsó mozgást, míg a másik a forgástengelyt vezérli). Itt van az, amit használtam. Erről bővebben az útmutató Elektronika részében
  • RoboClaw DC motorvezérlő. (A kettős 15Amp vezérlőt használtam, mivel lehetővé tette mindkét motor vezérlését egy vezérlővel)
  • Bármilyen Arduino. Az Arduino UNO -t használtam
  • Akkumulátor/ áramforrás. (7,4 V -os 2 cellás LiPo akkumulátort használtam)
  • Képernyő (A menü megjelenítéséhez. Bármely U8G kompatibilis képernyő működik, ezt az 1,3 hüvelykes OLED képernyőt használtam)
  • Forgatási kódoló (Navigáláshoz és a menü beállításainak konfigurálásához)
  • Fizikai nyomógomb (a csúszka mozgásának kiváltásához)

1. lépés: Hardvertervezés + Build + 3D nyomtatás

Elektronika
Elektronika

Ezután térjünk át az elektronikára. Az elektronika az, ahol ez a projekt nagyon rugalmas.

Kezdjük ennek a projektnek a magjával- a 2 szálcsiszolt egyenáramú motorral.

Néhány okból a szálcsiszolt egyenáramú motorokat választottam.

  1. A szálcsiszolt motorok sokkal egyszerűbben vezethetők és működtethetők, mint a léptetőmotorok
  2. A szálcsiszolt egyenáramú motorok sokkal könnyebbek, mint az egyenáramú motorok, ami különösen fontos a forgástengelyes motor számára, mivel ez a motor fizikailag oldalirányban mozog a fényképezőgéppel, és ezáltal a lehető legkönnyebb fény az elsődleges kamera csúszómotorjának túlzott igénybevételének megelőzése érdekében.

Ezt az egyenáramú motort választottam. Ez a motor rendkívül nagy nyomatékot adott nekem, ami szükséges volt egy ilyen nagy kameraterhelés mozgatásához. Ezenkívül a nagy sebességfokozat azt jelentette, hogy a csúcs fordulatszám lassú volt, ami azt jelentette, hogy lassabb mozgásokat tudtam felvenni, és a magas áttétel nagyobb pozicionálási pontossághoz is vezetett, mivel a kimenő tengely 360 ° -os elforgatása 341,2 számot jelent a motor kódolójáról.

Ezzel eljutunk a RoboClaw mozgásvezérlőhöz. A Roboclaw motor kettős egyenáramú motorvezérlője egyszerű utasításokat kap az Arduino -tól, egyszerű kódparancsokon keresztül, és elvégzi az összes nehéz feldolgozást és áramellátást, hogy a motor rendeltetésszerűen működjön. Az Arduino jeleket küldhet a Roboclaw -nak PWM, analóg feszültség, egyszerű soros vagy csomag soros útján. A csomagsorozat a legjobb megoldás, mivel lehetővé teszi a Roboclaw -tól a pozíciókövetéshez szükséges információk visszaszerzését. A következő lépésben (programozás) mélyebben elmerülök a Roboclaw szoftver/programozási részében.

Lényegében a Roboclaw képes átalakítani az egyenáramú szálcsiszolt motort egy kódolóval, hogy inkább szervó legyen, köszönhetően a RoboClaw helyzetvezérlő képességének. A hagyományos szervóval ellentétben azonban a szálcsiszolt egyenáramú motor sokkal nagyobb nyomatékkal, sokkal pontosabb pozícióval rendelkezik a nagy motoráttétel miatt, és ami a legfontosabb, az egyenáramú motorja 360 fokban képes folyamatosan pörögni, amire egy hagyományos szervó sem képes.

A következő elektronikai rész a képernyő. A képernyőmhez ezt az OLED panelt választottam mérete és nagy kontrasztja miatt. Ez a nagy kontrasztú képesség hihetetlen, és megkönnyíti a képernyő használatát közvetlen napfényben, miközben nem bocsát ki túl sok fényt, ami zavarhatja a sötét fényképezőgép felvételeit. Ez a képernyő könnyen cserélhető egy másik U8G kompatibilis képernyőre. A kompatibilis képernyők teljes listája itt érhető el. Valójában ezt a projektet szándékosan az U8G könyvtár köré kódolták, így a hozzád hasonló barkácsépítők nagyobb rugalmasságot kaptak

Ennek a projektnek az utolsó elektronikai alkatrészei a forgó jeladó és a nyomógomb voltak a csúszka mozgásának elindításához. A kódoló lehetővé teszi, hogy navigáljon a képernyő menüjében, és egyetlen tárcsával konfigurálja a csúszka összes menüjét. A forgó jeladónak nincs „véghelyzete”, mint a hagyományos potenciométernek, és ez különösen hasznos a képernyőn megjelenő objektumkövetés x és y koordinátáinak módosításához. A nyomógomb kizárólag a csúszka mozgásának elindítására szolgál anélkül, hogy a forgó kódolóval kellene babrálnia.

3. lépés: A kamera csúszka programozása

A kamera csúszka programozása
A kamera csúszka programozása
A kamera csúszka programozása
A kamera csúszka programozása

A kódolás volt a projekt legnehezebb kihívása. Látod, kezdettől fogva azt akartam, hogy a csúszka képernyőről vezérelhető legyen. Ahhoz, hogy ez a projekt a lehető legtöbb képernyővel kompatibilis legyen, az Arduino U8Glib könyvtárát kellett használnom. Ez a könyvtár több mint 32 képernyőt támogat. Az U8Glib könyvtár azonban egy képhurkot használt a menü megjelenítéséhez a képernyőn, és ez ellentmondott az Arduino azon képességének, hogy egyidejűleg információkat gyűjtsön a kamera helyzetéről, ami szükséges volt a kameraszög -számítási funkcióhoz (ezt a következő néhány bekezdés tárgyalja)). Az U8Glib2 alternatívája a képhurok, úgynevezett teljes oldalas puffer opció használatával, de a könyvtár túl sok memóriát emésztett fel, és megnehezítette a kód többi részének illesztését, tekintettel az Arduino Uno memória korlátaira. Ez azt jelentette, hogy elakadtam az U8G -nél, és meg kellett oldanom a problémát, megakadályozva, hogy a képernyő bármikor frissüljön, amikor a csúszka mozgásban van, és az Arduino -nak szüksége volt a Roboclaw helyzetadatainak gyűjtésére. Arra is kényszerítettem, hogy elindítsam a csúszkát, hogy a menükörön kívül mozogjon, mivel amint beléptem az almenükbe, a képkörben leszek, és a csúszka nem fog megfelelően működni. Megkerültem ezt a problémát azzal is, hogy külön fizikai gomb indította el a csúszka mozgását.

Ezután beszéljünk a forgó nyomkövető elemről. Ez a rész nagyon összetettnek tűnik, de valójában meglehetősen egyszerű. Ennek megvalósítása az „Arduino” kódon belüli „motor ()” funkció alatt történik. Az első lépés egy 2 dimenziós rács elkészítése, és eldöntöttük, hogy a követni kívánt objektum hol található. Ennek alapján rajzolhat egy háromszöget a jelenlegi helyére. Az aktuális tartózkodási helyét a motor kódolóértékéből kaphatja meg. Ha a követni kívánt objektum pozícióját cm/mm -ben szeretné konfigurálni, akkor a kódoló értékét cm/mm értékre kell lefordítania. Ezt egyszerűen úgy teheti meg, hogy a kamera csúszkáját 1 cm -rel elmozdítja, és megméri a kódoló értékének növekedését. Ezt az értéket a kód tetején adhatja meg az encoder_mm változó alatt.

Továbblépve, most az inverz érintő függvényt fogjuk használni, hogy megkapjuk azt a szöget, amellyel a kamerának szembe kell néznie a tárgyával. A fordított érintő a háromszög ellenkező és szomszédos oldalát veszi fel. A háromszög ellenkező oldala soha nem változik, mivel ez a csúszka és az objektum közötti y távolság. A kamera csúszka szomszédos oldala azonban megváltozik. Ezt a szomszédos oldalt úgy lehet kiszámítani, hogy felveszi az objektum x pozícióját, és kivonja belőle az aktuális pozícióját. Amint a csúszka mozog a mozgási tartományában, folyamatosan frissíti az Arduino -t a kódoló értékén. Az Arduino többször is átalakítja ezt a kódoló értéket cm/mm x helyzetértékre, majd kiszámítja a szomszédos oldalhosszat, és végül kiszámítja azt a szöget, amellyel a fényképezőgépnek mindig szembe kell néznie, hogy a tárgyra mutasson.

Most, hogy az Arduino dinamikusan dolgozza fel a kamera szögét, foglalkozhatunk azzal, hogy ezt a szöget helyzeti értékre alakítjuk át a forgó motor számára. Ezzel el is érkeztünk a RoboClaw legnagyobb jellemzőjéhez ebben a projektben. Azáltal, hogy a Roboclaw -nak pozícióértéket ad, lényegében az egyenáramú, szálcsiszolt motort szervo szerűen viselkedheti. A szervóval ellentétben a motorunk tonna nyomatékkal, sokkal nagyobb pontossággal rendelkezik, és 360 fokot is képes forogni.

Az Arduino kód a Roboclaw bizonyos pozícióba való áthelyezéséhez a következő:

roboclaw. SpeedAccelDeccelPositionM1 (cím, „sebesség”, „gyorsulás”, „lassítás”, „pozíció, ahova menni kíván”, 1);

Ahhoz, hogy a motor helyzeti értékét a kamera szögéhez igazítsa, manuálisan el kell mozgatnia a kameralemezt 180 fokkal. Ezután nézze meg, hogy a kódoló értéke mennyit változott a kameralemez 0 fokról 180 fokra való elmozdításakor. Ez megadja a kódoló tartományát. Ezt a tartományt megadhatja a motor funkcióban, amely az Arduino kameraszögét pozicionális értékre képezi le. Ezt a kód is megjegyzi, így könnyen megtalálhatónak kell lennie *****

A RoboClaw lehetőséget adott más tényezők, például a gyorsulás, a lassítás és a PID értékek hangolására is. Ez lehetővé tette számomra, hogy simítsam a forgástengely mozgását, különösen akkor, ha a szögváltozások kicsiek voltak, és rángatózásokat eredményeztek, magas „D” PID érték nélkül. A PID-értékeket a Roboclaw asztali alkalmazásával is automatikusan beállíthatja.

4. lépés: A kamera csúszka kezelése

A kamera csúszka kezelése
A kamera csúszka kezelése

Most elérkeztünk a szórakoztató részhez, a csúszka működtetéséhez A menü 4 fő lappal rendelkezik. A felső fül a sebességszabályozást szolgálja. A menü középső sora füleket tartalmaz a követett objektum X & Y pozíciójának megadására mm -ben, és azt is, ha azt szeretnénk, hogy a csúszka forogjon és nyomon kövesse az objektumunkat, vagy csak egy egyszerű csúsztatást végezzen elforgatás nélkül. A forgó kódoló elforgatásával navigálhatunk a menük különböző lehetőségei között. Az opciók bármelyikének konfigurálásához navigáljon az opcióhoz, és nyomja meg a forgó kódolót. Miután megnyomta, a forgó jeladó elforgatása megváltoztatja a kiemelt almenü értékét, ahelyett, hogy a menüt végiggördítené. Miután elérte a kívánt értéket, ismét rákattinthat a forgó kódolóra. Most visszatért a főmenübe, és navigálhat a különböző lapok között. Ha készen áll, egyszerűen nyomja meg a képernyő melletti go gombot, és a csúszka elvégzi a dolgát!

Győződjön meg arról, hogy miután befejezte a fényképezőgép csúszkájának használatát, a fényképezőgép „otthoni” helyzetben van: a csúszka oldalán, amelyen elindult. Ennek az az oka, hogy a motorkódoló nem abszolút kódoló, ami azt jelenti, hogy a Roboclaw/Arduino nem tudja megmondani, hol van a kódoló. Csak azt tudják megmondani, hogy a kódoló mennyit változott az utolsó bekapcsolás óta. Ez azt jelenti, hogy amikor kikapcsolja a kamera csúszkáját, a csúszka „elfelejti” a csúszka helyzetét, és visszaállítja a kódolót 0 -ra. Ezért, ha kikapcsolja a csúszkát a másik oldalon, amikor bekapcsolja, a csúszka próbáljon tovább lépni a szélénél, és ütközzen a csúszka falába. Ez a kódoló viselkedés az oka annak is, hogy a fényképezőgép minden csúsztatás után visszaállítja forgásszögét. A forgástengely is védi magát attól, hogy a mozgási tartományának végébe ütközzen.

Ezt javíthatod a végállomások hozzáadásával és az indítási eljárás kezdő lépéseivel. Ezt használják a 3D nyomtatók.

5. lépés: Végső gondolatok + jövőbeli fejlesztések

Határozottan javaslom, hogy minden építő készítse el saját változatát erről a csúszkáról, ahelyett, hogy pontosan ugyanazt a csúszkát építené. A tervezés módosítása lehetővé teszi, hogy a csúszkát a pontos előírásoknak megfelelően építse fel, miközben jobban megérti az elektronika és a kód működését.

A kódot a lehető legolvashatóbbá és konfigurálhatóbbá tettem, így a csúszka specifikációi szerint módosíthatja/kalibrálhatja a különböző kódváltozókat. A kód is teljesen a funkciók köré épül, így ha a csúszka bizonyos viselkedéseit másolni/ módosítani/ átírni szeretné, akkor nem a teljes kódot kell megváltoztatnia és átdolgoznia, hanem csak a szerkeszteni kívánt részeket.

Végezetül, ha elkészítettem egy 2.0 -s verziót, itt van néhány fejlesztés, amit szeretnék végrehajtani

  1. Magasabb áttétel a forgástengelyes motorhoz. A magasabb áttételi arány azt jelenti, hogy pontosabb kis mozgásokat tudok végrehajtani. Ez különösen akkor kritikus, ha a kamera messze van a tárgytól, és a kamera szöge nagyon lassan változik. Jelenleg a motorom nincs túl magasra hajtva, és kissé rángatózó mozgást eredményezhet, ha a kamera csúszka túl lassan jár, vagy ha nagyon kicsi a forgási szögváltozás. A magas „D” PID érték hozzáadása segített megszabadulni ettől, de valamivel alacsonyabb tárgykövetési pontossággal járt.
  2. Moduláris hossz. Ez egy messzemenő cél, de szeretném, ha a kamera csúszka moduláris hosszúságú lenne, ami azt jelenti, hogy könnyedén csatolhat hosszabb vágányhosszakat a fényképezőgéphez. Ez meglehetősen nehéz, mivel tökéletesen össze kell igazítani mindkét pályát, és ki kell találni, hogyan működjön az övrendszer. Ennek ellenére jó frissítés lenne!
  3. Egyedi mozgás kulcsképzés. Szeretném bevezetni ebbe a kameracsúszkába a kulcskeretes mozgások fogalmát. A kulcsképzés egy olyan technika, amelyet nagyon gyakran használnak a video- és hanggyártásban. Lehetővé teszi a nemlineáris kameramozgásokat, amikor a kamera egy pozícióba megy, várakozik, majd egy másik pozícióba más sebességgel mozog, vár, majd egy harmadik pozícióba megy stb.
  4. Bluetooth/ vezeték nélküli telefonvezérlés. Nagyon jó lenne, ha vezeték nélkül konfigurálhatná a kamera csúszka paramétereit, és be tudná helyezni a kamera csúszkát a nehezen hozzáférhető helyekre. A telefonos alkalmazás az utolsó bekezdésben említettek szerint megnyithatja a kulcsképzés integrálásának lehetőségeit is.

Ennyi ehhez az oktatóanyaghoz. Nyugodtan tegye le kérdéseit az alábbi megjegyzések részben.

További tartalom- és elektronikai oktatóanyagokért tekintse meg YouTube -csatornámat is itt.

Ajánlott: