Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Bezprzewodowy interwałometr do aparatów Canon

JestemInzynieremPL 12 Kwi 2017 20:59 5193 21
  • Bezprzewodowy interwałometr do aparatów Canon

    Interwałometr to urządzenie, które pozwala przy pomocy aparatu fotograficznego robić filmy poklatkowe o dużej rozdzielczości. Film poklatkowy robi się przez złożenie wielu zdjęć obiektów i procesów zbyt wolnych dla ludzkiego oka, np. zachód słońca lub wzrost rośliny.

    Większość producentów aparatów nie wprowadza fabrycznie funkcji interwałometru do swoich aparatów. Jeśli ktoś chce robić filmy poklatkowe musi sobie dokupić oddzielne urządzenie lub używać nieoficjalnego oprogramowania dla aparatu, np. Magic Lantern (http://www.magiclantern.fm/). Z używaniem nieoficjalnego oprogramowania jest pewne ryzyko: 1) tracimy gwarancje producenta aparatu, 2) można niechcący popsuć aparat (tak, da się!). Dlatego postanowiłem zrobić swój własny interwałometr i opisać cały proces na moim kanale YT ( JestemInżynieremPL ). Urządzenie, które zbudowałem komunikuje się z aparatem bezprzewodowo za pomocą diody podczerwieni. Ma funkcję wyzwalania pojedynczego zdjęcia oraz wyzwalania nieskończonej ilości zdjęć co określony czas.

    Do zbudowania interwałometru wykorzystałem płytkę Arduino Micro, diodę podczerwieni emitującą światło o długości fali 940nm, diodę światła widzialnego, rezystor odpowiedni do posiadanej diody, czyli od 100 do 200ohm (dla zasilania 5V), dwa przyciski tact-switch, przełącznik suwakowy, klip i baterię 9V oraz plastikową puszkę elektryczną. Całość umieściłem na płytce prototypowej z listwami goldpin.
    Bezprzewodowy interwałometr do aparatów Canon

    Głównym wyzwaniem przy projektowaniu układu było poznanie protokołu komunikacji jaki wykorzystują aparaty Canon do zdalnego wyzwalania zdjęć. W tym celu na popularnym portalu aukcyjnym kupiłem tani, bezprzewodowy pilot, żeby go rozebrać i sprawdzić jak działa.
    Bezprzewodowy interwałometr do aparatów Canon Bezprzewodowy interwałometr do aparatów Canon
    Do płytki pilota dolutowałem kable, ułatwiające pomiar sygnału wysyłanego na diodę podczerwieni. Kabel niebieski i pomarańczowy dolutowałem do nóżek diody, te kable podłączyłem do sondy oscyloskopu, żeby prześledzić przebieg impulsów. Kable czerwony i czarny podłączają baterię zasilającą układ. Zwarcie żółtych kabli powoduje wysłanie sygnału na diodę podczerwieni.

    Bezprzewodowy interwałometr do aparatów Canon
    Oscyloskop zarejestrował, że pilot wysyła w odstępie ok. 7 milisekund dwa impulsy.

    Bezprzewodowy interwałometr do aparatów Canon
    Zmierzony czas trwania jednego impulsu to ok. 500 mikrosekund.

    Bezprzewodowy interwałometr do aparatów Canon
    Częstotliwość wygenerowanych impulsów to ok. 32kHz.

    Aby uzyskać sygnał o tej częstotliwości mikrokontroler musi co 15 mikrosekund zmieniać stan logiczny na wyjściu z diodą podczerwieni. Funkcja analogWrite() pozwala na generowanie sygnału PWM o maksymalnej częstotliwości 500Hz, więc aby jej użyć trzeba zmienić wartość dzielnika licznika zegara albo użyć przerwań / biblioteki TimerOne. Ręczne wygenerowanie sygnału wydało mi się najprostsze (naprzemienna zmiana stanu logicznego wyjścia). Praktyka pokazała jednak, że sygnał wygenerowany z użyciem kodu wykorzystującego funkcje digitalWrite() i delayMicroseconds() jest niepoprawny. Wykonanie kodu programu zajmuje zbyt dużo czasu i mikrokontroler nie nadąża z generowaniem tak krótkich sygnałów.
    Bezprzewodowy interwałometr do aparatów Canon
    Pomiar długości trwania pojedynczego impulsu ukazuje, że jest zbyt długi. Zamiast 500 mikrosekund trwa ok. 750 mikrosekund. Częstotliwość uzyskanego w ten sposób sygnału to ok. 20kHz, a więc znacząco mniej niż wymagane 32kHz.

    Rozwiązaniem tego problemu okazało się bezpośrednie użycie rejestru wejścia portu oraz funkcji _delay_ms() i _delay_us() opisanych w bibliotece delay.h dla mikrokontrolerów AVR. Tak wygląda poprawnie wygenerowany sygnał:
    Bezprzewodowy interwałometr do aparatów Canon

    Szkic z kodem programu dla Arduino jest dołączony do tego artykułu. Aby został poprawnie otwarty przez Arduino IDE należy zmienić rozszerzenie pliku z *.txt na *.ino. Wyjaśnienia algorytmu programu najlepiej obejrzeć na filmie (4:44):

    Link


    Samo złożenie układu nie było zbyt ekscytujące, bo polegało na przylutowaniu do płytki prototypowej 2 diod, 2 przycisków tact-swich, przełącznika suwakowego i zasilania. Tak wygląda polutowany pająk:
    Bezprzewodowy interwałometr do aparatów Canon

    Układ został wykonany według tego schematu:
    Bezprzewodowy interwałometr do aparatów Canon Bezprzewodowy interwałometr do aparatów Canon

    Interwałometr działa bardzo dobrze z aparatami Canon, które miałem okazję testować, czyli model 450D i 700D.

    Konstrukcję, którą Wam pokazałem oczywiście można jeszcze udoskonalić. Wyobrażam sobie mnóstwo możliwości polepszenia funkcjonalności, ale ja bym zaczął od zmiany płytki Arduino Micro na sam mikrokontroler, np. Attiny85 oraz zaimplementowania w kodzie funkcji usypiania mikrokontrolera w celu zmniejszenia poboru prądu.

    Zachęcam do obejrzenia całego filmu opisującego powstanie interwałometru:

    Link


    Fajne!
  • #2 13 Kwi 2017 07:57
    krzysztofh
    Poziom 28  

    Ja bym zastąpił tego Arduino małym Attiny.
    Zainteresuj się też obsługą przerwań, i zacznij pisać programy bez używania funkcji _delay_ms(), bo w tym programie oprócz tej funkcji nie ma nic, ale jak zaczniesz pisać poważniejsze programy to się szybko okaże że _delay_ms() to najgorsza zmora.

    Co do pilota to może teraz czas na oprogramowanie go aby uzyskać funkcjonalność oprócz pojedynczego zdjęcia funkcjonalność zdjęć seryjnych do zatrzymania, tryb trzech zdjęć, tryb bulb i zdjęcie wyzwalane z opóźnieniem - tak jak w przyzwoitych pilotach do aparatów.
    Później można by się zastanowić nad przejściem z podczerwieni na sterowanie radiowe. Wtedy nie będziesz musiał celować diodą tylko np. stać w pewnej odległości i nie w kadrze aby zrobić zdjęcie.
    Tylko że w końcu może się okazać że lepiej kupić dedykowanego pilota z tymi funkcjami za 130 zł niż budować samemu, chociaż rozumiem, że czasami sami coś budujemy dla czystej satysfakcji wykonania czegoś użytkowego i nauki oczywiście.

  • #3 13 Kwi 2017 14:41
    JestemInzynieremPL
    Poziom 5  

    krzysztofh napisał:
    Ja bym zastąpił tego Arduino małym Attiny.
    Zainteresuj się też obsługą przerwań, i zacznij pisać programy bez używania funkcji _delay_ms(), bo w tym programie oprócz tej funkcji nie ma nic, ale jak zaczniesz pisać poważniejsze programy to się szybko okaże że _delay_ms() to najgorsza zmora.


    Tak, zgadzam się w 100%. Wspomniałem nawet o tym w tekście. Projekty, które opisuję mają raczej charakter edukacyjny, dla amatorów, dlatego używam Arduino, koduję używając prostych funkcji (np. delay() ) bez rozbudowanej funkcjonalności urządzenia.

  • #4 13 Kwi 2017 19:20
    jarrod
    Poziom 15  

    JestemInzynieremPL napisał:
    Z używaniem nieoficjalnego oprogramowania jest pewne ryzyko:


    Nie ma to jak powtarzać niesprawdzone fakty.
    Magic Lantern czy też CHDK w żaden sposób nie ingerują w oryginalny firmware.
    Po wyjęciu karty nie ma śladu ich użycia.
    Od lat używam CHDK w moim starym S2IS. CHDK daje też ciekawą możliwość - uruchamianie skryptów.
    To co Kolega opisał załatwiam poprzez opcje oprogramowania CHDK, skrypt 'time lapse'. Wystarczy ustawić parametry.
    Przyznam się od razu że Magic Lantern używałem sporadycznie, uważam że używanie lustrzanki do zdjęć poklatkowych to raczej średni pomysł.
    Aby nie było że fantazjuję...

    Link

  • #5 13 Kwi 2017 20:00
    JestemInzynieremPL
    Poziom 5  

    jarrod napisał:
    Nie ma to jak powtarzać niesprawdzone fakty.

    Nie jestem przeciwnikiem oprogramowania tego typu, wręcz przeciwnie, ale skoro sam producent/wydawca oprogramowania piszę o tym, że można popsuć aparat (choćby przez nieumiejętne używanie aparatu z oprogramowaniem) to musi coś w tym być.

    Źródełko:
    http://wiki.magiclantern.fm/install
    Cytat:

    - After opening the card door, always wait for LED confirmation (or for 5 seconds) before removing the card!!!
    - EyeFi cards may not work; you must use plain SD / SDHC / SDXC / CF cards.
    - If you have a bootable card and have the BOOTDISK flag set in the camera (which the installer does), and you do not have an AUTOEXEC.BIN file on the card, the camera WILL NOT BOOT! It will hang and not wake up until the battery is removed.
    - If you encounter a “locked up” camera, quickly remove the battery.
    - When in doubt, remove the battery and reboot.
    - And, remember that this software can damage or destroy your camera.

  • #6 13 Kwi 2017 21:26
    gegtor
    Poziom 3  

    Bardzo podoba mi się pomysł

    Magic lantern nie jest dostępny na mój aparat canon 760D

    A najlepsze że wszystkie części już mam

    Zabieram się za tworzenie :D



    Projekt lekko zmodyfikuje bo użyje ESP8266 zamiast atmegi
    Całość będzie można kontrolować przez wifi i strone www na telefonie :D

  • #7 14 Kwi 2017 00:17
    ManiekSe7en
    Poziom 9  

    Czy protokół ir stosowany w aparacie jakoś znacząco różni się od wysyłania kodów ir w pilotach RTV, czy nie można do tego wykorzystać biblioteki IRremote?

    W sensie ściągnąć kod z oryginalnego pilota wykorzystując przykład z biblioteki IRremote szkic IRrecvDumpV2, a następnie wysłać go poleceniem typu irsend.sendRaw(rawCodes, codeLen, 38); zmieniło by to kod na bardziej uniwersalny i multi-płytkowy.

  • #8 14 Kwi 2017 00:23
    gegtor
    Poziom 3  

    ManiekSe7en napisał:
    Czy protokół ir stosowany w aparacie jakoś znacząco różni się od wysyłania kodów ir w pilotach RTV, czy nie można do tego wykorzystać biblioteki IRremote?

    W sensie ściągnąć kod z oryginalnego pilota wykorzystując przykład z biblioteki IRremote szkic IRrecvDumpV2, a następnie wysłać go poleceniem typu irsend.sendRaw(rawCodes, codeLen, 38); zmieniło by to kod na bardziej uniwersalny i multi-płytkowy.


    Też tak pomyślałem znacząco by to ułatwiło sprawę

  • #9 14 Kwi 2017 08:22
    JestemInzynieremPL
    Poziom 5  

    ManiekSe7en napisał:
    Czy protokół ir stosowany w aparacie jakoś znacząco różni się od wysyłania kodów ir w pilotach RTV, czy nie można do tego wykorzystać biblioteki IRremote?

    gegtor napisał:
    Też tak pomyślałem znacząco by to ułatwiło sprawę

    Z tego co się orientuję to piloty rtv mają protokół komunikacji "z prawdziwego zdarzenia"- sygnał zawiera część informacji o starcie, adresie i komendzie wysyłanej do/z urządzenia. Jeśli biblioteki mogą wygenerować "czysty" sygnał o częstotliwości 32kHz to nie widzę przeszkód żeby ich używać :-D

  • #10 14 Kwi 2017 08:40
    androot
    VIP Zasłużony dla elektroda

    Fajnie zrobić coś swojego, ale są bardziej dopracowane projekty w sieci: http://www.elektroda.pl/rtvforum/viewtopic.php?p=10805243#10805243


    jarrod napisał:
    Przyznam się od razu że Magic Lantern używałem sporadycznie, uważam że używanie lustrzanki do zdjęć poklatkowych to raczej średni pomysł.
    Aby nie było że fantazjuję...


    Dlaczego? Ja w tym celu używam 7D. Zanim dobiję do 150.000 kłapnięć migawki będzie najwyższa pora wymienić aparat na coś nowszego.
    Magic Lantern ingeruje w oprogramowanie aparatu, bo się w nim instaluje.

  • #11 14 Kwi 2017 09:57
    JestemInzynieremPL
    Poziom 5  

    androot napisał:
    Fajnie zrobić coś swojego, ale są bardziej dopracowane projekty w sieci: http://www.elektroda.pl/rtvforum/viewtopic.php?p=10805243#10805243

    Tak, mam świadomość, że są bardziej dopracowane projekty, tutaj chodziło raczej o opisanie jak ugryźć sprawę bezprzewodowego wyzwalania, resztę funkcjonalności urządzenia trzeba raczej sobie dopasować (zaprogramować) według indywidualnych potrzeb. W przykładzie, który podałeś większość funkcji jest dla przewodowego wyzwalania migawki. Wyzwalanie diodą podczerwieni działa prawdopodobnie identycznie jak w moim projekcie. Tym sposobem komunikacji można przekazać tylko polecenie wyzwolenia migawki do aparatu.

  • #13 14 Kwi 2017 22:25
    tmf
    Moderator Mikrokontrolery Projektowanie

    androot napisał:

    Magic Lantern ingeruje w oprogramowanie aparatu, bo się w nim instaluje.


    Nie instaluje się w aparacie, tylko po starcie bootloader aparatu za każdym razem go wgrywa z karty SD do RAM i wykonuje, myśląc, że jest to update softwaru canona.
    Wkładasz kartę bez MagicLantern i masz oryginalny soft Canona.

    Dodano po 11 [minuty]:

    @JestemInzynieremPL Na schemacie w pierwszym poście masz błąd - dioda IR jest podłączona bez rezystora ograniczającego prąd. Poza tym jak już budujemy takie duże urządzenie, to lepiej IMHO skorzystać z gniazda wyzwalacza w aparacie - przynajmniej jest pewność połączenia, co przy IR nie zawsze można zagwarantować.

  • #14 14 Kwi 2017 22:44
    JestemInzynieremPL
    Poziom 5  

    tmf napisał:
    Na schemacie w pierwszym poście masz błąd - dioda IR jest podłączona bez rezystora ograniczającego prąd.

    To nie jest niedopatrzenie. Przy impulsach trwających mikrosekundy nie powinno dojść do spalenia diody pomimo sporego prądu, a dzięki temu dioda "jaśniej" świeci (tak gdzieś wyczytałem, nie potrafię podać źródła). Takie było założenie. Interwałometr wysterował już kilkanaście tysięcy zdjęć i nadal działa. Być może ktoś jest biegły w tym temacie i się wypowie czy krótkie impulsy dużego prądu są dopuszczalne w LED?

  • #15 15 Kwi 2017 08:31
    krru
    Poziom 32  

    tmf napisał:
    Poza tym jak już budujemy takie duże urządzenie, to lepiej IMHO skorzystać z gniazda wyzwalacza w aparacie - przynajmniej jest pewność połączenia, co przy IR nie zawsze można zagwarantować.


    Kiedyś też bawiłem się robieniem zdjęć poklatkowych, ale sterowałem aparatem normalnie poprzez USB. Starsze Canony dość ładnie obsługiwały PTP łącznie z robieniem zdjęć i ustawianiem parametrów. Podobno w nowszych wyłączono te funkcję.

  • #16 15 Kwi 2017 10:39
    tmf
    Moderator Mikrokontrolery Projektowanie

    JestemInzynieremPL napisał:
    tmf napisał:
    Na schemacie w pierwszym poście masz błąd - dioda IR jest podłączona bez rezystora ograniczającego prąd.

    To nie jest niedopatrzenie. Przy impulsach trwających mikrosekundy nie powinno dojść do spalenia diody pomimo sporego prądu, a dzięki temu dioda "jaśniej" świeci (tak gdzieś wyczytałem, nie potrafię podać źródła). Takie było założenie. Interwałometr wysterował już kilkanaście tysięcy zdjęć i nadal działa. Być może ktoś jest biegły w tym temacie i się wypowie czy krótkie impulsy dużego prądu są dopuszczalne w LED?


    Owszem, takie impulsy wykorzystuje się, ale nie tak jak to zrobiłeś. Dioda IR ma napięcie przewodzenia rzędu 1,2V, czyli przy zasilaniu 5V nic nie ogranicza płynącego przez nią prądu, który może osiągać olbrzymie wartości, uszkadzając diodę. Zwykle dla małej diody, prąd szczytowy w czasie kilku mikrosekund nie powinien przekraczać 1A, a często mniej. Tu oczywiście takiego prądu nie osiągniesz, bo: pin IO mikrokontrolera ma ograniczoną wydajność prądową i masz ograniczenie wbudowane w stabilizator na płytce arduino. Ale skutkiem tego jest przekroczenie maksymalnego prądu IO pinu, co może doprowadzić do zniszczenia MCU, oraz olbrzymi prąd płynący wewnątrz struktury scalonej, co z kolei może doprowadzić do jej niepoprawnej pracy. Dla AVR producent określił w większości modeli prąd maksymalny dla całego układu na poziomie 200 mA. Kolejny problem to stabilizator na płytce. Tam zwykle jest mały stabilizatorek o prądzie maksymalnym 300 mA. Jeśli go przekroczysz, włącza się zabezpieczenie, w konsekwencji siada napięcie w układzie, co też może prowadzić do niepoprawnej pracy. Konkluzja jest jedna - tak się po prostu układów nie buduje. Jeśli ktoś postanowi zbudować twój układ, używając wydajniejszego zasilania, to z dymem pójdzie albo dioda, albo mikrokontroler, a w najlepszym przypadku to po prostu przestanie działać.

  • #17 15 Kwi 2017 13:53
    raus676
    Poziom 10  

    JestemInzynieremPL napisał:
    Nie jestem przeciwnikiem oprogramowania tego typu, wręcz przeciwnie, ale skoro sam producent/wydawca oprogramowania piszę o tym, że można popsuć aparat (choćby przez nieumiejętne używanie aparatu z oprogramowaniem) to musi coś w tym być.

    Każdy producent oprogramowania (zwłaszcza nieoficjalnego) chce zabezpieczyć się przed ewentualnymi roszczeniami

  • #19 15 Kwi 2017 17:28
    tmf
    Moderator Mikrokontrolery Projektowanie

    JestemInzynieremPL napisał:
    tmf napisał:
    Owszem, takie impulsy wykorzystuje się, ale nie tak jak to zrobiłeś.

    Podpowiesz mi jak to zrobić poprawnie?


    Dodać zewnętrzny tranzystor kluczowany z pinu IO MCU + do diody rezystor ograniczający prąd do założonego. Wtedy prąd płynie poza strukturą MCU, samą diodę można zasilać bezpośrednio z baterii, dzięki czemu omijasz ograniczenie jakim jest stabilizator na płytce. Straty mocy w obu przypadkach są identyczne - albo część mocy wytracasz na stabilizatorze liniowym, albo na rezystorze ograniczającym prąd diody. Z drugiej strony być może takie sterowanie nie jest potrzebne. Jakiś czas temu zrobiłem podobny wyzwalacz do Canona (chyba jako przykład umieściłem to w którejś z książek) i bez kombinowania zasięg był wystarczający (kilka metrów).

    Dodano po 2 [minuty]:

    BTW - taki pomysł racjonalizatorski. Gdybyś zamiast przycisku dał potencjometr, to można by w prosty sposób regulować czas interwału.

  • #20 18 Kwi 2017 19:53
    CMS
    Moderator

    tmf napisał:
    BTW - taki pomysł racjonalizatorski. Gdybyś zamiast przycisku dał potencjometr, to można by w prosty sposób regulować czas interwału.


    I to jest jedna z najistotniejszych informacji jakie mamy w komentarzach.
    Aczkolwiek "wykład" o amperażu bardzo ciekawy, że tak powiem, otwiera oczy na, z pozoru niewidoczne (i często mimo wszystko "niewystępujące") problemy.

  • #21 07 Maj 2017 14:47
    JestemInzynieremPL
    Poziom 5  

    tmf napisał:
    i bez kombinowania zasięg był wystarczający

    Zgodnie z sugestią zmieniłem schematy. Na szybko postanowiłem sprawdzić na zasilaczu z ograniczeniem prądowym jak to jest z tym prądem przy zasilaniu diody LED napięciem 5V: zielona dioda świeciła dość długo przy napięciu 5V i prądzie ok. 125mA. Czerwona dioda od początku pomiarów załączała zabezpieczenie maksymalnego prądu do momentu osiągnięcia 2A, później się spaliła.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME