Zobacz pełną wersję : intervalometer IR Arduino
Witam zamieszczam pierwszą cześć większego projektu sterownika do timelapse.
Jest to intervalometer zbudowany z Arduino UNO (klona za 20 PLN ) i diody IR z rezystorem.
http://sebastian.setz.name/arduino/my-libraries/multi-camera-ir-control/
#include <multiCameraIrControl.h>
Nikon X(13); // firma aparatu / pin diody IR
int sekundy = 1; // co ile sekund nastepuje zdjecie
void setup(){
}
void loop(){
X.shutterNow();
delay(sekundy*1000);
}
Witaj. Świetnie, że założyłeś taki wątek bo jest tu z pewnością wielu których zainteresuje temat.Sam jestem na początku budowy slidera do kamerki Gopro więc na razie wyzwalanie
aparatu na podczerwień mnie nie zainteresuje.W tej chwili bardziej jestem zainteresowany napędem wózka.Skompletowałem silnik krokowy i sterownik dający możliwość
zmiany obrotów silnika.Kamerka gopro ma wbudowany interwałometr do jednej minuty więc wyzwalanie migawki nie stanowi problemu.W przyszłości chciałbym jednak zbudować
większe urządzenie na którym mógłbym również ostawić lustrzankę.Podstawowy cykl pracy miałby wyglądać następująco:
- wyzwolenie migawki
- obrót silnika o określona ilość kroków co dało by jakiś zamierzony posuw wózka z aparatem
- kolejne wyzwolenie i kolejny posuw
Wyzwolenie migawki musi być po kablu bo sporo lustrzanek zwłaszcza tych z górnej półki jest wyzwalana kabelkiem.
Dobrze by było mieć możliwość ustawień cykli z poziomu urządzenia na cyfrowym panelu
Właśnie znalazłem na yootube https://www.youtube.com/watch?v=r5hoqqOVbyM
Takie urządzenie sterujące było by dla mnie idealne.Jak sądzisz jest możliwe złożenie czegoś takiego i wgranie kodu dla kogoś o raczej podstawowej wiedzy elektronicznej?
Wiesz nie wiem jaki masz sterownik silnika krokowego.
Najłatwiej używać sterowników do Rep Rap , lub do większego silnika używane w maszynach CNC.
Maja one 2 wejścia kierunek i krok, są łatwe w sterowaniu i maja mikro kroki a to ważne.
Co do filmiku coś podobnego można zrobić.
Tylko jakie ustawienia ma mieć: ?
- czas co jaki następuje zdjęcie
- kat o jaki się obraca
- kierunek obrotu
- ilość kroków na obrót
coś jeszcze ?
Jak zrobię jakaś obudowę to dodam wyświetlacz i przyciski.
Ten sterownik co posiadam oparty jest na procesorze Atmel 0315 i z silniczkiem który chcę zastosować dosyć dobrze to działa.Mam 6 stopni szybkości,start stop i zmianę kierunku.
Silniczek bipolarny ze starej drukarki chyba,raczej niewielkiej mocy,ale dodam jeszcze jedno przełożenie mechaniczne i taka małą kamerkę bezproblemowo pociągnie.
Zamierzam jednak docelowo zrobić coś większego i bardziej zaawansowanego stąd moje zainteresowanie Arduino.
Jak nic się nie stanie to myślę że za pól roku powstanie mój sterownik.
Potem zamieszczę kod i schemat jak wykonać, na pewno będzie Arduino UNO / klon, wyświetlacz 2 x 16 znaków i klawiatura 4 przyciskowa. Akcesoria będą dołączane jako peryferia, w celu ograniczenia kosztów.
Jak będzie całość gotowa i starczy miejsca w układzie to będą takie funkcje.
- intervalometer IR / kabelek
- wyzwalanie aparatu światłem / dźwiękiem (fotografowanie błyskawic)
- bariera w podczerwieni lub czujnik ruchu ( foto pułapka)
- wyzwalanie laserem ( fotografia kropel wody widziałem na YouTube ale nie do końca wiem jak to działa)
opcje korzystające z silnika krokowego :
- sterownik slidera + intervalometer
- sterownik głowicy obrotowej 360
- sterownik stołu do zdjęć 360
takie funkcje zdołałem wymyślić :P coś jeszcze ?
Witam małe UP projektu .
Zrobiłem obudowę i dodałem wyświetlacz przyciski oraz potencjometr.
Pozostaje tylko pisanie programu...
Oto kilka fotek:
https://forum.nikoniarze.pl/imgimported/2015/02/IMG_0009JPG-2.jpg
źródło (http://img.webme.com/pic/c/crobe/IMG_0009.JPG)
https://forum.nikoniarze.pl/imgimported/2015/02/IMG_0010JPG-2.jpg
źródło (http://img.webme.com/pic/c/crobe/IMG_0010.JPG)
https://forum.nikoniarze.pl/imgimported/2015/02/IMG_0011JPG-2.jpg
źródło (http://img.webme.com/pic/c/crobe/IMG_0011.JPG)
https://forum.nikoniarze.pl/imgimported/2015/02/IMG_0012JPG-2.jpg
źródło (http://img.webme.com/pic/c/crobe/IMG_0012.JPG)
https://forum.nikoniarze.pl/imgimported/2015/02/IMG_0013JPG-2.jpg
źródło (http://img.webme.com/pic/c/crobe/IMG_0013.JPG)
https://forum.nikoniarze.pl/imgimported/2015/02/IMG_0014JPG-2.jpg
źródło (http://img.webme.com/pic/c/crobe/IMG_0014.JPG)
https://forum.nikoniarze.pl/imgimported/2015/02/IMG_0015JPG-2.jpg
źródło (http://img.webme.com/pic/c/crobe/IMG_0015.JPG)
CDN ...
Witam po przerwie :)
Wiec udało mi się zrobić podstawowy intervalometer ustawiany przy pomocy klawiatury i potencjometru.
aparat wyzwalany IR lub kabelka.
Ustawienia:
1 - 60 sekund
1 - 60 minut
1 - 24 godzin
Posiada także licznik wykonanych zdjęć od 1 do 999 oraz animowany pasek upływu czasu pomiędzy zdjęciami.
Filmik:
http://youtu.be/qHPiaTXzdyg
czekam na opinie :P
Fajnie to zaczyna wygadać, trzymam kciuki aby starczyło Ci zapału i energii do doprowadzenia projektu do końca.Przy fotografowaniu kropelek istotna jest możliwość regulacji
opóźnienia otwarcia migawki lub błysku.Umożliwia to uchwycenie jakiejś stałej fazy po uderzeniu kropelki w lustro cieczy.Aby osiągnąć efekt jaki tu nam czasami prezentuje
forumowy kolega potrzeba jeszcze dodatkowych urządzeń sterujących wyrzucaniem kropelek.
Widzę,że zastosowałeś dosyć zaawansowany panel sterowniczy.Co do sterowania silnikiem krokowym to wydaje mi się, że lepiej było by gdyby można było programować ilość kroków.
Posuw wózka czy obrót stołu w dużej części będzie zależał od konstrukcji mechanicznej slidera czy stolika.
Jeżeli nic nie stoi na przeszkodzie to mógłbyś na bieżąco podawać wykorzystane elementy Ardino.
Witam po przerwie :)
Wiec udało mi się zrobić podstawowy intervalometer ustawiany przy pomocy klawiatury i potencjometru.
aparat wyzwalany IR lub kabelka.
Ustawienia:
1 - 60 sekund
1 - 60 minut
1 - 24 godzin
Posiada także licznik wykonanych zdjęć od 1 do 999 oraz animowany pasek upływu czasu pomiędzy zdjęciami.
Filmik:
http://youtu.be/qHPiaTXzdyg
czekam na opinie :P
Masz, http://www.pbase.com/fotoopa, może coś podpatrzysz u tego starszego pana.:wink:
Hmmm.... co zostało użyte:
- obudowa Z3A wymiary wysokość-szerokość-długość : 69mm x 90mm x 110mm.
- klon Arduino UNO
- wyświetlacz do Arduino 2 x 16 znaków sa na All***o w różnych kolorach.
- 1 rezystor 100 Ohm do obniżenia jasności wyświetlacza
- 4 rezystory 4,7 k Ohm do budowy klawiatury
- 1 potencjometr obrotowy 10 k Ohm
- 4 wejścia mini jack 3,5 mm do wpinania czujników i kabelka wyzwalania
schemat podłączeń i oznaczenia przycisków:
https://forum.nikoniarze.pl/imgimported/2015/02/schemat-1.jpg
źródło (http://img.webme.com/pic/c/crobe/schemat.jpg)
kod narzazie wersja testowa do wglądu:
#include <LiquidCrystal.h>
#include <MemoryFree.h>
#include <multiCameraIrControl.h>
Nikon X(13); // firma aparatu / pin diody IR
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // ustawia piny wyswietlacza
//################################################## ################################################## ################################################## ###################################
// ZMIENNE KLAWIATURY I POTENCJOMETRU
int klaw;
int kwart;
int pot;
//################################################## ################################################## ################################################## ###################################
// ZMIENNE MENU
int menu = 1 ;
int val = 1;
//################################################## ################################################## ################################################## ###################################
// ZMIENNE PRZECHOWUJACE ROZNE WARTOSCI W ZALEZNOSCI OD WYBRANEJ FUNKCJI
int val2;
int val3;
int val4;
int val5;
long val6;
long val7;
long val8;
long val9;
String string1;
String string2;
unsigned long val10;
//################################################## ################################################## ################################################## ###################################
void setup() {
lcd.begin(16, 2); // definiuje typ wyswietlacza
}
void loop() {
//################################################## ################################################## ################################################## ###################################
// ODCZYT KLAWIATURY I POTENCJOMETRU Z PINÓW ANALOGOWYCH A0 I A1
kwart = analogRead(A1);
pot = analogRead(A0);
//################################################## ################################################## ################################################## ###################################
// ZMIANA ODCZYTU Z A1 NA KONKRETNY KLAWISZ
if (kwart > 1000 ) {klaw = 1;delay(200);}else
if (kwart > 500 & kwart < 520 ){klaw = 2;delay(200);}else
if (kwart > 330 & kwart < 350 ){klaw = 3;delay(200);}else
if (kwart > 240 & kwart < 270 ){klaw = 4;delay(200);}
else klaw = 0;
//################################################## ################################################## ################################################## ###################################
// STEROWANIE MENU
if (menu > 9 & menu < 99 & klaw == 1 ){menu = menu/10;};
if (menu > 9 & menu < 99 & klaw == 2 ){val = val-1;};
if (menu > 9 & menu < 99 & klaw == 3 ){val = val+1;};
if (menu > 9 & menu < 99 & klaw == 4 ){menu = menu+1;};
if (menu <= 9 & klaw == 2 ){menu = menu-1;};
if (menu <= 9 & klaw == 3 ){menu = menu+1;};
if (menu <= 9 & klaw == 4 ){menu = menu*10;};
if (menu > 99 & klaw == 1 ){menu = menu/10;};
//################################################## ################################################## ################################################## ###################################
// CZYSCI WYSWIETLACZ
lcd.clear();
//################################################## ################################################## ################################################## ###################################
// SEKCJA MENU
switch (menu) {
case 0:
menu = 1;
break;
//################################################## ################################################## ################################################## ###################################
// POCZATEK INTERVALOMETER
//################################################## ################################################## ################################################## ###################################
// INTERVALOMETER GŁÓWNE MENU [WARTOSC ZMIENNEJ menu = 1]
//################################################## ################################################## ################################################## ###################################
case 1:
lcd.setCursor(0, 0); lcd.print(F("1."));
lcd.setCursor(1, 1); lcd.print(F("Intervalometer"));
break;
//################################################## ################################################## ################################################## ###################################
// INTERVALOMETER PODMENU [WARTOSC ZMIENNEJ menu = 10]
case 10: //pod menu intervalometer
lcd.setCursor(0, 0); lcd.print(val6); // wiswietla wartosc potencjometra
lcd.setCursor(3, 0); lcd.print(string1);
lcd.setCursor(11, 0); lcd.print(F("| 000"));
lcd.setCursor(0, 1); lcd.print(F("----------------"));
switch (val) {
case 0: // blokuje watrosc na >= 1
val = 1 ;
break;
case 1: // przelancza pomiedzy sek, min , hr zmieniajac watrosc nal
pot = map(pot, 0, 1018, 1, 60);
string1 = "sec";
val6 = pot; // val 6 przechowuje wartosc potencjimetra
val7 = 1000; // val 7 mnoznik milisekund
break;
case 2:
pot = map(pot, 0, 1018, 1, 60);
string1 = "min";
val6 = pot;
val7 = 60000;
break;
case 3:
pot = map(pot, 0, 1018, 1, 24);
string1 = "hr";
val6 = pot;
val7 = 3600000;
break;
case 4: // blokuje wartosc <=3
val = 3;
break;
}
break;
//################################################## ################################################## ################################################## ###################################
// INTERVALOMETER OBLICZENIA [WARTOSC ZMIENNEJ menu = 11]
case 11:
delay (2000);
val10 = millis(); // resetuje licznik milisekund
val8 = (val6*val7); // oblicza liczbe milisekund interwalu
menu = 100;
val2 = 1;
//################################################## ################################################## ################################################## ###################################
// INTERVALOMETER EKRAN WYKONAWCZY [WARTOSC ZMIENNEJ menu = 100]
case 100:
lcd.setCursor(0, 0); lcd.print(val6); // wiswietla wartosc potencjometra
lcd.setCursor(3, 0); lcd.print(string1);
lcd.setCursor(11, 0); lcd.print(F("|"));
lcd.setCursor(13 , 0); lcd.print(val2);
if (millis()-val10 > val8) {val10 = millis();val2 = val2+1;}; //sprawdza czy liczba milisekund osiagnela wartosc zadana, jezeli tak resetuje licznik i wyzwala aparat
if (val2 == 999){val2 = 0;};
// animacja paska zmienia uzycie val6 i val7
val7= val8/17;
val7 = (millis()-val10)/val7;
val5 = val7;
lcd.setCursor(val5, 1); lcd.print(F("----------------"));
break;
//################################################## ################################################## ################################################## ###################################
// KONIEC INTERVALOMETER
//################################################## ################################################## ################################################## ###################################
case 2:
lcd.setCursor(0, 0); lcd.print(F("2. Wyzwalanie"));
lcd.setCursor(3, 1); lcd.print(F("czujnikiem"));
break;
case 3:
menu = 2;
break;
}
//################################################## ################################################## ################################################## ###################################
// WYZWALANIE MIGAWKI I FOKUS
//################################################## ################################################## ################################################## ###################################
// X.shutterNow();
//################################################## ################################################## ################################################## ###################################
delay(10);
}
A i odnośnie aparatu do owadów to lasery IR są poza moim zasięgiem bo za drogie do eksperymentów, co nie zmienia faktu ze fajna zabawka... tylko czy ktoś by tego używał ?
Wyzwalanie aparatu laserami jak tamten pan zrobił nie jest trudne, tylko części drogie :/
ok wiec slider...
pytanie do kolegi kazzi i innych zainteresowanych sterownikiem do slidera.
jakie funkcje :?
- w skrypcie trzeba zdefiniować ile kroków potrzeba na cały przejazd później dorobię w ustawieniach sterownika ekran który pozwoli to odczytać i każdy zainteresowany sam sobie to wklepie do skryptu.
na razie zrobiłem menu do niego są w nim zawarte takie ekrany:
1.
ustawianie co ile kroków ma być zdjęcie
sterownik sam oblicza ile zdjęć wyjdzie na przejazd
2.
ustawienie czasu na jaki wózek się zatrzymuje dla wykonania zdjęcia
zakres 0-10 sek domyślnie 1 sek.
3. ustawienie prędkości przejazdu
sterownik sam oblicza i podaje ile przy danym ustawieniu zajmie przejazd (np. 2h40m34s)
---------------------------------------------------------------------
do napisania
4.
kierunek posuwu + ruchy ręczne
5. ekran wykonawczy
czekam na uwagi propozycje.
sterownik pisany pod drivery silników z wejściami STEP i DIR czlki takie jak w maszynach CNC i REPRAP
Widzę,że bardzo ambitnie podchodzisz do tematu. Tak w zasadzie to nie mam uwag, jedynie co można by było zmienić to, wydłużyć czas postoju między klatkami. Wdziałem sporo
filmików robionych w nocy i w takich warunkach czasy ekspozycji bywają dłuższe więc przydało by się minimum 30 s, a nie zaszkodziło by i dłużej.Z moich teoretycznych obliczeń wynika,
że dla silnika 200 kr/obr, który będzie przesuwał wózek za pomocą paska i koła zębatego o średnicy 12mm osadzonego na osi silnika, potrzeba ok 5 kroków dla przesunięcia
wózka o 1 mm. Wydaje mi się,że taka rozdzielczość będzie wystarczająca. Wszystko jednak zależy od konstrukcji mechanicznej bo widziałem też slidery z napędem za pomocą śruby.
Te 12 mm średnicy koła zębatego to średnica najmniejszego koła jaki udało mi się kupić z paskiem zębatym dla niego. Na razie walczę z konstrukcją mechaniczną, bo szynę
z wózkiem chcę zrobić z tego co posiadam w domu i nie wydawać wielkich pieniędzy np na szynę IGUS-a. Pomału chyba też zacznę zamawiać elementy elektroniczne bo widzę,
że Arduino daje o wiele większe możliwości niż prosty sterownik.
To może zmienić ustawianie zamiast w krokach dać na mm. tylko trzeba by było tez z góry podać ile kroków wychodzi na 1mm, ale w użytkowaniu było by bardziej praktyczne, bo chyba lepiej sobie wyobrazić zdjęcie co 10 mm
niż co 50 kroków ;p
Ale to się zmieni później na razie chce odpalić i sprawdzić czy działa...
Odnośnie zakresu zwiększę go do 60 to tylko zmiana 2 liczb w skrypcie.
Hej,
też kombinuję coś takiego.
Chcę zrobić obrotnicę z małego urządzenia PTZ ( od kamer do monitoringu).
Jest tam silnik krokowy i mocowanie do aparatu. Trzeba tylko wymienić sterownik.
Myślę, że do wakacji będzie działać.
Poszedłem też w nieco innym kierunku.
Aparaty które mają odpowiednie parametry są zwykle drogie.
Postanowiłem wyszukać coś taniego co nie będzie dużą stratą w przypadku zalania, zniszczenia, zagubienia.
I co można w warunkach domowych przerobić.
Mój wybór padł na Nikona L-29 - zabaweczka którą można bez problemu otworzyć.
Wstawiłem tam timer (interwalometr) ze stałym krokiem 10 sekund.
Wystarczył mały procesorek ATTiny 13 bez żadnych dodatkowych elementów.
Obsługa proścutka.
Aparacik oczywiście sporo wad. Ale bije na głowę ceną. Ok 200 PLN.
Można bez obawy eksperymentować.
Tu link do filmiku z przeróbki : https://youtu.be/Cc0-C5GwOx0
i kilka próbek : www.port.az.pl (www.port.az.pl)
Witam sterownik wózka do "time lapse" gotowy.
Ustawienie pod śrubę 1 mm = 1 obrót
Wyzwalanie aparatu (Nikon D60) za pomocą IR.
FILM
https://youtu.be/txHGQe5YAFU
RobertMiernik
28-06-2015, 20:53
wygląda ciekawie, pokaż efekty :>
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.