Velocità TinyGPS
buongiorno tutti,
sto sviluppando un progetto come tesina per l'esame di maturità di quest'anno che lavora con il gps per la rilevazione di alcuni dati.
il progetto è testato e funzionante tranne per quello che riguarda la velocità.
questa viene rilevata dal gps (em-406a montato su shield gps sparkfun) con il quale mi interfaccio con la libreria tinygps. tutti dati che il gps mi ritorna vanno bene parte la velocità che rimane fissa -1.00 km/h.
qualcuno sa quale può essere il motivo?
il codice per la rilevazione dei dati è il seguente:
ps: se per caso servisse, uso arduino mega e la comunicazione tra shield gps e arduino avviene tramite pin 0 e 1 quindi la seriale fisica classica
sto sviluppando un progetto come tesina per l'esame di maturità di quest'anno che lavora con il gps per la rilevazione di alcuni dati.
il progetto è testato e funzionante tranne per quello che riguarda la velocità.
questa viene rilevata dal gps (em-406a montato su shield gps sparkfun) con il quale mi interfaccio con la libreria tinygps. tutti dati che il gps mi ritorna vanno bene parte la velocità che rimane fissa -1.00 km/h.
qualcuno sa quale può essere il motivo?
il codice per la rilevazione dei dati è il seguente:
code: [select]
void getgps(tinygps &gps)
{
visualizzadati();
float latitudine, longitudine;
float velocita, altitudine;
gps.f_get_position(&latitudine,&longitudine);
lcd.print("coord: ");
lcd.print(latitudine,3);
lcd.print(",");
lcd.print(longitudine,3);
lcd.setcursor(0,2);
lcd.print("alt(m): ");
altitudine=gps.f_altitude();
lcd.print(altitudine);
lcd.setcursor(0,3);
velocita=gps.f_speed_kmph();
lcd.print("km/h: ");
lcd.print(velocita);
}
ps: se per caso servisse, uso arduino mega e la comunicazione tra shield gps e arduino avviene tramite pin 0 e 1 quindi la seriale fisica classica
ho visto dal sorgente che la funzione dovrebbe restituire la costante gps_invalid_f_speed nel caso di dati errati.
e guarda caso tale costante vale proprio -1.0:
se ricevi questo valore può darsi che ci sia qualche problema, altrimenti forse è il gps che non funziona o che non è compatibile?
hai provato anche stampare sulla seriale il dato grezzo che ricevi
code: [select]
float tinygps::f_speed_kmph()
{
float sk = f_speed_knots();
return sk == gps_invalid_f_speed ? gps_invalid_f_speed : _gps_kmph_per_knot * f_speed_knots();
}
e guarda caso tale costante vale proprio -1.0:
code: [select]
const float tinygps::gps_invalid_f_speed = -1.0;
se ricevi questo valore può darsi che ci sia qualche problema, altrimenti forse è il gps che non funziona o che non è compatibile?
hai provato anche stampare sulla seriale il dato grezzo che ricevi
Arduino Forum > International > Italiano > Generale (Moderator: leo72) > Velocità TinyGPS
arduino
Comments
Post a Comment