Gps e SD: salvare le coordinate

Come primo passo per realizzare un datalogger mi sono concentrato sul gps ( 8160-EM406A) e salvare le coordinate che esso scarica con le relative informazioni sulla SD card attraverso la SD-Shield ( 7300-GPSSHIELD ).

Prima di tutto mi sono informato sul protocollo di comunicazione utilizzato dal gps, ovvero NMEA. Una celere spiegazione su wikipedia.

 

Per controllare il gps da Arduino bisogna scaricare la libreria TinyGPS.h e studiando un attimo lo sketch di esempio risulta molto semplice il suo utilizzo.

Ci si è posti poi il problema di ogni quanto salvare la coordinata utile a costruire il nostro itinerario finale. Utilizziamo cosi una semplice formula matematica (Pitagora) per calcolare la distanza che vi è tra un punto ed un altro.

d = \sqrt{(x_0 - x_1)^2 + (y_0 - y_1)^2}

Il nostro sketch presentarà quindi le seguenti righe di codice:

rad1 = (previous_flat-flat);
rad1 = pow(rad1,2);
rad2 = (previous_flon-flon);
rad2 = pow(rad2,2);
result = sqrt(rad1+rad2);

previous_flat rappresenta la coordinata precedentemente salvata e flat la coordinata in cui ci si trova al momento. Il discorso è analogo per flon e previous_flon.

Provandolo poi in macchina si è impostata una distanza di 200m circa, pari ad un result=0.00100. Se si ottiene questo valore allora si salva la coordinata sulla SD in un file prova.txt.

myFile=SD.open(“prova.txt”,FILE_WRITE);

myFile.print(flat,5) // il 5 indica il numero di decimali da salvare

myFile.print(flon,5)

myFile.close();

Come lavoro finale mi viene anche chiesto di presentare nell’itinerario il segnapunto con una descrizione contenente orario e data del salvataggio.

Lo sketch lo posterò a lavoro concluso o a fine stage.

Il prossimo passo è studiare il formato kml e gpx per ricreare un itinerario, l’utilizzo di un accelerometro per capire quando si è in movimento ed la produzione del file .kml o .gpx.

Nel prossimo articolo metterò la struttura già trovata dei file e spiegherò i problemi riscontrati fino ad ora.

Quella che pensavo fosse la parte più semplice ( produzione file kml o gpx ) si rivelerà la più difficile e tutt’ora irrisolta.

Daniele Ruffo

Lascia un commento