Close

Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki od 1 do 10 z 17
  1. #1

    Domyślnie 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/m...ra-ir-control/



    Kod:
    #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);
    }

  2. #2

    Domyślnie

    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?

  3. #3

    Domyślnie

    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.

  4. #4

    Domyślnie

    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.

  5. #5

    Domyślnie

    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 ?

  6. #6

    Domyślnie

    Witam małe UP projektu .

    Zrobiłem obudowę i dodałem wyświetlacz przyciski oraz potencjometr.

    Pozostaje tylko pisanie programu...

    Oto kilka fotek:



    CDN ...

  7. #7

    Domyślnie

    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

  8. #8

    Domyślnie

    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.

  9. #9

    Domyślnie

    Cytat Zamieszczone przez crobe Zobacz posta
    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.

  10. #10

    Domyślnie

    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:


    kod narzazie wersja testowa do wglądu:
    Kod:
    #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);
     
    }

Strona 1 z 2 12 OstatniOstatni

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •