SantyagoSantyago
Avatar

Witaj!
Blog archiwalny. Już niebawem nowy serwis!

YouTube RSS Facebook GitHub

Arduino poradnik

Wstęp

Teoria

Biblioteki

Komponenty

Czujniki i sensory

Rozwiązania i algorytmy

Narzędzia

Mikrokontrolery i Arduino IDE

Arduino i klony

Poradniki wideo

Reklama na Blogu

Najnowsze poradniki

Ostatnie komentarze

Ostatnie fotografie

polskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorywieliczka-szyb-danilowicza

Moduły GPS FGPMMOP6 oraz NEO6-M

Moduł NEO6-M z oferty sklepu elty.pl

Moduł FGPMMOP6 z oferty sklepu ElectroPark.pl

Jakiś czas temu miałem konieczność zaopatrzenia się mały moduł GPS do jednego z moich projektów.

Moją uwagę przykuły dwa modele - jeden wykorzystujący układ FGPMMOP6 oraz drugi wykorzystujący bardzo popularny układ NEO6 w wersji M. Ceny są bardzo do siebie zbliżone, jednak w ogólnym rozrachunku musiałem postawić tylko na jeden z nich.

Moduły te, pracują standardzie NMEA i komunikują się mikrokontrolerem za pomocą magistrali UART. Bardzo zależało mi, aby odbiornik był on jak najmniejszy z możliwością wpięcia w gniazdo o standardowym rozstawie pinów 2.45mm.

Porównajmy na początek parametry:

  FGPMMOP6 NEO6-M
Liczba kanałów 66 50
Zimny start / Ciepły start / Gorący start 35s / 33s / 1s 27s / 27s / 1s
Czułość -165dBm -161dBm
Maksymalna częstotliwość pomiaru 10Hz 5Hz
Dokładność pomiaru położenia 3m 2.5m
Dokładność pomiaru prędkości 0.1m/s 0.1m/s
Wbudowana antena TAK NIE
Komunikaty NMEA GGA, GSA, GSV, RMC, VTG GGA, GLL, GSA, GSV, RMC, VTG, TXT
Maksymalna wysokość 18000m 50000m
Maksymalne przyśpieszenie 515m/s 500m/s

Przyglądając się powyższym parametrom pracy obu modułów, bardziej praktycznym może okazać się tańszy NEO6-M. Pierwszym aspektem jest zasilanie modułu. W przypadku FGPMMOP6 jest możliwe teoretycznie  zasilanie napięciem 5V, ale nawet producent zaleca zasilanie napięciem 3.3V. Jeśli chodzi zaś o NEO6-M takiego problemu nie ma.

NEO6-M może okazać się również dokładniejszy za sprawą zewnętrznej anteny, gdzie z kolei FGPMMOP6 posiada ją wbudowaną. Czasy jakie potrzebne są do pracy modułu również przemawiają na korzyść NEO-6M i są prawie 30% krótsze.

Jedyną przewagę jaką posiada FGPMMOP6 jest częstotliwość pomiaru, która może wynieść nawet 10Hz - w przypadku NEO6-M jest to tylko 1Hz otrzymujemy 5Hz  Pewną zaletą może okazać się również sama budowa modułu FGPMMOP6, pozwalająca wpiąć go jak tradycyjny układ scalony.

Zanim jednak porównamy w boju oba moduły, wypadałoby napisać odrobinę więcej o nawigacji GPS.

Jak działa system GPS w pigułce?

Ogólnie działanie systemu GPS opiera się o trzy podstawowe segmenty: kosmiczny, kontrolny oraz użytkownika.  Segment kosmiczny składa się obecnie z 34 satelitów, które krążą po ściśle określonych orbitach na wysokości około 20183 km nad Ziemią. Co ciekawe - czynne jest jedynie 30 z nich, natomiast pozostałe są testowane, bądź wyłączone z przyczyn technicznych. Trajektorie, jak i czasy ich przelotu są tak dobrane (pół doby gwiazdowej 11h 58 min), że w każdej chwili, w dowolnym miejscu na Ziemi, powinno być widoczne od 8 do 12 satelitów. Stąd też wiadomo, gdzie dany satelita powinien się znajdować - na jakiej jest wysokości oraz jaką posiada prędkość oraz kierunek. Wiadome jest również, w jakim czasie sygnał z konkretnego satelity powinien dotrzeć do Ziemi. Te podstawowe informacje, które są potem przetwarzane przez nasz odbiornik GPS nazywamy almanachem. Warto również pamiętać, że satelity wyposażone są w super dokładne zegary, które pozwalają na ustalenie czasu w jakim sygnał został przez nie wysłany. Ważność almanachu w urządzeniu GPS to kilka dni, jednak może przestać być aktualny, gdy nasz odbiornik znacznie zmieni swoją pozycję.

Niestety znajomość almanachu w praktyce nie wystarczy. Jest bowiem wiele czynników, które mogą wpłynąć na trajektorię satelitów oraz szybkość dotarcia sygnału do odbiorcy. Dlatego pojawia się kolejny ważny segment kontrolny, który składa ze stacji naziemnych w różnych zakątkach na Ziemi. Ich zadanie polega na analizie sygnałów emitowany przez każdego satelitę pod kątem zgodności położenia i w razie konieczności korygują trajektorię satelity, umożliwiając jej powrót na właściwy tor.  Zbiór tych danych nazywamy efemerydami, które są transmitowane z powrotem do satelity, a następnie satelita wysyła je do odbiorcy.  Efemeryda  posiada ważność około 5 godzin.

Segment użytkownika jest ostatnim elementem układanki, który polega na precyzyjnym zsynchronizowania zegara odbiornika GPS z zegarami satelitów, gdzie błąd ułamków sekundy przekłada się na błędne określenie naszej pozycji.

Zanim nasz odbiornik GPS przystąpi do określenia naszej dokładnej pozycji, musi więc dogadać się z satelitami odnośnie powyższych kwestii. Czas jaki na to będzie potrzebował może mieścić się w zakresie od 1 do 60 sekund (w zależności od warunków pogodowych, może nawet być to czas dłuższy). Gotowość odbiornika GPS poprzedza więc zimny, ciepły lub gorący start.

Zimny, ciepły, gorący start?

Rozróżniamy kilka rodzajów startu odbiornika GPS: zimny, ciepły i gorący, który definiujemy w zależności od tego, jak bardzo aktualne dane posiada nasz odbiornik. Dla naszych konretrnych modułów są to kolejno 35s, 34s i 1s (FGPMMOP6) oraz 27s, 27s i 1s (NEO6-M).

Zimny start może nastąpić wtedy, gdy almanach jest aktualny, zaś nieaktualne są efemerydy dla poszczególnych satelitów, które biorą udział w bieżącym obliczaniu pozycji. Jak wspomniałem wcześniej, efemeryda zmienia się dla każdego satelity co około 5 godzin, dlatego nawet jeśli nasz odbiornik nie był używany przez krótki czas, konieczna jest ponowna ich aktualizacja ze wszystkich używanych aktualnie satelitów. Oczywiście nasz odbiornik musi upewnić się, że satelita jest prawidłowo zidentyfikowany i jego sygnał jest dostatecznie silny, aby mógł brać udział w określaniu naszej pozycji. Do poprawnego określenia pozycji (2D fix) wymagane są minimum trzy satelity, natomiast dla dodatkowej wysokości (3D fix) są to cztery satelity. Zimny start rozpocznie się oczywiście również wtedy, kiedy almanach będzie nieaktualny.

Ciepły start występuje wtedy, gdy efemerydy dla co najmniej 3 satelitów biorących udział w pozycjonowaniu są aktualne, gdzie pozostaje jedynie precyzyjna synchronizacja czasu z tymi satelitami. Dla naszycg modułów są to czasy 34s i 27s, ale można spotkać również moduły, gdzie czas ten wynosi zaledwie 5 do 10 sekund. Ciepły start może wystąpić po czasie od około 20 minut do 4-5 godzin po ostatnim użytkowaniu odbiornika.

Gorący start  nastąpi wtedy, kiedy nasz odbiornik nie rozbiegnie się zegarami satelitów więcej niż 100ms. Taką rozbieżność czasu odbiornik GPS uzyskuje po czasie około 20 minut (stąd też przekroczenie tego czasu, z reguły wymusza już ciepły start). Jeśli różnica jest mniejsza niż 100ms, nasz odbiornik może natychmiast przetwarzać dane z satelitów. Sprawdzenie takiego stanu rzeczy zajmuje około 1 sekundy.

Wyprowadzenia i podłączenie modułu NEO6-M

Moduł NEO6-M nie wymaga do podłączenia z Arduino żadnych dodatkowych elementów. Doskonale radzi sobie z logiką 5V.  Podłączenie jest więc bardzo proste, polegające na doprowadzeniu jedynie zasilania, masy oraz linii sygnałowej UART (RX oraz TX).

Chcąc mieć dostęp do konsoli szeregowej w Arduino UNO, linie UART podłączamy do zwykłych pinów cyfrowych, posiłkując się dalej biblioteką SoftwareSerial. Jeśli korzystamy z Arduino Leonardo, zalecane jest podłączenie do sprzętowego UART-a (pin 0,1).

Oczywiście możemy zrobić to również w UNO, o ile nie zamierzamy korzystać z konsoli szeregowej - ten wariant będzie wymagany z innego powodu, ale o tym w dalszej części.

Wyprowadzenia i podłączenie modułu FGPMMOP6

  • VCC - zasilanie modułu (3.3V ÷ 5V)
  • EN - aktywacja odbiornika stanem wysokim
  • GND - masa
  • V_BACK - zasilanie zapasowe
  • 3D-FIX - sygnalizacja "złapania" 3D-fixa
  • 1PPS - wyjście sygnałowe 1Hz
  • NC - nie podłączać
  • TX, RX - linie transmisyjne UART

Jak wspomniałem wcześniej, pomimo tego, że producent modułu zezwala zasilanie napięciem 5V, to już nota katalogowa mówi, że maksymalne napięcie zasilania to 4.3V. Nie chcąc tego sprawdzać w praktyce, lepiej zasilmy moduł napięciem 3.3V. Problem może pojawić się również na linii Arduino(TX) - GPS(RX), gdzie dla bezpieczeństwa, posłużymy się prostym dzielnikiem napięcia 1.8kΩ / 3.3kΩ, co sprowadzi nam poziom napięcia z 5V do 3.3V. Dla drugiej linii nie jest konieczne stosowanie dzielnika napięcia.

Jeśli chcielibiśmy wykorzystać podtrzymanie bateryjne dla modułu, możemy również zasilić pin V_BACK napięciem 3.3V.

Dla przykładu podepniemy także dwie diody LED pod piny 3D-FIX oraz 1PPS przez rezystory 100Ω.

Pin EN możemy pozostawić wolny.

Standard NMEA

Zanim wgramy nasz pierwszy szkic, zobaczmy jakie informacje będzie zwracał nam moduł, który nieustannie wyrzuca na magistralę UART komunikaty w standrdzie NMEA. Każdy znich zaczyna się odpowiednim prefiksem i zawiera zróżnicowany zestaw danych:

$GPGGA - Global Positioning System Fix Data (czas i pozycja)

$GPGGA,211455.000,5022.3220,N,01850.9486,E,1,4,20.73,337.7,M,42.1,M,,*66
Parametr Wartość Opis
Identyfikator $GPGGA  
Czas UTC 211455.000 21:14:55.000 / hhmmss.sss
Szerokość geograficzna 5022.3220,N

50d 22.3220' N lub 50d 22' 19" N
ddmm.mmmm, N - północ, S - południe

Długość geograficzna 01850.9486,E 18d 50.9486' E lub 18d 50' 57" E
ddmm.mmmm, E - wschód, W - zachód
Jakość 1 0:błędna, 1:GPS fix, 2:DGPS fix
Liczba użytych seatelitów 4 Liczba widocznych satelitów
Względna dokładność pozycji poziomej 20.73 HDOP
Wysokość 337.7,M 336,7 metrów (3D fix)
Wysokość geoidy powyżej elipsoidy WGS84 42.1,M 42.1 metra
Czas od ostatniej aktualizacji DGPS <brak>  
Stacja referencyjna DGPS <brak>  
Suma kontrolna *66  

$GPGSA - GPS DOP and active satellites (tryb pracy odbiornika, aktywne satelity)

$GPGSA,A,3,15,21,18,22,,,,,,,,,20.76,20.73,0.97*07
Parametr Wartość Opis
Identyfikator $GPGSA  
Tryb pracy A M - ręczny, A - automatyczny
Tryb fixa 3 1 - brak, 2 - 2D fix, 3 - 3D fix
Satelity biorące udział w obliczeniu pozycji 15,21,18,22,,,,,,,,, Pola od 3 do 14
PDOP 20.76  Rozmycie pozycji
HDOP 20.73  Rozmycie poziome
VDOP 0.97  Rozmycie pionowe
Suma kontrolna *07  

$GPGSV - GPS Satellites in view (ilość widocznych satelit, ich numery identyfikacyjne, azymut)

$GPGSV,3,1,12,27,61,297,,18,60,118,40,16,54,231,14,21,45,071,37*76
$GPGSV,3,2,12,22,44,174,32,26,34,197,15,39,31,171,26,19,30,296,*7D
$GPGSV,3,3,12,15,16,059,36,07,10,315,14,13,08,027,23,30,04,343,14*7C
Parametr Wartość Opis
Identyfikator $GPGSV  
Ilość wiadomości 3 Ile jest dsotępnych wiadomości
Numer wiadomości 1 Powinny być zwrócone kolejno 1, 2 i 3
Całkowita liczba widocznych sateltów 12  
Identyfikator satelity 27  
Elewacja 61 Wysokość w stopniach
Azymut 297 Stopnie od prawdziwej północy
Siła sygnału <brak> 00-99 dB, wartość pusta jeśli nie bierze udziału
Informacje o drugiej satelicie 18,60,118,40 Informacje takie same jak w polach 4 - 7
Informacje o trzeciej satelicie 16,54,231,14 Informacje takie same jak w polach 4 - 7
Informacje o czwartej satelicie 21,45,071,37 Informacje takie same jak w polach 4 - 7
Suma kontrolna *76  

Jak widać, widoczne jest 12 sateltitów, każdy komunikat GPGSV zawiera informacje o czterech z nich, dlatego dostaliśmy 3 komunikaty GPGSV.

$GPRMC - Recommended minimum specific GPS/Transit data (czas, data, pozycja, kierunek, prędkość)

$GPRMC,211455.000,A,5022.3220,N,01850.9486,E,1.18,290.28,020515,,,A*6B
Parametr Wartość Opis
Identyfikator $GPRMC  
Czas UTC 211455.000 21:14:55.000
hhmmss.sss
Poprawność danych A A - OK, V - błędne
Szerokość geograficzna 5022.3220,N 50d 22.3220' N lub 50d 22' 19" N
ddmm.mmmm, N - północ, S - południe
Wysokość geograficzna 01850.9486,E 18d 50.9486' E lub 18d 50' 57" E
ddmm.mmmm, E - wschód, W - zachód
Prędkość w węzłach 1.18 ~ 0.6 m/s
Prawdziwy kurs 290.28 w stopniach
Data 020515 2 maja 2015
ddmmyy
Deklinacja magnetyczna <puste>,<puste> w stopniach, E (wschód) lub W (zachód)
Tryb A A – autonomiczny, D – dyferencyjny, E - estymowany
Suma kontrolna *6B  

$GPVTG - Track Made Good and Ground Speed (kierunek i prędkość)

$GPVTG,290.28,T,,M,1.18,N,2.19,K,A*3E
Parametr Wartość Opis
Identyfikator $GPVTG  
Prawdziwy kurs 290.28 w stopniach
Poprawność danych T T - True track made good
Nie używany parametr <pusty>  
Poprawność danych M M - Magnetic track made good
Prędkość w węzłach 1.18,N ~ 0.6 m/s ~ 2.19 km/h
Prędkość w km/h 2.19,K  
Tryb A A – autonomiczny, D – dyferencyjny, E - estymowany
Suma kontrolna *3E  

Pobieramy surówkę z UART

Na początek nieśmiertelny program do podglądu danych z programowej magistrali szeregowej, którą ustawiamy na 9600bps. Kiedy pojawią się dane z modułu, zostaną one przekopiowane na domyślny port, co pozwoli nam na podgląd w monitorze szeregowym.

  1. #include <SoftwareSerial.h>
  2.  
  3. SoftwareSerial GPS(2, 3); // RX, TX
  4.  
  5. void setup()  
  6. {
  7.   Serial.begin(115200);
  8.  
  9.   while (!Serial) { }
  10.  
  11.   GPS.begin(9600);
  12. }
  13.  
  14. void loop()
  15. {
  16.   if (GPS.available())
  17.   {
  18.     Serial.write(GPS.read());
  19.   }
  20. }

Biblioteka TinyGPS++

Jeśli nie mamy ochoty na samodzielne przetwarzanie komunikatów NMEA, możemy skorzystać ze znanej biblioteki TinyGPS++. Po wgraniu jej do naszych bibliotek, mamy dostęp do kilku dostępnych przykładów, w tym FullExample.ino. Nie zapomnijmy tylko zmienić definicji numerów pinów dla sygnałów RX i TX oraz prędkości 4800bps na 9600bps.

