Spisu treści:

Prototypowy stabilizator kamery (2DOF): 6 kroków
Prototypowy stabilizator kamery (2DOF): 6 kroków

Wideo: Prototypowy stabilizator kamery (2DOF): 6 kroków

Wideo: Prototypowy stabilizator kamery (2DOF): 6 kroków
Wideo: Prototype Camera Gimbal for PID Controller #engineering #science #physics #coding 2024, Lipiec
Anonim
Prototypowy stabilizator kamery (2DOF)
Prototypowy stabilizator kamery (2DOF)

Autorski:

Robert de Mello e Souza, Jacob Paxton, Moises Farias

Podziękowanie:

Ogromne podziękowania dla Akademii Morskiej Uniwersytetu Kalifornijskiego, jej programu Technologii Inżynieryjnych oraz dr Chang-Siu za pomoc w osiągnięciu sukcesu w naszym projekcie w tak skomplikowanych czasach.

Wstęp:

Stabilizator kamery lub gimbal to uchwyt, który zapobiega drganiom aparatu i innym nieuzasadnionym ruchom. Jeden z pierwszych stabilizatorów, jakie kiedykolwiek wynaleziono, wykorzystywał amortyzatory/sprężyny do tłumienia nagłych zmian w ruchu aparatu. Inne typy stabilizatorów wykorzystują żyroskopy lub punkty podparcia, aby wykonać to samo zadanie. Urządzenia te stabilizują niepożądane ruchy w maksymalnie trzech różnych osiach lub wymiarach. Należą do nich osie x, yi z. Oznacza to, że stabilizator może tłumić ruchy w trzech różnych kierunkach: przechylenie, pochylenie i odchylenie. Odbywa się to zwykle za pomocą 3 silników sterowanych elektronicznym systemem sterowania, z których każdy przeciwdziała innej osi.

Byliśmy wyjątkowo zainteresowani tym projektem z kilku powodów. Każdy z nas lubi różne zajęcia na świeżym powietrzu, takie jak jazda na snowboardzie i inne sporty. Uzyskanie wysokiej jakości materiału filmowego z tych czynności jest trudne ze względu na ilość wymaganego ruchu. Kilkoro z nas posiada prawdziwy stabilizator aparatu kupiony w sklepie, więc chcieliśmy zbadać, czego potrzeba, aby stworzyć coś takiego. Podczas naszych zajęć laboratoryjnych i wykładowych dowiedzieliśmy się, jak współdziałać z serwonapędami za pomocą Arduino, kodowania wymaganego do ich działania oraz teorii obwodów elektronicznych, które pomagają nam projektować obwody.

*UWAGA: z powodu COVID-19 nie byliśmy w stanie ukończyć tego projektu w całości. Ta instrukcja jest przewodnikiem po obwodach i kodzie wymaganym dla prototypu stabilizatora. Zamierzamy zakończyć projekt po wznowieniu szkoły i ponownym uzyskaniu dostępu do drukarek 3D. Gotowa wersja będzie miała obwód akumulatora i wydrukowaną w 3D obudowę z ramionami stabilizatora (pokazane poniżej). Należy również pamiętać, że wyłączanie serwosilników z zasilacza Arduino 5v jest ogólnie złą praktyką. Robimy to po prostu, aby umożliwić testowanie prototypu. W ostatecznym projekcie zostanie uwzględniony oddzielny zasilacz, który pokazano na schemacie poniżej.

Kieszonkowe dzieci

-Mikrokontroler Arduino UNO

-Płytka do krojenia chleba

-Zestaw zworek z drutu

-MPU6050 bezwładnościowa jednostka pomiarowa

-Silnik serwo MG995 (x2)

-Moduł LCD1602

-Moduł joysticka

Krok 1: Przegląd projektu

Image
Image

Powyżej znajduje się film z naszego projektu, a także pokaz pracy.

Krok 2: Teoria i działanie

Schemat stanu/logiki
Schemat stanu/logiki

