Como interpretar una trama GPS
DISPOSITIVOS GPS
Los dispositivos GPS han ganado gran aceptación en el mundo de las telecomunicaciones y el control, y no es por menos pues el hecho de conocer con certeza la ubicación de un dispositivo, vehículo, persona o hasta las mascotas es una necesidad que tenemos. Pero para los estudiantes y los desarrolladores trabajar con módulos GPS ha sido un reto debido a la cantidad de formatos que se manejan y las tramas un poco confusas que según la marca del dispositivo que usemos tendremos para analizar. En este articulo de forma resumida aprenderemos como seleccionar el dato pertinente del GPS y hacerle el procesamiento para ubicar nuestra posición en Google Maps.
Así lucen los datos que nos arroja un GPS de Quectel cuando lo leemos por puerto serie, como vemos es una serie de datos que nos pueden confundir un poco más a la hora de leerlo con un micro-controlador u Arduino. Primero que todo debemos entender algo del lenguaje, en la industria electrónica todos los GPS devuelven tramas de datos con sus separadores reglamentarios y letras de identificación, a este formato se le denomina NMEA 0183 y es el que se usa a nivel mundial en todos los dispositivos de navegación satelital. Como vemos hay distintos datos que nos devuelve el GPS pero para no confundirnos nos concentraremos en dos principales que son $GNRMC y $GNGGA para tener estos dos datos principales debemos o bien configurar el GPS por comandos AT para que nos entregue solo los datos útiles, o seleccionarlos mediante programación buscando los encabezados respectivos.
Entendiendo la trama $GNRMC
$GNRMC,203544.000,A,0438.9198,N,07404.3962,W,0.00,247.85,150517,,,A*62
$GNRMC, nos indica el tipo de dato que estamos captando en la línea de lectura nótese que acá cada dato va separado por comas esto debe ser tenido en cuenta a la hora de hacer la programación para buscar el carácter “,”. 203544.000, nos indica la hora en coordenadas universales es decir en este caso tendremos las 20horas, 35minutos y 44.00 segundos, como vemos de primera mano con el GPS tendremos un reloj de alta fidelidad al cual simplemente le ajustaremos la zona horaria sumando o restando según la zona horaria donde estemos ubicados. A o V nos indica el estado de nuestra conexión GPS si es activa (A) o sin señal (V).
Ahora miremos la trama de ubicación 0438.9198,N,07404.3962,W esta trama nos indica nuestra ubicación en latitud y longitud.
La latitud es 4 grados y 38.9198 minutos en el hemisferio Norte, de forma similar la longitud es 74 grados y 04.3962 minutos en el hemisferio oeste. Acá debemos ser cuidadosos pues si colocamos estos datos en Google Earth o Maps no los lograra interpretar esta coordenada (generalmente google maps espera un numero en este formato 4.648690, -74.073193), y la razón es debido al formato de coordenadas que los GPS traen se deben convertir los minutos a decimales de grados, en ese sentido se divide la latitud 38.9198/60=0.648663 (dado que un grado tiene 60minutos), y de igual forma dividiremos la longitud así 04.3962/60=0.07327, luego mediante programación se concatenaran los números enteros con los números obtenidos luego nuestra lectura quedará:
0438.9198,N,07404.3962,W 04.648663, -74.07327
Si somos observadores vemos como a la longitud se le agrego un signo menos y es debido a estar ubicados en el oeste (W) de igual manera si estuviéramos en el hemisferio Sur (S) deberíamos agregarle a la latitud un signo negativo esto es simplemente para corresponder al formato que maneja Google, cuando se esta ubicado en el norte (N) y al este (E) no se le agrega nada.
Los siguientes dígitos 0.00 indican la velocidad experimentada en nudos para nuestro caso como estuvimos estáticos nos registra 0.
Los siguientes dígitos 247.85 es un ángulo de seguimiento, útil para estimar posiciones siguientes, y finalmente 150517,,,A*62 indica los últimos datos nos indican la fecha en formato DD/MM/AA y la variación magnética.
Función de la trama $GNGGA
$GNGGA,203544.000,0438.9198,N,07404.3962,W,1,10,0.94,2597.0,M,3.4,M,,*69
Así pues si ya tenemos los datos más importantes en una sola trama, pero podemos también manejar una complementaria si lo necesitamos, en ella tenemos los mismos datos como la hora, la ubicación, pero los siguientes dígitos después de la ubicación indican datos útiles como:
1, indica si la ubicación es arreglada si es uno o no si es cero. El siguiente numero 10 indica la cantidad de satélites que tenemos de seguimiento para este caso tenemos 10. El siguiente 0.94 indica la dilución horizontal de la posición. Los siguientes dígitos 2597.0,M indican la altitud en metros sobre el nivel del mar esto es sumamente importante en sistemas de telemetría aéreos o para analizar los datos de vuelo de por ejemplo un Dron. Los siguientes números 3.4,M indican una altitud relativa de la ubicación útil en aplicaciones de aproximación en la tierra mediante una elipsoide.
Así pues tenemos una revisión de los datos más usados de un GPS para calcular la posición y así poderlos implementar en una aplicación practica.
Si este articulo te resulto útil, por favor déjanos tus comentarios preguntas o sugerencias para artículos futuros.
- Publicado en Módulos RF, GSM, GPS