Narzędzia użytkownika

Narzędzia witryny


elektronika:phototriggerpl

phototrigger

Opiszę tutaj jak zbudować urządzenie phototrigger, dzięki niemu można tworzyć filmy typu timelapse oraz bezproblemowo zaprogramować długi czas naświetlania.

Ostatnie zmiany:

  • 2009-12-20 - poprawiony błąd z losowym odczytem enkodera w prawo lub w lewo, poprawa jednego z okienek (Yes/No).

Możliwości

Możliwości:

  • okresowe wyzwalanie zdjęcia (możliwy również długi czas naświetlania), maksymalny czas pomiędzy zdjęciami: 99 h 59 m 59 s,
  • długi czas naświetlania (maksimum 99 h 59 m 59 s),
  • opóźniony start (do 24 h naprzód),
  • zasilanie 2 bateriami AA(A) (3V),
  • wyświetlacz LCD 2 × 16 znaków wraz z pokrętłem (enkoder) ułatwiającym wprowadzanie danych,
  • intuicyjne oprogramowanie,
  • mała liczba elementów,
  • zegar RTC (bez kalendarza),
  • wskaźnik niskiego poziomu baterii.

Opis układu

Urządzenie korzysta z procesora ATMEL atmega168 ze względu na obszerny program, oraz kilka pasywnych i aktywnych elementów. Schemat:

phototrigger schematics

Układ powinien być zasilany napięciem 3 V, tj. dwoma bateriami 1,5 V. Układ będzie działać z akumulatorkami (2 × 1,2 V = 2,4 V) ale: będzie problem z kontrastem, należy w programie przestawić próg napięcia „low battery”. Duży kondensator filtrujący zasilanie zapewnia wystarczająco dużo czasu aby wymienić baterie, należy to robić w stanie „power off”. Przy włączonym podświetleniu urządzenie zużywa ok. 40-80 mA, przy wyłączonym podświetleniu ok. 1-2 mA, w stanie „power off” ok. 50 µA. Procesor korzysta z wewnętrznego źródła zegarowego ustawionego na 1 MHz. Zegar czasu rzeczywistego (RTC) jest realizowany programowo, potrzebny jest jedynie tzw. zegarkowy kwarc (32,768 kHz). Układ pomiaru napięcia baterii składa się z dzielnika napięcia który trzeba ustawić na 1/4 napięcia zasilania, dla 3 V jest to 0,75 V. Kontrast LCD jest sterowany bezpośrednio przez sygnał PWM z procesora (OC0A), podobnie podświetlenie które dodatkowo przechodzi przez tranzystor n-MOSFET (BS170), podświetlenie korzysta z wyjścia OCA1. Wyświetlacz LCD jest podłączony do portu B procesora. Układ wyzwalania migawki składa się albo z tranzystora lub optoizolatora (całkowita izolacja od układów aparatu fotograficznego). Klawiaturę stanowi enkoder firmy ALSP (lub zgodny) z wbudowanym przyciskiem, filtrowanie zakłóceń jest realizowane programowo. Wyjściem jest gniazdko mini jack 3,5 mm. Na płytce znajduje się 6 pinowe złącze do programowania/debugowania procesora.

Konfiguracja fuse bitów dla procesora: fabrycznie domyślne: wewnętrzny zegar RC 8 MHz + CKDIV8 ⇒ daje 1 MHz. Pamiętaj aby zaprogramować pamięć EEPROM (plik .eep), w tej pamięci są składowane początkowe/domyślne wartości niektórych parametrów układu. Oto zrzut ekranu z wartościami bitów fuse:

atmega168 konfiguracja bitów fuse

Montaż

Płytka ma wymiar 100 mm × 41 mm, jednowarstwowa z kilkoma przelotkami. Elementów jest bardzo niewiele. Pamiętaj aby przy montażu użyć albo optotranzystora albo tranzystora (patrz niżej po więcej szczegółów). Nie musisz montować złącza ISP jeśli możesz zaprogramować procesor w zewnętrznym programatorze. Wyświetlacz musi działać przy 3 V (2 × 16 znaków), najlepszy jest taki który jest czytelny nawet przy wyłączonym podświetleniu. Przy programowaniu procesora należy pamiętać o zaprogramowaniu również pamięci EEPROM. Po montażu należy ustawić napięcie dzielnika R2 na 1/4 napięcia zasilania (dla 3 V jest to 0,75 V).

Dla opcji z optotranzystorem: zamontuj IC2 oraz R3, nie montować T1, J1 nie może być zwarty. Wartość R3 zależy od użytego optotranzystora, normalnie powinno to być ok. 220 Ohm.

Dla opcji z tranzystorem N-MOSFET: zamontuj T1 i zewrzyj J1 (strona druku), nie montować IC2 i R3.

Z częściami nie powinno być problemu, enkoder ALPS z przyciskiem kupowałem w sklepie Monster Elektronik (szukaj hasła „enkoder” lub „EC-11SP”), pozostałe części powinny być łatwo dostępne w innych sklepach (TME, Seguro). Obudowa widoczna na zdjęciach poniżej to PP4M firmy Supertronic (do kupienia w TME), konieczne było wycięcie otworu na wyświetlacz i dość żmudne pasowanie otworów na mocowanie płytki za pomocą tulejek dystansowych. Całość mieści się na styk. Panel czołowy zrobiłem wycinając prostokątny otwór w odpowiednio zadrukowanym papierze i laminując całość. Przy montażu trzeba ostrożnie montować gałkę do enkodera, powinna wchodzić dość luźno, tak aby przy wyciąganiu nie wyciągnąć z gałką ośki (można nieco rozwiercić otwór w gałce); ośkę da się zamontować ponownie, ale może to być kłopotliwe.

