Skocz do zawartości

Video Time Inserter na Arduino do obserwacji zakryciowych


Agent Smith

Rekomendowane odpowiedzi

Moja kariera jako miłośnika astronomii, Królowej Nauk, zatacza krąg i wracam do tego od czego zacząłem ponad 40 lat temu - do zakryć.

Wtedy służba czasu skonstruowana i wymyślona przez genialnego Romana Fangora to był odbiornik DCF77 (a może były to inne sygnały - wówczas było ich dużo więcej) i magnetofon szpulowy.

Nazywało się to kozacko: Elektroniczny Rejestrator Czasu.
Milisekundy czy też raczej centysekundy odczytywaliśmy linijką a czasem suwmiarką (nie żartuję). Prymat Ducha nad Materią.

 

A dziś buduję sobie Video Time Inserter, pomysłu Piotra Smolarza (który być może - mam nadzieję - będzie to czytał) :)

http://smopi.news.nstrefa.pl/index.php?pages/Video-Time-Inserter

 

574902777_schemat1.png.deb1abc65af9a06a2db6034b9db05bac.png

 

Mam już Arduino, idzie już w paczce z Chin Video Overlay Shield, kupiona w bardzo ciekawym sklepie, oferującym różne ciekawe różności (niektóre własnej konstrukcji): 

https://www.tinyosshop.com/index.php?route=product/product&product_id=834

Sklep polecam nie tylko z powodu insertera :)

 

Zawiesiłem się chwilowo na kupnie modułu GPS. Piotr użył klasycznego, ale już trochę starego modułu u-Blox NEO-6m

A ja mam pytanie - czy mogę w to miejsce użyć modułu NEO-7m, najchętniej coś takiego jak to:

NEO7mmodule.jpg.d3ca7934a274418a1b4deb55f273726c.jpg

Ma to parę zalet (przynajmniej tak mi się wydaje): gniazdo anteny zewnętrznej oraz antenę wbudowaną (po drugiej stronie), wbudowaną diodę PPS, co być może eliminowałoby potrzebę dodatkowej diody (tak jak jest w oryginalnym projekcie).

Ten moduł różni się także tym, że posiada złącze USB...co niekoniecznie musi być zaletą.

Gniazdo anteny zewn. także jest ze szczyptą soli:

 

Product description (ze strony https://www.amazon.de/keyestudio-Module-Compatible-Arduino-Raspberry/dp/B07FTFMTBK )

Features: 
On board with ceramic antenna, which can easily locate the satellite in an open place without external antenna. 
Weldable with a SMA head, which is used for an external antenna to increase the positioning ability. 
Comes with micro USB interface, for debugging the GPS module via data cable. 
Reserved serial interface used for USB to serial port modules or external MCU to receive GPS information. 
Comes with a signal indicator that indicates whether the GPS receives the information or not. 

Pay special attention to: 
When you connect the external antenna, the CO2 capacitor must be removed from the module. 
The internal antenna and external antenna are used together to cause a collision and affect positioning.

 

Hmm... coś nie widzę tego CO2 ani na płytce ani na schemacie, ale to nic, ,moje pytanie to:

1. Czy mogę użyć tego modułu wprost zamiast NEO-6m bez większych zmian w kodzie?

2. Czy mogę zrezygnować z zewnętrznej diody i zamiast tego zrobić dziurkę w obudowie ? ;)

Jeśli tak, jak wówczas będzie wyglądał schemat wyłączników odłączających VOS?

A może wówczas nie będą one potrzebne - jest przecież USB!

3.Czy wyjście UART nie jest zablokowane obecnością wyjścia USB? Czy mogą one działać razem? - pewnie nie.

Jak więc przełącza się pomiędzy nimi, i czy da się to zrobić hardwareowo?

 

Wiecie już więc, że jestem kompletnie zielony - tak, to pierwszy (a właściwie drugi po "hello world") projekt pod arduino.

Pomocy! :)

 

Edytowane przez Agent Smith
  • Lubię 3
Odnośnik do komentarza
Udostępnij na innych stronach

A ja się pytam, czemu by nie można użyć normalnej, cywilizowanej kamery cyfrowej na USB i zrobić synchronizacji czasu na komputerze? Swego czasu szukałem programu do synchronizacji na Windowsa z gps, ale nie znalazłem. Zacząłem pisać swój, ale nie umiem osiągnąć wystarczającej dokładności. 

Taki program musi istnieć. Nie wierzę, że nikt w dzisiejszych czasach nie rejestruje zakryć normalnymi kamerami, a bazuje wciąż na przestarzały sygnale analogowym... 

  • Lubię 1
Odnośnik do komentarza
Udostępnij na innych stronach

Słuszne pytanie, tak słuszne, że nawet wybaczę Ci totalny OT ;)

Jeśli chodzi o mnie to nie wiem. Takie programy nawet są, większym wyzwaniem jest timing sygnału cyfrowego, no i niestabilność czasowa pecetów jako takich, których zostawić na moment nie można żeby im się czas nie rozjechał. Pewnie rolę grają też koszty. Jesteś pionierem - działaj, Mateusz :)

 

Nie wiedzą też mędrcy IOTA, ich zapytaj, albo poczytaj u nich trochę - ciekawe lektury o strukturach sygnału wideo, z których wiele nie rozumiem.

Rozumuję jednak, iż coś jest na rzeczy, skoro zalecają jako najlepszą budgetową kamerkę do timingu nieco zmodyfikowaną kamerkę z...DRONA,

której zakup z resztą rozważam (będzie o tym oddzielny wątek, może w kupie będzie taniej)

http://occultations.org/night-eagle-2-pro-astro-edition-ordering-page/

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

6 godzin temu, MateuszW napisał:

A ja się pytam, czemu by nie można użyć normalnej, cywilizowanej kamery cyfrowej na USB i zrobić synchronizacji czasu na komputerze?

pewnie trudniej jest wtedy dowiedzieć się kiedy naprawdę została naświetlona klatka bo za dużo rzeczy dzieje się od naświetlenia do przedostania się danych przez wszystkie warstwy protokołów i api systemowych.

 

ale zgaduję że gdyby zapisywać ciągły strumień wideo nawet przez usb i w trakcie tego zapisu przed i po właściwej obserwacji sfilmować wskazania zegara zsynchronizowanego z gpsem (wraz z migającą diodą pps) to nieleżnie od wszelkich nieznanych opóźnień, jeżeli tylko nie będzie utraconych klatek to czas każdej klatki można być wyznaczony bardzo dokładnie.

Odnośnik do komentarza
Udostępnij na innych stronach

Mozna zrobic inserter "migaczowy" dla dowolnego rodzaju kamery.

PPS z GPS oraz dodatkowa dioda zapalajaca sie np, gdy sekunda jest podzielna np przez 10. Do tego zestaw soczewek ogniskujacych swiatlo na matrycy. Wtedy wystarczy zgrubnie wiedziec, o ktorej nastapilo zjawisko, a potem zliczac klatki.

 

Mam gotowy stoper synchronizowany GPS z PPS. Oczywiscie do obserwacji wizualnych.

GPS_occultations_timer.jpg.f967189921c2ce04c6d3d24f7c9b7941.jpg

Edytowane przez r.ziomber
Odnośnik do komentarza
Udostępnij na innych stronach

2 hours ago, r.ziomber said:

Mozna zrobic inserter "migaczowy" dla dowolnego rodzaju kamery.

PPS z GPS oraz dodatkowa dioda zapalajaca sie np, gdy sekunda jest podzielna np przez 10. Do tego zestaw soczewek ogniskujacych swiatlo na matrycy. Wtedy wystarczy zgrubnie wiedziec, o ktorej nastapilo zjawisko, a potem zliczac klatki.

 

Mam gotowy stoper synchronizowany GPS z PPS. Oczywiscie do obserwacji wizualnych.

 

Nie trzeba go nawet robić - jest gotowa aplikacja do tego - Occult Flash Tag.

https://play.google.com/store/apps/details?id=br.eti.erickcouto.occultflashtag

 

Błysk z gps czy też pik z DCF co sekundę to za mało - mija pomiędzy nimi aż 1000 milisekund niepewności. :)

 

Do wszystkich: dziękuję za zainteresowanie ale ten wątek to nie miała być dyskusja o wyższości Świąt Wielkiej Nocy nad Bożym Narodzeniem (albo odwrotnie) tylko pytanie o konkretną kwestię techniczną. Dlaczego? Już wyjaśniam. Żeby obserwacja miała jakikolwiek walor naukowy powinna być zgłoszona do IOTA (lub innej podobnej organizacji) za pomocą specjalnego formularza. Najważniejsza jest w tym wszystkim służba czasu i jej metodyka

Nie dziwię się wcale, że IOTA nie tyle bezwzględnie wymaga, ale preferuje wyniki oparte na sprawdzonej metodzie, dającej dużą powtarzalność.

Inserter Piotra Smolarza do takich się zalicza, jest tani i bardzo prosty w konstrukcji. Dlatego postanowiłem go zrobić i w miarę możliwości prosiłbym o ograniczenie Off-topów.

Jeśli macie ochotę załóżmy inny wątek do tego, np: służba czasu - analog vs digital etc. Mówmy jednak o konkretach a nie o wierze w to czy owo (jak widzę dominuje tu wiara w wszechmocnego peceta) - tu coś piknie, tu coś bzyknie, potem się jakoś w kompie klatki policzy i będzie dobrze..

Dzięki :)

 

Edytowane przez Agent Smith
  • Lubię 2
Odnośnik do komentarza
Udostępnij na innych stronach

Tyle wykumałem, ale które "klatki" chcesz liczyć ?

Pola, półpola, linie ? Sygnał wideo to dosyć skomplikowana i różnorodna dziedzina. Polecam lekturę materiałów na stronie IOTA

Nawet gdyby Twoja kamera po prostu wypluwała z siebie co 1/25 sekundy gotową pełną klateczkę (żadki chyba przypadek) powstaje wiele pytań:

skąd wiemy, że robi to dokładnie co 1/25 sek? A może nad jedną klatką myśli trochę dłużej niż nad następną?

Z jaką dokładnością określasz to wyplucie w odniesieniu do czasu bezwzględnego?

No a w końcu jeśli nawet spełnisz wszystkie te warunki, masz dokładność 40ms - dosyć słabo (wiem, że to uproszczenie).

 

To już lepiej policzyć linie sygnału wideo - np w PAL SD masz ich 576, jeśli potrafisz określić czas zaistnienia każdej z nich i znasz pozycję obiektu w kadrze, Twoja dokładność dramatycznie rośnie, bo w każdej klatce masz 576 linii - ale do tego potrzebna jest kamera z rolling shutter... i do tego bardzo czuła np taka jak ta z drona...

265271873_Rolling-Shutter1.gif.7b9a28da41e1de584d323461e5cca001.gif

 

Dobra, zostawmy to, robię OT w swoim własnym wątku :)

 

To co z tym modułem GPS? Nadaje się ? :santa:

 

  • Lubię 1
  • Kocham 1
Odnośnik do komentarza
Udostępnij na innych stronach

Hipotetycznie tak. GPS wysylaja dane w standardzie NMEA https://www.gpsinformation.org/dale/nmea.htm

W projekcie widze dolaczana jest biblioteka TinyGPS++, ktora sama z siebie na pewno bedzie wspoldzialac z tym modulem.

Z drugiej strony laczy TX w Arduino z RX w GPS. Wysyla jakies dane konfiguracyjne do GPS.

 

Martwi mnie

// Send a byte array of UBX protocol to the GPS
void sendUBX(uint8_t *MSG, uint8_t len) {
  for(int i=0; i<len; i++) {
    Serial.write(MSG[i]);
  }
  Serial.println();
}

https://github.com/smopihub/smopiVTI/blob/master/smopiVTI.ino

 

u-Blox NEO-6m i 7m to w koncu wypusty tej samej firmy, ale czy "UBX protocol" dziala tam dokladnie identycznie?

Edytowane przez r.ziomber
  • Lubię 1
Odnośnik do komentarza
Udostępnij na innych stronach

Przypuszczam, ze 7m bedzie kompatybilny wstecznie z UBX protocol dla 6m, ale jesli nie...

WYDAJE mi sie, ze ta konfiguracja z poziomu Arduino jest niepotrzebna. Tzn mozna ja USUNAC w szkicu Ardu, a wykonac wczesniej przy pomocy u-center.

Trzeba tylko zrozumiec, jakich ustawien oczekuje ten kod i "recznie" wyklikac je w aplikacji u-center.

Zauwaz, ze configureGPS() jest wykonywane tylko przy starcie (w funkcji setup()).

Kod jest ladnie okomentowany i takie rzeczy jak

// Portmode:

// Wyłącz komunikat NMEA GLL:

// Wyłącz komunikat NMEA GSA:

// Wyłącz komunikat NMEA GSV:

// Wyłącz komunikat NMEA VTG:

chyba zrobimy w aplikacji producenta.

 

Masz jakis kontakt z Autorem projektu?

Edytowane przez r.ziomber
Odnośnik do komentarza
Udostępnij na innych stronach

1. oba moduły różnią się nieznacznie i są w pełni zgodne ze starszymi wersjami więc na pewno można je zamieniać miejscami. Sam stosuję je zamiennie i nie zauważyłem żadnych różnic

2. bez problemu

3. każde urządzenie potrzebuje do komunikacji własny UART więc musisz mieć procesor z odpowiednią ilością UART-ów. Pewnie da się zrobić jakiś przełącznik ale po co komplikować schemat i program skoro są procesory z 2, a nawet 4 UART-ami

 

pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

On 12/22/2018 at 9:15 AM, ZbyT said:

1. oba moduły różnią się nieznacznie i są w pełni zgodne ze starszymi wersjami więc na pewno można je zamieniać miejscami. Sam stosuję je zamiennie i nie zauważyłem żadnych różnic

2. bez problemu

3. każde urządzenie potrzebuje do komunikacji własny UART więc musisz mieć procesor z odpowiednią ilością UART-ów. Pewnie da się zrobić jakiś przełącznik ale po co komplikować schemat i program skoro są procesory z 2, a nawet 4 UART-ami

 

pozdrawiam

Dzięki za rady. Odwołuję punkt 3.

Widzę że znowu czytałem niedokładnie, i że wyłącznik SW GPS off jest potrzebny tylko ze względu na sposób podłączenia GPS'a do Arduino, i nie ma nic wspólnego z ilością portów UART w GPSie.

 

Cytuję: "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

 

Pozostałe wyłączniki (SW Info i SW Reset) są jednak mi potrzebne 

 

Moje umiejętności w zakresie kodu Arduino są na poziomie "hello world" (umiem już zmienić np. na "screw you, world"!) więc boję się cokolwiek w kodzie autora zmieniać.

Tak więc gotów jestem wykonać urządzonko zgodnie z opisem autora, z dodatkową diodą etc, tylko po to aby uniknąć konieczności ingerencji w ten kod :)

Z drugiej strony jako leń patentowany chętnie zaoszczędziłbym sobie zbędnego trudu, bo po co mi druga migająca dioda (OK, widzę też plusy takiego rozwiązania)

