Autor Tema: pic + gps  (Leído 2831 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Ginho_rj

  • PIC12
  • **
  • Mensajes: 87
pic + gps
« en: 30 de Mayo de 2004, 16:33:00 »
oi pessoal estou precisando de um cogigo fonte(em c) para gravar no pic que separe a longitude e latitude atraves das strings que sao enviadas via serial,eu as entendo e entendo o protocolo mas não consegui fazer uma boa função para separa-las,se alguem puder me ajudar, agradeceria




Jorge

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: pic + gps
« Respuesta #1 en: 30 de Mayo de 2004, 23:22:00 »
Tengo un pequeño problema de entendimiento con tu idioma, y no he podido entender realmente que es lo que necesitas..
Si lo que necesitas es interpretar datos GPS, no es demasiado dificil...
Solo tienes que desglosar los datos recividos, y entender un poco el comportamiento del protocolo NMEA, que es el que usualmente usan los GPS.
Como primera apreciación puedo decirte que las tramas nmea, siempre empiezan por $


Desconectado Ginho_rj

  • PIC12
  • **
  • Mensajes: 87
RE: pic + gps
« Respuesta #2 en: 01 de Junio de 2004, 07:04:00 »
sei que o protocolo é o nmea,sei que é mandado uma string a cada 2 segundos ,sei como são essas strings,só queria que alguem me passasse algum codigo que realmente funciona ,pois os que eu fiz não deram certo!ou seja quero um cogigo para separar as strings que tenha funcionado na pratica!


thank you!

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: pic + gps
« Respuesta #3 en: 01 de Junio de 2004, 15:01:00 »
Desgraciadamente, no dispongo de código fuente... Hace ya tiempo hice mis pinitos en VB, pero no se ni por donde anda el código...
Así que empezamos de nuevo...

En primer lugar tienes que leer tramas constantemente, y esperar a la localización de la trama $GPRMC, dado que es la trama que tiene la información mas util....

Ahora mismo no tengo a mano los manuales de GPS, por lo que no puedo pensar en el modo en el que desglosar la trama....

Que valores necesitarías saber???
Longitud, latitud, altura...???
Desglosando otro tipo de tramas, podrías saber hasta los satelites que tienes a la vista, pero creo que es mejor que empecemos desglosando la GPRMC... Y según avance el proyecto, ya iremos viendo.

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: pic + gps
« Respuesta #4 en: 01 de Junio de 2004, 15:04:00 »
ah!!!, se me olvidaba... Yo actualmente, trabajo con PBP por lo que mi ayuda será mas teórica que práctica...
El C lo entiendo, pero no tengo conocimientos de programación para pic....

De todos modos, todos los lenguajes se basan en la misma filosofía, por lo que creo que no será dificil desarrollar el código....

Desconectado Ginho_rj

  • PIC12
  • **
  • Mensajes: 87
RE: pic + gps
« Respuesta #5 en: 01 de Junio de 2004, 22:10:00 »
gostaria de obter a longitude e a latitude!

tentei filtrar a trama:$GPRMC,mas não obtive bons resultados!

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: pic + gps
« Respuesta #6 en: 02 de Junio de 2004, 16:00:00 »
Hechale un vistazo al siguiente link...
aqui tratamos el tema hace tiempo....

http://miarroba.com/foros/ver.php?temaid=898844&foroid=58527


Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: pic + gps
« Respuesta #7 en: 02 de Junio de 2004, 17:11:00 »
vamos a trabajar con la siguiente trama....

$GPRMC,041014.114,A,4026.7332,N,00336.8315,W,18.59,227.90,290403,,*2E

dados mis pocos conocimientos de c para pic, tendrás que ir desarrollando el código y yo revisando la filosofía de funcionamiento...

Yo trabajaría del siguiente modo....
Primero, leería el puerto serie caracter a caracter...
lo primero es localizar el $
después, leería los siguientes 5 caracteres, ylos compararía con GRPMC...
una ves que ya tenemos localizada la trama gprmc, empezamos a desglosarla...
hay dos modos, el primero sería ir descartando caracteres de la trama, dado que las posiciones son fijas... o la segunda, sería ir leyendo caracteres hasta encontrar las comas....
La segunda opción es la que yo usé, dado que no me fío...
de este modo, leeríamos los datos de la trama hasta la segunda coma, y el siguiente caracter sería la "A"... que en cierto modo, nos será muy importante para saber si la trama es valida.....
Creo recordar que la "A" era que la trama es válida, por lo que si el caracter es distinto, ya no seguiremos interpretando, porque la trama no sería válida.

bueno, ya hemos llegado al punto donde detectamos que la trama es válida.... si es así seguimos leyendo... El siguiente caracter, es una "," y en el siguiente, ya empezaríamos con la detección de la latitud....

llegado a este punto, creo que lo mas util, sería almacenar la latitud en un array de 11 caracteres e ir leyendo la trama hasta encontrar la siguiente ","
en la primera posición del array, cabe la posibilidad de que la latitud sea negativa, por lo que el primer caracter sería "-"

-4026.7332,N
para este caso quedaría ordenado el array del siguiente modo
posición    >  0  1  2  3  4  5  6  7  8  9  10
trama        >  -  4  0  2  6   .  7  3  3  2   N

en caso de que la latutud sea positiva, quedaría del siguiente modo
posición    >  0  1  2  3  4  5  6  7  8  9  10
trama        >  4  0  2  6  .  7  3  3  2   N

bueno, de momento no te lio mas....
espero haberte ayudado algo...
Ves preparando algo de código que se adapte a la idea que te doy, y ya vamos desarrollando y buscando errores....



 

anything