VISUALIZZATORE REMOTO GPS
Visualizza stringe NMEA da RX GPS su display LCD 2x16.
© by Pierbassano Turrini - iw2bc
Aggiornato: 28/06/2004
Aggiornata versione software (1.4) per una miglior compatibilita' con i vari Gps.
Questo progetto permette di visualzzare i dati estratti da
stringhe NMEA provenienti da un ricevitore GPS.
Trova applicazione in diversi campi che spaziano dall'APRS alla visualizzazione remota dei dati di navigazione
con GPS palmari, la cui sola antenna non è possibile posizionare in luoghi esterni, o ricevitori OEM.
È basato sulle stringe $GPRMC e $GPGGA.
La Latitudine e la Longitudine sono visualizzate con due decimali sullo screen0 e da due a quattro
sullo screen 2 (dipende da quanti decimali emette il vostro GPS nella stringa $GPRMC).
Lo screen3 è basato sulla sentenza $GPGGA.
Se il vostro GPS emettesse stringe più dettagliate è necessario modificare il programma
sorgente (.ASM).
Descrizione del circuito
Sull'Hardware non vi è molto da dire.
Il progetto è basato su un PIC 16F84 ed un LCD da 2 righe di 16 caratteri
La porta A0 provvede alla ricezione dei dati seriali a 4800 baud, Nessuna parità,
8 bit, 1 stop bit a livello 0/5V provenienti dal GPS
Sulla porta A2 è collegato un pulsante la cui pressione permette il passaggio ciclico delle schermate
Le linee B0, B1, B4, B5, B6 e B7 pilotano il display LCD.
P1 regola il contrasto del display.
Nel caso che il vostro GPS emetta un segnale RS232 a livello standard (+/- 12V) è necessario interfacciare
la linea SER_IN, ad esempio, con un MAX232.
La stessa cosa dovrà essere prevista se si vuole interfacciare questa linea per il collegamento di un computer
Dallo schema elettrico si nota che i contatti 1 e 2 del connettore J1 sono liberi, in effetti sul circuito
stampato possono essere entrambi collegati, mediante cavallotti in filo, sia a +5V che a massa, questo per consentire
un'eventuale accensione della retroilluminazione del display tramite pulsante o interruttore.
(dipende dal modulo LCD utilizzato)
Descrizione del Software
Le prime 56 locazioni di memoria dall'indirizzo 0x0C svolgono la funzione di "buffer" per la ricezione dati
ed assumeranno significato diverso secondo si stia considerando le stringe NMEA $GPRMC o $GPGGA.
I caratteri $GP vengono ignorati e si monitorizzano solo i seguenti tre caratteri per selezionare la stringa
desiderata.
Viene anche ignorara la prima virgola di separazione
Subito dopo vengono scritti sequenzialmente i primi 56 byte della stringa comprensivi delle virgole di separazione.
Nella memoria EEPROM sono memorizzate le stringe della schermata iniziale e descrizione dello screen 3.
L'altitudine viene visualizzata solo quando il numero dei satelliti ricevuti è uguale o maggiore di quattro.
La scrittura sul display è organizzata trattando semplicemente il contenuto delle opportune locazioni
di memoria per poi inviare carattere per carattere al display.
Dati visualizzati
Screen 0 ($GPRMC)
Latitudine .xx N/S - Velocità - Longitudine .yy E/W - indicatore validità dati - Gradi rotta
Indicatore validità dati:
Viene visualizzato un "?" se i dati non sono validi mentre per dati validi comparià una freccia "-->"
Ricordo che la velocità nei Gps viene normalmente espressa in Knots ovvero in "miglia marine"/ora
(1 Knot = 1,852 Km/h) in quanto in diretta relazione con i gradi.
Screen 1 ($GPRMC)
ora UTC e data
Screen 2 ($GPRMC)
Latitudine .xxxx N/S - Longitudine .yyyy E/W - indicatore validità dati
Screen 3 ($GPGGA)
N. Satelliti - HDOP - Altitudine - Unita' di misura alt.
Il Layout
Nota Importante:
La versione 1.4 del software dovrebbe adattarsi alla maggior parte dei Gps in commercio a 12 canali.
Non mi illudo sulla totalità.
Oltre all'estensione della visualizzazione dei decimali sullo screen2 ed alcune modifiche dovute alla diversa
composizione dei campi, l'implementazione più saliente è la compatibilità con quei
Gps che non emettono campi dati di lunghezza fissa.
Ringrazio Carlo IW5BPY e Giordano I2CSE per la paziente collaborazione nel testare
questa nuova versione del software mettendo a disposizione, oltre ai gps, il loro tempo.
Le fotografie delle nuove schermate sono per gentile concessione di Carlo IW5BPY.
Carlo, desiderando retroilluminare costantemente il display, ha sostituito lo stadio di alimentazione
basato sul 7805 con un Regolatore Switching.
Nella figura sottostante lo schema elettrico.
... e la foto di come ha ridisegnato il PCB, dove e' stato incorporato anche il MAX232.
Un Update firmato F5ITU:
Anche se con un po' di ritardo, desidero pubblicare l'Up-Grade ad opera di Daniel F5ITU che ha implementato un'ulteriore
schermata basata sulla stringa $GPVTG onde disporre La velocita' in Km/h, oltre che in nodi o Knots, sfruttando quanto
gia' elaborato da qualsiasi unita' GPS.
Visto che in qualche aggiornamento, mi sono dimenticato di inserire il sorgente .ASM, rimedio ora.
L'ultima versione: Scarica (daniel_gps.zip - 9 K : files ASM + HEX)
Di seguito qualche foto della realizzazione di Daniel.
I File
I file costituenti il progetto sono:
sch_disp_gps.(pdf o ps) = Schema elettrico
pcb_disp_gps.(pdf o ps) = Layout PCB lato saldatura scala 1:1 per fotoincisione o fogli blu.
mtg_disp_gps.(pdf o ps) = Serigrafia o montaggio componenti
disp_gps_V14.hex = Programma compilato Versione 1.4 del 16/02/04
I file .pdf sono in formato Acrobat. Scarica (disp_gps_pdf.zip - 47 K)
I file .ps sono in formato Postscript. Scarica (disp_gps_ps.zip - 52 K)
Qui per la sola versione 1.4 del software. Scarica (disp_gps_V14.zip - 2 K)
Torna alla Home Page