Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Fotopułapka z Arduino Micro, czujnika ruchu PIR i aparatu Canon

JestemInzynieremPL 23 Mar 2017 00:55 12672 44
Optex
  • Fotopułapka z Arduino Micro, czujnika ruchu PIR i aparatu Canon
    Któregoś dnia postanowiłem zrobić parę fotek dzikich zwierząt. Wiadomo, że ptaszki, sarenki i inne robaczki raz spłoszone długo nie pojawiają się w tym samym miejscu, dlatego pomyślałem, aby użyć fotopułapki, ale po szybkim przejrzeniu Internetu okazało się, że jest to dość droga sprawa, a do tego jakość zdjęć nie powala. Los nie dał mi wyboru, musiałem zrobić swoją fotopułapkę… a przy okazji powstał materiał do filmu na mój kanał YT (JestemInżynieremPL). Od razu wspomnę, że projekt ma charakter edukacyjny- ma być do odtworzenia przez osoby rozpoczynające swoją przygodę z elektroniką, więc na filmie krok po kroku opisuję jak „komunikować” się z aparatem oraz tłumaczę jak działa algorytm fotopułapki. Program dla płytki Arduino używa standardowych i prostych funkcji. Nie martwiłem się specjalnie o optymalizację i wydajność kodu, używałem funkcji opóźnień delay()- miało być prosto, miło i przyjemnie :-)

    Wspomnę jeszcze, że opis schematów, nazwy funkcji i zmiennych w kodzie są w języku angielskim, aby całość była czytelna dla szerszego grona widzów. Jeśli zajdzie potrzeba mogę zrobić tłumaczenia na język polski.

    Cała fotopułapka wygląda następująco:
    Fotopułapka z Arduino Micro, czujnika ruchu PIR i aparatu Canon
    Fotopułapka składa się z aparatu Canon, sterownika i czujnika ruchu.

    Fotopułapka składa się z lustrzanki Canon, sterownika i czujnika ruchu. Model i marka aparatu jest dość przypadkowa- akurat taki mam. Z tego co się orientuję tego typu fotopułapka może bez problemu działać z aparatami innych producentów, ale o tym dalej. Sterownik jest zbudowany na bazie Arduino Micro, ruch jest wykrywany czujnikiem ruchu PIR. Zasilanie to bateria 9V. Elementy użyte w tym projekcie:
    Fotopułapka z Arduino Micro, czujnika ruchu PIR i aparatu Canon

    Budowę fotopułapki dobrze zacząć od poznania sposobu wyzwalania zdjęć w aparacie przy pomocy wejścia wężyka spustowego. Układ sterujący podłącza się do aparatu przez gniazdo micro-jack 2,5mm. Odpowiednie zwieranie pinów gniazda aparatu pozwala na imitowanie wciśnięcia przycisku spustu migawki.
    Fotopułapka z Arduino Micro, czujnika ruchu PIR i aparatu Canon
    Schemat pinów wężyka spustowego w aparatach Canon

    Zwarcie kabla ustawiania ostrości z masą odpowiada wciśnięciu do połowy przycisku spustu aparatu. Po zwarciu kabla wyzwalania migawki z masą, aparat robi zdjęcie. Napięcie miedzy pinami ustawiania ostrości i wyzwalania a masą wynosi 3,3V. Sytuacja jest identyczna dla aparatów Canon ze złączem N3. Większość aparatów, nawet innych producentów ma identyczną zasadę działania tylko posiadają inne złącza wężyka spustowego.

    Cała sztuczka pracy fotopułapki polega na odpowiednim zwieraniu pinów aparatu z masą po otrzymaniu sygnału o wykryciu ruchu przez czujnik PIR. Brzmi fajnie, ale dobrze jest nie spalić aparatu za parę tysięcy przy takiej zabawie (Prawa Murphy'ego są nieubłagane). Dlatego należy odseparować galwanicznie układ aparatu od Arduino za pomocą transoptorów.

    Dodatkowym zabezpieczeniem przed spaleniem elektroniki aparatu jest zastosowanie rezystora ograniczającego przepływ prądu miedzy pinami aparatu i masą. Nie znalazłem informacji o tym co się stanie, gdy zewrze się piny aparatu przez dłuższy czas, a nie miałem ochoty tego sprawdzać na własnym sprzęcie dlatego wstawiłem rezystora 22 kΩ ograniczający przepływ prądu do minimum. Wartość rezystancji dobrałem doświadczalnie, zwiększałem ją, aż aparat przestał reagować na zwieranie pinów z masą.
    Fotopułapka z Arduino Micro, czujnika ruchu PIR i aparatu Canon
    Schemat ideowy podłączenia i sterowania aparatu przez wejście wężyka spustowego.

    Działanie fotopułapki jest bardzo proste. W momencie otrzymania sygnału z czujnika ruchu Arduino wysyła stan wysoki na piny do, których są podłączone transoptory. W tym momencie transoptory zaczynają przewodzić prąd, więc zwierają piny ustawiania ostrości i wyzwalania migawki z masą w aparacie. Tak wygląda cały układ na schemacie:
    Fotopułapka z Arduino Micro, czujnika ruchu PIR i aparatu Canon
    Schemat fotopułapki z Arduino Micro, czujnika ruchu PIR i aparatu Canon

    Fotopułapka z Arduino Micro, czujnika ruchu PIR i aparatu Canon
    Schemat fotopułapki dla tych co wolą trochę kolorków

    Wybór pinów płytki Arduino, które zostały użyte jest podyktowany jedynie wygodą lutowania i montażu całego układu. Wszystkie piny Arduino pracują jako wejścia lub wyjścia cyfrowe, więc można je dość dowolnie zamieniać. Pamiętać należy jedynie o odpowiedniej zmianie numerów pinów w szkicu programu sterującego.

    Czujnik ruchu wymaga jedynie podłączenia zasilania oraz przewodu sygnałowego. Wykrycie ruchu sygnalizowane jest wysłaniem stanu wysokiego do Arduino. Kabel sygnałowy jest zwarty z masą układu za pomocą opornika o rezystancji 100kΩ. Ma to na celu wyeliminowanie szumów z otoczenia, które mogą być interpretowane przez Arduino jako stan wysoki.

    Algorytm i kod fotopułapki dla Arduino jest objaśniony w 05:26 poniższego filmu, tak chyba jest najłatwiej. Plik ze szkicem dla Arduino IDE dodałem jako załącznik do tego artykułu (trzeba zmienić rozszerzenie na *.ino):




    Zbudowanie całości nie powinno nastręczać dużych problemów, trzeba trochę pokombinować z dostosowaniem obudów, chlapnąć coś przed lutowaniem, żeby ręka nie drżała, kobitę wysłać do sąsiadki na ploteczki, żeby nie przeszkadzała. Tak wygląda „pająk” sterownika:
    Fotopułapka z Arduino Micro, czujnika ruchu PIR i aparatu Canon
    Polutowany układ sterujący fotopułapki

    Przed uruchomieniem fotopułapki należy odpowiednio ustawić parametry pracy aparatu fotograficznego. Pierwsza sprawa to włączenie manualnego trybu ustawiania ostrości obiektywu, aby ostrość była ustawiona na ten sam punkt. Druga rzecz to maksymalne skrócenie czasu po którym aparat przechodzi w stan hibernacji, aby jak najbardziej oszczędzać baterię aparatu. Gdy Arduino zasymuluje łapanie ostrości aparat wybudzi się.

    Jak widać cała konstrukcja miała być prosta i nieskomplikowana dlatego posiada pewne wady, które należy wyeliminować przy sterowniku „professional”:
    - podłączenie czujnika ruchu do wyjścia 5V powoduje, że prąd jest stale pobierany bez wzglądu na to czy wykrywanie ruchu jest aktualnie używane
    - podłączenie czujnika ruchu do wyjścia 5V powoduje powstanie dodatkowej straty energii na regulatorze napięcia na płytce Arduino
    - w kodzie są używane funkcje delay() z dość długim czasem opóźnienia więc łatwo kliknąć przyciskiem w czasie ich trwania
    - można zmniejszyć ilość instrukcji warunkowych przez wydłużenie warunków
    - mikrokontroler stale pracuje, a więc pobiera dużo prądu (trzeba pomyśleć nad zewnętrznymi przerwaniami)

    Zachęcam do obejrzenia całego filmu opisującego budowę fotopułapki. To mój pierwszy artykuł na Elektrodzie, więc liczę na wyrozumiałość za ewentualne niedociągnięcia. Jeśli macie jakieś pytania to chętnie odpowiem :-)



    Cool? Ranking DIY
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
    About Author
    JestemInzynieremPL
    Level 9  
    Offline 
    JestemInzynieremPL wrote 50 posts with rating 112. Been with us since 2017 year.
  • Optex
  • #2
    szymon122
    Level 38  
    Zamiast takiego czujnika zastosowałbym czujnik dualny (z mikrofalą), dzięki temu nie będzie reagować na motylki i innego rodzaju robaczki które z odległości kilku centymetrów od czujnika są dla niego ogromne.
    Ile czasu potrzebuje aparat aby złapać ostrość?
    Ile prądu pobiera całość?
  • #3
    Anonymous
    Anonymous  
  • #4
    JestemInzynieremPL
    Level 9  
    szymon122 wrote:
    Zamiast takiego czujnika zastosowałbym czujnik dualny (z mikrofalą), dzięki temu nie będzie reagować na motylki i innego rodzaju robaczki które z odległości kilku centymetrów od czujnika są dla niego ogromne.
    Ile czasu potrzebuje aparat aby złapać ostrość?
    Ile prądu pobiera całość?

    - Wejście czujnika w sterowniku jest dość uniwersalne, więc można zastosować dowolny czujnik, operujący na logice 5V
    - Nie używam autofokusa (ustawiam manualnie), bo z tym łapaniem ostrości w aparatach różnie wychodzi, zwłaszcza w słabym oświetleniu. Czas łapania ostrości w aparacie może trwać nawet kilka sekund. Pinu fokusa używam tylko do wybudzenia aparatu.
    - Teraz nie pamiętam dokładnie ile pobiera prądu, ale chyba koło 100mA. Po robocie sprawdzę i dam znać.

    Dodano po 5 [minuty]:

    R-MIK wrote:
    Dlaczego zastosowałeś transoptory? Można to było zrobić pinami procka.

    Właśnie tego chciałem uniknąć, nie podoba mi się pomysł podłączenia układu aparatu i mikrokontrolera. Za dużo dymiącego sprzętu widziałem, żeby się skusić na takie rozwiązanie, zwłaszcza, że koszt transoptorów nie jest duży. Wychodzę z założenia, że jeśli coś może pójść źle to właśnie tak pójdzie.
  • #5
    Anonymous
    Anonymous  
  • Optex
  • #6
    JestemInzynieremPL
    Level 9  
    R-MIK wrote:
    1) mikrokontroler jest tani i kosztuje tyle co dwa transoptory zwiększyłeś więc koszty 2x,
    2) transoptor tez może zadymić,

    Nie chodzi mi o koszt Arduino czy transoptorów tylko o aparat. W tym układzie to aparat jest najważniejszy i najdroższy. Nie wiem, może Tobie nie zdarzyło się nigdy przez nieuwagę coś źle podłączyć, ale mi tak. Wystarczy, że podłącze logikę 5V Arduino z 3,3V aparatu i już może być wesoło. Nie upieram się, można wyrzucić transoptory, zastosować inne zabezpieczenie, ale to wydało mi się najprostsze do zrealizowania.

    R-MIK wrote:
    5) transoptor ma sens gdy chcesz oddzielić obwody galwanicznie.

    Właśnie to chciałem zrobić.
  • #7
    Anonymous
    Anonymous  
  • #8
    JestemInzynieremPL
    Level 9  
    R-MIK wrote:
    Powód?
    - Zasilasz coś z wysokiego napięcia?
    - Tworzą sie pętle masy?

    Redundancja, to jest odpowiedź.

    R-MIK wrote:
    Wydaje mi się, że jesteś raczkującym elektronikiem.

    Tu się mogę po części zgodzić, nie mam 20 lat praktyki. W tym projekcie chodzi właśnie o to, że ma być prosty, do zbudowania przez fotografów nieelektroników.

    R-MIK wrote:
    Widziałeś gdzies takie rozwiązanie sterowania aparatem i je skopiowałeś nie zastanawiając się po co tam transoptory.

    Tu mnie serduszko zabolało.
  • #9
    pogromcaIGBT
    Level 9  
    Fajny i schludny projekt. Ciekawy jestem efektów działania tej foto-pułapki.
    Nie czepiałbym się jakoś specjalnie tych transoptorów. Jest to jeden ze sposobów przekazania sygnału do aparatu. Może transoptory w tej aplikacji są trochę na wyrost ale w niczym to nie przeszkadza.
  • #10
    Anonymous
    Anonymous  
  • #11
    krzysztofh
    Level 29  
    Nie rozumiem dlaczego tak się upieracie aby wywalić transoptory.
    Przecież autor zrobił dla siebie pojedynczy egzemplarz, a nie seryjną produkcję gdzie się do maksimum redukuje koszty ze względu na konkurencje i sprzedawalność.
    Bardziej mnie zastanawia jak zabezpieczasz aparat warty kilka tysięcy przed amatorami cudzej własności, bo rozumiem, że całość jest gdzieś w lesie umieszczona aby uchwycić niepowtarzalne zdjęcia.
  • #12
    Anonymous
    Anonymous  
  • #13
    GGK
    Level 12  
    Czy focus w aparacie ustawiony na stałe i czujka ruchu od alarmu nie byłaby wystarczająca? Ma wyjście przekaźnikowe i nie trzeba stosować dodatkowych elementów w postaci transoptorów, procesorów itp.
  • #14
    Anonymous
    Anonymous  
  • #15
    furcik2013
    Level 10  
    Mnie się podoba. Ładnie zrobiony film.
  • #16
    JestemInzynieremPL
    Level 9  
    GGK wrote:
    Czy focus w aparacie ustawiony na stałe i czujka ruchu od alarmu nie byłaby wystarczająca? Ma wyjście przekaźnikowe i nie trzeba stosować dodatkowych elementów w postaci transoptorów, procesorów itp.

    Rozważałem taką opcję, ale nie ma wtedy kontroli nad tym ile zdjęć zostanie zrobione po wykryciu ruchu, przej jak długi czas, w jakich odstępach. Ogólnie mikrokontroler pozwala na większa kontrole kiedy będą robione zdjęcia.

    krzysztofh wrote:
    Bardziej mnie zastanawia jak zabezpieczasz aparat warty kilka tysięcy przed amatorami cudzej własności, bo rozumiem, że całość jest gdzieś w lesie umieszczona aby uchwycić niepowtarzalne zdjęcia.

    To jest problem, którego jeszcze nie rozwiązałem :-D

    R-MIK wrote:
    pewnie już nie a jeśli tak to tylko po papier

    Panie Skrzyński, proszę nie być niegrzecznym.
  • #17
    a_noob
    Level 23  
    Ja nie mam zastrzeżeń co do projektu, jak zwykle edukacyjne podejście do tematu kolegi inżyniera, dobry opis. Podejście do zabezpieczeń raczej odpowiednie przy takiej publikacji, nikt nie będzie miał pretensji że przez Twoje porady uwalił sprzęt, a to mogą oglądać właśnie ludzie nie mający pojęcia o tym że puszczając 9 V z baterii do gniazda w aparacie mogą kuku zrobić (bo 5 V z arduino może jeszcze przeżyć). Z drugiej strony ciekawe czy aparaty nie mają wbudowanego jakiegoś zabezpieczenia na tych wejściach.

    Dodam jeszcze że jakiś czas temu bardzo przydała mi się seria filmów o odlewaniu aluminium :) szczególnie o "piasku" na formy.

    @R-MIK czepiasz się jak by autor projektu Ci krzywdę zrobił. Odpuść już z tymi transoptorami, wszyscy już zrozumieli o co Ci chodzi, a autor nie będzie tego zmieniał według twojego widzi mi się, bo chyba nie jest u Ciebie na liście płac. A co do twojej skrupulatności:
    R-MIK wrote:

    JestemInzynieremPL wrote:

    Nie znalazłem informacji o tym co się stanie, gdy zewrze się piny aparatu przez dłuższy czas,


    Szybciej rozładujesz źródło zasilania aparatu, zamiast działać tydzień będzie działał np 6 dni, 23 godziny i 95 minut.

    Czyli 7 dni i 35 minut? To ja bym zwierał cały czas, może do 8 dni dociągnie ;)
  • #19
    Anonymous
    Anonymous  
  • #20
    JestemInzynieremPL
    Level 9  
    Samuraj wrote:
    Zamiast tego przewodu można zastosować diodę nadawczą podczerwieni. Ten aparat doskonale komunikuje się w ten sposób. Jak się dobrze poszuka to można znaleźć przykładową ramkę danych.

    A tak, masz rację, nawet nagrałem o tym oddzielny film. Problem polega na tym, że pilot musi "widzieć" aparat, a do tego zasięg jest ograniczony dosłownie do paru metrów.


  • #21
    a_noob
    Level 23  
    R-MIK wrote:
    a_noob wrote:

    (bo 5 V z arduino może jeszcze przeżyć)

    A ja śmiem stwierdzić, że może byc dokładnie na odwrót. Zwykła (nie alkaiczna) bateria nie uszkodzi urządzenia, a 5V z zasilacza 25A (komputerowy zasilający Arduino) uszkodzi je. To oczywiście zależy od konstrukcji aparatu.

    Piszemy o tym samym? Gdzie w tym projekcie jest zasilacz komputerowy zasilający arduino? Kto będzie brał zasilacz komputerowy do lasu w celu zasilania arduino do fotopułapki? Aaaa, nie wybacz, bo Ty chciałeś to z agregatu to pociągnąć, no to wtedy będzie gdzie ten zasilacz podłączyć...
    A ja śmiem twierdzić, że nie będzie na odwrót. Piszę o zasilaniu z arduino, czyli zasilaniu z baterii po przepuszczeniu przez stabilizator znajdujący się na płytce arduino, dokładnie tak jak jest w projekcie. W tym przypadku jakiej baterii nie użyjesz to zawsze po przepuszczeniu przez układ będzie mniejsza szansa na uszkodzenia niż przy podłączeniu baterii bezpośrednio.
  • #22
    Anonymous
    Anonymous  
  • #23
    a_noob
    Level 23  
    R-MIK wrote:
    W czasie uruchamiania raczej nie uzywa sie baterii ale zasilacza laboratoryjnego

    Gdzie można ustawić ograniczenie prądowe.
    R-MIK wrote:
    a jak go brak to i zasilacza komputerowego. W takiej sytuacji nie użyje się wbudowanego stablilizatora.

    Jeżeli mam budować układ, który wykorzystuje w aplikacji docelowej stabilizator, to podczas uruchamiania w warsztacie również z niego korzystam, jeżeli Ty robisz inaczej to gratuluję.
    R-MIK wrote:
    Mam rozwidzić się dalej i wyjaśnić dlaczego 9V prawdopodobnie nie uszkodzi aparatu?

    Jeżeli masz taką potrzebę, ale ile byś się nie na wyjaśniał, nie zmieni to faktu, że dzięki transoptorom nie uszkodzimy aparatu przez głupie pomyłki, nie ważne czy podłączymy 9 V z baterii, czy 5 V / 25 A z zasilacza.
  • #24
    JestemInzynieremPL
    Level 9  
    a_noob wrote:
    Jeżeli masz taką potrzebę, ale ile byś się nie na wyjaśniał, nie zmieni to faktu, że dzięki transoptorom nie uszkodzimy aparatu przez głupie pomyłki, nie ważne czy podłączymy 9 V z baterii, czy 5 V / 25 A z zasilacza.

    właśnie o to chodzi, transoptor jest zabezpieczeniem przed "uderzeniem meteorytu"
  • #25
    Anonymous
    Anonymous  
  • #26
    a_noob
    Level 23  
    R-MIK wrote:
    Wielokrotnie. Często używam stabilizatorów impulsowych a akurat jakiegoś elementu brak. Rozumnię, że Ty przerwiesz prace na dwa tygodnie (akurat tyle musiałem czekać) i Ci beda za ta przerwę płacić. Ja pomijam stabilizator i pracuje nad projektem dalej.

    1. użyłbym na ten czas stabilizatora zastępczego o możliwie zbliżonych parametrach (jeżeli byłaby taka możliwość),
    2. ustawiłbym ograniczenie prądowe w zasilaczu na poziomie jaki oferuje stabilizator docelowy,
    3. gdyby istniała możliwość uszkodzenia sprzętu za kilka tysięcy (np. aparatu), zabezpieczył bym połączenia z nim np. za pomocą transoptorów ;)
    4. jeżeli to jest układ tego typu, jak w temacie, to czekam dwa tygodnie, a później w godzinę-dwie składam układ i uruchamiam (chociaż to bez sensu bo w tym przypadku arduino ma stabilizator na pokładzie, więc akurat na tą część bym nie czekał i zasiliłbym peryferia przez arduino)
    5. daj już sobie spokój, każdy już chyba zrozumiał co miałeś do przekazania i oczywiście bardzo dobrze że o tym napisałeś, ale nie narzucaj na siłę swoich racji.

    Układ jest złożony, działa, autor jest zadowolony i możliwe, że dzięki swej przesadnej ostrożności, nie stracił aparatu kosztem dwóch transoptorów i trzech centymetrów kwadratowych płytki, możliwe również, że dzięki tej samej przesadnej ostrożności, ktoś inny nie straci aparatu wzorując się na tym projekcie.
  • #27
    prosiak_wej
    Level 38  
    Się tych transoptorów czepiacie... W warsztacie każdego elektronika - hobbysty jest tych elementów zazwyczaj pół garści (odzysk z zasilaczy impulsowych i modemów). Kilka lat temu zrobiłem sobie timer do fotografowania burzy. Timer 555, 45 sekund otwarcie migawki, sekunda zamkniętej migawki i tak w kółko. Dodatkowy przycisk do kasowania timera i zamykania migawki w momencie złapania pioruna. Z pinu 3 timera leci czerwona dioda LED i szeregowo dioda w transoptorze. Za transoptorem tylko aparat (początkowo EOS 600D, obecnie 80D). Jeżeli aparat oczekuje zwarcia na gnieździe, to trzeba mu takie zwarcie dać, a nie sterować z pinu. Ewentualnie mógłby być tranzystor NPN, emiter na wspólną masę, kolektor do pinu wyzwalającego migawkę.
  • #28
    SatServ
    Level 15  
    Nie chce mi się czytać całego tekstu (być może ktoś mnie uprzedził) ale bardzo delikatnie pisząc, potrzebne tu arduino jak piąte koło u wozu.
  • #29
    Pittt
    Level 32  
    R-MIK wrote:
    Dlaczego zastosowałeś transoptory? Można to było zrobić pinami procka.
    Patrzysz na schemat a go nie rozumiesz.
    I już się nie kompromituj. Każdy rozsądny konstruktor tak właśnie by odseparował urządzenie za kilka tysięcy od układziku za kilkanaście złotych, jak to zrobił autor.
  • #30
    badworm
    Level 18  
    JestemInzynieremPL wrote:
    R-MIK wrote:
    5) transoptor ma sens gdy chcesz oddzielić obwody galwanicznie.

    Właśnie to chciałem zrobić.

    Nie ma takiej potrzeby. O separację warto zadbać podłączając lampę błyskową starszej generacji - czy to przez "gorącą stopkę", czy przez specjalne gniazdo synchronizacji. Warto jednak się upewnić, czy aparat na jednym z tych złącz nie posiada już elementu wysokonapięciowego, bo wówczas podwójna separacja może nieprawidłowo działać.