Nie wiem tylko czy po pozbyciu się płytki z diodą mogę pozostałe dwa wyłączniki odłączyć "na żywca" bo być może (Boże, jaki jestem niedouczony) ten układzik z diodą ma ukryte funkcje impedancjowo-jakieśtam (!?) dzięki którym wyłączniki są na schemacie takie jakie są.

 

Ciekawi mnie też, czy można by wydłubać tę diodę z GPSa, i podłączyć w to miejsce taką samą/tę samą, lub chętnie inną (okrągłą) diodę na krótkim kabelku? (tak, wiem SMD itd. ale lutowanie chyba ogarnę - nie wiem też jaka to mogłaby być dioda)

 

Dzięki za pomoc i Najlepszego!

 

Nikodem

Odnośnik do komentarza
Udostępnij na innych stronach

Wejście video czincz, wyjście video czincz, analog, wejście dcf77. Naklada służbę czasu  na obraz, do tego jakieś edytowane napisy miejsca obserwacji i co to za obiekt, zasilanie 12v.

Działa tak 

 

Edytowane przez Tayson
  • Lubię 1
Odnośnik do komentarza
Udostępnij na innych stronach

13 hours ago, Tayson said:

Wejście video czincz, wyjście video czincz, analog, wejście dcf77. Naklada służbę czasu  na obraz, do tego jakieś edytowane napisy miejsca obserwacji i co to za obiekt, zasilanie 12v.

 

Dzięki, jeśli polegnę przy konstrukcji swojego rozważę zakup Twojego - o ile wejście DCF zaakceptuje w zamian sygnały GPS :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 5 tygodni później...

A więc stało się! Mimo poprzednich wielokrotnych zapewnień "że tego nie tknę, bo to nie dla mnie, że mnie nie kręci, itd, itp, w długą, bezsenną noc zaćmienia Księżyca (przez chmury) stałem się posiadaczem własnoręcznie zmontowanego i uruchomionego VTI ! :)

Schemat, linki etc znajdują się jak wspominałem na stronie autora, Piotra Smolarza: http://smopi.news.nstrefa.pl/index.php?pages/Video-Time-Inserter

Użyłem dobrej jakości klonu Arduino UNO v3, płytki Video OSD Shield z układem MAX7456 zakupionej u producenta (to chyba jedyna możliwość jej nabycia), w Tajwańskiej chyba firmie TinySine: https://www.tinyosshop.com/index.php?route=product/product&amp;product_id=834 (N.B. bardzo spodobał mi się ich schludny i stonowany sklep, pełen często unikalnych produktów. Moduł ten kupić można od nich także na ebajce i chyba (jeśli ktoś lubi) Amazonie

 

OSD.jpg.77cba3ddf6324b362e4fbdba4327aff1.jpg

 

 

oraz dwóch (w celu wypróbowania) modułów GPS z układami uBlox:

NEO-6M firmy WaveShare

GPSN6-1.jpg.e907105f7c11f2909a442c344975d5b7.jpg  GPSN6-2.jpg.454e5cb96da1063174f5e95c5e394534.jpg

 

oraz NEO-7 firmy Velleman (ok 120 zł), który posiada zarówno antenę wbudowaną jak i gniazdo anteny zewnętrznej, oraz obsługuje także system Glonass

GPSN7-1jpg.jpg.a4513305ccc2a549496e6d09bda3ba58.jpg GPSN7-2.jpg.a5130deeb1acf636c8abbdfe16174c60.jpg

Do tego drugiego modułu dokupiłem antenę magnetyczną na 5 metrowym kablu.

 

Ku  mojemu zaskoczeniu moduł Video Shield ma bardzo długie wyprowadzenia, jednak jakoś udało mi się spasować obie płytki (wiecie, oczekiwanie na TEN moment...)

