Creative Commons BY-NC-ND 2.5Questo sito e tutto il suo contenuto sono distribuiti sotto la licenza Creative Commons Attribuzione - Non Commerciale - Non opere derivate 2.5 Italia e con le condizioni d'uso definite nel disclaimer: siete pregati di leggere entrambi questi documenti prima di usufruire dei contenuti di questo sito. Per alcuni contenuti è necessaria una registrazione gratuita: non è necessario pagare e non è necessario accumulare punteggi per accedere agli articoli e scaricare i sorgenti: basta solo essere onesti. Se volete che questo sito continui a rimanere attivo, a contribuire ogni giorno alla diffusione della cultura libera, non copiate il materiale per ripubblicarlo in altri luoghi. Se volete partecipare su settorezero e rendere le vostre idee, i vostri progetti, fruibili da tutti senza limitazioni potete farlo tranquillamente.

ORbit16™ GPS Logger Bitpack™ – GPS Viewer

Autore: Giovanni Bernardo | Data pubblicazione: 12 febbraio 2012
Categorie: dsPIC / PIC24 GPS ORbit16™

Il GPS Logger Bitpack™ è una scheda di espansione per ORbit16™ che permette di implementare un sistema di visualizzazione delle coordinate GPS su display usando il codice sorgente del GPS Viewer.

Questa scheda, in realtà, è nata per il GPS Logger su Pendrive USB, ma per ora questo progetto è ancora in fase di beta-testing e, ad ogni modo, per il firmware del logger sarà rilasciato unicamente l’HEX ma… non vi disperate: il GPS Logger difatti utilizza le stesse identiche funzioni del GPS Viewer (per il quale è invece fornito il sorgente completo di progetto MPLAB) alle quali è stata quindi aggiunta la possibilità di memorizzare le coordinate su pendrive usb sfruttando le librerie già illustrate (e complete anch’esse di sorgente). In aggiunta sono disponibili anche i sorgenti Eagle del GPS Logger BitPack™.

Il GPS Viewer può utilizzare due diversi tipi di display: un display classico compatibile HD44780 da 4 righe x 20 caratteri (pilotato in I2C attraverso un IO Expander PCF8574) oppure un display grafico 84×48 basato sul controller PCD8544 (Nokia 3310/5110), oppure anche entrambi contemporaneamente!

Nota: il circuito del GPS Logger BitPack™ è fatto per alloggiare unicamente il display grafico Nokia

La selezione dell’uno dell’altro display viene eseguita nel file settings.h a riga 50 e 51:

50
51
#define USE_NOKIA_LCD	// Uncomment this if you want to use a PCF8574-based LCD
#define USE_HD44780_LCD // Uncomment this if you want to use a HD44780-based LCD through a PCF8574 IO Expander

Commentando la riga relativa non vengono più caricate le rispettive librerie, di default le righe non sono commentate per cui è previsto l’utilizzo di entrambi i display.

Il firmware riceve i dati dal ricevitore GPS, elabora la frase $GPRMC, ne estrae i dati e li mostra sul/sui display. Vengono visualizzate le coordinate, l’orario/data inviato dal satellite (opportunamente corretto) e lo stato di acquisizione (Fixed / No Fixed). Le coordinate normalmente inviate dal ricevitore GPS sono nella forma DDMM.MMMM: questo formato è poco utile dal momento che non è utilizzato da nessun programma noto. Il firmware esegue quindi la conversione delle coordinate per esprimerle in decimale nel formato DD.DDDDD°, molto più utile e direttamente utilizzabile con programmi come Google Maps, Google Earth e altri, per cui potete immaginare il sorgente che opportunità vi offre.

Ne approfitto per ringraziare Stefano Saccucci, con il quale abbiamo collaborato tempo addietro per la realizzazione di alcune funzioni di parsing.

In aggiunta, l’orario ricevuto dai satelliti è un orario UTC, per riportare tale orario a quello del nostro emisfero basta agire a riga 52 di settings.h in cui viene impostato il numero di ore da aggiungere/sottrarre:

