- Dostarcza dane NMEA 0183 symulujące Źródło Czasu GPS
- Regulowana szybkość transmisji
- Poziomy logiczne 3,3 V współpracują z systemami 3,3 V i 5 V
- Syntetyzowany sygnał 1PPS
- Pobiera czas z serwerów NTP przez Wi-Fi
- Generuje przybliżoną szerokość i długość geograficzną na podstawie adresu IP
- Może również wyświetlać fikcyjne współrzędne geograficzne
- Może skanować do ośmiu sieci Wi-Fi (SSID)
- Możliwość konfiguracji poprzez wirtualny port szeregowy USB, niezależnie od strumienia danych
- Wykorzystuje kompaktowy i niedrogi moduł Raspberry Pi Pico W.
- Zintegrowana przetwornica buck/boost działa wydajnie w zakresie od 1,8 do 5,5 V.
- Generator kwarcowy zapewnia dokładność lepszą niż 30 ppm pomiędzy aktualizacjami
- Pobiera prąd o natężeniu 50 mA lub do 100 mA podczas transmisji Wi-Fi (zasilanie 3,0 V)
Odkąd moduły GPS stały się dostępne dla hobbystów, używamy ich jako dokładnych źródeł czasu. Chociaż GPS i inne podobne systemy satelitarne zrewolucjonizowały nawigację i mapowanie, zapewniają jednocześnie łatwy globalny dostęp do bardzo dokładnych źródeł czasu.
Każdy satelita GPS jest wyposażony w dwa zegary atomowe, które co sekundę przesyłają bardzo dokładny sygnał czasu. Do tej pory używaliśmy tego sygnału w wielu projektach, w tym w niedawnym, bardzo popularnym sterowniku zegara analogowego GPS z września 2022 r. (siliconchip.au/Series/391) – EdW 4/2025.
GPS był pierwszym systemem GNSS (Globalnego Systemu Nawigacji Satelitarnej), ale obecnie istnieje kilka innych systemów, w tym rosyjski GLONASS, europejski Galileo i chiński Beidou.
Indyjski Regionalny System Nawigacji Satelitarnej (IRNSS) i japoński System Satelitarny Quasi-Zenith (QZSS) zostały zaprojektowane w celu poprawy pozycjonowania na skalę krajową, przy czym QZSS jest również dostępny w Australii, ponieważ orbity satelitów pokrywają również ten kraj.
Chociaż w wymienionych systemach wykorzystywane są subtelnie różniące się technologie (nawet GPS ewoluował w ciągu 50 lat istnienia), ustanowiono wspólny interfejs zewnętrzny. W rzeczywistości moduł GPS VK2828U7G5LF, którego używamy w wielu projektach, może odbierać sygnały z satelitów GPS, GLONASS i Galileo.
Na potrzeby tego artykułu będziemy używać GPS jako terminu obejmującego wszystkie różne systemy nawigacji satelitarnej. Należy jednak pamiętać, że niektóre z tych systemów nie są prawdziwie globalne, ponieważ satelity zwykle nie zapewniają zasięgu na dużych szerokościach geograficznych (w pobliżu biegunów).
Poprzednie wersje Źródeł Czasu GPS
W numerze z kwietnia 2018 roku opublikowaliśmy Źródło Czasu GPS Claytona (siliconchip.au/Article/11039). Jak sama nazwa wskazuje, urządzenie to nie używa żadnej technologii GPS, ale może być stosowane jako źródło sygnałów czasu podobnych do GPS, gdy rzeczywisty sygnał tego systemu jest niedostępny. Często zaleca się go jako zamiennik modułu GPS w projektach zegarów.
Motywacją dla tej koncepcji był fakt, że wiele zegarów jest używanych w pomieszczeniach, gdzie bardzo słabe sygnały GPS są trudne do odebrania. Z drugiej strony, w pomieszczeniach zwykle dostępna jest bezprzewodowa siec Wi-Fi.
Rzeczywista warstwa sprzętowa projektu źródła czasu z roku 2018 to po prostu moduł mikrokontrolera D1 Mini Wi-Fi ESP8266. Moduł ma wgrane oprogramowanie układowe, pozwalające łączyć się z siecią Wi-Fi i aktualizować wewnętrzny zegar z Internetu za pomocą NTP (sieciowy protokół czasu).
Tak uzyskane dane są następnie wykorzystywane do generowania „zdań” przekazania czasu. Generowany jest również sygnał 1PPS, chociaż nie będzie on miał precyzji rzeczywistego modułu GPS.
Aktualizacja Pico W
Opisany w artykule projekt jest aktualizacją oryginalnego GPS Claytona, ale używa modułu Raspberry Pi Pico W zamiast D1 Mini. Chociaż mogliśmy przerobić kod, aby działał z Pico W, istnieje kilka powodów, dla których tego nie zrobiliśmy.
W ciągu ostatnich pięciu lat otrzymaliśmy wiele sugestii dotyczących ulepszeń, więc sensowne było uwzględnienie ich tam, gdzie było to możliwe.
Zdecydowaliśmy się na użycie C SDK, ponieważ stwierdziliśmy, że daje nam to lepszy dostęp do funkcji niskiego poziomu, dzięki czemu programy działają szybciej. Niektóre z nowych funkcji były możliwe (i znacznie łatwiejsze do wdrożenia) dzięki rozwiązaniom pakietu C SDK i jego bibliotek programowych.
Nie ma wątpliwości, że Pico W ma bardzo dobrą cenę, co powoduje, że jest to atrakcyjna opcja, gdy moduł stanowi całość lub większość wymaganego sprzętu. Rzeczywiście, jest tańszy niż moduł GPS, który może zastąpić. Ale szczególne cechy jego mikrokontrolera RP2040 pomogły nam stworzyć moduł źródła czasu Wi-Fi.
Na przykład można zaimplementować wirtualny port szeregowy USB, co oznacza, że menu konfiguracji jest oddzielone od strumienia danych NMEA (National Marine Electronics Association). Ze względu na charakter portu szeregowego w D1 Mini, były one współdzielone przez GPS Claytona, więc korzystanie z menu konfiguracji przerywało strumień danych.
Pico W implementuje również wirtualny napęd USB do programowania pamięci Flash. Niektórzy użytkownicy mieli trudności z załadowaniem pamięci Flash do D1 Mini z różnych powodów. Na przykład wymagana jest do tego specjalna aplikacja do programowania lub Arduino IDE.
Z drugiej strony, Pico W może być flashowany przez prawie każdy komputer z portem USB. Proces jest bardzo prosty – wystarczy skopiować plik do wirtualnego napędu USB.
Procesor RP2040 w Pico W ma dwa rdzenie, więc jeden może być przeznaczony do wysyłania danych NMEA i nie może być blokowany przez aktywność drugiego rdzenia, który obsługuje konfigurację i połączenia Wi-Fi.
Pico W ma również wbudowaną przetwornicę impulsową, która jest bardziej wydajna niż stabilizator liniowy znajdujący się w D1 Mini. Niektórzy Czytelnicy zgłaszali problemy z zasilaniem D1 Mini, więc jest to oczekiwana aktualizacja. Nie tylko zmniejsza zapotrzebowanie na prąd przy wyższych napięciach zasilania, ale także umożliwia pracę przy zasilaniu wynoszącym zaledwie 1,8 V.
Podobnie jak wcześniejsze źródła czasu, moduł źródła czasu Wi-Fi emituje trzy komunikaty NMEA: „RMC” (zalecane minimalne dane dla GPS), „GGA” (informacje o pozycji) i „GSA” (dane satelitarne).
Większość naszych projektów zegarów GPS używa tylko komunikatów RMC, a niektóre również GGA. Dane te są więc całkowicie wystarczające do sterowania tymi zegarami.