Do stabilizacji naszej kamery użyliśmy dwóch serwomotorów do stabilizacji osi pitch i roll. Bezwładnościowa jednostka pomiarowa (IMU) wykrywa przyspieszenie, przyspieszenie kątowe i siłę magnetyczną, których możemy użyć do określenia kąta kamery. Mając dołączony do montażu IMU, możemy wykorzystać wykryte dane, aby automatycznie przeciwdziałać zmianie ruchu klamki za pomocą serwomechanizmów. Co więcej, za pomocą Arduino Joystick możemy ręcznie sterować dwiema osiami obrotu, po jednym silniku na każdą oś.

Na rysunku 1 widać, że rolka jest przeciwdziałana przez serwomotor rolki. Gdy uchwyt jest przesuwany w kierunku obrotu, serwomotor obraca się w równym, ale przeciwnym kierunku.

Na rysunku 2 widać, że kąt nachylenia jest kontrolowany przez oddzielny serwomotor, który działa w podobny sposób jak serwomotor rolki.

Serwosilniki to dobry wybór do tego projektu, ponieważ łączy w sobie silnik, czujnik położenia, mały wbudowany mikrokontroler i mostek H, który pozwala nam ręcznie i automatycznie kontrolować położenie silnika za pośrednictwem Arduino. Początkowy projekt zakładał tylko jeden serwomotor, ale po namyśle zdecydowaliśmy się na dwa. Dodatkowymi komponentami dodanymi były ekran LCD Arduino i joystick. Zadaniem ekranu LCD jest pokazanie w jakim stanie aktualnie znajduje się stabilizator oraz aktualny kąt każdego serw podczas sterowania ręcznego.

Aby stworzyć obudowę do przechowywania wszystkich elementów elektrycznych, wykorzystaliśmy projektowanie wspomagane komputerowo (CAD) i użyjemy drukarki 3D. Do przechowywania elementów elektrycznych zaprojektowaliśmy korpus, który będzie pełnił również funkcję uchwytu. To tutaj zostanie zamontowany czujnik IMU i joystick. Do sterowania dwuosiowego zaprojektowaliśmy mocowania silników.

Krok 3: Diagram stanu/logiczny

Kod składa się z trzech stanów, z których każdy będzie pokazywany na ekranie LCD. Gdy Arduino otrzyma zasilanie, na ekranie LCD zostanie wyświetlony komunikat „Inicjowanie…” i rozpocznie się komunikacja I2C z MPU-6050. Początkowe dane z MPU-6050 są rejestrowane w celu znalezienia średniej. Następnie Arduino wejdzie w tryb sterowania ręcznego. Tutaj oba serwosilniki można regulować ręcznie za pomocą joysticka. Jeśli przycisk joysticka zostanie naciśnięty, przejdzie w stan „Auto Level” i platforma stabilizująca będzie utrzymywała poziom w stosunku do Ziemi. Wszelki ruch w kierunku przechyłu lub pochylenia będzie przeciwdziałany przez serwomotory, utrzymując w ten sposób platformę w poziomie. Po kolejnym naciśnięciu przycisku joysticka Arduino wejdzie w stan „Nie rób nic”, w którym serwosilniki zostaną zablokowane. W tej kolejności stany będą się zmieniać po każdym naciśnięciu przycisku joysticka.

Krok 4: Schemat obwodu

Schemat obwodu
Schemat obwodu

Powyższy obrazek ilustruje nasz schemat obwodu projektu w trybie OFF. Mikrokontroler Arduino zapewnia niezbędne połączenia do uruchomienia IMU MPU-6050, joysticka i wyświetlacza LCD. Ogniwa LiPo są bezpośrednio podłączone do zmieniacza i zasilają zarówno mikrokontroler Arduino, jak i oba serwosilniki. W tym trybie pracy akumulatory łączy się równolegle za pomocą przełącznika 3-punktowego dwuprzerzutowego (3PDT). Przełącznik umożliwia nam odłączenie obciążenia, przy jednoczesnym podłączeniu ładowarki i przełączeniu ogniw z konfiguracji szeregowej na równoległą. Pozwala to również na jednoczesne ładowanie akumulatora.