Potem wgrałem sobie Arduino IDE, ściągnąłem dodatkowe biblioteki, o których wspomina Piotr, poczytałem trochę gdzie co ma być, wczytałem szkic (teraz wiem, że fachowo tak to się nazywa), wstrzymałem dech i...dupa. Wystąpił jakiś błąd, jak wydedukowałem, związany z biblioteką Time (link na stronie Piotra jest niejednoznaczny, a biblioteka ta ma obecnie dziwną strukturę). No i zaczęło się - pół nocy szukałem przyczyny tego błędu, instalując, odinstalowując, klnąc i sparwdzając czy przypadkiem nie widać Księżyca.

W końcu okazało się, że sprawę rozwiązuje ręczne wstawienie biblioteki Time z menu w IDE.

Szkic skompilował się poprawnie, napięcie sięgnęło zenitu (dawno się tak dobrze nie bawiłem....klockami), skompilowałem, wgrałem, zresetowałem i zdębiałem:

IMG_20190121_055551711zardch.jpg.cc91a6ab476f37977812578001f3d21c.jpg

Ale jak to? Ja przecież nie potrafię po Chińsku!?

IMG_20190121_072739454ch.jpg.68881471d88549e13209bc9f282099eb.jpg

Te ekrany wyglądały jednak znajomo...jakby ktoś (coś?) chciał a nie mógł, bo na górze ekranu, we właściwym miejscu zapieprzały jakieś krzaczki zamiast starych, dobrych arabskich cyferek.

Cóż, Księżyca nadal nie było widać, więc zacząłem czytać to tu, to tam....

To make long  story short: przy pierwszym uruchomieniu musicie upewnić się, że linia 116 w skeczu musi być zakomentowana, o tak:

  // OSD.setCharEncoding( MAX7456_ASCII );

Odkomentowuje się ją dopiero po zmianie fonta w układzie MAX na bardziej ludzki (pracuję nad tym)

Z jakichś niewyjaśnionych bliżej przyczyn u mnie była odkomentowana od początku, a przyczynę moich limgwistycznych przygód zrozumieć można łatwo spoglądając na poniższe fonty: pierwszy to fabryczny, a drugi Kosmetyczny. Paniali? Comprende? Hande Hoh?

MAXIM.png.42e0970aabf9e8ba3effaffbe69eb9ef.png CUSTOM.png.0fd339c06555b97da62933b7c0c6283e.png 

Po tej małej ale brzemiennej w skutki zmianie (kurde, jedno "//" !)  wszystko ruszyło jak tralala. Radość prawie dziecięca, gdy udało się coś ułożyć z Lego...errr, za moich czasów nie było lego...tak czy siak fajne uczucie.

ATM RULEZ! 

IMG_20190121_082035.jpg.92923dd41490017d41483a440778f819.jpg

GPS z NEO-6 na ceramicznej antence przy oknie balkonowym pierwszy fix złapał po ok 1,5-2 min, kolejne uruchomienia dużo szybciej (ma pamięć, skubany)

NEO-7M bez zewnętrznej anteny w ogóle nie chciał ze mną gadać (albo ja straciłem zbyt wcześnie cierpliwość), zaś po rzucie anteną, która z miłym placnięciem przylepiła się do dachu zafiksował się prawie natychmiast.

Z lektury (i przeglądania Alibajów) wnoszę, iż kości uBlox są namiętnie kopiowane i podrabiane jak wszystko inne (ta blaszka to jedynie pokrywka, pod którą nadmiernie oszczędni mogą znależć niespodziankę). Zdaje się, że na GPSach w tym wypadku nie należy oszczędzać. Zdaje się, że podróbki najłatwiej poznać po etykiecie - prawdziwe uBloxy mają etykietkę z dobrego papieru, idealnie równolegle do boków pokrywki.

 

Tak więc urządzonko działa (na razie bez dodatkowej diody, kosmetyki i obudowy). W planie zmiana fonta na milszy dla oka (pamiętając o linii 116) oraz kilka kosmetycznych zabiegów.

 

Ale od razu temat ciekawszy: jak zrobić sobie VTI za 20 euro!?

