Modulo SD Memory Card

foto1
foto1
foto1
foto1
foto1
.

GPS Tracker

Mappatura percorso con Arduino GPS

In tabella è riportato l'elenco componenti/moduli del GPS Tracker

Arduino Uno rev.3
GPS SHIELD con Ricevitore EM 406a
Display LCD 12864H con controller seriale
Socket per SD
SD 2 GB
Batteria 6v 4,2 Ah
Contenitore in plastica

 

Specifiche tecniche Arduino Uno rev.3
Microcontrollore ATmega328
Tensione di funzionamento 5V
Tensione di Alimentazione (raccomandata) 7-12V
Massima Tensione supportata 20V (non raccomandata)
I/O digitali
14 (6 dei quali con uscita PWM)
Ingressi analogici 6  (Convertitore A/D 10 bit)
Corrente in uscita per I/O Pin 40 mA
Corrente in uscita per 3.3V Pin 50 mA
Memoria Flash 32 KB (ATmega328)
0.5 KB usata bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Velocità di clock
16 MHz

 

Specifiche GPS SHIELD con ricevitore EM 406a

Scheda
La scheda è dotata di connettore per il montaggio del ricevitore GPS 8160-EM406A, una piccola area di prototipazione, lo spazio per il montaggio del modulo GPS UP501 e le piazzole per montare i connettori per l'EM-408 e l'EB-85A. Sulla scheda sono disponibili i pin (RX, TX, PPS, ecc.) del ricevitore GPS, un interruttore ON/OFF per il modulo GPS e un pulsante di reset per Arduino.

Ricevitore EM-406a

  • Chipset GPS a 20 canali SiRFStar III;
  • alta sensibilità (-159 dBm);
  • precisione nella posizione di ±10 metri, 2D RMS e di ±5 metri, 2D RMS;
  • precisione nel calcolo della velocità di ±0,1 m/s;
  • TTFF (Time To First Fix) estremamente efficace anche con livello di segnale non ottimale;
  • Supporta lo standard dati NMEA 0183 GGA,      GSA, GSV, RMC, VTG e GLL;
  • protocollo di comunicazione in logica TTL a 4.800 bps;
  • tecnologia SuperCap che permette una rapida acquisizione dei dati dal satellite;
  • antenna patch integrata;
  • tempo di cold start di 42 s (da spento ad acceso);
  • tempo di hot start di 1 secondo;
  • alimentazione: 4,5 V ~ 6,5 V;
  • consumo: 44 mA;
  • dimensioni di 30x30x10,5 mm.
   
Specifiche Display LCD 12864H con controller seriale

LCD 128x64

 


Controller Seriale per LCD 128x64



LCD 128x64 con Controller Seriale

LCD 128x64
Display LCD grafico 128x64 con retroilluminazione a LED

Alimentazione 5 vdc
Utilizza il controller grafico Samsung KS0108B
Dimensioni: 75 x 52,7 x 12,5 mm.

 

Controller seriale
Controller seriale per display LCD grafici 160x128 pixel o 128x64 pixel. Permette di scrivere del testo, disegnare linee, cerchi, di impostare o reimpostare singoli pixel e cancellare blocchi specifici del display. L'intensità della retroilluminazione e la velocità di trasmissione possono anche essere controllate tramite comunicazione seriale. Per selezionare il display 160x128 o 128x64 basta semplicemente eseguire o meno un ponticello.

  • Alimentazione: 6 -7 Vdc
  • Assorbimento: 220 mA (con retroilluminazione al 100%)
  • Ingresso seriale: 0-5 V
  • Baudrate regolabile: 115200 default con 8 data bits, no parity, 1 stop bit
  • Regolazione del contrasto tramite potenziometro
  • Controllo retroilluminazione
  • Dimensioni: 51x28 mm
Allegati Display LCD 128x64 e Controller Seriale    
  Schema elettrico controller seriale Libreria LCD e Controller
  DataSheet controller Seriale Libreria SoftwareSerial
  DataSheet LCD 128x64    
  DataSheet KS0108B Source Code for ATMega168
 
SD Card 2 GB e Socket

Allegati SD Card 2 GB e Socket
Libreria SD
Batteria 6V 4,2 Ah
Batteria al piombo ricaricabile
6 v 4,2Ah
 
Autonomia Batteria
Il circuito durante il funzionamento assorbe circa 450 mA
 
 
Tautonomia=Ibatteria / Iassorbimento
 
T=4,2/0,45
 
T=9h 15m
 
   

 

 
 
 

Di seguito è riportato un estratto del software di gestione del GPS Tracker. Il software tramite l'IDE è stato compilato e trasferito nella memoria Flash del microcontrollore del modulo Arduino.

 
Il GPS è un sistema satellitare basato su una costellazione nominale di 24 satelliti orbitanti ad una quota di 20.200 Km e con un periodo orbitale di circa 12 ore.
 
La distribuzione dei satelliti nello spazio è tale che in qualsiasi punto della Terra si possono ricevere contemporaneamente i segnali da non meno di 5 satelliti.
I satelliti inviano costantemente sulla terra una serie di informazioni; queste, opportunamente captate ed elaborate, ci permettono di determinare la nostra posizione. Per ricevere ed analizzare i dati serve un GPS receiver completo di antenna, il quale, dopo essersi agganciato al segnale dei satelliti, fornisce sulla sua uscita una stringa di caratteri ASCII (sentenza NMEA) contenenti una serie di dati (posizione geografica, n. satelliti captati, data, ora, ecc).
Se il ricevitore terrestre è in movimento, esempio un’escursione, è possibile registrare, con grande precisione, una serie di punti geografici.
Tali punti elaborati con un software permettono di ricavare una traccia che tramite Google Earth oppure Google Maps è possibile visualizzare il percorso effettuato.
Da questi concetti base è nata l’idea di progettare il nostro GPS Tracker e di testarlo su un percorso di montagna (12 KM, dislivello 500m)
 
In fig.1 è rappresentato lo schema a blocchi del sistema mentre in Fig. 2 lo schema di collegamento tra i vari blocchi.
Figura 1

Figura 2

Il progetto (Fig.2) e composto da vari moduli:

1) Sistema di sviluppo ARDUINO (Cuore del GPS Tracker, nella sua memoria Flash è memorizzato il software di gestione)

2) Ricevitore GPS EM 406 (Riceve e decodifica i dati della sentenza NMEA)

3) Display LCD 128x64 completo di interfaccia seriale  per la visualizzazione in tempo reale di alcuni dati

4) SD Memory Card da 2GB per la memorizzazione dei dati acquisiti e successiva rielaborazione

5) Software di gestione (memorizzato nella memoria Flash di Arduino)

Tramite il menu laterale è possibile consultare in dettaglio i vari moduli.

 

 
In figura lo schema di collegamento tra i vari blocchi.

 

Il progetto e composto da vari moduli:

1) Sistema di sviluppo ARDUINO (Cuore del GPS Tracker, nella sua memoria Flash è memorizzato il software di gestione)

2) Ricevitore GPS EM 406 (Riceve e decodifica i dati della sentenza NMEA)

3) Display LCD 128x64 completo di interfaccia seriale  per la visualizzazione in tempo reale di alcuni dati

4) SD Memory Card da 2GB per la memorizzazione dei dati acquisiti e successiva rielaborazione

5) Software di gestione (memorizzato nella memoria Flash di Arduino)

Tramite il menu laterale è possibile consultare in dettaglio i vari moduli.

 

 

Pagina in allestimento

Display

 

Il Display è un quadrante di forma piatta e sottile e nella sua accezione più comune una superficie su cui vengono rappresentati visivamente immagini o dati forniti  da un'apparecchiatura elettronica  ad esempio, nel nostro caso Arduino.

 

Esistono schermi visivi e  tattili (quelli tattili sono usati dalle persone non vedenti)

  • Gli schermi televisivi e del cinema
  • Il telo in tessuto o materiale sintetico
  • Gli schermi LCD (quelli usati nel nostro progetto)

  

  • Lo schermo del telefono cellulare

 

 Schermi a segmenti

 

Gli schermi più semplici sono i display a segmenti,formati da pochi elementi che compongono uno dei simboli predefiniti,permettono di rappresentare solo cifre decimali o esadecimale,a tale scopo contengono sette segmenti per ogni cifra (oppure otto se si considera anche il separatore decimale).

I schermi a segmenti vengono utilizzati per calcolatrici tascabili,registratori di cassa,orologi digitali,molto usati,generalmente nei registratori di cassa.

 

Schermi a matrice di pixel

 

Un  tipo di schermo definito a matrice di pixel,in dotazione ai computer sono definiti monitor,adottano la tecnologiua a cristalli liquidi (LCD).

Questa tecnologia è inoltre presente nelle bilance elettroniche sono gli schermi alfanumerici monocromatici al plasma, solitamente di colore verde, costituiti da matrici affiancate, ciascuna costituita da 35 punti equidistanti, disposti su 5 colonne e 7 righe, questa tipologia di schermi esiste anche a matrice singola in tecnologia LED; i punti che formano il carattere non sono accesi contemporaneamente, bensì in rapida sequenza, da un circuito multiplexer.

 

Le caratteristiche principali di schermi sono:

  • Risoluzione solo per gli schermi a matrice.
  • Luminosità
  • Contrasto
  • Tempo di risposta (e la somma del tempo per accendere un pixel e del tempo di spegnimento)
  • Angolo di visuale è l’angolo di massimo tra la vista e la perpendicolare allo schermo

I tipi di schermo sono divisi in due parti:

  1. Schermi analogici
    • Schermo a tubo catodico (CRT)
  2. Schermi digitali
  • LED
  • Schermo a cristalli liquidi (LCD) quello che usiamo noi nel nostro progetto
  • OLED
  • Nanotubo 

Il funzionamento del DIPLAY nel nostro progetto

 

 

Nel nostro caso per pitolare il DISPLAY abbiamo avuto bisogno di utilizzare la libreria LiquidCrystal.h che ci permetteva di comunicare in modalità 4 bit o 8 bit,questo vuol dire che per la trasmissione dati possono essere utilizzati 4 o 8 linee di controllo a queste si aggiungono le due linee di controllo: Register Select (RS) e Enable (E) e la linea opzionale Read/Write (RW)utilizzando cosi la modalità a 4 bit,cio comporta l’utilizzo di 6 uscite digitali sulla scheda Arduino.

Dall’immagine tratta dal datasheet,notate che il display è dotato di 16 pin e la numerazione parte da sinistra.

 

 

 Lefunzione dei piedini

 

Pin 1: Vss – collegato al GND

Pin 2: VDD – collegato a +5V

Pin 3: V0 – controllo del contrasto dei caratteri. In genere viene collegato ad un potenziometro o trimmer in configurazione partitore di tensione in modo che possiate applicare sul Pin 3 una tensione che varia da 0 a +5V e al variare della tensione varia il contrasto.

Pin 4: RS segnale di selezione registro – per selezionare il registro nel quale registrare ciò che appare sul display oppure selezionare il registro di funzionamento in cui viene memorizzata di volta in volta l’istruzione da eseguire per il funzionamento dell’LCD

 Pin 5: segnale Read/Write – per selezionare la modalità di funzionamento: lettura/scrittura – collegato a GND

Pin 6: segnale Enable (E) – per abilitare la scrittura nei registri

Pin 7 al Pin 14: linee dati che si inviano o si ricebono dai registri del display. Un valore HIGH (H) indica scrittura (WRITE) del bit nel registro del display, un valore LOW (L) indica un valore letto (READ) da un registro.

 Pin 15: A (Anodo) – piedino a cui collegare una tensione positiva (nel caso del display descritto +4,2V) che serve per la retroilluminazione del display.

Pin 16: K (Catodo) – piedino da collegare a GND per consentire la retroilluminazione.

 

Per il cablaggio dovete fare riferimento allo schema. In ogni caso è necessario effettuare i seguenti collegamenti tra la scheda Arduino e il display LCD:

• LCD RS → pin digitale 12;

• LCD R/W → GND;

• LCD Enable → pin digitale 11;

• LCD D4 → pin digitale 5;

• LCD D5 → pin digitale 4;

• LCD D6 → pin digitale 3;

• LCD D7 → pin digitale 2.

 

Oltre a ciò bisogna provvedere a collegare l’alimentazione

ed il trimmer per la regolazione del contrasto. I pin D0, D1, D2, D3 possono

essere lasciati liberi oppure posti a massa.

A questo punto avete il vostro display cablato col microcontrollore,

ma non ancora programmato; se lo accendete,

non noterete nulla se non dei pixel parzialmente attivi.

Al momento non risulta tarato neppure il contrasto.

Per completezza riportiamo qui di seguito anche tutti i comandi

disponibili in fase di programmazione,come nel nostro caso ci viene riportato

sullo schermo alcuni dati da noi impostati.