static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 4800;

zmieniamy na:

static const int RXPin = 2, TXPin = 3;
static const uint32_t GPSBaud = 9600;

Po wgraniu szkicu do Arduino, możemy cieszyć się kompletem informacji z naszego modułu GPS:

Wyniki pracy modułu FGPMMOP6:

Zbyt wolny SoftwareSerial dla NEO6-M

Jak się okazuje, biblioteka SoftwareSerial jest za wolna dla komunikatów, które wyrzuca NEO6-M. Chociaż moduł działa prawidłowo, to pojawiają się tutaj błędy sum kontrolnych.

Wyniki pracy modułu NEO6-M

Błędy te wynikają z faktu, że moduł NEO6-M wysyła kolejną sekwencję NMEA, zanim Arduino odbierze poprzednią. Na szczęście nie wpływa to na jego ogólne działanie. Dodatkowo należy pamiętać, że problem ten występuję jedynie przy korzystaniu z programowego portu szeregowego (SoftwareSerial). W normalnych warunkach projektowania urządzenia, nie będziemy przecież korzystać z konsoli szeregowej, tylko sprzętowej, a wyniki wyświetlać na wyświetlaczu lub zapisywać na karcie SD.

Test sprzętowego UART-a z wykorzystaniem modułu FTDI

Podgląd programem minicom. Dane odbierane są prawidłowo

NEO6-M i u-center

Ogromnym plusem, który przemawia za modułem NEO6-M jest program u-center, pozwalający na monitorowanie praktycznie każdego parametru modułu. Bardziej zaawansowani użytkownicy mogą dodatkowo zmieniać jego ogromną ilość parametrów pracy, dostosowując go do własnych, indywidualnych potrzeb.

u-center 8.16

Przykład konfiguracji UART:

Podsumowanie

Moduł NEO6-M posiada zdecydowanie większe możliwości od FGPMMOP6, zarówno konfiguracyjne, jak i użytkowe. Biorąc pod uwagę dodatkowy fakt, że jest on tańszy niż FGPMMOP6, czyni go zdecydowanym zwycięzcą. Jedynymi punktami, które przemawiają za FGPMMOP6 są: możliwość wpięcia go jak tradycyjny układ scalony oraz brak kłopotów z biblioteką SoftwareSerial.

Warto również wspomnieć, że NEO6-M może komunikować się mikrokontrolerem nie tylko za pomocą komunikatów NEMA, ale również specjalnego, binarnego protokołu u-blox UBX.

Reklama

Komentarze Komentarze
Avatar 1
Mroz Linux Ubuntu / Safari 537.36
24 May 2015 - 13:57 Brak informacji

w pierwszej tabelce jest "Maksymalna wysokość 4G 4G", zdaje się, że powinno być "Maksymalne przyspieszenie"

Avatar 2
Korneliusz Linux x86_64 / Mozilla Firefox 34.0
25 May 2015 - 00:24 Bytom

Bóg zapłać, dobry człowieku :)

Avatar 1
mazdac Linux Ubuntu / Mozilla Firefox 38.0
25 May 2015 - 22:35 Warszawa

Mam pytanie, w datasheecie odnośnie neo6m znalazłem coś takiego:
Maximum Navigation update rate - NEO-6G/Q/M/T - 5Hz
NEO-6P/V - 1Hz

Czy to błąd, czy faktycznie da się ustawić te 5Hz?

Avatar 2
Korneliusz Linux x86_64 / Mozilla Firefox 34.0
25 May 2015 - 22:59 Bytom

Faktycznie, źle musiałem spojrzeć na pdf-a. Wersja "M" daje radę na 5Hz :) Dzięki za poprawkę.

Avatar 1
Szymon Windows / Mozilla Firefox 38.0
26 May 2015 - 22:15 Brak informacji

Wysokość 337.7,M 336,7 metrów (3D fix)

Tu jest jakaś translacja czy to pomyłka?

Avatar 2
Korneliusz Linux x86_64 / Mozilla Firefox 34.0
26 May 2015 - 22:48 Bytom

Oczywiście :) Błąd ;)

Avatar 1
Szymon Windows / Mozilla Firefox 38.0
27 May 2015 - 19:55 Brak informacji

Zamówiony .... zrobi się monitoring samochodu bo akurat będę zmianiał :D Do tego SIM900A - mam nadzieję, że firmware zamienię bez problemu.

