"Plataforma GPS - 8bits" es un entorno de desarrollo embedded diseñado para permitir la implementación de dispositivos autónomos que necesiten de la información de un GPS para alguna de sus funciones ( geolocalización, tiempo, velocidad ...). Este entorno de desarrollo se compone de:

    -Placa de desarrollo basada en el microcontrolador de 8 bits AVR-ATmega.
    -Un pequeño módulo receptor GPS que va montado en la misma placa de desarrollo.
    -Aplicación de programación del microcontrolador ( TelecargaAVR ).
    -Librerías con funciones y drivers para el control de los periféricos
    -El entorno de programación C open source WinAVR .
Placa de desarrollo con el módulo GPS
Sistema registrador de trayectorias montado sobre la placa de desarrollo

Aunque este proyecto lo realicé durante el año 2004, el éxito que hoy están teniendo algunas plataformas de desarrollo open source basadas en el microcontrolador AVR-ATmega o PIC me ha hecho pensar que quizás sea de interés a la comunidad de aficionados a la electrónica y por ello he decidido colgar toda la información de este en Internet. En realidad el proyecto fue mi trabajo de final de carrera el cual se puede descargar en la sección de Descarga de ésta misma página ( este contiene una descripción detallada del sistema, esquemáticos etc.). En esta web sólo realizo una descripción general del proyecto.

El objetivo inicial del trabajo de final de carrera, era desarrollar un dispositivo autónomo, basado en la tecnología GPS, capaz de registrar en una memoria la trayectoria de un móvil, pero debido a que, por entonces, en el mercado ya existían implementaciones comerciales que ofrecían este servicio decidí que sería más interesante crear una plataforma genérica y polivalente que permitiera desarrollar cualquier aplicación básica GPS , y luego aprovechar esta plataforma para desarrollar un montaje que satisfaciera las intenciones iniciales del proyecto. Por aquella época algo así era relativamente raro, al menos en el ámbito de la electrónica amateur.

Así, el proyecto ,consistió en dos fases:

- La primera fase consistió en implementar la plataforma de propósito general, programable en placa, para el desarrollo de aplicaciones GPS sencillas, es decir la "Plataforma GPS-8 bits". La placa de desarrollo resultante fue algo muy parecido a lo que ahora se vende bajo el nombre de Arduino pero con un GPS.

- La segunda fase consistió en utilizar la plataforma de propósito general, para implementar el sistema de registro de trayectorias que inicialmente se quería diseñar.

 
La placa de desarrollo contiene los elementos básicos a partir de los que el usuario debería poder construir "su sistema". Estos elementos básicos son: el microcontrolador, el módulo GPS, los adaptadores de señal y el circuito de alimentación. La idea era ofrecer un conjunto autónomo y portátil con una capacidad de proceso suficiente para realizar tareas básicas (entiéndase cálculos sencillos). Se listan a continuación algunos de los elementos que se escogieron:

- El microcontrolador: la placa tiene dos "footprints" para poder montar alguno de los siguientes microcontroladores: AVR-8515 (DIP), AVR-8535 (DIP), ATMega 64 (TQFP) o ATMega 128(TQFP). A parte de cumplir los requerimientos técnicos iniciales, la principal ventaja de estos microcontroladores es que están muy bien documentados y disponen de un entorno de desarrollo gratuito muy completo ( WinAVR). Los proyectos con menos requerimientos de memoria pueden usar alguno de los 2 primeros microcontroladores, los cuales son relativamente completos y bastante fáciles de encontrar en las tiendas de electrónica. Los proyectos con necesidades de memoria un poco mayores pueden usar los 2 últimos, los cuales deberían ser mas que suficientes para realizar aplicaciones "sencillas". EL PCB dispone de 2 conectores tipo BUS que permiten acceder a los pines de E/S de los diferentes microcontroladores.
La placa con un AVR-8515
La placa con un ATmega 64
- El receptor GPS: el módulo seleccionado fue el receptor embedded Lassen SQ de Trimble el cual se conecta al microcontrolador a través del canal serie. Es a través de este canal por el que el GPS envía toda la información de localización, velocidad, satélites ... al microcontrolador. Este se ha utilizado en modo NMEA, y para ello se tuvo que cambiar su "modo por defecto" de TSIP a NMEA mediante la aplicación TsipSHOUT. A pesar de que Trimble ofrece la aplicación TsipCHAT para la configuración del modulo, esta dio algunos problemas y al final opté por hacerme yo mismo la aplicación de configuración ( TsipSHOUT ). Como se ve en las fotos, también se incluyó un portapilas para mantener la memoria del dispositivo ( información de efemérides y almanaque ) mientras la placa no está alimentada.
La antena
El módulo GPS embedded de Trimble, LassenSQ
- Canal de debug RS-232: la placa tiene un transceiver MAX232 para poder conectar el micro al canal RS-232 del PC y así poder debugar durante el desarrollo. Como el AVR-8515 y el AVR-8535 tienen un único canal serie, se tubo que montar un pequeño "sistema multiplexor rupestre" basado en jumpers que permite configurar el destino de las líneas RX-TX. Mediante este se puede utilizar el canal de recepción del microcontrolador para recibir los mensajes del GPS, y el de transmisión para enviar al PC.
 
- Alimentación: para la alimentación se utilizó un circuito muy sencillo basado en el regulador lineal LM7805.

La placa de desarrollo GPS
"Pltaforma GPS-8 bits"

Como se ha citado en la Introducción, una vez la placa de desarrollo estuvo terminada, esta se utilizó para realizar un registrador de trayectorias. Su finalidad fue comprobar el comportamiento y prestaciones reales de la "plataforma GPS -8bits" . El hardware extra, necesario para el sistema registrador de trayectorias fue:

El sistema registrador de trayectorias montado sobre la placa de desarrollo GPS

El sistema registrador de trayectorias montado sobre la placa de desarrollo GPS

- El LCD: para mostrar los diferentes menús y opciones de configuración del sistema así como también visualizar las diferentes variables GPS ( posición, latitud, longitud, altitud, velocidad, hora, satélites visibles etc.). Se escogió un LCD estándar HDS-44780.
- La memoria SD: esta es donde el registrador va guardando toda la información de la trayectoria.
- Los pulsadores: son los pulsadores que permiten al usuario navegar por los menús del registrador.

El comportamiento del hardware final es bastante bueno, cumpliendo con las espectativas, y la única parte que realmente requeriría mejoras es el circuito de alimentación. Como se ha dicho al principio, se escogió un circuito de alimentación basado en un regulador lineal ( en parte a causa de las prisas ) el cual a pesar de ser sencillo de montar ofrece un rendimiento bastante malo. Lo ideal hubiese sido utilizar algún tipo de regulador conmutado, DC-DC ...

 
El firmware se desarrolló completamente en C mediante el entorno de desarrollo gratuito WinAVR ( que incluye el compilador gcc y el IDE Programers NotePad) .

La primera parte del desarrollo firmware consistió en crear las librerías necesarias para controlar los elementos propios de la placa de desarrollo: los timers del micro, el módulo GPS ( proceso de los mensajes NMEA) ... . La idea era que cualquier usuario que quisiera utilizar la placa pudiera acceder rápidamente a sus funcionalidades a través de estas librerías.

La segunda parte fue desarrollar el firmware del registrador de trayectorias haciendo uso de todos los recursos de la plataforma de desarrollo. Como el registrador de trayectorias disponía de un LCD y una tarjeta SD tambien se tuvieron que programar los drivers para estos periféricos.
 
Durante la elaboración del proyecto se realizaron diferentes aplicaciones software con diferentes finalidades:

- Aplicación de configuración del módulo GPS Lassen SQ ( TshipSHOUT ) : la aplicación TsipChat proporcionada por el fabricante del GPS daba algunos problemas, por lo que se optó por desarrollar una pequeña aplicación en C# para configurar el módulo GPS.
Captura de la aplicación de configuración del módulo GPS
- Aplicación de programación del microcontrolador AVR-Atmega (TelecargaAVR) : a pesar de que WinAVR ya disponía de una aplicación para la programación de la Flash de los microcontroladores ( AVRDude ) el pinout por defecto de esta aplicación era incompatible con el del diseño. Aunque no se ha citado, la placa de desarrollo contiene un puerto paralelo cuya finalidad es doble: permitir la programación del uC mediante el puerto paralelo del PC y ofrecer la posibilidad de transferir datos entre el PC y la placa más rápidamente que mediante el puerto serie ( por entonces el soporte USB en microcontroladores era raro). Esta aplicación se desarrolló enteramente en Visual Basic.NET.
Captura de la aplicación de telecarga
- Aplicación de transferencia de datos del registrador de trayectorias: fue necesario desarrollar una aplicación que permitiera descargar al PC todos los datos guardados en la tarjeta MMC del registrador de trayectorias en un formato comprensible por alguna aplicación de cartografía digital. Así con este programa se podían exportar los datos guardados en el registrador de trayectorias, a otros formatos de ficheros comprensibles por aplicaciones como OziExplorer, o Microsoft MAPs.
Captura de la aplicación de transferenica de datos del registrador de trayectorias
Proyección de la información capturada con el registrador de trayectorias
 
Aquí puedes descargarte la memoria del proyecto. La utilización de cualquier información de este sitio web o de la información contenida en la memoria implica la aceptación de las siguientes condiciones:
- Licencia: ( licencia by-nc-sa de Creative-Commons ) : Reconocimiento - NoComercial - CompartirIgual (by-nc-sa): No se permite un uso comercial de la obra original ni de las posibles obras derivadas, la distribución de las cuales se debe hacer con una licencia igual a la que regula la obra original.
- Responsabilidad y garantía: el material e información aquí publicado se proporciona tal como es, sin garantías de ningún tipo, y es el usuario el único responsable de analizar y determinar la conveniencia de usarlo y compartirlo asumiendo a su vez los riesgos que ello pueda conllevar. El autor no se responsabiliza bajo ningún concepto, de ningún tipo de daño, directo o indirecto que el uso del material e información aquí publicada pueda causar.
 
Creative Commons License
 
. . . Label, Program & Audiovisuals Tolaemon 2004 . .