Gdy przełącznik zostanie przełączony w tryb ON, dwa ogniwa 3,7 V zapewnią zasilanie Arduino i Servo Motors. W tym trybie pracy akumulatory są łączone szeregowo za pomocą przełącznika 3-punktowego dwuprzerzutowego (3PDT). To pozwala nam uzyskać 7,4V z naszego źródła zasilania. Zarówno ekran LCD, jak i czujnik IMU korzystają z komunikacji I2C. SDA służy do przesyłania danych, podczas gdy SCL jest linią zegarową używaną do synchronizacji przesyłania danych. Serwosilniki mają po trzy przewody: zasilanie, masę i dane. Arduino komunikuje się z serwami poprzez piny 3 i 5; piny te wykorzystują modulację szerokości impulsu (PWM), aby przesyłać dane z płynniejszymi przejściami.

*Obwód ładowania akumulatora pochodzi ze strony Adafruit.com

Krok 5: Budowa

Budowa
Budowa
Budowa
Budowa
Budowa
Budowa

Podstawowa konstrukcja gimbala kamery jest dość prosta, ponieważ zasadniczo jest to tylko uchwyt i uchwyt do kamery. Gimbal składa się z dwóch serwomotorów, które przeciwdziałają wszelkim ruchom w kierunku obrotu i pochylenia. Korzystanie z Arduino Uno wymaga znacznej ilości miejsca, dlatego dodaliśmy również obudowę w dolnej części uchwytu, aby pomieścić wszystkie komponenty elektryczne. Obudowa, uchwyt i mocowania serwosilników zostaną wydrukowane w 3D, co pozwoli nam zminimalizować koszty i całkowity rozmiar, ponieważ możemy mieć pełną kontrolę nad projektem. Istnieje kilka sposobów na zaprojektowanie gimbala, ale najważniejszym czynnikiem, który należy wziąć pod uwagę, jest uniknięcie obracania się jednego serwonapędu w drugi. W prototypie jeden serwomotor jest zasadniczo połączony z drugim. Gdy ponownie uzyskamy dostęp do drukarek 3D, wydrukujemy w 3D ramię i platformę pokazane powyżej.

*Projekty ramienia i platformy pochodzą ze strony

Krok 6: Ogólne wyniki i potencjalne ulepszenia

Początkowe badania, które przeprowadziliśmy na gimbalach kamery, były bardzo onieśmielające. Chociaż było mnóstwo źródeł i informacji na ten temat, wydawało się, że jest to projekt, który byłby poza naszą ligą. Zaczęliśmy powoli, robiąc jak najwięcej badań, ale mało absorbując. Co tydzień spotykaliśmy się i współpracowaliśmy. Podczas pracy nabieraliśmy coraz większego rozpędu i ostatecznie staliśmy się mniej bojaźliwi i bardziej podekscytowani projektem. Chociaż dodaliśmy dodatkowy joystick i ekran LCD, wciąż możemy dodać do projektu o wiele więcej. Można również dodać kilka ulepszeń, takich jak ograniczenia w sterowaniu ręcznym, które uniemożliwiłyby użytkownikowi obracanie jednego serwomotoru w drugi. Jest to mały problem i można go również naprawić za pomocą innej konstrukcji mocowania. Omówiliśmy również możliwości dodania funkcji panoramowania. Umożliwiłoby to użytkownikowi użycie serwomotorów do przesuwania obszaru w określonym czasie.

Jako zespół pracowaliśmy razem bardzo dobrze. Pomimo okoliczności i tylko możliwości spotkania się wirtualnie, wykorzystaliśmy to jak najlepiej i utrzymywaliśmy częstą komunikację. Wszystkie części i komponenty zostały przekazane jednej osobie, co utrudniło reszcie grupy pomoc w rozwiązywaniu wszelkich pojawiających się problemów. Udało nam się rozwiązać pojawiające się problemy, ale gdybyśmy wszyscy mieli te same materiały, pomoc byłaby nieco łatwiejsza. Ogólnie rzecz biorąc, największym wkładem w ukończenie naszego projektu była zdolność każdego członka do dyspozycyjności i chęci spotkania się i porozmawiania o projekcie.

Zalecana: