venerdì 13 novembre 2015

Nokia Lumia 630 Hard Reset

Il Nokia 630 ha smesso in maniera del tutto improvvisa di rispondere ai comandi (qualcosa mi  dice che Windows non perde il vizio di freezare in modo inaspettato)


L'unico sistema per riconquistare il controllo e' stato effettuare un hard reset. La procedura e' la seguente


  • Spengere il telefono
  • Riaccenderlo con il tasto Vol Giu' premuto e collegando l'alimentazione

a questo punto appare un punto esclamativo sullo schermo. Si procede con la sequenza

  • Vol Su
  • Vol Giu'
  • Tasto accensione
  • Vol Giu'

A questo punto compare l'immagine con gli ingranaggi (vedi foto).
Con questa procedura si ottiene la completa formattazione (non ci sono piu' contatti, foto, messaggi ecc.) ma le foto possono essere recuperati da OneDrive. Si deve quindi riprocedere con tutta la configurazione del telefono come se fosse uscito dal negozio

mercoledì 11 novembre 2015

Vertici IGM e Regione Toscana

Frugando su Internet ho scoperto per caso che nel paese in cui vivo e' presente
Sul sito dell'IGM all'ID 106602 e' presente la scheda di un punto geodetico della rete di raffittimento a 7 Km

Come si vede chiaramente anche dalla nota riportata a margine dell'immagine, la precisione del punto e' al secondo d'arco. Alle latitudine di interesse un secondo di arco di latitudine vale circa 22.3 m mentre un secondo d'arco di longitudine vale circa 30.8 m, una precisione del tutto inutile per utilizzi "seri". All'IGM non sono impazziti, semplicemente per avere dati piu' dettagliati questi devono essere pagati...

Ero gia' pronto all'esborso quando ho fatto una prova sul SIT della Regione Toscana.


Sul tema Punti geodetici di raffittimento 7 Km e' presente un punto a Caldine che ha lo stesso codice di quello del database IGM ma qui le coordinate sono espresse in Gauss Boaga con la precisione al centimetro

In estrema sintesi la Regione Toscana offre gratuitamente la stessa informazione che IGM pone a pagamento

A questo punto rimane la conversione delle coordinate del punto da Gauss Boaga in WGS 84, realizzata mediante il programma Traspunto

Gauss Boaga piane: 1685517.43 E, 4855934.06E
Gauss Boaga geografiche : 43.49566281,-1.08420721
WGS 84 geografiche gradi,primi,secondi: 43°49'58.9742",11°18'25.4385"
WGS 84 geografiche gradi decimali : 43.83304838,11.30706625




Riportando il punto su Google Earth si vede che la georefenziazione delle immagini di Google e' molto, molto buona nella zona di interesse


Dopo aver spostato un po' di erba e scavato un po' ecco il chiodo di riferimento


martedì 10 novembre 2015

Validazione MTK3339 (3)

Seguendo quanto iniziato qui, ho fatto una nuova serie di misure il 6 novembre 2015  (piu' ridotta nel tempo, circa 5000 misure) di giorno in modo da testare il sistema ricarica a pannello solare (misura dalle 12:13 alle  14:41)


La prima novita' e' stata che la qualita' della tramissione radio e' stranamente peggiorata con circa il 7 per mille dei messaggi giunti corrotti (nel dettaglio sono arrivati 5262 pacchetti corretti su un totale di 5655)

Il punto medio e' stato misurato in
Latitudine : 43.8335234
Longitudine : 11.3105038

nella misura precedente il punto medio era
Latitudine : 43.8335196
Longitudine : 11.310521

La distanza tra i due punti e' calcolata in circa 2 m (in realta' il punto era il medesimo per entrambe le misure)

Durante questa prova non e' mai stata attivata la Fix Quality 2

I valori di tensione della batteria sono variabili perche', essendo una misura fatta di giorno, il pannello solare ha funzionato in ricarica. Si vede intorno alla misura 2000 la ricarica del pannello verso la batteria Lipo

Il grafico di quota e' invece (per quanto inutile)


In definitiva l'MTK3339 risulta avere misure confrontabili nell'intorno di un paio di metri abbastanza indipendentemente dalla copertura dei satelliti

lunedì 9 novembre 2015

Gpsbabel

Un paio di comandi per scaricare i dati da un Gps Garmin (in questo caso un vecchio modello con la seriale collegata ad un cavo Serial2Usb). Il Gps deve essere impostato con interfaccia Garmin

Nel primo caso i dati vengono scaricati e salvati sul file dati.nmea in formato nmea (viene scritta solo la stringa $GPWPL e quindi ci sono le informazioni latitudine e longitudine)
gpsbabel -i garmin -f /dev/ttyUSB1 -o nmea -F dati.nmea


Per estrarre altri dati come l'ora di acquisizione ed i metadati del punto (come il nome) si puo' salvare in formato garmin_txt che estrae un csv con tabulatori come separatori

gpsbabel -i garmin_txt,date="MM/DD/YYYY",time="hh:mm:ss xx" -f /dev/ttyUSB1 -o garmin_txt,date="DD.MM.YYYY",datum="WGS 84",dist=m,prec=6,temp=c,time="HH:mm:ss",utc=+2 -F dati.txt

Lo scaricamento dei dati non e' particolarmente veloce. Per 500 punti ci vogliono circa 49 secondi da Garmin V.

Garmin GPS V e raw data

Mi e' stato prestato un Garmin GPS V, un modello piuttosto vecchiotto ed uscito piu' o meno in contemporanea del modello 12XL visto qui.

A differenza del 12XL il modelloV non e' esattamente un modello cartografico ma piu' un navigatore stradale (qualunque cosa volesse dire navigatore stradale nel 1998!!)


Questo Gps monta un software che ricorda molto da vicino i primi Etrex ed ha anche l'opzione WAAS oltre ad una antenna orientabile per mettere il display in orizzontale (uso in macchina) od in verticale.
L'antenna ha una sensibilita' decisamente pessima e bisogna armarsi di pazienza ed un cielo sgombro di ostacoli per ottenere la propria posizione (basta entrare in una via stretta con palazzi alti per perdere immediatamente il segnale)

Il connettore posteriore e' uguale al modello 12XL ed ho quindi provato a vedere se era possibile effettuare una acquisione raw con il programma async.

Il programma e' riuscito ad acquisire i pacchetti (importante che al momento dell'inizio dell'acquisizione il display mostri la scritta indichi GPS 3D) ma al momento della conversione in formato RINEX con la stessa stringa vista nel precedente post, veniva generata solo l'intestazione del file RINEX.
Visto pero' che il software assomiglia all'Etrex ho provato ad aggiungere lo switch -rinex -etrex ed ecco che e' stato generato il file RINEX idoneo per il postprocessing

Per esteso il comando di conversione e' qualcosa del tipo
./gar2rnx_1_48 057615.g12 -f -rinex -etrex -area test

(come curiosita' il file RINEX indica che l'antenna del Garmin V e' una GPS12 a sottolineare la somiglianza tra l'hardware dei due modelli)

giovedì 5 novembre 2015

Arduino Xbee/GPS Solar Powered con ibernazione

Questo e' uno dei progetti piu' completo a cui lavoro da un po' di tempo a questa parte

Si tratta di un sistema GPS con microcontrollore Arduino e trasmissione dati via Xbee con alimentazione da batteria Lipo e ricarica solare

Penna per riferimento di scala sulla sinistra

I componenti utilizzati sono 
- Arduino Uno
- Adafruit GPS Breakeout (gia' visto in questo post)
- Shield Xbee e Xbee (gia' visto in questo post)
- Solar Charger Shield v2.2. (gia' visto in questo post con le modifiche apportate)
- Pannello solare da 1W (8x10 cm)
- Batteria Lipo da 3000 mAh
- Scatola per esterni 10x6.8x5.0 mm
- Accelerometro ADXL335 (attualmente non in uso)


Il sistema in completo funzionamento (trasmissione dati + acquisizione GPS) consuma circa da 50 a 70 mA. Con ibernazione del sistema GPS ed dello XBee scende intorno a 20 mA

La batteria completamente carica misura 4.1-4.12 V; il limite inferiore a cui il sistema continua ad essere operativo e stabile e' circa 3.65 V
In uso continuativo con la tramissione dati ed il Gps accesi si ha un consumo di 0.03V/ora di esercizio
E' piu' difficile sitmare la ricarica derivante dal pannello solare. A sistema spento, quindi solo in ricarica, in un paio di giornate soleggiate di novembre la ricarica e' stata compresa tra 0.1 e 0.2 V per giorno

Nello sketch seguente l'Arduino acquisisce e trasmette per circa 10 minuti i dati GPS (la trasmissione si attiva solo dopo il fix GPS) ed iberna sia il GPS che la trasmissione per circa un minuto. In queste condizioni, senza ricarica solare, si ha un consumo sulla batteria di circa 0.3 V/h.
--------------------------------------------------------------------
#include <Adafruit_GPS.h>
#include <SoftwareSerial.h>

#define XBEE_SLEEP 9

const int analogInPin = A0; 
int BatteryValue = 0;     
float outputValue = 0;

unsigned long delaytime=250;


//GESTIONE DEL RISPAMIO ENERGETICO
// in max_misure c'e' il valore di quante misure consecutive vengono effettuate
// in sleep_time il numero di millisecondi in cui il GPS deve risultare spento
const int max_misure = 600;
int conta_misure = 0;
unsigned long sleep_time = 60000; //in millesimi di secondo

SoftwareSerial mySerial(3, 2);
Adafruit_GPS GPS(&mySerial);
#define GPSECHO  true
boolean usingInterrupt = false;
void useInterrupt(boolean); 



void setup() {
  Serial.begin(9600);
  GPS.begin(9600);
  GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);
  GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ);   // 1 Hz update rate
  GPS.sendCommand(PGCMD_ANTENNA);
  //enable DPGS
  GPS.sendCommand(PMTK_ENABLE_SBAS);
  GPS.sendCommand(PMTK_ENABLE_WAAS);

  useInterrupt(true);
  delay(1000);
  mySerial.println(PMTK_Q_RELEASE);

  //setta il pin 9 come controllo dello sleep di XBEE
  pinMode(XBEE_SLEEP,OUTPUT);
  //mette a ground il pin ovvero sveglia la trasmissione
  analogWrite(XBEE_SLEEP,0);
  //digitalWrite(XBEE_SLEEP,LOW);
}

SIGNAL(TIMER0_COMPA_vect) {
  char c = GPS.read();
#ifdef UDR0
  //if (GPSECHO)
    //if (c) UDR0 = c;  
#endif
}

void useInterrupt(boolean v) {
  if (v) {
    OCR0A = 0xAF;
    TIMSK0 |= _BV(OCIE0A);
    usingInterrupt = true;
  } else {
    TIMSK0 &= ~_BV(OCIE0A);
    usingInterrupt = false;
  }
}

uint32_t timer = millis();



void loop() { 
  if (! usingInterrupt) {
    char c = GPS.read();
    //if (GPSECHO)
      //if (c) Serial.print(c);
  }
  if (GPS.newNMEAreceived()) {
    if (!GPS.parse(GPS.lastNMEA()))  
      return;  
  }

  if (timer > millis())  timer = millis();

  if (millis() - timer > 1000) { 
    timer = millis(); // reset the timer

if (GPS.fix)
    {
     //NOME DELLA STAZIONE
    Serial.print("ST01-");
    
    //carica della batteria
    BatteryValue = analogRead(analogInPin);            
    // Calculate the battery voltage value
    outputValue = (float(BatteryValue)*5)/1023*2;
    Serial.print(outputValue);
    Serial.print("-");
    
    //GPS
    if (GPS.hour < 10) Serial.print("0");
    Serial.print(GPS.hour,DEC);
    Serial.print(":");
    if (GPS.minute < 10) Serial.print("0");    
    Serial.print(GPS.minute,DEC);
    Serial.print(":");
    if (GPS.seconds < 10) Serial.print("0");    
    Serial.print(GPS.seconds,DEC);
    //Serial.print(".");
    //Serial.print(GPS.milliseconds,DEC);
    Serial.print(" ");
    if (GPS.day < 10) Serial.print("0");    
    Serial.print(GPS.day, DEC); Serial.print('/');
    if (GPS.month < 10) Serial.print("0");    
    Serial.print(GPS.month, DEC); Serial.print("/20");
    Serial.print(GPS.year, DEC);

    Serial.print("-");
    /*Serial.print(GPS.latitude,4);
    Serial.print("-");
    Serial.print(GPS.lat);
    Serial.print("-");
    Serial.print(GPS.longitude,4);
    Serial.print("-");
    Serial.print(GPS.lon);
    
    Serial.print("-");*/
    Serial.print(GPS.latitude_fixed);
    Serial.print("-");
    Serial.print(GPS.longitude_fixed);

    Serial.print("-");
    Serial.print(GPS.altitude,1); 

    Serial.print("-");
    Serial.print(GPS.HDOP,1); 
    Serial.print("-");
    Serial.print((int)GPS.fixquality); 

    Serial.print("-");
    if (GPS.satellites < 10) Serial.print("0");    
    Serial.print((int)GPS.satellites);
    Serial.println("-LU");

    //conta_misure++;

    }
    conta_misure++;
     //GESTIONE RISPARMIO ENERGETICO    
    //controlla se e' stato raggiunto il numero limite di misure
    if (conta_misure >= max_misure)
             {
               //se e' stato raggiunto spenge il GPS, attende lo sleep_time e lo riaccende
               conta_misure = 0;
               GPS.standby(); //spenge il GPS
               analogWrite(XBEE_SLEEP,168); //spenge XBEE, 3.3V PWM  
               //digitalWrite(XBEE_SLEEP,HIGH);

               delay(sleep_time); //tempo di standby
               GPS.wakeup(); //risveglia il GPS
               analogWrite(XBEE_SLEEP,0); //risveglia XBEE
               //digitalWrite(XBEE_SLEEP,LOW);

             } 
  }
}
--------------------------------------------------------------------

La ricevente e' un sistema Xbee in modalita' coordinator montato su Xbee Explorer e collegato ad un PC



Lo script per ricevere i dati in Python e' il seguente
--------------------------------------------------------------------
import serial
import sys
s = serial.Serial('/dev/ttyUSB1',9600)

while 1:
try:
if s.inWaiting():
    val = s.readline(s.inWaiting())
sys.stdout.write(val)
    except serial.serialutil.SerialException:
       pass
--------------------------------------------------------------------




Creare un grafico animato con Python/Matplotlib

In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' costituito da dati di Latitudine e Longitudine misurati da un Gps e delimitati da punto e virgola)

Questo sistema puo' essere puo' essere utile per verificare la presenza di un pattern all'interno dei dati




il codice e' auto esplicativo. Tramite Numpy si carica il file csv e lo si trasforma in una matrice a due colonne e poi si passa a Matplotlib (devono essere indicati il numero di dati, ovvero 86, l'intervallo di visualizzazione tra un punto ed il successivo,50, e le dimensioni della finestra di visualizzazione)

------------------------------------------------------
import csv
import numpy
import matplotlib.pyplot as plt
import matplotlib.animation as animation

def update_line(num, data, line):
    line.set_data(data[..., :num])
    return line,

test = numpy.loadtxt(open("tetto2.csv","rb"),delimiter=";",unpack=True)

fig1 = plt.figure()

l, = plt.plot([], [], 'r-')
plt.xlim(438334400, 438336000)
plt.ylim(113104800, 113105400)

line_ani = animation.FuncAnimation(fig1, update_line, 86, fargs=(test, l),interval=50, blit=True)
line_ani.save('gps.avi')
plt.show()
------------------------------------------------------
Attenzione : questo sistema crea un file temporaneo png per ogni fotogramma quindi animazioni molto lunghe possono creare una significativa occupazione di spazio disco 

mercoledì 4 novembre 2015

Validazione MTK3339 (2)

Continuando il discorso del precedente post, e' stata fatta un prova mettendo l'antenna in misura su un tetto per un periodo di circa 9 ore (dalle 21:36 alle 06:39 del giorno successivo) per un totale di circa 24400 misure

Il sensore era attivato per cicli di 10 minuti e poi spento per 1 minuto (non avendo batteria tampone l'MTK3339 di fatto era costretto ad un riavvio a freddo ogni 10 minuti)

Delle misure 

19997 dati sono stati ricevuti con Fix Quality = 1
4393   dati sono stati ricevuti con Fix Quality = 2 (DGPS WAAS)

455     misure con visibilita' di 11 satelliti
3585   misure con visibilita' di 10 satelliti 
5039   misure con visibilita' di 09 satelliti
10067 misure con visibilita' di 08 satelliti
4597   misure con visibilita' di 07 satelliti
645     misure con visibilita' di 06 satelliti



E' abbastanza evidente che la nuvola dei punti e' molto sparpagliato in particolare nell'asse NE-SW

Mediando pero' la nuvola dei punti le misure diventano decisamente piu' ordinate



Organizzando invece i dati in blocchi da 10 minuti (circa 580 misure, come detto ogni 10 minuti il GPS veniva spento e resettato) i dati medi peggiorano nettamente come dispersione



Quindi la misura dipende fortemente dal numero di dati che contribuiscono alla media e sembra essere molto meno influenzata dal numero di satelliti osservati

Mettendo insieme tutte le misure (plottate con Octave visto che 22.000 punti su Google Earth non vengono gestiti) il risultato e' il seguente



Ovviamente il dato in quota e' quello peggiore e non e' di nessun utilizzo pratico (se non una valutazione indicativa della quota)


La quota media e' stimata in 177.1 +/- 6.5 m
Dividendo in funzione del numero di satelliti acquisiti la quota media e' di

07 satelliti : 179.1 +/- 5.5 m
08 satelliti : 174.3 +/- 5.5 m
09 satelliti : 179.6 +/- 5.2 m
10 satelliti : 181.7 +/- 7.8 m
11 satelliti : 183.8 +/- 0.1 m

Il sistema GPS era collegato ad una trasmittente Xbee ed una batteria Lipo per l'alimentazione
La trasmissione radio ha inviato 24400 stringhe di dati con sole 6 stringhe malformattate e quindi scartate

Con cicli di 10 minuti di misura (GPS e XBee accesi) ed un minuto di pausa (GPS e Xbee spenti) il consumo della batteria e' stato sostanzialmente costante su valori di circa 0.03 V/ora.
Il limite a cui il sistema entra in crisi e' indicativamente posto a 3.6 V



martedì 3 novembre 2015

Validazione MTK3339

Continua lo studio sull'MTK3339, il sensore GPS montato su Adafruit GPS Breakout.
Questa volta e' stato messo a confronto con GPS Leica 1200 Differenziale


La procedura prevedeva di misurare due punti, distanti 1 m misurati con rotella metrica, e vedere come si comportava l'MTK3339 (che era configurato con AIC e WAAS abilitati)

Questi sono i dati dei punti ripresi dal Leica. Si nota che l'errore e' dell'ordine dei centimetri

L'acquisizione della posizione dell'MTK3339 e' stata fatta acquisendo circa 1300 misure (circa 25 minuti di acquisizione) e mediando il baricentro delle misure

Punto 1
Per la prima posizione la nuvola dei punti e' piuttosto ristretta attorno al punto medio

Utilizzando la formula della distanza tra due punti su una sfera date le coordinate in lat/lon (in inglese e' harvesine formula mentre in italiano diventa la formula dell'emisenoverso) espressa da

Da Wikipedia vedi la pagina originale per la descrizione dei simboli
(Attenzione: la formula introduce l'ipotesi lavorare su una sfera e non su un'ellissoide per cui deve essere introdotto il corretto valore del raggio terrestre per la latitudine di interesse)

si ha che nella prima posizione la nuvola dei punti la distanza media della nuvola dei punti dal punto medio e' di 1.2 m con una standard deviation di 0.45 m. I dati quindi sono molto stretti intorno al punto centrale con una ellisse dell'errore molto ristretta.

Punto 2
Nella seconda posizione, per motivi ancora da chiarire, la nuvola dei punti e' piu' dispersa con distanza media dalla posizione media di 1.8 m ed una deviazione standard. di 1.4 m


A differenza del caso precedente si vede che il punto medio non e' contenuto ma contornato dalla nuvola dei punti


Mettendo a confronto le posizione relative viste dai due GPS si osserva che i punti dell' MTK3330 sono distanti rispetto al punto vero (o meglio piu' preciso) misurato dal Leica ma la distanza relativa e' simile


Calcolando la distanza tra i due punti misurati con il Leica la distanza e' chiaramente molto prossima ad 1 m (0.9 m per la precisione) mentre la distanza tra i due punti medi e' di 1.6 m (a fronte del valore vero di 1 m)


La misura dekk'MTK non e' precisa ne' accurata rispetto al valore di riferimento ma il valore medio puo' essere utilizzato in modo significativo per la precisione al metro

venerdì 30 ottobre 2015

Pseudo ologramma con Android


Questa cosa e' stata ripostata mille volte su Internet nell'ultimo mese ma vale la pena provarlo direttamente perche':

  1. L'effetto e' decisamente piu' divertente visto dal reale che dai video di Youtube
  2. E' da fare insieme con i bambini




Si parte costruendo un tronco di piramide con le facce trasparenti e senza basi come nelle istruzioni riportate a questo link usando la copertina trasparente di un CD


Un po' di attenzione: c'e' la seria possibilita' di farsi male. Per tagliare la copertina del CD si deve fare molta forza sul taglierino e la superficie e' insospettatamente scivoloso. Basta poco a farsi scappare la mano. E' anche abbastanza difficile fare tagli dritti

Il tronco di piramide deve essere posto al centro dello schermo del telefono



Si deve scegliere su Internet un video Youtube che permetta di visualizzare l'ologramma. Ho trovato questo video (anche perche' e' il piu' vario)


e qui si capisce il trucco. Ci sono 4 animazioni contemporanee, una per ogni angolo di vista
Per una migliore visione si deve scegliere una stanza buia e mettere la luminosita' dello schermo al massimo

A questo punto, per omaggiare Guerre Stellari, e' necessario provare un ologramma della Morte Nera (Death Star) come e' stato visto nel primo film della serie

Immagine dal film
La qualita' e' quella che e' (ovvero pessima) ma quando ero bambino non mi sarei mai sognato di poterlo fare in casa



mercoledì 28 ottobre 2015

Sharp ElsiMate EL-5809 e regolo calcolatore

Per la modica cifra di 10 euro il mio museo di strumenti di calcolo ha avuto due nuovi ingressi
Una Sharp ElsiMate EL-5809 in condizioni perfette con scatola, libretto e custodia (si parla di un oggetto del 1978)


ed un regolo calcolatore tascabile con manuale di istruzione in cui e' riportato l'utilizzo per rilievi tachiometrici (il libro e' del 1940, il regolo dovrebbe essere degli anni 60)



lunedì 26 ottobre 2015

Lighttable editor

Sono stato un utente di CODA, fino a quando ho potuto usarlo licenziato. Adesso pero' sono costretto a trovare un degno sostituto



Per aprire file in modo rapido (ovvero non usando la combinazione Cmd+Shift+O) si puo' usare il Workspace. Per abilitare tale modalita' si preme CTRL+SPACE) e si seleziona Workspace: Toggle Workspace Tree, a questo punto si apre un pannello sulla destra in cui clicccando destro si puo' selezionare
la directory in cui sono contenuti i file del progetto HTML
Un'altra soluzione e' quella di usare CTRL+SPACE e digitare Navigate: Open Navigate


Una volta aperto il sorgente si puo' splittare lo schermo in due porzioni con la combinazione CTRL+SPACE e selezionando Tabset:Add tabset. A questo punto lo schermo si divide in due lasciando una porzione libera a destra. Per visualizzare il browser della pagina html aperta si clicca CTRL+SHIFT+ENTER


Il browser si apre nel settore sinistro..basta prendere il tab dal titolo (nella parte superiore dove compare il nome del file) e trascinarlo a destra. Si avra' cosi' la visione affiancata tra il sorgente ed il browser

Se si modifica la pagina sorgente a sinistra e' sufficiente premere CTRL+ENTER per vedere l'aggiornamento nella parte sinistra

Puo' essere utile aprire nella parte bassa la console in modo da visualizzare eventuali errori. Questa operazione si effettua con CTRL+SPACE e Console: Toogle Console

Altri comandi
CTRL+SEGNO MENO : Zoom out
CTRL+F : Find
CTRL+SHIFT+TAB : cicla fra i tab di uno stesso tabset
CTRL+W : chiude il tab attuale
CTRL+numero : vari al tab numero..


Attenzione : su Mac la combinazione Command (CTRL+SPACE) e' gia' mappata per aprire Spotlight. Dato che non la uso mai ho disattivato lo shortcut dalle Impostazione di Mac/Tastiera/Abbreviazioni


