Modulo SD Memory Card

foto1
foto1
foto1
foto1
foto1
.

GPS Tracker

Mappatura percorso con Arduino GPS

Nel progetto è stata inserita una SD Card collegata ad Arduino tramite lo shield del ricevitore GPS.
La SD Card è composta da un Socket ed una SD da 2 GB recuperati da un vecchio PC.
Nella tabella è riportato il pinout della Sd memory card ed il collegamento con i pin della scheda di Arduino.
Pin SD Memory Card Pin Arduino
1 - CD 10
2 - CMD 11
3 - Vss1 Gnd
4 - Vdd 3,3 V
5 - Clk 13
6 - Vss2 Gnd
7 - Dat0 12
8 - Dat1  
9 - Dat2  

I dati acquisiti dal ricevitore GPS EM406, elaborati dal sofware di Arduino, vengono visualizzati sul display LCD e memorizzati nella memoria SD (latitudine, longitudine, altezza, data, ora e numero di satelliti captati)
Nel test collaudo effettuato il 12-05-2014 sul Colle San Marco su un percorso di 12 km, con un dislivello di 500 m e in circa 5 ore di cammino il GPS Tracker ha acquisito, elaborato e memorizzato sulla SD  3600 punti, uno ogni 5 secondi.

Terminata l'escursione siamo tornati a scuola. Abbiamo estratto la SD dal GPS Tracker ed inserita nella porta SD di un PC. Tramite un software online (gpsvisualizer.com) abbiamo ricavato il tracciato relativo ad i punti acquisiti. I dati e i tracciati (Google maps e Google Earth) ricavati sono visualizzabili tramite la sezione Elaborazione dati di questo sito.

Di seguito è riportato il software relativo alla gestione della SD Card
   

Approfondimento
Le schede di memoria del tipo SD-Card sono diventate in breve tempo di largo utilizzo per immagazzinare dati, fotocamere, palmari e navigatori satellitari.

Il perché è molto semplice: costano poco, hanno un’elevata capacità di memoria, sono di facile gestione e mantengono i dati anche in assenza di alimentazione. In breve, sono diventate il naturale complemento della risicata memoria di cui dispongono i microcontrollori, in tutte quelle applicazioni dove si renda necessario l’immagazzinamento o la lettura di una considerevole quantità di dati.
 Se consideriamo che un buon microcontrollore dispone di circa 1 kB di memoria non volatile, appare evidente l’abisso di prestazioni. La principale applicazione delle SD riguarda essenzialmente i data-logger, ovvero quelle apparecchiature che ad intervalli regolari memorizzano su di un supporto non volatile una serie di dati, come, ad esempio, parametri ambientali, posizioni rilevate da ricevitori GPS (latitudine, longitudine, altezza, data, ora e numero di satelliti captati) ed altro. 
Una SD-Card può essere facilmente gestita (lettura e scrittura) da qualsiasi PC tramite un economicissimo lettore, che nei computer più recenti è già integrato. 
 

 

I DIVERSI FORMATI

 

Le shede di memoria Secure Digital (SD) è il sistema di memorizzazione dati più diffuso in elettronica,di queste memorie SD esistono tre formati con dimensioni fisiche minori:

 

- SD (32x24x2,1mm                                                   

- miniSD (21,5 x 20 x 1,4 mm)   

- microSD (11 x 15 x 1,4 mm)

 

Esistono inoltre degli adattatori per leggere le schede miniSD e microSD come se fossero delle schede SD

 

 

VELOCITÀ DI TRASFERIMENTO

 

La classe della velocità di trasferimento di una SD rappresenta la velocità minima di scrittura su una scheda SDHC espessa in MB/s. Le classi sono :

 

CLASSIFICAZIONI SD

 Di schede SD ci sono diversi tipi (SDHC, SDXC, SDXC UHS-1 e SDHC UHS-1)

 

SDHC

Le SD superiori a 2GB e con una velocità minima di trasferimento di 2,2MB/s vengono chiamate SDHC (Secur Digital High Capacity), queste SD non sono compatibili con i vecchi lettori di SD. La capacità massima delle SDHC è di 32GB presentato da Toschiba per la prima volta nel 2007.

 

SDXC

Le SD con capacità superiore ai 32GB sono chiamate SDXC (Secur Digital eXtended Capacity) e la capacità massima è di 2048GB che sono all' incirca 2TB ed una velocità di 104MB/s.

 

SDXC UHS-1 e SDHC UHS-1

Sono schede retrocompatibili e con velocità di trasferimento di 104MB/s queste si riconoscono dalla sigla UHS-1(Utra High Speed).

 

SD CON ARDUINO

 

Per facilitare l’utilizzo delle SD con Arduino, in commercio sono reperibili diversi Shield i quali permettono un cablaggio veloce della SD su Arduino.
Per il nostro progetto  abbiamo utilizzato una porta SD di un vecchio PC ed una SD da 2GB. Se inseriamo la SD in un PC e andiamo a visualizzare le proprietà della
periferica ci apparirà una schermata come quella nella Fig.

Possiamo leggere oltre alle memoria la formattazione presente, che nel nostro esempio è FAT, che corrisponde ad una FAT16;è molto importante sapere il tipo di FAT 

di una SD, perché non tutte le librerie di Arduino supportano lo standard FAT32.
La File Allocation Table (FAT) è un file system primario per diversi sistemi operativi DOS e Microsoft Windows fino alla versione Windows ME. Windows NT e le successive versioni hanno introdotto l'NTFS e mantenuto la compatibilità con la FAT, così come molti altri sistemi operativi odierni come (Unix, Linux, Mac OS).
La FAT in sè mantiene la traccia delle aree del disco disponibili e di quelle già usate dai file e dalle directory.
La differenza tra FAT12, FAT16, FAT32, ExFAT consiste appunto in quanti bit sono presenti per numerare i cluster (un raggruppamento logico di settori vicini in un disco rigido) del disco.
La prima versione di FAT fu la FAT12, un file system per i floppy-disk, i cui indirizzi per i cluster erano appunto a 12 bit e per questo potevano gestire dischi al massimo grandi 32MB.
Il fi le system FAT è strutturato in quattro sezioni diverse:
• la prima è il settore di avvio
• la regione FAT contiene la mappatura della 
  regione dati.
• la Root Directory memorizza le cartelle ed i 
  fi le presenti nella directory principale ed è presente solo nella 
  FAT12 e nella FAT16, mentre nella FAT32 la 
  memorizzazione avviene direttamente nella 
  regione dati.
• l’area dati, che è quella dove sono memo-
  rizzati i file. 

 

 
Prima di iniziare ad utilizzare la nostra SD con Arduino occorre procurarsi le relative librerie che ci liberano da tutto il lavoro necessario ad aumentare il protocollo di comunicazione
Esistono diverse versioni di libreria per gestire la FAT16 oppure la FAT32, alcune delle quali permettono la gestione del bus SPI ad alta velocità.
Una delle tante librerie è la SDuFAT la quale è compatibile con le SD standard formattate FAT16 con protocollo di comunicazione SPI e permette di leggere e scrivere su file già esistenti. Per poterla utilizzare, scompattate il file e copiate l’intera cartella SDuFAT nella cartella libraria del software Arduino; ed a questo abbiamo la disponibilità della libreria.