Avatar 1
Borg-Warner Windows 7 / Safari 537.36
17 June 2015 - 22:59 Olsztyn

Niebanalną zaletą FGPMMOP6 jest wyjście na LED, informującą o Fiksie. Nie każdemu jest to potrzebne, ale wystarczy rzucić okiem na GPS leżący na podszybiu i już wiadomo czy mamy Fix czy nie. Z drugiej strony miałem do czynienia tylko ze starszymi modułami (np. SirfStar II), gdzie zgubiony Fix był na porządku dziennym.

Dodam, że moduły GPS używam do systemu APRS.

W zasadzie byłem zdecydowany na NEO..., ale teraz zacząłem się zastanawiać.

Tak czy inaczej, dzięki za wpis. Wiele mi rozjaśnił i ułatwi podjąć decyzję co do modułu, który zamierzam kupić.

Avatar 2
Korneliusz Linux x86_64 / Mozilla Firefox 34.0
20 June 2015 - 01:08 Bytom

Nie ma sprawy :)

Avatar 1
KSZERE, SO4ASN Windows / Safari 537.36
10 November 2015 - 12:26 Brak informacji

W jaki sposób wysłać informację do GPS w celu zmiany prędkości na 4800?

Avatar 1
KSZERE, SO4ASN Windows / Safari 537.36
14 November 2015 - 22:08 Brak informacji

Korneliuszu, proszę Cię! - nagraj poradnik jak zaprogramować te "cholerstwo". Problemy z konfiguracja mam, błędy Time out i braki jakichkolwiek informacji w oknie wgrywania. Potrzebuję z prędkością komunikacji 4800.

Avatar 1
Piotr S. Windows 7 / Mozilla Firefox 47.0
09 November 2016 - 18:58 Brak informacji

Jak można wykorzystać moduł neo6 jako budzik? Chodzi mi o to żeby np co 15 minut (0,15,30,45 m) wykonywał się kod w warunku IF, a dokładnie zapis danych z czujników na kartę SD, bo w przypadku DS3231 jest to jako alarm, natomiast nie wiem jak ugryźć to w tym przypadku.

Avatar 1
Marian Windows XP / Mozilla Firefox 50.0
03 December 2016 - 18:46 Warszawa

Wspomniana wartość "maksymalne przyśpieszenie" to raczej "maksymalna prędkość", skoro jednostka miary to [m/s] :-)

Avatar 2
SpeX Windows / Mozilla Firefox 50.0
22 January 2017 - 02:11 Modlnica

Czyli jeśli chcemy poznać swoją pozycję wystarczy iż odkodujemy komunikaty lub , jeśli chodzi natomiast o czas i datę, to możemy się posłużyć jedynie ?

A jak przejść w tryb pracy DGPS?

Czy będzie on współpracował z Galieo (EU GPS)? W sumie pytanie o inne rozwiązania - jak dobrze pamiętam jest jeszcze rosyjski i chiński GPS?

Avatar 1
Arek Windows / Safari 537.36
20 May 2017 - 14:11 Brak informacji

Witam.
Ja mam natomiast problem taki, że nieważne jak podpinam i co próbuje cały czas nie otrzymuje danych od modułu GPS. Dioda od PPS mruga z częstotliwością ok. 1Hz za to otrzymuje coś takiego:
Sats HDOP Latitude Longitude Fix Date Time Date Alt Course Speed Card Distance Course Card Chars Sentences Checksum
(deg) (deg) Age Age (m) --- from GPS ---- ---- to London ---- RX RX Fail
-------------------------------------------------------------------------------------------------------------------------------------
**** **** ********* ********** **** ********** ******** **** ****** ****** ***** *** ******* ****** *** 0 0 0
**** **** ********* ********** **** ********** ******** **** ****** ****** ***** *** ******* ****** *** 0 0 0

i tak dalej. Jak widać Chars RX jest cały czas zero. tak jakby nic nie było wysyłane. Już próbowałem przez SoftwareSerial uzyskać jakiekolwiek dane ale też nic nie uzyskuje. Już nie mam pomysłu co z tym zrobić

Avatar 1
MichalL Windows / Mozilla Firefox 68.0
19 July 2019 - 12:34 Gdynia

W końcu udało mi się ogarnąć moduł gps-a, zwraca odczytane dane, ale mam problem z wysokością i prędkością. Wysokość ciągle pokazuje mi zero, a gps.speed? czy to jest zwracana prędkość np samochodu w km/h?