Connessione e lettura dei dati.

Collegamento ad Arduino.

Colleghiamo secondo il seguente schema. Se lo schema di collegamento è alimentato a 5V, dobbiamo collegare il pin RX del modulo GPS tramite un partitore di tensione. Vedi lo schema Figura 1.
GPS VCC -> MEGA PIN 5V
GPS RX -> MEGA TX1 (18)
GPS TX -> MEGA RX1 (19)
GPS GND -> MEGA PIN GND

                                                                                                 Figura 1 

Visualizzazione dei dati inviati dal modulo.

Il tempo necessario per stabilire una connessione con i satelliti durante il primo lancio può richiedere fino a 45 minuti, questo si chiama avvio a "freddo". Il modulo carica l'almanacco e le effemeridi. L'almanacco contiene i parametri delle orbite di tutti i satelliti e l'effemeride contiene i parametri delle orbite e degli orologi di un particolare satellite, i dati dell'almanacco sono validi per 30 giorni, l'effemeride è di 30 minuti. Se sono presenti l'almanacco e le effemeridi aggiornati, il lancio è molto più veloce.
Schizzo per l'output dei dati:
void setup()
{
  Serial.begin(9600); 
  Serial1.begin(9600);
}
void loop()
{
  while (Serial1.available() > 0)
    Serial.write(Serial1.read());
}

Dettagli sui dati ricevuti.

Il modulo invia i dati sotto forma di messaggi NMEA.
In questo formato riceviamo i dati dal modulo GPS GY-NEO6MV2 (Figura 2).

                                                                                                                                Figura 2 

Brevemente sugli identificatori dei dati:

  1. GPGGA - dati dell'ultima posizione.
  2. GPGLL - coordinate latitudine/longitudine.
  3. GPGSA - DOP (GPS) e satelliti attivi.
  4. GPGSV - satelliti osservati.
  5. GPRMC - dati minimi di navigazione consigliati.

Decodifica valori da identificatori.

Stringa RMC (proprio esempio):
$GPRMC,hhmmss.sss,Status,ddmm.mmmm,N/SIndicator,dddmm.mmmm,E/WIndicator,
SpeedOverGround,CourseOverGround,ddmmyy,MagneticVariation,East/WestIndicator,Mode*Checksum
  1. "GP" - identificatore della fonte, nell'esempio riportato si tratta di GPS, "GL" - GLONASS, "GA" - Galileo, "GN" - GLONASS+GPS, ecc.
  2. "RMC" ("Recommended Minimum Specific GNSS Data") - dati GNSS specifici minimi consigliati.
  3. "hhmmss.sss" (UTC Time) - è l'ora in cui viene fissata la posizione in base all'UTC: "hh" sono le ore, "mm" sono i minuti, "ss.sss" sono i secondi. La durata delle frazioni di secondo varia. Gli zeri iniziali non vengono omessi.
  4. "Status" - stato: "A" - i dati sono affidabili, "V" - i dati sono inaffidabili.
  5. "ddmm.mmmm" (Latitude) - latitudine. 2 cifre di gradi ("GG"), 2 cifre di minuti interi, un punto e una parte frazionaria di minuti di durata variabile. Gli zeri iniziali non vengono omessi.
  6. "N/S Indicator" - "N" per la latitudine settentrionale o "S" per la latitudine meridionale.
  7. "dddmm.mmmm" (Longitude) - longitudine. 3 cifre di gradi ("ggg"), 2 cifre di minuti interi, un punto e una parte frazionaria di minuti di durata variabile. Gli zeri iniziali non vengono omessi.
  8. "E/W Indicator"  - "E" per longitudine est o "W" per longitudine ovest.
  9. "Speed Over Ground" - è la componente orizzontale della velocità rispetto al suolo espressa in nodi. Numero in virgola mobile. Parti intere e frazionarie di lunghezza variabile.
  10. "Course Over Ground"  - è l'angolo della traccia (direzione della velocità) in gradi. Numero in virgola mobile. Parti intere e frazionarie di lunghezza variabile. Un valore pari a 0 corrisponde al movimento verso nord, 90 verso est, 180 verso sud, 270 verso ovest.
  11. "ddmmyy" (Date) - giorno del mese, mese, ultime 2 cifre dell'anno (sono obbligatori gli zeri iniziali).
  12. "Magnetic Variation"  - è la declinazione magnetica in gradi (spesso mancante), calcolata utilizzando qualche modello. Numero in virgola mobile. Parti intere e frazionarie di lunghezza variabile.
  13. "East/West Indicator"  - direzione della declinazione magnetica: per ottenere una rotta magnetica, è necessario sottrarre la declinazione magnetica "E" - sommare "W" - alla rotta vera.
  14. "Mode" - indicatore della modalità: "A" - dati affidabili , "D" - differenziale, "E" - approssimazione, "N" - dati inaffidabili (spesso mancanti, questo campo inclusa la virgola manca nelle versioni precedenti di NMEA).
  15. "*Checksum"  - somma di controllo.

Esempi di stringhe RMC:

Esempio 1.
$GPRMC,hhmmss.sss,Status,ddmm.mm,N/SIndicator ,dddmm.mm,E/WIndicator ,SpeedOverGround,,ddmmyy,,,*Checksum - il modulo riceve il segnale dai satelliti.
Esempio 2.
$GPRMC,,Status,,,,,,,ddmmyy,MagneticVariation,,*Checksum - se mancano campi con valori significa che non c'è segnale dai satelliti.

Per altri identificatori: GPGGA, GPGLL, GPGSA, GPGSV, vedere i file pdf "NMEA Reference Manual":
Crea il tuo sito web gratis! Questo sito è stato creato con Webnode. Crea il tuo sito gratuito oggi stesso! Inizia