Home
Accesso / Registrazione
 di 

Ricevitore GPS multifunzione

Ricevitore GPS multifunzione

Progetto di un ricevitore GPS multifunzione. Per la realizzazione del ricevitore GPS, ho inizialmente creato un programma per PC al fine di analizzare e testare la qualità dell’antenna e per estrapolare i dati dai quattro pacchetti trasmessi dal modulo GPS.

Prova dopo prova, ho realizzato che quello che era nato come un semplice programma di test, sarebbe potuto diventare un comodo tool per la rilevazione della posizione e la memorizzazione dei punti sul percorso (waypoint). I dati incapsulati, possono essere utilizzati per la richiesta a Google di una mappa con il marker della propria posizione, oppure salvati nel formato KML per visualizzare l’itinerario direttamente su Google Earth.

Su www.mbenterprise.it/windows.php e www.mbenterprise.it/hardware.php sono pubblicati alcuni screenshot sul work in progress.

Scelta dell’elettronica per il ricevitore GPS multifunzione

Per quanto riguarda il ricevitore vero e proprio, sono in fase di sviluppo due ipotesi realizzative:

La prima prevede l’utilizzo di un microprocessore della Microchip per la gestione della periferia, ovvero un display grafico da 128x64, ingressi analogici per sensori di pressione (specifica del progetto), lettore di schede SD per il salvataggio dei percorsi, tastierino a 5 tasti per le varie funzioni, USART per la lettura dei dati dal modulo GPS.

La seconda prevede l’utilizzo di una scheda della Variscite con micro ARM9 della Ti, capace di gestire tutto ciò di cui si può avere bisogno: display da 7” con Touchscreen resistivo e risoluzione di 800x480, Lettore di schede SD, Uscita HDMI Uscita Audio, USB, micro USB, Ethernet, 4 porte seriali e Sistema operativo Windows CE 6.0

Come si può vedere dalle foto, su questo dispositivo, può essere installato lo stesso software che è in corso di realizzazione per PC, infatti il Framework.NET permette una portabilità molto alta.

Dati per la geolocalizzazione

La geolocalizzazione viene effettuata estrapolando dai pacchetti che arrivano dal Modulo GPS, i dati di cui si ha bisogno. Il modulo GPS scelto, fornisce quattro tipi differenti di pacchetti, GGA, RMC, GSV, GSA.

Esempi per i due pacchetti più importanti sono i seguenti:

$GPRMC,092204.999,A,4153.7280,N,01228.9410,E,10.00,45.0,211200,, *25

$GPGGA,092204.999,4153.7280,N,01228.9410,E,1,08,1.1,28.7,M,,,,0000*0E

Tutti i pacchetti trasmessi dai moduli GPS iniziano con Il carattere $ e sono terminati da CR e LF. I dati sono separati tra loro da carattere “,”.

Analizzando il primo pacchetto possiamo notare:

    $GPRMC identificativo del pacchetto dati
    092204.999 ora UTC ovvero le ore 9, 24 minuti e 04 secondi
    A validità del segnale, A=valido, V=invalido
    4153.7280 latitudine ovvero 41° 53,7280 secondi decimali
    N Nord
    01228.9410 longitudine ovvero 12° 28,9410 secondi decimali
    E Est
    10.00 velocità in nodi (per avere i Km/h bisogna moltiplicare per 1,852, per le mph per 1,5)
    45.0 la direzione ovvero 45,0°
    211200 la data ovvero 21 dicembre 2000
    vuoto
    vuoto
    *25 checksum

Analizzando il secondo pacchetto possiamo notare :

    $GPGSA identificativo del pacchetto dati
    092204.999 ora UTC ovvero le ore 9, 24 minuti e 04 secondi
    4153.7280 latitudine ovvero 41° 53,7280 secondi decimali
    N Nord
    01228.9410 longitudine ovvero 12° 28,9410 secondi decimali
    E Est
    1 qualità del fix: 0=invalido, 1=fix GPS
    08 numero di satelliti in vista
    1.1 HDOP
    28.7 Altezza sul livello del mare
    M M=metri
    Vuoto Altezza del Geode sull’ellissoide WGS84
    Vuoto M=metri
    Vuoto DGPS update
    Vuoto DGPS
    *0E checksum

Una volta in possesso di tutti questi dati, si può passare alla visualizzazione sul dispositivo.

Ricevitore GPS multifunzione: Utilizzo dei dati per la geolocalizzazione

Nel rappresentare la bussola, bisogna tener conto che il nostro ricevitore sarà orientato lungo il nostro senso di marcia che nell’esempio è 45° NE, quindi la direzione del Nord sulla bussola sarà 360 - 45 = 315°.

Ecco come i dati relativi alla longitudine ed alla latitudine vengono inviati a Google per ottenere come risposta una mappa con evidenziata la nostra posizione (Blu Point marker). Nel programma sono presenti due tasti per chiedere la mappa (roadmap) oppure la vista ibrida (hybrid) ovvero la vista satellitare con in sovraimpressione le strade.

Questa è la stessa mappa ma in versione ibrida. Sono inoltre presenti due pulsanti per aumentare o diminuire il livello di zoom.

I dati salvati in formato KML, possono essere utilizzati anche con il programma Google Earth. I dati in questo formato possono contenere varie informazioni che saranno poi gestite come Layer dal programma della Google. Il programma in questo momento incapsula le seguenti informazioni:
Partenza, Arrivo e dati del percorso.

Questi Livelli (layer) possono essere accesi o spenti semplicemente cliccando nel relativo quadratino, togliendo o rimettendo il simbolo di spunta.

Modulo GPS

Per quanto riguarda il modulo GPS mi sono affidato alla Fastrax. Il modulo scelto è il modello UP500 che in soli 22 x 22 x 8 millimetri riesce a concentrare l’elettronica e l’antenna con una sensibilità durante la navigazione di -159dBm e 32 canali. Questo tipo di antenna è particolarmente performante all’interno delle città in cui i palazzi e le vie particolarmente strette impediscono una corretta ricezione del segnale radio.

Questo modulo è dotato di interfaccia seriale TTL che ne facilita la connessione verso microprocessori o dispositivi tipo touchscreen con windows CE. La tensione di alimentazione può andare da 3,3V a 5,5V ed anche questo permette una facile connessione verso molti tipi ci circuiti. Inoltre se si lavora a 3,3V il consumo è di soli 90mW.

L’ottima sensibilità del dispositivo fa sì che possa essere collocato all’interno del contenitore (purché plastico o metallico ma con opportune aperture) senza necessità di utilizzare un’antenna esterna; ma come si vedrà più avanti, la presenza della porta seriale ne permetterà un uso ancora più interessante.

I messaggi trasmessi sono quelli del protocollo NMEA Datum WGS84 e precisamente:
GGA, RMC, GSV, GSA ad intervalli di 1 secondo. Analizzando i vari dati inseriti in questi quattro pacchetti, possiamo estrarre l’ora UTC (ovvero quella del meridiano di Greenwich), la Latitudine, la Longitudine, l’altezza rispetto al livello del mare, altezza rispetto l’ellissoide WGS84, la devianza (da cui si deriva la direzione), la velocità in nodi, i satelliti in vista con le rispettive elevazioni, azimuth e SNR, la qualità del fix. Una volta impacchettati i vari dati non resta quindi che passarli al programma per le elaborazioni del caso.

Connessione del modulo GPS al ricevitore

Per collegare il modulo GPS al resto del circuito, si può far uso di uno strip maschio/femmina da saldare sullo stampato del ricevitore, oppure di un connettore maschio tipo Amp o Wago (passo 2,54 mm). Su questo connettore saranno presenti l’alimentazione VDD e GND, il pin per la batteria di backup che può essere collegato a VDD, RXD e TXD da collegare alla seriale del micro e PPS che permette di capire quando il modulo ha agganciato almeno quattro satelliti (emettendo un impulso per secondo).

Questo sarebbe il modo classico di collegare l’antenna. Ma nel caso in cui il contenitore dovesse essere stagno, o posizionato in auto, riducendo notevolmente la sensibilità dell’antenna? Dovremmo per forza pensare di inserire un connettore per un’antenna esterna. Fortunatamente la tecnologia ci viene in aiuto ed in special modo quella relativa alla trasmissione dati wireless a corto raggio.

Il mondo delle trasmissioni dati ha subito negli ultimi tempi un’accelerazione considerevole e se fino a pochi anni fa per connettere vari dispositivi all’interno di un’auto si sarebbe pensato al Bluetooth, oggi si può fare utilizzando la tecnologia wifi.

Per far questo, ho impiegato dei moduli XBee. Questo piccolo modulo dalle dimensioni di solo 27 x 22 millimetri (come il modulo GPS) consente di creare una piccola rete all’interno dall’auto, a costi esigui. Le uniche connessioni sono: Alimentazione (3,3V) e massa ed il TXD del modulo GPS al TXD dello XBee.
Dal lato ricevitore o ricevitori basterà fare altrettanto, e cioè fornire l’alimentazione e collegare il TXD dello XBee al ricevitore delle rispettive porte seriali.

In questo modo, il segnale ricevuto dal modulo GPS sarà trasmesso a più ricevitori, risparmiando sui costi dell’antenna (un’antenna costa come tre moduli XBee). Inoltre il modulo GPS può essere così posizionato nel punto più comodo.
Il modulo GPS può anche essere alimentato a batterie in quanto a 3,3V il consumo totale si aggira in 100mW (30mA @ 3,3V). Con le batterie in commercio ora, è possibile trasmettere per 24 ore consecutive.

Questo è un esempio tipico di connessione per moduli XBee. Sono presenti degli integrati supplementari che non serviranno se si vuole accoppiare il trasmettitore al modulo GPS.

