Arduino Facile

Leggere informazioni dal GPS BN-880 o uBlox M8N

Progetto GPS con Arduino e BN-880

Obiettivo:

Leggere tutte le informazioni provenienti dal GPS BN-880 utilizzando la libreria TinyGPS++

Video:

Componenti elettronici:

Teoria:

Alla base di questa esercitazione c’è il modulo GPS Baitian BN-880, ma andrebbe benissimo anche un modulo uBlox NEO-7M o M8N o equivalenti.

Il modulo in oggetto oltre ad avere integrato il GPS, oggetto dell’esercitazione, ha anche integrato una bussola (compass) HMC5883l comunicante tramite il bus/protocollo I2C.

Ecco alcune caratteristiche:

Il sistema GPS (Global Positioning System):

GPS sta per Global Positioning System cioè un Sistema di Posizionamento Globale, la cui funzione primaria è quella di determinare con precisione la posizione sul pianeta Terra di un ricevitore (come ad esempio uno smartphone o un apparecchio dedicato). Il ricevitore GPS riceve continuamente segnali da lontani satelliti in orbita attorno alla Terra. Attorno alla Terra, a circa 20.200 km di altitudine, orbitano 31 satelliti del sistema GPS. Ogni satellite ha al suo interno un precisissimo orologio atomico. Ogni satellite invia continuamente un segnale radio contenente la sua posizione, e l’orario di trasmissione del segnale. Il ricevitore GPS confronta questi segnali, e tramite alcune equazioni riesce a stabilire la sua posizione.

Il pallino rosso è il ricevitore GPS. Alle ore 12:00 tutti i satelliti GPS inviano un segnale che dice “io mi trovo nella posizione XYZ, e sono le 12:00”. Poiché i satelliti hanno distanze diverse dal ricevitore, il segnale “io mi trovo nella posizione XYZ, e sono le 12:00” arriva al ricevitore in momenti diversi: quello del satellite 4 arriva per primo; poi quello del satellite 2; poi 3; e poi 1. Sapendo quanto ci ha messo il segnale ad arrivare, e quindi la distanza fra il ricevitore e i vari satelliti, il ricevitore GPS, con una relativamente semplice triangolazione, riesce a stimare la propria posizione sul pianeta Terra.

Che cosa trasmette il modulo GPS:

Il modulo GPS trasmette tramite Seriale TTL (0-5 Volt) delle “sentenze” tramite il protocollo NMEA0183.

NMEA 0183 (o più comunemente NMEA) è uno standard di comunicazione di dati utilizzato soprattutto in nautica e nella comunicazione di dati satellitari GPS. L’ente che gestisce e sviluppa il protocollo è la National Marine Electronics Association. Questo protocollo si basa sul principio che la fonte, detta talker, può soltanto inviare i dati (sentences) e la ricevente, detta listener, può soltanto riceverli.

Ad esempio la seguente sentenza $GGA trasmette tantissime informazioni oltre alla Latitudine e Longitudine:

Tramite la libreria TinyGPS++ è possibile intercettare tutti i tipi di sentenze GPS e inoltre nell’ultima versione anche di elaborare le sentenze particolari, ad esempio prelevate da altre fonti NMEA0183.

Schema Elettronico (Fritzing):

Codice:

PAGINA IN PDF