facultad de ingeniería -...

17
Universidad Nacional de San Juan Facultad de Ingeniería GPS Tracker Informe Proyecto Garcia, Jorge Reg: 23107 Gilyam, Juan Pablo Reg: 23120 Año: 2012

Upload: others

Post on 31-Jan-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

Universidad Nacional de San Juan

Facultad de Ingeniería

GPS Tracker

Informe Proyecto

Garcia, Jorge Reg: 23107

Gilyam, Juan Pablo Reg: 23120

Año: 2012

Page 2: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

Índice

Introducción

Aplicaciones

Objetivos

- Generales

- Específicos

Descripción modulo GPS

Ordenador PC-104

Sistema operativo

Placa Interfaz

- Funcionamiento

- Diseño

Software

API de Google Maps

Pruebas

Conclusiones

Bibliografia

Page 3: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

Introducción

Un GPS Tracker es un dispositivo que utiliza el Sistema de Posicionamiento Global para

determinar la ubicación exacta de un vehículo o persona. Los datos de localización

recibidos pueden ser almacenados dentro de la unidad de seguimiento, o pueden ser

transmitidos a una central remota usando algún tipo de comunicación inalámbrica. Los

datos pueden ser analizados en tiempo real o luego de haberse realizado la toma de

los mismos.

Aplicaciones

Este dispositivo puede ser utilizado para:

- Monitoreo de cargas peligrosas

- Seguridad y control en vehículos de transporte de media y larga distancia

- Monitoreo de vehículos de pasajeros

- Analizar el comportamiento frente al volante de conductores de vehículos de

larga distancia

Objetivo general

Desarrollar el hardware y software necesario para la implementación de un sistema

que sea capaz de leer los datos provenientes de un GPS, almacenarlos y mostrar la

trayectoria en un mapa (Google Maps).

Diagrama en bloques

Objetivos específicos

- Configurar GPS el envió de las tramas necesarias.

- Diseñar una placa interfaz entre el usuario y el dispositivo.

GPS Placa Interfaz Puerto Serie PC Software

Google Maps

Page 4: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

- Instalar un sistema operativo apto para el PC-104.

- Realizar el software encargado de la lectura y almacenado de los datos.

- Generar los archivos necesarios que permitan la visualización del recorrido en

un mapa.

Descripción modulo GPS

El modulo GPS utilizado en el proyecto es el GPS 18-5Hz de la firma Garmin.

El mismo exterioriza la información mediante el protocolo de comunicación RS232.

Este modelo en particular no trae un conector estandarizado, sino que dispone en

cables individuales todas las señales que maneja. De la hoja de datos del fabricante se

extrajo el conexionado del dispositivo.

La forma en que el GPS entrega sus datos es a través del protocolo NMEA (National

Marine Electronics Association). Básicamente consiste en tramas de datos separadas

Page 5: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

por comas (“,”), donde la primera trama es un descriptor de paquete que indica el tipo

de información de la trama.

Es posible configurar en el GPS que tramas se desean recibir. Esto se realiza mediante

un software proporcionado por el fabricante.

En nuestro caso solo son necesarias dos tramas. De ellas se podrá extraer la siguiente

información.

- Latitud

- Longitud

- Altura

- Velocidad

- Señal del GPS.

Mediante este último dato es posible saber si el GPS recibe señal de los satélites. Si no

sucede esto, la información enviada por éste corresponde al último dato válido.

Las tramas enviadas tiene el siguiente formato

Page 6: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

Ordenador PC 104

El computador utilizado para el desarrollo del presente trabajo es una PC de

arquitectura 104, modelo PM-LX-800. Este posee las siguientes características

- Compatible con AMD. Geode™ LX 800 CPU

- Soporta una velocidad de 500MHz en su bus.

- DDR 333 SO-DIMM SDRAM arriba de 1GB

- Compatibilidad completa con IDE, CFII, PCI-104, LAN, y 2 x USB2.0 y x RS-232

- Soporta 24-bit TTL LCD

PC/104 o PC104 es un estándar de ordenador embebido que define el formato de

la placa base y el bus del sistema.

A diferencia de la clásica arquitectura ATX y bus PCI que son usados en la mayoría de

los ordenadores personales, el PC/104 está diseñado para aplicaciones específicas,

como adquisición de datos o sistemas de control industrial.

Page 7: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

La arquitectura de la placa base no es la típica placa de circuitos integrados en el que

van insertados los componentes; en lugar de eso, los componentes se encuentran en

módulos que son apilados unos encima de otros. El tamaño estándar es de 90.17 mm ×

95.89 mm. La altura depende del número de módulos conectados.

Una instalación típica incluye una placa base, conversores analógico-digital y módulos

I/O digitales.

La “PC-104” es una computadora como cualquier otra, solo que mas limitada en

cuanto velocidad de procesamiento y capacidad de manejo de memoria. Es por ellos

que no requiere ningún tratamiento especial. Solo hay que instalarle algún sistema

operativo en una unidad de almacenamiento y esta lista para ser usada como cualquier

otro PC.

Sistema Operativo

Para la elección del sistema operativo a instalar se tuvieron en cuenta varios factores:

-Bajos requerimientos de hardware.

-Libertad para el manejo del hardware.

-Portabilidad.

En una primera instancia se instalo en un disco duro el sistema operativo Windows XP.

La PC funciono correctamente y no hubo mayores complicaciones. Debido a que en

Windows, el acceso a los puertos esta restringido se opto por algún sistema operativo

que contenga un núcleo Linux.

Se examinaron varias distribuciones libres y gratuitas, optándose finalmente por la

distribución Puppy 4.3.1.

Puppy Linux es una minidistribución portátil del sistema operativo GNU/Linux. Consiste

en un CD autoejecutable con un Gestor de ventanas y programas suficientes para

llevar a cabo la mayoría de tareas básicas en un computador. Convierte a la máquina

en una estación de trabajo con aplicaciones para conectar a Internet, navegar

y chatear, proceso de texto, imagen, audio, video y utilidades extras variadas en un

máximo de 48, 64, 128 Megas. Funciona usando la memoria RAM del computador, de

modo que la máquina en donde vaya a ejecutarse debe disponer de 48, 64, 128 megas

o más dependiendo de la versión de Puppy que se quiera usar. Además, permite

instalarse cómodamente en discos duros o pendrives.

Cabe destacar que en esta distribución de Linux siempre se corre bajo la cuenta de

“super-usuario” o “root” por lo que no es necesario ningún tipo de permiso especial.

Page 8: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

Dicho sistema operativo es capaz de instalarse en un pen drive y correr de ahí mismo,

característica que lo hace muy atractivo para nuestra aplicación.

Al utilizar un sistema operativo basado en Linux, se debió programar y compilar

nuestro software de aplicación bajo dicho plataforma. Por cuestiones de comodidad la

mayor parte del software fue desarrollado en una PC portátil con Ubuntu 12.04. Los

detalles finales se terminaron en la PC104.

Para realizar la compilación en Puppy Linux se debió adjuntar en el pen drive el archivo

devx_431.sfs, el cual agrega al sistema las herramientas necesarias para la compilación

y edición de código en C/C++.

Se tuvo que configurar al sistema operativo, para que en el arranque ejecutara el

software desarrollado. Esto se realiza de manera sencilla creando un “link simbolico” o

“acceso directo” en la carpeta /root/Startup. Este puede hacer mediante consola o

bien utilizado el gestor de ventanas.

Placa Interfaz

Funcionamiento

Page 9: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

Esta placa fue diseñada con la finalidad de proporcionarle al usuario una interfaz con la

PC-104. La misma se comunica con la PC a través del protocolo RS-232.

La placa posee dos botones con las siguientes funciones:

- Botón 1: Inicia/finaliza la toma de datos provenientes del GPS.

- Botón 2: Apaga la PC-104 (esta acción no es permitida en el proceso de lectura

de datos)

Además consta de dos led’s que indican en que modo de funcionamiento se encuentra

el sistema. Estos modos se explican a continuación:

- Modo off: El sistema esta apagado. Ambos led’s se encuentran encendidos.

- Modo stand-by: Una vez encendida la PC-104 el sistema ingresa a este modo y

se queda esperando la orden de inicio de toma de datos (botón 1). Si se desea

apagar el sistema se presiona el botón 2. En este modo el led azul se encuentra

apagado y el led verde oscilando.

- Modo lectura: Una vez presionado el botón 1, el sistema comienza la lectura y

almacenado de los datos provenientes del GPS. En este modo el botón de

apagado se encuentra deshabilitado, no permitiendo el apagado del sistema. El

led azul se encuentra apagado si el GPS tiene señal, de lo contrario se enciende

indicando la perdida de la misma (en este caso se debe cambiar la ubicación en

que se encuentra el GPS), el led verde cambia la carencia de oscilación. Para

salir de este modo se debe presionar nuevamente el botón 1.

Diseño

El circuito esquemático de la placa se presenta a continuación:

Page 10: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

Básicamente la placa esta compuesta por dos circuitos integrados:

- MAX232: Se encarga de adaptar los niveles de tensión TTL a RS232 y viceversa.

- CD 4013: Este integrado posee dos flip-flop D en su interior. Estos se utilizan

para producir un cambio de estado de la señal de salida con solo una pulsación

de la tecla, además sirven para filtar el ruido generado por las mismas.

La placa se alimenta con 5v provistos por el puerto USB de la PC-104. Para ahorrar

espacio se diseño en dos plaquetas separadas que se interconectan por medio de dos

tiras de pines como se observa en la siguiente imagen:

A continuación se presenta una tabla que indica las conexiones entre el puerto RS-232

de la PC-104 y la placa interfaz:

Page 11: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

PIN RS232 PLACA INTERFAZ

DTR (out) Led Verde

RTS (out) Led Azul

DSR (in) Botón 1

CTS (in) Botón 2

TXD (out) RX (GPS)

RXD (in) TX (GPS)

Software

A continuación se muestra el diagrama de flujo sintetizado del programa principal:

El programa fue realizado en C++, se utilizo Eclipse como entorno de desarrollo para la

edición, compilación y depuración del mismo.

Page 12: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

Para la realización de las tareas necesarias se diseñaron tres clases, las cuales se

describen a continuación

Clase GPS

GPS void Cargar (string, string)

bool EsValido ()

Esta clase se encarga de guardar los datos provenientes del GPS. Los métodos mas destacados

se muestran en la tabla anterior

- void Cargar (string, string): Este método no retorna ningún valor y recibe dos string

como argumentos. Estos string son las tramas que entrega el GPS. Se encarga de

realizar el parseo de los datos y guardarlos en memoria.

- bool EsValido (): Este método no recibe ningún argumento y retorna un “1” lógico si el

dato es valido (el GPS tiene buena señal)

Clase INTUSR

INTUSR void SetEstadoLed (led,estado)

bool GetEstadoBoton (boton)

string LeerPuerto ()

Esta clase encapsula la placa interfaz de usuario junto con el puerto serie. Para el

manejo del puerto serie se utilizo la librería “libserial”, la cual es de código abierto y

puede descargarse gratuitamente de libserial.sourceforge.net. Hay que tener en

cuenta que esta librería corre solamente en sistemas operativos basados en Linux y

MAC.

A continuación se da una breve explicación de los métodos mas destacados que posee

la clase:

- void SetEstadoLed (led,estado): Este método no retorna ningun valor y recibe dos

argumentos, en el primero se indica que led se desea manejar (azul/verde) y en el

segundo se establece el estado del mismo (encendido/apagado).

Page 13: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

- bool GetEstadoBoton (boton): Este metodo retorna el estado proveniente de la salida

del flip-flop correspondiente al boton indicado en el argumento que recibe el metodo

(Boton1/Boton2).

- string LeerPuerto (): Este metodo devuelve la trama enviada por el GPS.

Clase MiTiempo

MiTiempo bool Existe (directorio)

void Archivo (tipo de archivo)

Básicamente esta clase es la encargada de realizar un ordenamiento a nivel de

directorios de los archivos generados.

- bool Existe (directorio): Este método retorna un “1” lógico si el directorio enviado

como argumento existe, caso contrario devuelve un “0” y el directorio especificado

debe ser creado.

- void Archivo (tipo de archivo): Este método no retorna ningún valor y recibe como

argumento el tipo de archivo a crear (datos/html), el nombre de estos archivos esta

compuesto por la hora inicial y final de la toma de datos , por ejemplo “17:35:12 a

17:46:15”

API de Google Maps.

Google Maps es un servidor de aplicaciones de mapas en la Web.

Una API (interfaz de programación de aplicaciones) es el conjunto de funciones y

procedimientos (o métodos) que ofrece cierta biblioteca para ser utilizado por otro

software como una capa de abstracción.

La API de Google Maps permite al usuario insertar funciones más completas y dar una

mayor utilidad a los Mapas de Google en su sitio web y en sus propias aplicaciones, así

como superponer sus propios datos sobre ellas.

JavaScript es un lenguaje de programación interpretado (no compilado), permite

mejorar las interfaces de usuario en los sitios web. Tiene una sintaxis similar al

Page 14: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

lenguaje C aunque adopta nombres y convenciones del lenguaje de programación

Java.

En la API de Google Maps, existen varios métodos que permiten personalizar los

mapas proporcionados por google. A partir de dichos métodos y estudiando varios

ejemplos, se desarrollo un archivo .html el cual utiliza la API mediante JavaScript.

Para este trabajo se necesita un método que sea capaz de dibujar líneas entre los

puntos recolectados por el GPS. Para ello se utiliza la función “polyline” a la cual hay

que mandarle como argumento los puntos que queremos unir, para ello antes de

invocar dicho método hay que declarar una variable que contenga los puntos leidos.

El software desarrollado se encarga de realizar esta tarea. A partir de un script

“modelo” (adjuntado) el cual es abierto dentro del programa, se insertan los puntos

leidos por el GPS en el lugar indicado. De esta forma se crea un archivo *.html el cual

puede ser abierto con cualquier navegador web disponible. Al abrirse se observa la

trayectoria en el mapa.

Pruebas

A continuación se observan los mapas generados en las distintas pruebas realizadas.

Primer Prueba

La primera prueba del sistema supero las expectativas propuestas, ya que en esta

primer instancia del proyecto se buscaba una correcta generación del mapa donde se

pudiera ver el recorrido del vehículo, también se buscaba que el sistema respondiera

de forma optima a los controles introducidos por el usuario, como el inicio y

finalización de la lectura de datos.

Page 15: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

El problema que se encontró luego de esta primera prueba fue que la trayectoria

dibujada en el mapa no era la esperada, esta presentaba saltos indeseados como se

observa en la siguiente imagen:

Luego de una revisión exhaustiva en el programa se encontró el error, este se producía

cuando se generaba el archivo de los datos leídos, mas precisamente en la precisión

(numero de decimales) con que eran guardados. Si bien el GPS entregaba los datos

correctos, estos al ser grabados en el archivo se truncaban perdiendo la precisión de la

posición. Corregido esto el problema quedo solucionado, consiguiéndose resultados

que se aproximaban más a los esperados. A continuación se observa el mapa generado

una vez corregido el error:

Page 16: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

Conclusiones

Se desarrollo en el presente trabajo un sistema capaz de monitorear la trayectoria de

un vehículo móvil. El sistema es capaz de recolectar la información proveniente del

GPS y generar un mapa con la trayectoria recorrida. Además se desarrollo una

pequeña placa interfaz que permite no tener la necesidad de conectar un monitor,

teclado, mouse ni otro periférico para el comando del sistema, transformándolo así en

un sistema portátil. Tampoco es necesaria la colocación de un disco duro ya que el

sistema operativo puede ser cargado en un pen drive o en una compact flash.

Los resultados obtenidos en las pruebas experimentales son satisfactorios ya que se

aproximan a los valores reales. Es por ello que a los fines de monitoreo el sistema

cumple con las condiciones necesarias para hacerlo.

El sistema tiene la gran desventaja de que los datos tomados son a una frecuencia de

5Hz, lo que lo hace poco viable para aquellas aplicaciones de control en las que se

requieran tiempos de muestreo menores. No obstante esto puede solucionarse

cambiando el modelo del modulo GPS ya que es este quien impone dicha limitación.

El proyecto realizado sirvió para investigar y adquirir nuevos conocimientos en

diferentes temas como: sistemas operativos basados en Linux, programación orientada

a objetos (C++), protocolo NMEA, protocolo RS-232, GPS, etc.

Mejoras futuras

Page 17: Facultad de Ingeniería - UNSJdea.unsj.edu.ar/.../Proyecto_Integrador_Gilyam_Garcia_GPS_Tracker.pdf · un mapa. Descripción modulo GPS El modulo GPS utilizado en el proyecto es el

- Permitir que el sistema pueda ser alimentado dentro de un automóvil

(chamuyar mejor)

- Realizar la transmisión inalámbrica de los datos leidos hacia una central para

permitir monitoreo en tiempo real.

- Mejorar la interfaz de usuario, el agregado de un display LCD que indique en

que modo de funcionamiento se encuentra y la impresión de errores que

pueden ocurrir en la lectura seria de gran ayuda para el operario.

Bibliografía

- Manual de usuario del ordenador PC-104.

- Especificaciones técnicas del modulo GPS Garmin 18-5hz.

- Datasheet MAX 232 y CD4013

- www.wikipedia.com

- www.cplusplus.com

- https://libseral.sourceforge.net

- www.puppylinux.org

- https://developers.google.com/maps/documentation/javascript/