Autor Tema: Interpretar GPS  (Leído 2110 veces)

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

Desconectado SickRa

  • PIC10
  • *
  • Mensajes: 1
Interpretar GPS
« en: 11 de Octubre de 2016, 23:36:30 »
Hola!
Quería pedir un poco de ayuda, les comentare lo que sucede. Necesito saber como hacer para tomar los datos de un GPS "ublox neo6m", guardarlos en una variable y mostrarlos en pantalla. Estuve investigando y no encuentro la solución, por esto quiero preguntar si pueden ayudarme.
Estoy usando el Pic 16f877A y,como ya dije, el GPS "Ublox Neo6M".

Aqui hay un codigo que esta en Assembler y sinceramente no entiendo mucho de lo que dice, pero por si les sirve de ayuda:
Código: [Seleccionar]
'****************************************************************
'* 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

Lo que necesitaría es la programación en C, ya que es el lenguaje que comprendo.
Desde ya muchas gracias y espero llegar a una solución.   :)
Graciaaaas ! ^-^

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Interpretar GPS
« Respuesta #1 en: 11 de Octubre de 2016, 23:54:45 »
Citar
Estuve investigando y no encuentro la solución

A que cosa no encontras solucion ?

Seguro que es por la UART, segun el datasheet va a depender de algunos pines los baudios con que se maneje, pero lo mas seguro es que sea 9600

Luego lo que tenes que saber son las sentencias NMEA ya que vas a recibir cosas asi:

Código: [Seleccionar]
$GPRMC,183729,A,3907.356,N,12102.482,W,000.0,360.0,080301,015.5,E*6F
$GPRMB,A,,,,,,,,,,,,V*71
$GPGGA,183730,3907.356,N,12102.482,W,1,05,1.6,646.4,M,-24.1,M,,*75
$GPGSA,A,3,02,,,07,,09,24,26,,,,,1.6,1.6,1.0*3D
$GPGSV,2,1,08,02,43,088,38,04,42,145,00,05,11,291,00,07,60,043,35*71
$GPGSV,2,2,08,08,02,145,00,09,46,303,47,24,16,178,32,26,18,231,43*77
$PGRME,22.0,M,52.9,M,51.0,M*14
$GPGLL,3907.360,N,12102.481,W,183730,A*33
$PGRMZ,2062,f,3*2D
$PGRMM,WGS 84*06
$GPBOD,,T,,M,,*47
$GPRTE,1,1,c,0*07
$GPRMC,183731,A,3907.482,N,12102.436,W,000.0,360.0,080301,015.5,E*67

En C luego tenes que "discriminar" lo demas y separar lo unico que te interesa.

Citar
Aqui hay un codigo que esta en Assembler

Es BASIC ese codigo. Por lo que parece espera por una sentencia GPRMC, los cuales los campos estan definidos asi:

Código: [Seleccionar]
RMC - NMEA has its own version of essential gps pvt (position, velocity, time) data. It is called RMC, The Recommended Minimum, which will look similar to:

$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A

Donde:
     RMC          Recommended Minimum sentence C
     123519       Posicion tomada a las 12:35:19 UTC
     A                Estado A=Activo or V=Cancelado.
     4807.038,N   Latitud 48 deg 07.038' N
     01131.000,E  Longitud 11 deg 31.000' E
     022.4        Velocidad sobre la tierra en nudos
     084.4        Angulo en Grados
     230394       Fecha - 23rd of March 1994
     003.1,W      Variacion Magnetica
     *6A          checksum, siempre comienza con *, para comprobar que la sentencia sea correcta.

-----------------------

Ahora si tu interes es encontrar una libreria que lo haga por vos y no queres "hacer el esfuerzo" entonces no puedo ayudarte en mas nada, ya que no tengo ninguna libreria asi.

Desconectado colotron

  • PIC12
  • **
  • Mensajes: 73
    • Canal de YouTube
Re:Interpretar GPS
« Respuesta #2 en: 12 de Octubre de 2016, 09:33:21 »
Ahora si tu interes es encontrar una libreria que lo haga por vos y no queres "hacer el esfuerzo" entonces no puedo ayudarte en mas nada, ya que no tengo ninguna libreria asi.

De hecho hay montón de librerías por la red...
SickRa busca por Adafruit, Sparkfun, hasta algún vendedor de módulo gps para arduino seguro algo provee. Me extrañaría muchísimo que no encuentres nada.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re:Interpretar GPS
« Respuesta #3 en: 12 de Octubre de 2016, 11:39:01 »
Incluso en este foro algun "gil" debe haber publicado algo:
http://www.todopic.com.ar/foros/index.php?topic=42317.0

Sds.
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Interpretar GPS
« Respuesta #4 en: 12 de Octubre de 2016, 12:18:50 »
Incluso en este foro algun "gil" debe haber publicado algo:
http://www.todopic.com.ar/foros/index.php?topic=42317.0

Sds.

Siempre hay uno  :D.

De hecho hay montón de librerías por la red...
SickRa busca por Adafruit, Sparkfun, hasta algún vendedor de módulo gps para arduino seguro algo provee. Me extrañaría muchísimo que no encuentres nada.

Como decia, YO no puedo ayudarlo por que no tengo ninguna a mano xD, pero nunca dije que no habia por internet. Ademas casi cualquier micro ya posee una libreria para Arduino, es solo buscar y transportar (en caso que sea necesario)
« Última modificación: 12 de Octubre de 2016, 12:21:14 por KILLERJC »