Boletín No. 47
1o. de Marzo de 2015
GEOLOCALIZACIÓN CON BASE EN UN MICROCONTROLADOR PIC18F2520
Julián López M., Jorge López O., Gabriel E. García R.
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
,
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
,
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Posgrado. Centro de Innovación y Desarrollo Tecnológico en Computación CIDETEC
Abstract
Este trabajo se centra en el manejo de un Sistema de Posicionamiento Global (GPS) como herramienta en la ubicación satélite de un determinado objeto a fin de conocer su posición actual así como el recorrido realizado. Con una constelación de al menos 24 satélites en operación sobre la Órbita Media Terrestre (MEO), la constelación GPS consta de 6 planos orbitales con 4 satélites cada uno dispuestos equidistantemente. Bajo el protocolo Asociación de Electrónica de Marina Nacional (NMEA) el sistema GPS obtiene sentencias como: GPRMC y GPGGA que entregan entre otras cosas la altitud, latitud y longitud. La obtención y procesamiento de estos datos son la clave en el desarrollo de la lógica de programación implementada en un microcontrolador y posteriormente enviadas a un ordenador para su monitoreo, rastreo y localización geográfica de forma local y remota por medio de diferentes dispositivos. Logrando como resultados la ubicación y el recorrido realizado de un objeto en movimiento por medio de la API de Google Maps con el uso de marcadores.
Introducción
En el desarrollo e implementación de nuevos prototipos, uno de los objetivos primordiales es la reducción de costos, haciendo uso de componentes altamente utilizados y de fácil disponibilidad, así como de aplicaciones y herramientas de software libre. Un sistema que utiliza la técnica de georreferenciación en base a un sistema de coordenadas geográficas para posicionar ya sea una persona u objeto, demanda el uso del Sistema Global de Navegación por Satélite (GNSS), el cual, requiere indudablemente de una aplicación por software en la que se refleje la ubicación en tiempo real del objeto ya sea en el plano de coordenadas geográficas o cartesianas.
Actualmente, se desarrollan innumerables aplicaciones tanto comerciales como libres que utilicen estos datos, ya sea de manera comercial, para conectar personas y lugares, búsqueda de información en bases de datos, establecer rutas óptimas del punto A al punto B, niveles de tráfico, relieves, etc., así como en el ámbito científico en herramientas en la geociencia e ingeniería civil entre otras.
Desarrollo.
Con base en la implementación del módulo GPS MTK3339 y el microcontrolador PIC18F2520 mostrados en la figura 1.1. Los detalles técnicos más relevantes se describen en la tabla 1. La hoja técnica del GPS puede ser consultada en el siguiente enlace: http://www.adafruit.com/product/746
Figura. 1.1. Módulo GPS con protocolo NMEA. |
Al analizar las sentencias NMEA de salida del módulo en una terminal de comunicación con el puerto serial de un PC, se destaca la sentencia de coordenadas GPGGA (Global Positioning System Fix Data) que proveen la latitud y longitud necesarias para localizar relativamente un objeto en el globo terráqueo.
La necesidad de esta información entre una gran cantidad de datos, conlleva el uso de un dispositivo electrónico de control que logre aislar ciertas coordenadas. Una solución que requiere recursos mínimos son los microcontroladores, ya que se necesita leer cada una de las tramas de manera serial y analizar uno a uno los bytes de caracteres alfanuméricos hasta encontrar el comando $GPGGA. A partir de esta cadena cada uno de los datos es separado por una coma (,). Los datos de la segunda a la cuarta posición son los que se toman en cuenta, ya que contienen las coordenadas de geolocalización en el formato de grados y minutos que son la latitud y longitud con su correspondiente notación NSWE cada uno respectivamente. Un ejemplo de esta trama de datos es la siguiente:
,1930.1775, N, 09908.8175, W
Para la conversión de grados a decimal tenemos:
Donde:
LaD ≡ Latitud en grados
LoD ≡ Longitud en grados
N ≡ Norte
E ≡ Este
S ≡ Sur
W ≡ Oeste
El resultado se muestra en coordenadas decimales:
LaD = +19.502958 y LoD = – 99.146958
El diagrama a bloques de la Figura. 1.2 muestra la tarea del microcontrolador de leer cada carácter en la secuencia DDMM.MMMM, NE, DDDMM.MMMM, SW, donde D es grados y M es minutos, para ser enviados a la PC y realizar la conversión como requisito por parte de la herramienta de visualización para el despliegue de coordenadas.
Figura. 1.2. Algoritmo de obtención de coordenadas satelitales. |
El microcontrolador PIC obtiene las coordenadas satelitales del GPS, envía esta cadena de caracteres por el puerto serial a un convertidor USB TL-232-3V2 que genera una conectividad serial a través del puerto COM y de esta manera acceder a la transmisión de datos por una terminal hacia la PC. Posteriormente, mediante el lenguaje de programación interpretado Python se establece una comunicación serial para recibir las coordenadas en grados y minutos y realizar la conversión a decimales.
Una vez que se tiene la conversión de estos nuevos datos, se crea y abre un archivo de texto en formato txt, en el cual se escriben las nuevas coordenadas de latitud y longitud en decimal en el siguiente orden: +/-latitud,+/- longitud y se finaliza con fin de cadena seguido del cierre del archivo. Este procedimiento se repite continuamente con cada nueva lectura del GPS, agregando nuevas coordenadas al archivo de texto.
En la Figura. 1.3, se observa la ventana del símbolo del sistema mostrando los resultados obtenidos por el intérprete Python. El programa realiza la conversión de las coordenadas y genera el archivo de texto. Al momento de la ejecución, se reciben las coordenadas del microcontrolador, visualizándose en la terminal.
Figura. 1.3. Creación del archivo de texto con conversión de coordenadas. |
Por otro lado en el desarrollo de la aplicación, se optó por utilizar la API (Application Programming Interface) de Google Maps en una página web como interfaz de visualización. La razón principal es debido a que permite superponer datos propios sobre un mapa de Google Maps y tener la cobertura global de localización en el mundo, además de ser gratuita y de acceso libre.
La programación de esta aplicación involucra la combinación de herramientas de software como html, java script y php, en conjunto de los servicios web de la API de Google Maps por medio de una interfaz HTTP que proporcionan datos geográficos para las aplicaciones de mapas, además de la lectura constante de un archivo de texto que contiene la lista de coordenadas que se actualiza con cada nuevo dato.
Como pruebas de rendimiento, eficiencia y sensibilidad de recepción del prototipo para la obtención de coordenadas geográficas, se realizó un recorrido por la Unidad Profesional Adolfo López Mateo, Zacatenco D.F. La Figura. 1.4 visualiza la trayectoria estimada realizada en automóvil a una velocidad promedio de 20 km/h en aproximadamente 25 minutos. La navegación se realiza sin conexión a la red de internet, utilizando únicamente los datos proporcionados por la red satelital.
Figura. 1.4. Trayectoria recorrida en automóvil. |
Finalizado el recorrido, se obtuvo el archivo de texto con una lista de 480 coordenadas que posteriormente fue descargado para ser visualizado por la API de Google Maps por medio de marcadores. Un acercamiento del recorrido realizado muestra la dispersión de los marcadores debido a la variación de velocidad. En la Figura. 1.5 se puede apreciar que las lecturas corresponden a la trayectoria.
Figura. 1.5. Grabación de recorrido por GPS. |
Conclusiones
Este desarrollo es la base para aplicaciones de rastreo y localización de vehículos particulares y transporte público donde el usuario puede consultar la posición y la ruta recorrida por medio de un dispositivo móvil o fijo con conexión a internet.
Por medio del posicionamiento se puede obtener las distancias y tiempos estimados de llegada a estaciones o tener la localización del medio de transporte de interés, en principio este trabajo muestra la recolección de puntos por medio de marcadores en la API de GoogleMaps que nos permiten trazar la trayectoria recorrida de forma local. Sin embargo, el objetivo siguiente es la implementación de un módulo GSM para el envió de las coordenadas desde cualquier lugar donde se localice el medio de transporte y con ello obtener de forma remota las posiciones mostradas en el presente trabajo y con ello obtener un sistema que permita la gestión del transporte público o en su defecto sistemas de rastreo y localización de sistemas vehiculares. Este mismo concepto se puede implementar en sistemas de seguridad, monitoreo y de acceso.
Referencias
- Parthasarathy, J. (2006). Positioning and navigation system using GPS. International Archives of the Photogrammetry, Remote Sensing and Spatial Information Science, Volume XXXVI, Part 6.
- Manganakar, N., Pawar, N. y Pulaskar, P. (2013). Real time Tracking of Complete Transport System. National Conference on New Horizons in IT - NCNHIT 2013: 122 – 125.
- E. D. Kaplan. (1996). Understanding GPS: Principles and Applications. Artech House Publishers, ISBN 0890067937.
- Verma, P. y Bhatia, J. S. (2013). Design And Development Of GPS-GSM Based Tracking System With Google Map Based Monitoring. International Journal of Computer Science, Engineering and Applications (IJCSEA) Vol.3, No.3.