52
#define HourC	1 // hours to add UTC

Il codice è fatto per lavorare con un ricevitore GPS avente la UART operante a 4800bps, se il GPS in vostro possesso non lavora a questo baudrate, dovete modificare il valore di BRG a riga 152:

152
OpenUART1 (U1MODEvalue, U1STAvalue, 207);

In particolare il valore 207 è calcolato per un baudrate di 4800bps, per valori diversi è riportata la formula nei commenti. La UART è quindi configurata per avere la funzione RX sul pin RP3 (indicato come BP3 su ORbit16™). Non ho configurato la funzione TX perchè non mi serve a nulla inviare dati all’antenna GPS, ad ogni modo se dovesse servirvi, questa configurazione è già pronta ma commentata.

Ho utilizzato un ricevitore GPS EM-406. Tale ricevitore opera a 5V per cui è necessario adattare il livello utilizzando un partitore di tensione. Sul GPS Logger BitPack™ ho predisposto un connettore maschio a 90° che ricalca il pinout dell’EM-406 e che ho siglato come JP1:

Il pin TX del ricevitore GPS viene collegato su R5. Il partitore formato da R5 e R6 assicura che nel punto centrale, nel quale viene collegato il pin RX del picmicro, il livello logico alto di 5V diventi 3.3V e quindi compatibile con l’ingresso scelto. Se utilizzate un ricevitore GPS operante a 3.3V non avete bisogno di ricorrere a questo accorgimento.

Nota: lo spazio sul GPS Logger BitPack™ è fatto per alloggiare l’EM-406 o comunque un ricevitore GPS avente più o meno le stesse dimensioni. Il ricevitore GPS viene fissato con del biadesivo, per ulteriori informazioni sul montaggio potete osservare la galleria fotografica in fondo all’articolo.

Per il collegamento del display HD44780 fate riferimento al manuale di utilizzo della relativa libreria, in cui sono illustrati lo schema e i settaggi. In particolare è necessario un display da 20 caratteri per 4 righe. Se volete usare un display più piccolo dovrete modificarvi il codice perchè mostri meno informazioni. Il pcb del GPS Logger BitPack™ è  fatto per utilizzare unicamente il display Nokia, se volete utilizzare il display HD44780 dovrete realizzarvi da soli una scheda. In ogni caso per gli utenti di ORbit16™ è disponibile lo schema in formato Eagle, in questo modo potete modificare il PCB a vostro piacimento e utilizzare quindi altri connettori o altri ricevitori GPS.

Per il collegamento del display Nokia invece i settaggi sono quelli riportati nel file nlcd.h e ricalcano lo schema elettrico del GPS Logger BitPack™:

  • Clock (indicato come CLK o SCLK) su RA1 (A1/P6)
  • Data In (indicato come DIN, DN, MOSI, DATA ecc) su RB0 (BP0)
  • Data/Command (DC o D/C) su RB1 (BP1)
  • Reset (RESET o RST) su RB2 (BP2)

Come ottenere un GPS Logger BitPack™ per ORbit16™

Per questa scheda non ho previsto di farmi realizzare un PCB industriale dal momento che lo scopo di realizzare ORbit16™ nel modo che ho progettato è proprio quello di permettere a tutti di realizzarsi gli accessori in maniera facile. Ad ogni modo se non siete in grado di realizzare la basetta da soli, posso realizzarvela io e spedirla tramite posta ordinaria.

Chi richiede un PCB del GPS Logger BitPack™ per ORbit16™ contribuisce alle spese di gestione di settorezero.com. Il contributo richiesto è di €15, comprensivo di spese di spedizione con posta ordinaria (viene fornito il solo PCB senza componenti). Il PCB è realizzato con il metodo della fotoincisione su basette Bungard FR4, singola faccia, e forato con punte in Widia su trapano a colonna. La qualità ottenuta è visibile nelle foto sotto.

Prima di procedere seguite le istruzioni riportate nella pagina servizi.