Otóż istnieje w tej kwestii tzw. dokumentacja. Jej autor (chwała mu za pomysł!) musi być człowiekiem wyluzowanym, bo dokumentacja ta jest chyba najbardziej bałaganiarską jaką widziałem - całe szczęście, że to bardzo proste urządzenie.

Na dobranoc macie tą instrukcję. Jutro o MINI-VTI, kamerach i rejestracji obrazu.

Idę po[rzylepiać plaster na oparzenia od lutownicy - Merci, Pascal ! :)

https://www.qfastro.club/lib/exe/fetch.php?media=projets:transformation_minimosd_vtiv6.pdf

IMG_20190120_211900829ch.jpg

Edytowane przez Agent Smith
  • Lubię 4
Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 rok później...

Przy okazji pytań od jednego z nowych (niestety nielicznych!) adeptów zakryciowych uzupełniam temat - dla potomności.

 

Nie wiem co się zmieniło w międzyczasie (IDE? biblioteki?) ale sketch w wersji Piotra Smolarza nie chce się kompilować. Proszę mnie nie pytać co i dlaczego :)

Nieco go więc skorygowałem i pozwoliłem sobie nadać mu wersję 2.2a ;)

 

Należy więc:

1. W swoim katalogu Arduino/libraries należy umieścić 4 biblioteki jak poniżej (plik VTI.h musi być jednocześnie w katalogu "libraries" a także w "smopiVTI"!)

Warto zwrócić uwagę na bibliotekę Time - jest wiele wersji, te starsze (np. ta z linku podanego oryginalnie przez Piotra) nie działają (wszystkie potrzebne, działające biblioteki załączam w pliku "libraries.zip")

Jeśli masz już któreś z tych bibliotek a sketch nie chce się kompilować, sugeruję zrobić backup z katalogu libraries i stworzyć nowy, tymczasowy, zawierający wersje bibliotek z załączonego niżej pliku libraries.zip

2. W oryginalnym sketchu sketchu należy dopisać linię "#include <TimeLib.h>" jak poniżej (proszę nie pytać dlaczego - nie wiem, to wynik prób i błędów :)

3. Proszę pamiętać o odkomentowaniu linii (w tym wypadku 113) - inaczej wszystko będzie po chińsku

 

screenshot1.jpg.a9b18771141e59ec50e41d662bccf096.jpg

screenshot2.jpg.88a0b8b6ecabb636b71855d2ef384988.jpg

 

Gotowy, zmieniony plik smopiVTI.ino, z naniesionymi już wyżej wspomnianymi zmianami załączam poniżej.

Kompilacja sprawdzona z Arduino IDE do wersji 1.8.12.

Ewentualne pytania proszę zamieszczać w dalszej części wątku - lub na PW.

 

Powodzenia! :)

 

libraries.zip

smopiVTI.zip

Edytowane przez Agent Smith
  • Lubię 2
Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 rok później...

Cześć,

to może kilka słów z mojej strony, jako autora tego ustrojstwa :original: Przede wszystkim bardzo dziękuję @Agent Smith za tak szczegółowe opisy i "support" projektu. A teraz krótki komentarz na temat problemów z kompilacją. Na ogół są one spowodowane niewłaściwą lokalizacją katalogu z dodatkowymi bibliotekami i prawdopodobnie z tego wynika konieczność wprowadzenia modyfikacji w kodzie, o których napisał @Agent Smith. Po pierwsze w Arduino IDE należy ustawić lokalizację, w której znajdują się podkatalogi ze szkicami. W moim przypadku jest tak:

338170405_Przechwycenieobrazuekranu_2021-09-15_12-02-17.png.0eb4f500717a7618f66a42a5ddac5094.png

 

W tej (koniecznie!) lokalizacji (u mnie: /home/psmolarz/Arduino) tworzymy podkatalog "libraries", do którego wgrywamy niezbędne biblioteki:

