Video Time Inserter - smopihub/smopiVTI GitHub Wiki
Video Time Inserter (VTI) to urządzenie które pobiera informację o aktualnym czasie z zegarów atomowych systemu GPS i umieszcza ją w analogowym sygnale telewizyjny (PAL lub NTSC), znakując każdą klatkę dokładnym (+/- 1ms) czasem jej rejestracji. Zastosowań takiego urządzenia może być wiele. Ja chciałbym je użyć podczas obserwacji astronomicznych - głównie podczas zakryć gwiazd przez Księżyc i planetoidy do dokładnego wyznaczenia momentu zjawiska.
Użyte podzespoły
- Arduino UNO R3 - jest podstawową i zarazem najpopularniejszą wersją z całej serii. Płytka zawiera mikrokontroler ATmega328, wyposażony w 14 cyfrowych wejść/wyjść z czego 6 można używać jako wyjścia PWM (np. do sterowania silnikami) i 6 jako analogowe wejścia. Układ taktowany jest sygnałem zegarowym o częstotliwości 16MHz,
- odbiornik GPS U-Blox NEO-6m, można nabyć za stosunkowo niewielkie pieniądze. Ważne aby wyprowadzony był sygnał PPS który jest wykorzystany do precyzyjnej synchronizacji czasu,
- Video OSD Shield - moduł który kupiłem jest oparty na układzie scalonym MAX7456 OSD.
Sposób podłączenia
Do połączenia modułu GPS z Arduino użyłem przewodów "ż-m" do płytek prototypowych. Można je kupić w większości sklepów z elektroniką. Dioda LED jest sterowana sygnałem 1PPS bezpośrednio z modułu GPS. Do jej podłączenia posłużyłem się uniwersalną płytką drukowaną, do której zostały przylutowane niezbędne elementy i złącza. Płytkę Arduino zasilam napięciem 5V z portu USB lub zasilaczem 7-15V. Odbiornik GPS został podłączony pod sprzętowy UART (piny Arduino: D0 i D1). W takiej konfiguracji nie ma możliwości wysyłania komunikatów na konsolę szeregową. Wgrywanie nowej wersji oprogramowania musi się odbywać przy wyłączonym odbiorniku GPS. Służy do tego przełącznik SW GPS off. Poniżej prezentuję schemat układu: Płytkę OSD nakłada się bezpośrednio na Arduino Uno. Na schemacie, kolorem różowym, pokazałem które piny są wykorzystywane do komunikacji między modułami i nie mogą być użyte do innych celów. Przełącznik SW Info służy do zmiany ekranu OSD. Zwarcie pinu D4 z masą układu powoduje przełączenie z ekranu data/czas na ekran informacyjny, pokazujący współrzędne geograficzne, wysokość oraz informacje o widoczności satelitów i dokładności. Przełącznik SW Reset służy do wykonania restartu mikrokontrolera.
Obudowa
Wykorzystałem obudowę COMBIPLAST CP-Z-112/J o wymiarach 136x185x60 mm (szer. x dł. x wys.). W przednim panelu zostały wycięte otwory na gniazda: USB i zasilania. Dodatkowo nawierciłem otwory na diodę LED, przełącznik trybu pracy oraz przełączniki astabilne: reset (off-on) i wyłączenia modułu GPS (on-off).
Arduino z modułem OSD przymocowałem bezpośrednio przy przednim panelu.
Płytki drukowane zostały przykręcone do obudowy przy pomocy śrubek M3 i tulejek dystansowych.
Wyprowadzenie sygnału PPS do diody LED wykonałem na uniwersalnej płytce drukowanej. Do tej samej płytki podłączyłem moduł odbiornika GPS.
Dolna i górna połowa obudowy zostały skręcone przy pomocy czterech śrub, które dodatkowo mocują do niej nóżki.
Oprogramowanie
Oprogramowanie piszę w środowisku Arduino IDE i jest ono publicznie dostępne na platformie Github. Należy pobrać najnowsze wydanie i zapisać na dysku lokalnym, najlepiej w lokalizacji którą ustawiliśmy w IDE jako domyślne miejsce przechowywania szkiców. W tym samym katalogu tworzymy podkatalog libraries i do niego zapisujemy wszystkie używane przez nas dodatkowe biblioteki. Następnie plik smopiVTI.ino otwieramy w IDE, kompilujemy i wysyłamy do Arduino, pamiętając by na ten czas odłączyć od odbiornika GPS zasilanie. Efekt działania programu można śledzić na ekranie telewizora podłączonego pod gniazdo Video OUT lub na komputerze. W tym drugim przypadku musimy posiadać tzw. video grabber. Wykaz dodatkowych (niestandardowych) bibliotek wykorzystanych w programie:
W podstawowym trybie pracy na ekranie wyświetlana jest data w formacie rrrr-mm-dd oraz godzina w formacie HH:MM:SS (UTC) plus dodatkowe dwa liczniki pokazujące ilość milisekund jakie upłynęły od impulsu PPS do połowy i końca czasu rejestracji klatki.
Jeżeli czas prawidłowo jest synchronizowany impulsami PPS to obok sekundnika wyświetlana jest litera "P". W prawym górnym rogu pokazywana jest licznik pół obrazów a na dole obok daty ilość aktualnie widocznych satelitów systemu GPS. Szczegółowy opis metody analizy czasu rejestracji obrazu znajduje się na stronie: Video exposure time analysis from recordings with video time insertion.
Najnowsza wersja dostępna jest na stronie: https://github.com/smopihub/smopiVTI/releases jako archiwum tar.gz i zip.