GPS 10hz arduino mega.
Moderatorzy: moderatorzy2014, moderatorzy
GPS 10hz arduino mega.
Pracuję teraz nad drobnym urządzeniem do pomiaru prędkości na arduino mega. Potrzebuję uzyskać 10 lub 18hz na ubloxie 8. Chip M8030.
Ze względu na prostotę chciałbym użyć biblioteki
https://github.com/loginov-rocks/UbxGps
Wszystko robię zgodnie z opisem ale niestety nie mogę uzyskać na serial danych jak w opisie.
gpsready zawsze jest 0.
Po skonfigurowaniu arduino jako bridge na serial pojawiają się prawidłowe dane.
schemat
Dane z GPS w formacie ubx
Pytanie brzmi: czy ktoś pracował na tej bibliotece i wie gdzie robię błąd lub zna inną lepszą bibliotekę do uzyskania prawdziwych 10 lub 18 hz?
Ze względu na prostotę chciałbym użyć biblioteki
https://github.com/loginov-rocks/UbxGps
Wszystko robię zgodnie z opisem ale niestety nie mogę uzyskać na serial danych jak w opisie.
gpsready zawsze jest 0.
Po skonfigurowaniu arduino jako bridge na serial pojawiają się prawidłowe dane.
schemat
Dane z GPS w formacie ubx
Pytanie brzmi: czy ktoś pracował na tej bibliotece i wie gdzie robię błąd lub zna inną lepszą bibliotekę do uzyskania prawdziwych 10 lub 18 hz?
Re: GPS 10hz arduino mega.
Biblioteka ktorej uzywasz spodziewa sie komunikatu NAV-PVT o dlugosci danych 84 (czyli takich jak w Ubloxach serii 7) a Twoj GPS (serii 8) zwraca komunikat o dlugosci 92 (co wraz z naglowkiem i suma kontrolna daje widoczne w logu size:100).
Dla sprawdzenia uzyj komunikatu NAV-POSLLH, jego format miedzy 7 a 8 z tego co pamietam sie nie zmienil.
EDIT: Mozesz tez dokonac modyfikacji UbxGpsNavPvt.h i zamienic fragment:
na
Dla sprawdzenia uzyj komunikatu NAV-POSLLH, jego format miedzy 7 a 8 z tego co pamietam sie nie zmienil.
EDIT: Mozesz tez dokonac modyfikacji UbxGpsNavPvt.h i zamienic fragment:
Kod: Zaznacz cały
short reserved2; // - Reserved
unsigned long reserved3; // - Reserved
UbxGpsNavPvt(T &serial) : UbxGps<T>(serial)
{
this->setLength(84);
}
Kod: Zaznacz cały
unsigned char reserved2[6]; // - Reserved
long headVeh; // deg Heading of vehicle 2-D (1e-5)
unsigned char reserved3[4]; // - Reserved
UbxGpsNavPvt(T &serial) : UbxGps<T>(serial)
{
this->setLength(92);
}
Re: GPS 10hz arduino mega.
Siedzę 2 godziny wprowadzając twoje poprawki i niestety nic nie wychodzi. Zamówiłem ubloxa 7. Czas mnie nie pogania bo do wiosny daleko ale wolałem wersję 8 z jej 18-toma hz. Będę próbował dalej. Dzięki za pomoc. Nawet nie wiedziałem, że długość pakietu jest różna w 7 i 8. Znasz może inne biblioteki na których mogę uzyskać 10 i więcej hz?
Re: GPS 10hz arduino mega.
a może w nmea pójdzie?
wieki temu czytałem coś na temat, że ubloxy (wtedy chyba 7mki) miały problemy z 10Hz w ubx, ale w nmea działało to ok...
wieki temu czytałem coś na temat, że ubloxy (wtedy chyba 7mki) miały problemy z 10Hz w ubx, ale w nmea działało to ok...
Re: GPS 10hz arduino mega.
Jakbys konkretniej napisal co robisz to moze by Ci mozna bylo jakos pomoc. "Robie zgodnie z opisem" za wiele nie mowi...maxiiii pisze:Siedzę 2 godziny wprowadzając twoje poprawki i niestety nic nie wychodzi.
Nie pojdzie, ta biblioteka nie rozumie NMEA.volender pisze:a może w nmea pójdzie?
Re: GPS 10hz arduino mega.
Wypróbowałem wszystkie inne protokoły dostępne w tej bibliotece. Na wszystkich dane wychodzą 0. Gpsready zawsze jest 0. Wprowadziłem poprawki w zapisie zaproponowane przez ciebie. Też nic. Albo zmienię gps-a na wer 7 albo zmienię biblioteki. Niestety ale wolałbym ubloxa 8 ze względu na jego 18hz które w moim zastosowaniu jest wskazane. Szukam teraz sposobu na zmianę długości w samym ubloxie. Jak na razie nic nie osiągnąłem.
Samo urządzenie ma służyć do zdalnego pomiaru prędkości w łódkach spalinowych FSR-ach.
EDIT
Tej dopisanej linii nie rozumiem
long headVeh; // deg Heading of vehicle 2-D (1e-5)
Samo urządzenie ma służyć do zdalnego pomiaru prędkości w łódkach spalinowych FSR-ach.
EDIT
Tej dopisanej linii nie rozumiem
long headVeh; // deg Heading of vehicle 2-D (1e-5)
Ostatnio zmieniony czwartek 10 gru 2020, 18:30 przez maxiiii, łącznie zmieniany 1 raz.
Re: GPS 10hz arduino mega.
To nie sa protokoly, to sa rozne komunikaty tego samego protokolu UBX. Zeby dzialaly musisz je miec przede wszystkim wlaczone w swoim GPSie (np. przez uCenter). Z logow wynika ze wlaczony masz jedynie NAV-PVT.maxiiii pisze:Wypróbowałem wszystkie inne protokoły dostępne w tej bibliotece.
Nie ma takiej mozliwosci.maxiiii pisze:Szukam teraz sposobu na zmianę długości w samym ubloxie.
A Twoj kod to jest tajny ze nie chcesz go pokazac?
EDIT:
Nie musisz Po prostu zastap CALY fragment oryginalny CALYM fragmentem ktory Ci podalem (nie tylko te jedna linie).maxiiii pisze:EDIT
Tej dopisanej linii nie rozumiem
long headVeh; // deg Heading of vehicle 2-D (1e-5)
Re: GPS 10hz arduino mega.
Kod jest na stronie
#include "UbxGpsNavPvt.h"
UbxGpsNavPvt<HardwareSerial> gps(Serial3);
void setup()
{
Serial.begin(9600);
gps.begin(9600);
}
void loop()
{
if (gps.ready())
{
Serial.print(gps.lon / 10000000.0, 7);
Serial.print(',');
Serial.print(gps.lat / 10000000.0, 7);
Serial.print(',');
Serial.print(gps.height / 1000.0, 3);
Serial.print(',');
Serial.println(gps.gSpeed * 0.0036, 5);
}
}
Komunikaty zmieniam za każdym razem w u-center. Z tym nie ma problemu.
Przed chwilą.
Po usunięciu tej dziwnej linii biblioteka ruszyła. Na teraz dzięki za pomoc i na pewno jeszcze będę cię dalej męczył.
Zaczynam sprawdzać poprawność danych.
#include "UbxGpsNavPvt.h"
UbxGpsNavPvt<HardwareSerial> gps(Serial3);
void setup()
{
Serial.begin(9600);
gps.begin(9600);
}
void loop()
{
if (gps.ready())
{
Serial.print(gps.lon / 10000000.0, 7);
Serial.print(',');
Serial.print(gps.lat / 10000000.0, 7);
Serial.print(',');
Serial.print(gps.height / 1000.0, 3);
Serial.print(',');
Serial.println(gps.gSpeed * 0.0036, 5);
}
}
Komunikaty zmieniam za każdym razem w u-center. Z tym nie ma problemu.
Przed chwilą.
Po usunięciu tej dziwnej linii biblioteka ruszyła. Na teraz dzięki za pomoc i na pewno jeszcze będę cię dalej męczył.
Zaczynam sprawdzać poprawność danych.
Re: GPS 10hz arduino mega.
Zle, ta linia jest potrzebna. I powinienes tez uzyc poprawnych typow, takie jakie Ci podalem, a nie takie jaki miales wczesniej...maxiiii pisze:Po usunięciu tej dziwnej linii biblioteka ruszyła.
Re: GPS 10hz arduino mega.
OK. Zrobię jak piszesz.
Re: GPS 10hz arduino mega.
Poradziłem sobie z tą biblioteką. Wszystko już działa prawidłowo. Uzyskałem 18hz. Dzięki.
Mam jeszcze jeden pomysł związany z ubloxem 8. Jednak nie wiem od czego zacząć i nie wiem nawet czy można. Część tych modułów posiada dodatkową pamięć 4M. Wiem, że w ucenter jest możliwość włączenia zapisywania logów bezpośrednio w pamięci ubloxa. Tylko nigdzie nie mogę znaleźć jak to zrobić i na jakich zasadach można to odczytać. Ma to być micro logger gps też na 18 hz. Ważna jest waga i wymiary. Nie widzę problemu z zastosowaniem openloggera ale wolę to jeszcze bardziej uprościć. Jak się da:)
Mam jeszcze jeden pomysł związany z ubloxem 8. Jednak nie wiem od czego zacząć i nie wiem nawet czy można. Część tych modułów posiada dodatkową pamięć 4M. Wiem, że w ucenter jest możliwość włączenia zapisywania logów bezpośrednio w pamięci ubloxa. Tylko nigdzie nie mogę znaleźć jak to zrobić i na jakich zasadach można to odczytać. Ma to być micro logger gps też na 18 hz. Ważna jest waga i wymiary. Nie widzę problemu z zastosowaniem openloggera ale wolę to jeszcze bardziej uprościć. Jak się da:)
Re: GPS 10hz arduino mega.
Widze tu pewna sprzecznosc - jesli chcesz miec 18Hz musisz miec modul M8Q lub M8N (no i oczywiscie nie mozesz korzystac np. z GPS i GLONASS systemow jednoczesnie) a te nie posiadaja flasha . Flasha maja moduly M8N ale one nie daja 18Hz.maxiiii pisze:Poradziłem sobie z tą biblioteką. Wszystko już działa prawidłowo. Uzyskałem 18hz. Dzięki.
Mam jeszcze jeden pomysł związany z ubloxem 8. Jednak nie wiem od czego zacząć i nie wiem nawet czy można. Część tych modułów posiada dodatkową pamięć 4M. Wiem, że w ucenter jest możliwość włączenia zapisywania logów bezpośrednio w pamięci ubloxa. Tylko nigdzie nie mogę znaleźć jak to zrobić i na jakich zasadach można to odczytać. Ma to być micro logger gps też na 18 hz. Ważna jest waga i wymiary. Nie widzę problemu z zastosowaniem openloggera ale wolę to jeszcze bardziej uprościć. Jak się da:)
Re: GPS 10hz arduino mega.
Wiem o ograniczeniu do 10 hz w odbiornikach z flashem. ale próbuję ograniczyć wielkość obrabianych danych do minimum aby uzyskać jak największą częstotliwość odświeżania. Chcę zjeść ciastko i jeszcze je mieć w zapasie. Nawet gdybym musiał mieć tylko 10 hz ale za to sposób odczytu będzie na tyle łatwy aby zrobił to laik mogę na to przystać. W innym przypadku pozostaje karta micro SD i openlogger. A to podraża system oraz zwiększa wagę. Zawsze jeszcze musi być akumulator i elektronika ładująca go.
Zastanawiam się też która konfiguracja da dokładniejsze wyniki. GPS 18hz czy też GPS i GLONAS 10hz?
Zastanawiam się też która konfiguracja da dokładniejsze wyniki. GPS 18hz czy też GPS i GLONAS 10hz?
Re: GPS 10hz arduino mega.
Nie mozesz, zeby uzyskac 18Hz firmware musi byc uruchomiony z ROMu z uwagi na zbyt maja wydajnosc przy starcie z flasha. Pomijam juz fakt ze ublox loguje z czestotliwoscia max 1Hz.maxiiii pisze:Chcę zjeść ciastko i jeszcze je mieć w zapasie.
Oczywiscie ze Glonass i GPS z uwagi na wieksza liczbe widocznych satelitow. Porownaj sobie DOPy lub accuracy estimate dla obu konfiguracji to bedziesz mial punkt odniesienia.maxiiii pisze:Zastanawiam się też która konfiguracja da dokładniejsze wyniki. GPS 18hz czy też GPS i GLONAS 10hz?