Go Down

Topic: [Solucionado] Problemas con modulo GPS (Read 2882 times) previous topic - next topic

RodrigoZamora

Sep 07, 2015, 03:28 am Last Edit: Sep 12, 2015, 05:32 am by RodrigoZamora
Hola buen dia colegas.

Pues aqui con mis novatadas de siempre, XD. Bueno pues ando jugueteando con el modulo GPS skm53 creo que tambien conocido con el codigo g229 de skylab. Aqui el datasheet:

http://www.webtronico.com/documentos/SKM53_DS_030609.pdf

En cuanto me lo entregaron segui el ejemplo de aqui:

http://www.nooelec.com/files/SKM53_Tutorial.pdf

Pero solo me imprimia ceros, asi que use tanto el ejemplo simple (simple_test) como el complejo (test_with_gps_device) que trae la libreria tinygps en su version 13, que obtuve de aqui:

arduiniana.org/libraries/tinygps

Pero igualmente nada, el ejemplo simple me advierte que revise mi cableado, pero estoy seguro que esta correcto, puesto que es demasiado simple como para cometer un error.

Mi temor es que me lo vendieron defectuoso o que yo me lo haya cargado cuando le solde la placa que amplia los pines, pues son muy estrechos y no se podria conectar a una protoboard, en esta imagen se muestra la placa de la que les hablo (seguro tiene un nombre pero no lo conozco)

http://www.goodluckbuy.com/images/ebay_goodlucksell_images/sku_86236_2.jpg

Hago la anotacion de que estoy usando un Uno R3 y que cuando uso el modulo gps y lo dejo unos minutos noto que se caliente muy poco, lo que me hace pensar que si esta funcionando, ¿Ustedes que piensan?

Agradezco mucho su valiosa ayuda.

Saludos.

Nota: el cautin que use fue uno de electronica de 40w y la soldadura igualmente es electronica 60/40, pero tal vez me pase de calor.

Nota2: leyendo el codigo estoy seguro de que siempre entra en la validacion de flotante invalido
Code: [Select]

static void print_float(float val, float invalid, int len, int prec) {
  if (val == invalid) { [b]<---- aqui siempre entra[/b]
    while (len-- > 1)
      Serial.print('-'); [b]//modifique aqui los caracteres que imprimia para saber donde entraba[/b]
    Serial.print('B');
  }
  else {
    Serial.print(val, prec);
    int vi = abs((int)val);
    int flen = prec + (val < 0.0 ? 2 : 1); // . and -
    flen += vi >= 1000 ? 4 : vi >= 100 ? 3 : vi >= 10 ? 2 : 1;
    for (int i=flen; i<len; ++i)
      Serial.print(' ');
  }
  smartdelay(0);
}

carmeloco

Es muy facil chequear si el GPS está enviando las sentencia NMEA. Carga al arduino un código vacío como este:

Code: [Select]
void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}


Conecta el pin TX del GPS al pin 1 del arduino, y el pin RX al pin 0 del arduino (si, TX con TX y RX con RX, no me he equivocado). Abres la consola serie, y te deberían aparecer las sentencia NMEA que da el GPS.

RodrigoZamora

Hola gracias por contestar.

Hice lo que me dices y veo que imprime un bloque de cuatro lineas como este:

Code: [Select]

$GPGGA,000215.800,,,,,0,0,,,M,,M,,*46
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,000215.800,V,,,,,0.00,0.00,060180,,,N*4C


Supongo que esta trabajando, pero no tiene buena pinta, muchos valores nulos y lo que creo que son la latitud y longitud estan en ceros. ¿que podria ser?

Saludos.

carmeloco

Voy a ir directo al asunto. La V que aparece en la sentencia GPRMC, significa VOID. Esto quiere decir que no ha hecho el "GPS FIX", o sea, que no está cogiendo satélites.

Queda todavía más claro en la sentencia GPGGA.

Code: [Select]
$GPGGA,000215.800,,,,,0,0,,,M,,M,,*46

El primer dato aqui, es la hora UTC, o sea las 00:02:15.800 . Las siguientes comas, indican que faltan los datos de coordenadas, y lo siguiente que vemos es un 0 en el parámetro "Fix quality", que significa "invalid", y el otro 0, el número de satélites encontrados.

O tienes la antena del módulo en el interior de un edificio, o muy cerca de una pared, aunque esté en el exterior, o en una calle estrecha con edificios altos a los lados. Si es un módulo nuevo, o ha estado apagado más de una semana, sin hacer "fix" (esto de la semana, solo aplica si el módulo tiene batería) tardará sobre los 10-15minutos en hacer "fix" y coger satélites, siempre y cuando, las condiciones en las que esté la antena, sean las idoneas, o sea, cielo abierto.

Para más información:

http://www.gpsinformation.org/dale/nmea.htm

RodrigoZamora

Muchas gracias, habia hecho pruebas afuera pero nunca deje pasar mas de 2 minutos al leer tu comentario lo deje 15 minutos y wuala! esta funcionando.

Gracias.

Saludos.

michaaqui

Tengo problemas con el gps, es el modulo gy-NEO6MV2 y lo que me muestra con el codigo dimple test son simbolos raros.
Así...   
0º,Ôîy`xóQK d8>zÿ€xphsUk`óx6ø
T²Á:uHýd0÷Pª�2Â2ñá:wXýt0·Tñ
T²Á:uHýd0÷Pª�2Â6ñá:uHý
88úA¸¸(pé

Que podría ser? estoy usando un arduino mega 2560 chino y en el pin 4 conecto el tx del modulo y en el 3 conecto el rx del modulo gps.

michaaqui

aciendo la prueba que se menciona en el post de conectar rx con rx y tx con tx entre modulo y arduino y poner el codigo que se menciona me aparece esto..
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,01,03,,,13*79
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,01,03,,,14*7E
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30

Hector_A


Menos mal que el sistema te avisa que intentas escribir en un hilo que no tiene movimiento desde hace más de 120 días.

Te recomiendo abrir un hilo nuevo consultando por tu problema.

Go Up