Autor Tema: INTERPRETAR datos GPS con PIC  (Leído 11037 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
INTERPRETAR datos GPS con PIC
« en: 14 de Julio de 2003, 21:41:00 »
Ya he visto por hay el simulador de GPS que se os ha ocurrido para engañar al tinytrack...

Ahora viene mi nueva idea....
Me gustaría leer los datos que suelta un GPS NMEA...
Y poder deglosar la trama $GPRMC para saber la velocidad a la que va mi coche...

Supongo que con todos los genios que hay por aqui... no será muy dificil...

Muchas gracias a todos los que colaboreis...

Desconectado lu6vg

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 313
RE: INTERPRETAR datos GPS con PIC
« Respuesta #1 en: 15 de Julio de 2003, 22:56:00 »
Hola

Norberto (TODOPIC) lo puso por algun lado en el foro pero no me acuerdo donde. Si pones NMEA en google con un poco de paciencia vas a encontrar la explicacion de las sentencias.

Saludos

Luis

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: INTERPRETAR datos GPS con PIC
« Respuesta #2 en: 16 de Julio de 2003, 14:39:00 »
No... Si las tramas mnea, las entiendo a la perfección....
Pero el proyecto es el inverso al del emulador GPS -tinytrack.
Mi idea es leer por puerto serie del GPS las tramas nmea que tira el GPS, y desglosarlas.... Para saber sus parametros por separado...
Luego con estos parametros... Podemos hacer muchas cositas...
Por ejemplo... MAndar un SMS con las cosdenadas por donde va nuestro coche.... O la velocidad...

Desconectado lu6vg

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 313
RE: INTERPRETAR datos GPS con PIC
« Respuesta #3 en: 16 de Julio de 2003, 18:46:00 »
No entiendo que necesitas

Desconectado jorgeansuini

  • PIC18
  • ****
  • Mensajes: 340
RE: INTERPRETAR datos GPS con PIC
« Respuesta #4 en: 17 de Julio de 2003, 07:44:00 »
Buenas:
Leer los datos del gps e interpretarlos es sencillo, por lo menos latitud, longitud y hora, es mas ,en algun lugrar puse un programa para mostrar la hora UT y la corregida para Argentina, para sacar los datos al celular, hbria que ver como ingresar  el sms en el celular.-
Jorge

Desconectado jorgeansuini

  • PIC18
  • ****
  • Mensajes: 340
RE: INTERPRETAR datos GPS con PIC
« Respuesta #5 en: 17 de Julio de 2003, 15:03:00 »
Buenas:
De primera intención tendrías que tratar de conseguir copiar algunas tramas del mensaje del gps, Yo por algun lado tengo las descripciones del protocolo, solo es cuestión de encontrarlo, pero la idea es ver el protocolo que recibis para poder simularlo con la PC y probar el programa del micro.-
Mi gps solo me tira un tipo de datos.-

Seguimos en contacto
Jorge

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: INTERPRETAR datos GPS con PIC
« Respuesta #6 en: 17 de Julio de 2003, 17:38:00 »
La idea es descartar las tramas que no sean GPRMC
Porque con interpretar las tramas GPRMC, tenemos casi todos los datos que nos pueden ser de utilidad

Se os ocurre alguna forma de leer los datos serie, y descartar los que no sean de utilidad???

Yo tengo info sobre las tramas mnea... Y las entiendo a la perfección....
 
Pero aún, no se como hacer lectura con el pic... Y descartar las tramas que no sean útiles...
de momento, para ir empezando, seria muy util... Hacer un programilla en PBP que lea el gps... descarte las tramas que no sean GPRMC... y las que si lo sean... las tire hacia el puerto serie del PC para poder leerlas con el Hyperterminal... y ver los resultados...

Si esto funciona.... Vamos por buen camino
Una vez que esto funcione... Solo tenemos que hacer algo  para desglosar la trama... y tirar los datos al hyperterminal pero con un formato que no sea mnea...

algo asi como

Latitud xxx.xxxxxxx - Longitud xxx.xxxxxxx - Altitud xxx.xxx
Velocidad xxx.xx  ETC...


A ver si alguien aporta algo de PBP con lo que podamos ir ESTUDIANDO!!!! Y desarrollando!!!

Saludos a todos...

Desconectado lu6vg

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 313
RE: INTERPRETAR datos GPS con PIC
« Respuesta #7 en: 17 de Julio de 2003, 18:51:00 »
Para que te des una idea de como salen las tramas nmea del GPS conectalo al hyperterminal puesto en 4800 8N1 y las vas a ver en pantalla.

Cada trama empieza con $GP y luego GGA o RMC o cualquier otro encaveado valido. POr ejemplo para recibir solamente una sentencia RMC tenes que buscar que te aparezca $GPRMC. Como esos cararteres viene de a uno, tenes que hacer comparaciones anidades es decir ves si es $ luego si es G etc. Cuando se cumplan esas condiciones tenes la sentencia que buscas.

Saludos

Luis

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: INTERPRETAR datos GPS con PIC
« Respuesta #8 en: 17 de Julio de 2003, 20:06:00 »
El problema que tengo, es que no se como las lee el pic
Me he hecho un programilla en VB que me lee las tramas como un hyperterminal....
Y desecha las que no son GPRMC


Lo que hago es crearme un buffer de recepción que recive unos 300 caracteres  cuando se llena.... busco la trama MC
Y luego la desgloso....

Esto en VB es facil... Pero con el pic... No se por donde empezar... Estoy empezando a comprender el PBP...

La entrade de datos al pic, es secuencial??? dato a dato???
por ejemplo???
lee
1.- &
2.- G
3.- P
4.- R
5.- M
6.- C
????
porque asi, creo que no debe de ser dificil Hacerlo....
Pero necesito HELP...


Desconectado lu6vg

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 313
RE: INTERPRETAR datos GPS con PIC
« Respuesta #9 en: 17 de Julio de 2003, 21:09:00 »
Si, es paso a paso, un caracter por vez

Desconectado jorgeansuini

  • PIC18
  • ****
  • Mensajes: 340
RE: INTERPRETAR datos GPS con PIC
« Respuesta #10 en: 18 de Julio de 2003, 06:04:00 »
Bueno, vamos entendiendo, te comento que la instruccion serin en PBP, tiene un modificador "wait", que estera que le llegue cierto tipo de mensaje para recibir luego lo que le sigue del mensaje, asi que te pedirias que copies un trozo de trama de la que te interesa, incluendo unos caracteres de la trama anterior y de la posterior.
Luego hacemos la salida hacia la PC,pero inclui esa trama para ver el mensaje.
Saludos
Jorge

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: INTERPRETAR datos GPS con PIC
« Respuesta #11 en: 18 de Julio de 2003, 14:48:00 »
$GPRMB,,,,,,,,,,,,,*66
$GPRMC,042109,V,2721.0241,S,15303.2849,E,0.0,188.0,261100,11.3,E*46
$GPGGA,042109,2721.0241,S,15303.2849,E,0,0,0.80,0,M,,,,*17
$GPGSA,A,1,,,,,,,,,,,,,1.69,0.80,1.49*0A
$GPGSV,3,1,12,23,56,170,,17,47,113,,21,47,259,,15,43,210,*74
$GPGSV,3,2,12,29,33,342,,3,32,230,,6,23,21,,26,14,140,*46
$GPGSV,3,3,12,9,12,87,,22,10,287,,28,8,255,,31,,215,*47
$GPAPB,,,,,,,,,,,,,,*44
$GPGLL,2721.0241,S,15303.2849,E,042110,V*24

Estas tramas las tira consecutivamente...  Os adjunto un ficherito con una lectura de unos minutos...

de todas estas tramas... la que nos interesa es la
$GPRMC,042109,V,2721.0241,S,15303.2849,E,0.0,188.0,261100,11.3,E*46

El principio de la trama, es el $GPRMC, .... Pero el final, es el checksum del nmea creo que siempre son 4 digitos... Pero el valor es variable...

De momento el valor que me interesa en el que está después de ,E,0.0,  El valor el 188.0
Es la velocidad del vehículo...

Desconectado lu6vg

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 313
RE: INTERPRETAR datos GPS con PIC
« Respuesta #12 en: 18 de Julio de 2003, 18:17:00 »
Usa las comos (,) como ayuda ya que son separadores de campo. Si te interesa la velocidad dejas pasar 8 comas (si no conte mal) y lees todos los caracteres hasta la proxima coma y ya tenes la velocidad

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: INTERPRETAR datos GPS con PIC
« Respuesta #13 en: 18 de Julio de 2003, 21:04:00 »
Para que me puede ser util la velocidad???
Estoy un poco perdidillo con el procedimiento que utiliza PBP

Mi GPS suelta datos NMEA 2.0 con los siguientes parametros serie.
Velocidad: 4800
Bits de datos: 8
paridad: No
Bits de stop: 1
Control de Flujo: No

4800 8 n 1 0

con estos parámetros....
Y los datos que os puse antes en los otros posts...
Como se irian leyendo los datos por serie???

Algun ejemplo???
Help!!!

he estado hechando un vistazo al codigo del simulador gps para tinytrack

SERIN2 PORTA.1,16572,10000,hola,[b0(0), b0(1),b0(2),b0(3),b0(4),b0(5),b0(6),b0(7),b0(8),b0(9),b0(10)]
        SERIN2 PORTA.1,16572,10000,hola,[b0(11), b0(12),b0(13),b0(14),b0(15),b0(16),b0(17),b0(18),b0(19),b0(20),b0(21)]
con este comando, almacenamos en el array B0 los datos que vienen del gps o del simutrack...!!!
como leeriamos los datos 1 a 1 para identificar el simbolo $
y seguidamente
GPRMC ???

Una vez encontrado el principio de la trama... ya debe ser facil desglosar los datos latitud, longitud, altura, velocidad......

ALgun alma caritativa que deje por aqui algo de código de ejemplo???

TNKS

Desconectado jorgeansuini

  • PIC18
  • ****
  • Mensajes: 340
RE: INTERPRETAR datos GPS con PIC
« Respuesta #14 en: 22 de Julio de 2003, 16:41:00 »
Buenas:
Este programita interpreta datos del GPS y los envia convertidos
a una PC,para verlos a través de un programa terminal.-
No he podido probarlo con otros datos que no sea $GPRMC,pero
creo que debe funcionar sin inconvenientes.-
Esta pensado para funcionar con un 16F873.-
Saludos
Jorge
"****************************************************************
"*  Name    : Traductor_GPS                                     *
"*  Author  : [jorge ansuini]                                   *
"*  Notice  : Copyright (c) 2002 [jorge ansuini]                *
"*          : All Rights Reserved                               *
"*  Date    : 20/07/2003                                        *
"*  Version : 1.0                                               *
"*  Notes   :   Lee datos del GPS y la presenta en una          *
"*          :   PC como hora UT,latitud y longitud              *
"****************************************************************
 

   device 16f873
   DEFINE OSC 4
   
    BAUDGPS VAR BYTE
    GPSin VAR PORTB.7     ;entrada de datos
    GPSout VAR PORTc.6     ;salida hacia la PC
   baudGPS = 188 ;4800,8N1 CON MAX232
    "baudGPS CON 16572 ;4800,8N1 sin MAX232
    H VAR BYTE   ;decenas de hora
    M VAR BYTE  ;decenas de minuto
    S VAR BYTE  ;decenas de segundo
    H1 VAR BYTE   ;hora
    M1 VAR BYTE ;minuto
    S1 VAR BYTE ;segundo
    L VAR BYTE ;latitud
    L1 VAR BYTE
    L2 VAR BYTE
    L3 VAR BYTE
    L4 VAR BYTE
    L5 VAR BYTE
    L6 VAR BYTE
   L7 VAR BYTE
   L8 VAR BYTE
   L9 var byte
   Lo VAR BYTE ;longitud
    Lo1 VAR BYTE
    Lo2 VAR BYTE
    Lo3 VAR BYTE
    Lo4 VAR BYTE
    Lo5 VAR BYTE
    Lo6 VAR BYTE
   Lo7 VAR BYTE
   Lo8 VAR BYTE
   Lo9 Var byte
   lo10 var byte
   lo11 var byte

 GPS:
 
   Serin2 portb.7,baudGPS,3000,errr,[ wait("$GPRMC,",H,H1,M,M1,_
   S,S1,L,L,L,L,L,L,L,L1,L2,L3,L4,L5,L6,L7,L8,L9,Lo,Lo,Lo1,_
   Lo2,Lo3,Lo4,Lo5,Lo6,Lo7,Lo8,Lo9,Lo10]
   
   serout2 portc.6,baudGPS,["Hora U.T.> ",H,H1," : ",M,M1," : ",S,S1,13]
   serout2 portc.6,baudGPS,["Latitud>  ",l,l1,L2,L3,L4,L5,L6,L7,L8,L9,13]
   serout2 portc.6,baudGPS,["Longitud> ",lo,lo1,Lo2,Lo3,Lo4,Lo5,Lo6,_
   Lo7,Lo8,Lo9,Lo10,13]
   
  goto GPS


 errr:
        serout2 portc.6,baudGPS,["error"]
      goto gps


 

anything