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