790706346_Przechwycenieobrazuekranu_2020-05-19_21-11-59.png.57fd2b0f386bc041e2f00000cfd55ee2.png

 

Ostatnim krokiem jest otwarcie pliku "smopiVTI.ino", który powinien być razem z pozostałymi plikami projektu (np. VTI.h) w lokalizacji: /home/psmolarz/Arduino/smopiVTI/, w Arduino IDE . Oczywiście ja podałem jak to jest u mnie, pod Linuksem. Przypuszczam jednak, że w Windows wymagania są podobne. Przy takiej organizacji projektu i konfiguracji Ardunio IDE nie mam problemów z kompilacją:

784258467_Przechwycenieobrazuekranu_2021-09-15_11-58-31.png.10ed1660294019aeb5d5e2bf1817f60c.png

 

Jeszcze uwaga na temat linii: "OSD.setCharEncoding( MAX7456_ASCII );". To czy ma zostać użyta w kodzie zależy od tego, czy wgraliśmy czcionki według opisu: https://github.com/smopihub/smopiVTI/wiki/Zmiana-czcionki-w-MAX7456

Ja zachęcam do zmiany czcionek, bo są ładniejsze i trochę mniejsze niż te oryginalne w układzie MAX7456. Wyświetlany na ekranie tekst jest bardziej czytelny.

 

To tyle z mojej strony. Proszę nie pytać o dalszy rozwój projektu i ewentualne testy z nowszymi układami GPS. Pomysłów mam wiele, ale czasu wolnego zero. Niestety, moje obserwacje też na tym cierpią :hmmm:

 

Pozdrawiam!

 

//EDIT

Wcześniej w tym wątku jest też odnośnik do projektu "minimosd". Z Pascalem wymieniałem wiele maili podczas tworzenia tamtej wersji: https://www.qfastro.club/doku.php?id=projets:electronique:start Także Pascal wykonywał testy dokładności "smopiVTI", porównując czas z urządzeniem IOTA-VTI. Swoją wersję testową "smopiVTI" zbudował także twórca "KIWI VTI", o czym też swego czasu rozmawialiśmy mailowo.

 

Edytowane przez smopi
  • Lubię 1
Odnośnik do komentarza
Udostępnij na innych stronach

W dniu 22.12.2018 o 01:17, Agent Smith napisał:

Nawet gdyby Twoja kamera po prostu wypluwała z siebie co 1/25 sekundy gotową pełną klateczkę (żadki chyba przypadek) powstaje wiele pytań:

skąd wiemy, że robi to dokładnie co 1/25 sek? A może nad jedną klatką myśli trochę dłużej niż nad następną?

Z jaką dokładnością określasz to wyplucie w odniesieniu do czasu bezwzględnego?

 

Celne pytania. Pod tym linkiem można poczytać o dostępności timestampów w ramach różnych API do kamer. O ile dobrze rozumiem:

  • Spinnaker (nowsze kamery FLIR) umożliwia włączenie timestampów... chyba idą wtedy z kamery (?)
  • FlyCapture2 (starsze kamery FLIR/Point Grey): "PC system clock" (tj. kiedy klatkę odebrał driver po stronie kompa - do niczego), "1394 cycle time" - prawdziwy timestamp z kamerki, z momentu zakończenia naświetlania
  • IIDC (DC1394) (starsze kamery FLIR/Point Grey, inni producenci) - "1394 cycle time" też powinien być dostępny, jak sądzę

 

Gdy już dokopiemy się do tego właściwego timestampu z kamerki, to co on właściwie pokazuje? W modelach, jakie tu rozważamy, chyba nie ma wewnętrznego zegara czasu rzeczywistego z bateryjką... To raczej driver inicjalizuje zegar w momencie podpięcia do komputera. Czyli wciąż trzeba dokładnie ustalić, jaki mamy czas ustawiony w pececie.

Edytowane przez WielkiAtraktor
Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.