Do połączenia urządzenia z aparatem służy kabel 1:1:

kabel łączący phototrigger z aparatem fotograficznym

Zdjęcie płytki PBC (na zdjęciu wersja „b”, która nieznacznie różni się od aktualnej wersji „c”):

płytka phototrigger

złożony phototrigger

Oprogramowanie

Program został napisany w języku c i skompilowany kompilatorem avr-gcc. Program korzysta ze zmodyfikowanych bibliotek: example code oraz tinymenu library. Program po skompilowaniu zajmuje ok. 12 kB.

Kod ma wiele komentarzy, opiszę pokrótce co gdzie jest. Każdy z plików odpowiada za inną część programu, oto lista z krótkim opisem:

  • dlg.c/h - kod odpowiedzialny za wysokopoziomowe operacje na wyświetlaczu (ekran informacyjny, ekrany z możliwością edycji),
  • eeprom.c/h - zawiera adresy i wartości domyślne w pamięci EEPROM,
  • enc.c/h - obsługa klawiatury, jaki klawisz został naciśnięty (przycisk, obrót w lewo/prawo),
  • hd44780.c/h - niskopoziomowe funkcje LCD,
  • hw.c/h - niskopoziomowe funkcje obsługi i konfiguracji sprzętu,
  • lcd.c/h - wysokopoziomowe funkcje LCD (czyszczenie ekranu, położenie kursora, podświetlenie),
  • main.c - funkcja wejściowa main(), kod startowy po włączeniu zasilania, wywołanie startPT(),
  • pt.c/h - logika programu (menu, obsługa pozycji menu),
  • rtc.c/h - zegar czasu rzeczywistego, obsługa timerów, pomocnicze funkcje,
  • tinymenu.c/h, tinymenu_hw.h - biblioteka do obsługi menu (nieco zmodyfikowana).

Pliki „.c” zawierają ciała funkcji, pliki nagłówkowe zawierają stałe (#define) które mogą wpływać jak działa phototrigger (np. czułość pokrętła, czas wyłączenia podświetlenia).

Po włączeniu zasilania inicjowany jest sprzęt (hwSetupAll()) i procesor wchodzi w stan uśpienia (hwEnterPwrSave()). Aby włączyć użytkownik musi dłużej przytrzymać przycisk, więcej niż RTCPWRONTIME (rtc.h). Po tej operacji jest wywoływana funkcja startPT(). Menu jest obsługiwane przez bibliotekę tinymenu która wywołuje funkcje obsługujące dla każdej pozycji menu. Timer2 zajmuje się zegarem (RTC), statycznymi timerami, timer bezczynności oraz wykrywaniem warunku włączenia (rtc.c), Timer1 obsługuje podświetlenie (PWM) i ściemnianie/pojaśnienie wyświetlacza (lcd.c), Timer0 - kontrast LCD (PWM) + encoder (enc.c).

Oto wideo pokazujące jak działa całość (starsza wersja oprogramowania):

Kilka zdjęć phototriggera w obudowie:

Uwagi

Kilka uwag na temat układu:

  • aby włączyć wciśnij przycisk na dłużej niż 2 sekundy.
  • Enkoder, czasami, jest zbyt czuły (trzeba się przyzwyczaić).
  • Sprawdź ustawienia oszczędzania energii w aparacie, mój Pentax K20D wyłączył się podczas robienia wielu zdjęć z długim czasem naświetlania.
  • Lepiej użyć trybu pojedynczego zdjęcia w aparacie (patrz niżej dlaczego).
  • Podczas użycia Pentax K20D w trybie „bulb” pamiętaj że aparat, po zrobieniu zdjęcia, zrobi jeszcze zdjęcie tzw. „dark frame” którego czas będzie zbliżony do czasu pierwotnego ujęcia (nie da się przewidzieć dokładnie ile, taki „ficzer”). W tym konkretnym modelu nie da się tego wyłączyć.
  • Aby odczyt napięcia baterii był stabilny poczekaj aż podświetlenie się wyłączy.
  • Możliwy jest pewien problem podczas gdy wartość podświetlenia wynosi 100%: w trybie „power off” podświetlenie może nadal świecić (powinno być poprawione, ale nie mam pewności).
  • Jeśli będziesz mieć problemy z wyzwalaniem migawki pobaw się opcją „Shut. rel. time” (zwiększ go), czas ten odpowiada jak długo będzie zwarte wyjście wyzwalania aparatu. Zbyt niskie wartości (<50ms) mogą spowodować że aparat nie zrobi zdjęcia bo impuls zostanie odfiltrowany, zbyt długi czas (>150 ms) może spowodować zrobienie kilku zdjęć o ile aparat nie jest w trybie pojedynczej klatki.

Efekty

Efekty jakie można uzyskać używając phototriggera:

Pliki

Pliki do ściągnięcia:

Komentarze

Po pewnym czasie mogę usunąć niektóre komentarze (mało znaczące, uwagi uwzględnione w artykule).

Dyskusja

online, 2017-05-22 10:15

RSS http://arealpaydayloan.com/ , puns feeds cialis pills for sale and intrusive sucidial thoughts.

viagra, 2017-10-02 10:43

Pero http://canadianviagrats.com/ , king jailed for three years Mairena del Aljarafe.

viagra, 2017-11-02 12:56

I need a prescription for http://viagraomz.com/ , in .

Wpisz swój komentarz. Można stosować składnię wiki:
H T U M S
 
elektronika/phototriggerpl.txt · ostatnio zmienione: 2014-02-27 02:02 (edycja zewnętrzna)