GPS : L1, L1+WAAS, L1+Raw, L1+L2

In questo post vengono riassunte un po' di esperienze su vari tipi di posizionamento GPS con antenne di costo medio e basso (dove per antenna si intende l'accoppiamento della ricevente piu' l'orologio interno al sensore)


(nella figura i risultati di una prova; in giallo i due punti medi di una acquisizione con Garmin 12 XL in modalita' Raw con la sua area di errore in rosso, in blu i dati del Garmin 12 XL in modalita' NMEA e in verde l'area di un MTK3339 in modalita' non WAAS; l'andamento a griglia deriva da una interpolazione delle cifre significative del dato)

Antenna L1 : i ricevitori con antenna L1 (1575.42 MHz) si trovano comunemente per cifre comprese tra i 10 ed i 20 euro. Hanno una connessione seriale con in uscita stringhe in protocollo NMEA e non hanno nessun tipo di correzione. I dati non possono essere post-processati perche' il dato NMEA puro non puo' essere post-processsato in quanto gia' derivante da un algoritmo di calcolo interno al ricevitore che varia da antenna ad antenna e da produttore a produttore. Il sensore MTK3339 senza la correzzione WAAS attivata ha una ellisse degli errori (espressa come standard deviation) pari a circa 3.5 m in Latitudine e 7.5 m in Longitudine (vedi paragrafo successivo per confronto)

Antenna L1 + WAAS : una versione migliorata di un sensore L1 (ma sempre con i limite della non possibilita' di fare post-processing) e' quella che implementa la ricezione dei segnali di correzione (EGNOS per noi europei, WAAS per il Nord America). In caso di funzione WAAS attivata il sensore MTK3339 (Adafruit GPS Breakout) mostra una ellisse degli errori pari a 1.88 m in Latitudine e 0.61 m in Longitudine. Il costo sale verso circa 50 euro. Attenzione : questo dato viene espresso come standard deviation attorno al punto medio e non come nel caso successivo come Sigma95%. Se si osserva la nuvola dei punti la dispersione dei punti e' molto ampia al pari del caso precedente





Antenna L1 + Raw data: in questo caso l'acquisizione non prevede solo la trasmissione delle stringhe NMEA ma anche i dati di pseudorange. Tali dati possono essere post processati e si ha un incremento notevole della precisione. Lo stesso sensore (Garmin 12 XL) fatto lavorare in modalita' NMEA ha mostrato una ellisse degli errori di circa 7 m per asse. In modalita' raw data, con acquisizione corta ovvero inferiore ai 10 minuti non si ha un reale miglioramento della distribuzione dell'errore con assi dell'ellisse intorno a 5-6 m; passando ad acquisizioni piu' lunghe, ovvero oltre l'ora, sono stati misurati errori di 1.2 e 1.1 m rispettivamente su Latitudine e Longitudine. Il costo di un ricevitore L1 con possibilita' di Raw Data parte da 80 euro per andare su qualche centinario di euro

Antenna L1+L2 : e qui, come ho trovato scritto su un forum, bisogna vendersi un rene per fare misure GPS in doppia banda L1 + L2 (1227.60 MHz) perche' i costi vanno verso le migliaia di euro (diciamo a partire da 5000 euro). Il posizionamento e' pero' di estrema di precisione ovvero al centimetro con tempi di acquisizione di qualche decina di secondi

A costi ragionevoli l'unica strada percorribile sembra essere quella di usare un sistema L1+Raw con post processing:

Ho fatto una prova eseguendo in due giorni differenti con lo stesso ricevitore una acquisizione di circa un'ora e 20 minuti

I risultati sono stati
Acquisizione 1 : Lat 43°50'0.5968" +- 2.195 m  Lon 11°18'37.9074" +-1.248 m
Acquisizione 2 : Lat 43°50'0.6584" +- 1.219 m  Lon 11°18'37.7559" +-1.149 m

Si vede che l'area dell'errore (calcolato come 95% Sigma) e' molto modesta. Andando a calcolare pero' la distanza in metri tra i due punti si osserva che e' di circa 4. Considerando l'ellisse dell'errore le due misure, peraltro vicine, non si sovrappongono. Quindi il metodo tende ad essere preciso ma non necessariamente accurato (non ho una antenna L1+L2 per verificare la posizione al centimetro)

LLama3 Anita

A seguito di questo post ho provato a vedere ho provato a vedere cosa accadeva ad utilizzare un modello specifico per la lingua italiana in...