Spisu treści:
- Krok 1: Plan
- Krok 2: Lista komponentów
- Krok 3: Projektowanie PCB
- Krok 4: Łączenie rzeczy
- Krok 5: Praca
- Krok 6: Przyszłe aktualizacje
- Krok 7: Ciesz się
Wideo: Timelapse sterowany ruchem: 7 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Timelapse są świetne! Pomagają nam zajrzeć w wolno poruszający się świat, o którym możemy zapomnieć, aby docenić jego piękno. Ale czasami stały film poklatkowy może być nudny lub dzieje się tak wiele rzeczy, że tylko jeden kąt nie wystarczy. Doprawmy to!
W tej instrukcji pokażę Ci, jak stworzyłem urządzenie, które doda ruch do Twojego timelapse. Zacznijmy!
Krok 1: Plan
Chciałem, aby kamera poruszała się w dwóch kierunkach tj. w osi poziomej(X) i pionowej(Y). Do tego będę potrzebował dwóch silników.
Powinniśmy być w stanie wybrać pozycję początkową i końcową dla obu osi.
Ruch silników byłby taki, aby po każdym zdjęciu osie obracały się o 1 stopień.
Aby uzyskać tak precyzyjną kontrolę, będę używał Servo Motors.
Powinniśmy też być w stanie ustawić interwał czasowy.
Chciałem, aby był przenośny, więc zdecydowałem się uruchomić go na akumulatorze LiPo, co oznacza, że wymagany będzie obwód ładowania i doładowania.
I na koniec mózgiem, który będzie tym wszystkim sterował, będzie Arduino. ATMega328p będzie używany jako samodzielny mikrokontroler.
Poszedłem z kamerą GoPro, ponieważ jest mały i robienie z nią timelapsów jest łatwe. Możesz iść z dowolnym innym małym aparatem lub telefonem komórkowym.
Krok 2: Lista komponentów
1x ATmega328p (z bootloaderem Arduino)
2x MG995 serwomotor
1x konwerter doładowania MT3608
1x moduł ładowania akumulatora LiPo TP4056
1x przełącznik SPDT
1x 16 MHz kryształ
Kondensator 2x 22pF
Rezystor 2x 10k
1x potencjometr (dowolna wartość)
1x przycisk (normalnie otwarty)
Opcjonalny:
drukarka 3d
Krok 3: Projektowanie PCB
Aby obwód był jak najmniejszy, wybrałem płytkę drukowaną. Tablicę możesz wytrawić samodzielnie w domu lub pozwolić profesjonalistom wykonać za Ciebie ciężką pracę i tak właśnie zrobiłem.
Gdy wszystko na płytce prototypowej działa prawidłowo, możemy rozpocząć proces projektowania PCB. Wybrałem EasyEDA do projektowania, ponieważ ułatwia to początkującym, takim jak ja.
Sprawdź, sprawdź i sprawdź! Upewnij się, że niczego nie przegapiłeś. Gdy masz całkowitą pewność, kliknij Wygeneruj plik produkcyjny, aby pobrać pliki Gerber lub możesz go bezpośrednio zamówić w JLCPCB za jedyne 2 $, korzystając z opcji podanej poniżej.
Po otrzymaniu/wykonaniu płytki PCB nadszedł czas, aby ją zapełnić. Przygotuj schemat obwodu i zacznij lutować elementy zgodnie z oznaczeniem sitodruku.
Oczyść PCB po lutowaniu alkoholem izopropylowym, aby usunąć pozostałości topnika.
Krok 4: Łączenie rzeczy
Nie będziesz potrzebować wymyślnej drukarki 3D. Części można bardzo łatwo zbudować za pomocą odpowiednich narzędzi. Niedawno dostałem drukarkę 3D i chętnie wykorzystałem ją w swoim projekcie. Znalazłem niektóre części z Thingiverse.
Uchwyt GoPro:
Servo Horn:
Przylutuj przewody do wyłącznika zasilania, potencjometru i przycisku z żeńskimi złączami i podłącz je do męskich gniazd na płytce drukowanej.
Pobierz i otwórz załączony plik w Arduino IDE i prześlij kod do swojego Arduino. Po wgraniu kodu wyjmij układ scalony z płytki Arduino i włóż go na płytkę PCB.
/*Autor: IndoorGeek YouTube: www.youtube.com/IndoorGeek Dziękujemy za pobranie. Mam nadzieję, że podoba Ci się projekt. */
#włączać
Serwo xServo;
Serwo ySerwo;
int szpilka = A0;
int val, xStart, xStop, yStart, yStop; wewn przycisk = 2; długi czas bez znakuPrzedział;
pusta konfiguracja () {
pinMode(przycisk, WEJŚCIE); xServo.attach(3); yServo.attach(4); }
pusta pętla () {
oś x(); opóźnienie (1000); xPoczątek = wart; Oś Y(); opóźnienie (1000); yStart = wart; oś x(); opóźnienie (1000); xStop = wart; Oś Y(); opóźnienie (1000); yStop = wart; setTimeInterval(); opóźnienie (1000); timelapseStart(); }
nieważna oś x() {
while(digitalRead(przycisk) != HIGH){ val = analogRead(A0); val = mapa(val, 0, 1023, 0, 180); xServo.write(val); } }
nieważna oś y () {
while(digitalRead(przycisk) != HIGH){ val = analogRead(A0); val = mapa(val, 0, 1023, 0, 180); yServo.write(val); } }
void setTimeInterval(){ //Zmień interwały czasowe zgodnie z ustawieniami timelapse kamery
while(digitalRead(przycisk) != HIGH){ val = analogRead(A0); if(val>=0 && val=171 && val=342 && val=513 && val=684 && val=855 && val<1023){ timeInterval = 60000L; } } }
nieważny timelapseStart(){
unsigned long lastMillis = 0; xServo.write(xStart); yServo.write(yStart); while(xStart != xStop || yStart != yStop){ if(millis() - lastMillis > timeInterval){ if(xStart xStop){ xServo.write(xStart); lastMillis = mili(); xStart--; } if(yStart xStop){ yServo.write(yStart); lastMillis = mili(); yStart--; } } } }
Krok 5: Praca
Włącz główny wyłącznik.
Oś X będzie aktywna. Obróć pulę do pozycji, od której chcesz rozpocząć timelapse. Naciśnij przycisk Wybierz, aby potwierdzić pozycję początkową. Następnie oś Y będzie aktywna. Zrób to samo, aby wybrać pozycję początkową osi Y.
Powtórz powyższą procedurę dla pozycji zatrzymania osi X i Y.
Teraz za pomocą potencjometru wybierz odstęp czasowy między każdym strzałem. Obroty garnka podzielone są na 6 części w odstępach 1s, 2s, 5s, 10 sek, 30 sek i 60 sek. Możesz zmienić interwały w funkcji setTimeInterval(), jak pokazano na rysunku. Naciśnij przycisk Wybierz, aby potwierdzić.
Serwa ustawią się w pozycji wyjściowej i przesuną się o 1 stopień po odstępie czasu.
Sekwencja:
- Ustaw pozycję początkową osi X
- Ustaw pozycję początkową osi Y
- Ustaw pozycję zatrzymania osi X
- Ustaw pozycję zatrzymania osi Y
- Ustaw przedział czasu
Krok 6: Przyszłe aktualizacje
1) Obecnie, ze względu na 1 ujęcie/stopień, najwięcej zdjęć jakie możemy uzyskać to 180, ponieważ serwa mogą obracać się od 0 do 180 stopni. Dodanie kół zębatych zwiększy rozdzielczość. Dzięki temu będziemy mieli więcej ujęć, a co za tym idzie płynne timelapsy. Czuję się całkiem swobodnie z elektroniką, ale nie z mechaniką. Nie mogę się doczekać, aby to poprawić.
2) Potencjometr można zastąpić enkoderem obrotowym.
3) Może sterowanie bezprzewodowe?!
Jest wiele do nauczenia się
Krok 7: Ciesz się
Dziękuję za wytrwanie do końca. Mam nadzieję, że wszyscy kochacie ten projekt i nauczyliście się dzisiaj czegoś nowego. Daj mi znać, jeśli zrobisz dla siebie. Subskrybuj mój kanał na YouTube, aby zobaczyć więcej nadchodzących projektów. Dziękuję raz jeszcze!
Zalecana:
Skrzydła Cosplay aktywowane ruchem za pomocą Circuit Playground Express – część 1: 7 kroków (ze zdjęciami)
Skrzydła Cosplay aktywowane ruchem za pomocą Circuit Playground Express - część 1: Jest to pierwsza część dwuczęściowego projektu, w którym pokażę wam mój proces tworzenia pary automatycznych skrzydełek wróżek. Pierwsza część projektu to mechanika skrzydeł, a druga część to uczynienie go poręcznym i dodanie skrzydeł
Buty Neopixel RGB wyzwalane ruchem!: 5 kroków (ze zdjęciami)
Motion Triggered Neopixel RGB Shoes!: NeoPixel są niesamowite, możemy sterować setkami świateł za pomocą 3 przewodów, tj. 5V, Din i amp; GND i w tym samouczku pokażę, jak można zrobić Motion Triggered NeoPixel RGB Shoes! Więc bez zbędnych ceregieli zacznijmy
Proste ramię robota kontrolowane nad rzeczywistym ruchem ręki: 7 kroków (ze zdjęciami)
Proste ramię robota kontrolowane przez rzeczywisty ruch ręki: Jest to bardzo proste ramię robota DOF dla początkujących. Ramię jest sterowane Arduino. Jest on połączony z czujnikiem, który mocowany jest na ręce operatora. Dlatego operator może kontrolować łokieć ramienia, zginając własny ruch łokcia.W
Suwak sterowania ruchem dla szyny poklatkowej: 10 kroków (ze zdjęciami)
Suwak sterowania ruchem dla szyny poklatkowej: Ta instrukcja wyjaśnia, jak zmotoryzować szynę poklatkową za pomocą silnika krokowego napędzanego przez Arduino. Skoncentrujemy się głównie na kontrolerze ruchu, który napędza silnik krokowy, zakładając, że masz już szynę, którą chcesz zmotoryzować. Na przykład, gdy nie
Redstone aktywowany ruchem: 7 kroków (ze zdjęciami)
Redstone aktywowany ruchem: Cześć! Ten projekt to aktywowana ruchem lampa z czerwonego kamienia. Działa za pomocą mikrokontrolera kruszącego i ultradźwiękowego czujnika odległości podłączonego do przekaźnika.Ten projekt jest zgłaszany do konkursu minecraft i wszelkich głosów, faworytów lub ko