piątek, 7 października
Shadow

Arduino – GPS NEO-6M

W tym szybkim wpisie pokaże, jak używać modułu GPS NEO-6M z Arduino. Wszystko aby uzyskać dane GPS. GPS oznacza Global Positioning System i może być używany do określania pozycji, czasu jak i prędkości.

gps neo-6m arduino

Potrzebne komponenty:

  • Arduino np. Uno
  • moduł GPS NEO-6M
  • kabelkologia

Połączenie modułu GPS z Arduino

Moduł GPS NEO-6M posiada cztery piny: VCC, RX, TX, i GND, „gada” z Arduino poprzez komunikację szeregową za pomocą pinów TX i RX, mamy w sumie 4 przewody.

GPS NEO-6M Arduino
VCC 5V
RX Pin 3
TX Pin 4
GND GND

Kod programu:

#include <SoftwareSerial.h>

SoftwareSerial gps(4, 3);

void setup(){
Serial.begin(9600);
gps.begin(9600);
}

void loop(){
while (gps.available() > 0){
byte gpsData = gps.read();
Serial.write(gpsData);
}
}

Co do samego programu prostszego nie znam 😉

Po wgraniu otwórz monitor szeregowy przy szybkości transmisji 9600.

arduino gps neo m6

Powinieneś otrzymać kilka informacji w standardowym języku GPS, NMEA. Każda linia, którą otrzymujesz w monitorze szeregowym, jest zdaniem NMEA.

NMEA to skrót od National Marine Electronics Association, a w świecie GPS jest to standardowy format danych obsługiwany przez producentów GPS.

Jak odczytywać język NMEA

Zdania NMEA zaczynają się od znaku $, a każde pole danych jest oddzielone przecinkiem.

$GPRMC,203140.00,A,5326.84295,N,01432.49372,E,0.058,,250820,,,A*7B
$GPVTG,,T,,M,0.058,N,0.107,K,A*28
$GPGGA,203140.00,5326.84295,N,01432.49372,E,1,09,1.14,31.6,M,39.6,M,,*62
$GPGSA,A,3,28,30,05,07,08,27,18,13,15,,,,2.17,1.14,1.85*07
$GPGSV,3,1,10,05,45,215,23,07,34,069,26,08,16,046,32,09,01,117,*71
$GPGSV,3,2,10,13,61,289,31,15,28,295,20,18,13,313,29,27,08,015,15*73
$GPGSV,3,3,10,28,45,150,33,30,66,076,32*74
$GPGLL,5326.84295,N,01432.49372,E,203140.00,A,A*62

Istnieją różne typy zdań NMEA. Typ wiadomości określają znaki przed pierwszym przecinkiem. GP po znaku $ wskazuje, że jest to pozycja GPS. $ GPGGA to podstawowy komunikat GPS NMEA, który dostarcza trójwymiarowych danych o lokalizacji i dokładności. W następującym zdaniu:

$GPGGA,203140.00,5326.84295,N,01432.49372,E,1,09,1.14,31.6,M,39.6,M,,*62

  • 203140 – przedstawia czas, w którym ustalono lokalizację, 20:31:40 UTC
  • 5326.84295, N – szerokość geograficzna 53 stopni 26.84295 'N
  • 01432.493752, E – długość geograficzna 014 st 32,493752 ′E
  • 1 – jakość ustalenia (0 = nieważne; 1 = ustalenie GPS; 2 = ustalenie DGPS; 3 = ustalenie PPS; 4 = kinematyka w czasie rzeczywistym; 5 = zmienny RTK; 6 = oszacowana (obliczenie martwe); 7 = tryb ręcznego wprowadzania; 8 = Tryb symulacji)
  • 09 – liczba satelitów
  • 1.14 – Poziome rozcieńczenie pozycji
  • 31,6, M – Wysokość, w metrach nad poziomem morza
    39.6, M – Wysokość geoidy (średni poziom morza) nad elipsoidą WGS84
    puste pole – czas w sekundach od ostatniej aktualizacji DGPS
    pole puste – numer ID stacji DGPS
    *62 – dane sumy kontrolnej, zawsze zaczyna się od *

Pozostałe dane NMEA zawierają dodatkowe informacje:

$ GPGSA – GPS DOP i aktywne satelity
$ GPGSV – Szczegółowe informacje o satelitach GPS
$ GPGLL – szerokość i długość geograficzna
$ GPRMC – Niezbędne dane GPS pvt (pozycja, prędkość, czas)
$ GPVTG – Poprawiona prędkość

Aby dowiedzieć się, co oznacza każde pole danych w każdym z tych zdań, możesz zapoznać się z danymi NMEA tutaj .

5/5 - (2 ocena/y)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.