Per quanto riguarda i componenti necessari per completare il PCB potete trovarli tutti su Robot-Italy, (ho messo il link  solo per i componenti principali):

  • LCD Nokia 3310/5110 (link)
  • 2x resistenza 330Ω ¼W
  • 2x resistenza 560Ω ¼W
  • 1x resistenza 12KΩ ¼W
  • 1x resistenza 22KΩ ¼W
  • 2x condensatore ceramico 100nF (passo 2.5mm)
  • 2x led 3mm
  • 1x pulsante da pcb 12x12mm (link – quelli che vi avanzano li potete usare per il Joystick BitPack™ :D)
  • 1x pulsante da pcb 6x6mm
  • 1x strip maschio 6 pin angolo retto
  • 2x strip maschio 20 pin
  • 2x strip femmina 8 pin (per il collegamento del display)
  • ricevitore GPS EM-406 (link)
  • cavetto per ricevitore GPS EM-406 (link)
  • connettore adatto da sostituire al cavetto per il gps e innestare nel connettore 6 pin angolo retto

Il ricevitore GPS EM-406 utilizza purtroppo  un connettore particolare ed è necessario un cavetto tipo questo, il cavetto si taglia ad un’estremità e si utilizza un connettore standard a 6 poli con il passo da 2.54mm. Io ad esempio ho utilizzato questo tipo di connettore, ma ho sostituito il maschio con uno strip a 90° in modo che non dia fastidio al display che va montato sopra. Vedete le foto per maggiori informazioni. Ad ogni modo è disponibile il sorgente Eagle per cui, volendo, potete modificare il tutto per utilizzare lo stesso connettore del cavetto e non tagliare nulla.

Per il collegamento/saldatura dei due strip maschio da 20 pin, che servono per il collegamento del BitPack™ su ORbit16™, dovete usare lo stesso sistema che ho illustrato qui.

Link alla pagina ufficiale del progetto GPS Viewer

Il download dei sorgenti è riservato esclusivamente a coloro che hanno acquistato una ORbit16™. Avviso che sono disponibili i nuovi PCB revisione 2A, se siete interessati affrettatevi. Qui maggiori informazioni.

Galleria fotografica

L'articolo ti è piaciuto o ti è stato utile per risolvere un problema? SettoreZero è realizzato soltanto con contenuti originali: tutti gli articoli sono curati con passione dagli autori e nulla viene copiato da altri siti. Supporta e mantieni in vita SettoreZero con una donazione: basta soltanto un caffè o una birra. Puoi supportare SettoreZero anche con uno dei progetti elencati nella sezione servizi o partecipare anche tu con un tuo articolo/progetto personale.

Se desiderate che SettoreZero continui a rimanere gratuito e fruibile da tutti, non copiate il nostro materiale e segnalateci se qualcuno lo fa.

Puoi andare alla fine dell'articolo e lasciare un commento. I trackback e i ping non sono attualmente consentiti.

  1. Ancora nessun commento.

Devi essere collegato per lasciare un commento.

  1. Ancora nessun trackback
settorezero.com e il logo Zroid™ ©2007÷2015 Giovanni Bernardo - E' vietata la copia e la distribuzione anche parziale dei contenuti di questo sito web senza l'esplicito consenso dell'autore.
I contenuti di settorezero.com sono distribuiti sotto una licenza Creative Commons Attribuzione-Non Commerciale-Non Opere derivate 2.5 Italia a cui vanno aggiunte le condizioni d'uso definite nel disclaimer.
settorezero.com e tutti i suoi contenuti sono tutelati dalla legge sul diritto d'autore per cui i trasgressori sono perseguibili a norma di legge. Settorezero fa uso dei cookie leggi l'informativa estesa.
Creative Commons BY-NC-ND 2.5
Il tema di questo sito è basato sul tema Fusion per wordpress, realizzato originariamente da digitalnature e fa uso del plugin Wassup per il computo delle statistiche. Per contattare l'autore siete pregati di utilizzare la sezione contatti.
Per essere aggiornato con tutte le novità di settorezero.com seguici anche anche su Facebook Twitter Tumblr Blogspot Youtube.