U15 ed U16 sono infatti dei traslatori di livello programmabili attraverso il pin 5. Infatti, i pin 1, 3 e 5 sono collegati all’alimentazione a 5V, mentre i pin 2, 4 e 6 sono collegati all’alimentazione a 3,3V. In particolare il pin 5 serve per stabilire il verso del segnale. Infatti il pin 3 di U15 è collegato a massa e quindi il segnale passerà dal pin 4 (ingresso) al pin 3 (uscita) traslato di livello da 3,3 a 5 volt. Il pin 3 di U18 invece è collegato a +5 e quindi il segnale passerà dal pin 3(ingresso) al pin 4 (uscita) traslato di livello da 5 a 3,3 volt.

Nel nostro caso, questi due integrati non serviranno in quanto anche il modulo GPS può essere alimentato a 3,3V e quindi il pin 2 del modulo GPS (TDX) sarà direttamente collegato al pin 3 del modulo XBee (DIN) per essere trasmesso.
La portata di questi moduli al chiuso è di circa 60/100 Mt, quindi non ci saranno problemi all’interno dell’abitacolo nel caso si volesse usare il ricevitore in auto.

Nel caso in cui lo si volesse usare in barca, questo sistema si rivelerebbe ancora più efficace: il modulo GPS può essere posizionato nel punto più alto (al fine di facilitare la ricezione del segnale GPS) ed il ricevitore invece in ogni punto della barca, anche sotto coperta. L’uscita del circuito è TTL a 3,3 o 5V, a seconda che si usi diretto o con i traslatori di livello.

Per collegare il ricevitore alla porta seriale del PC o del win CE, è necessario inserire un ulteriore traslatore di livello, ovvero un MAX232 che restituisce in uscita i criteri della porta seriale (+/- 12V).
Lo schema di connessione è il seguente:

Si possono utilizzare più moduli del genere e collegare quindi più ricevitori al modulo GPS.

Il lavoro è ancora in corso, e molti dettagli saranno cambiati e migliorati.
La scelta dell’elettronica per la visualizzazione delle informazioni GPS non è ancora definita, ma potrebbe anche essere sviluppata in parallelo, creando un master evoluto (il dispositivo winCE) ed uno slave (dispositivo con PIC microchip).

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di giuskina

Da fare

Ottimo progetto mi piace !

ritratto di Alex87ai

Progetto davvero

Progetto davvero interessante!! Sono un pò digiuno nella programmazione Framework.net e la cosa che non ho ben capito è come si fa ad interfacciarsi direttamente alle mappe di google. Al contrario, la descrizione dell'hardware e come si estraggono i dati d'interesse dai pacchetti gps è davvero molto chiara ed esauriente. Sicuramente, ancora una volta, saltano all'attenzione le potenzialità di core ARM rispetto ad altri core/microcontrollori.

ritratto di gabri87

anche a me

anche a me non è molto chiaro come si interfacci alle mappe di google, anche dal punto di vista della comunicazione internet. voglio dire, come fa a collegarsi ad internet in strada? scusatemi se la domanda è stupida :)

ritratto di david67

il ricevitore salva su

il ricevitore salva su scheda SD il percorso in formato kml per essere utilizzato con Google Earth.

Per la gestione delle mappe di google maps è necessaria una connessione dati che può essere fatta con la connessione tethering con uno smarthphone od in alternativa con una chivetta dati USB.

ritratto di mingoweb

Ottimo progetto! Utilizzando

Ottimo progetto! Utilizzando le mappe di google maps si ha anche una maggiore sicurezza essendo aggiornate costantemente. Ovviamente servirà anche una connessione dati per l'aggiornamento.

ritratto di linus

tempo fa

avevo realizzato un navigatore GPS con un computer portatile, tramite una chiave bluetooth e un ricevitore GPS bluetooth, ma indubbiamente questo progetto va ben oltre l'assemblaggio e l'ottimizzazione di componenti.

ritratto di Fabrizio87

questo potrebbe diventare

questo potrebbe diventare molto interessante per controllare i miei marmocchi,

con un arduino Nano e togliendo tutto cosa non serve riducendoli al minimo del funzionamento,

l'ometto in fondo alla borsa sua visto il casino che c'è in fondo non vedrà,
nella sera posso controllare dove è andata a passeggio al posto di andare a scuola.

ritratto di giuskina

quello della

foto è un wildfire?? grazie a ki ha pubblikato se risponde

ritratto di Maverik82

ciao, sono molto interessato

ciao, sono molto interessato alla realizzazione del tuo progetto, mi puoi dare qualche informazione in più

grazie Andrea

ritratto di Emanuele

GPS

Puoi contattare l'autore direttamente dal modulo contact del suo profilo ;)

ritratto di Maverik82

non riesco credo sia dovuto

non riesco credo sia dovuto al fatto che non sono registrato :(

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 0 utenti e 34 visitatori collegati.

Ultimi Commenti