jueves, 11 de octubre de 2007

Últimos detalles

Sólo con unos ligeros cambios sobre la idea original, se han pulido los últimos detalles.
Finalmente hemos optado por utilizar como Bootloader el Tiny Bootloader, modificando los fuentes originales para adaptarlos a nuestro cristal de cuarzo de 4Mhz y bajarle la velocidad de upgrade del firmware a 57600 bps, compilándolos con el MPASM™ macro assembler del entorno de desarrollo de Microchip MPLAB.

La velocidad de funcionamiento final se establece mediante el preescaler en 4.8Mhz, más que suficiente para procesar los datos recibidos por el GPS (una sentencia $GPRMC por segundo a 4800bps), atender la consola serie a 9600bps y hacer la iluminación de los leds intermitente; todo ello de forma simultanea gracias a la utilización de tres rutinas de interrupción (IRQ). Se ha tratado que la velocidad sea la mínima posible, minimizando así el consumo energético, el cual es provisto por 6 pilas AAA de Litio de última generación.

Tambien se han realizado cambios en la forma de medir la distancia y el rumbo, ya que la excesiva complejidad de las formulas inicialmente previstas, junto a la implementación en Radianes de las funciones senoidales del compilador CCS PCWH, introducían un error excesivo, por lo que para el calculo de la distancia se ha utilizado la "distancia ortodrómica" que define la trigonometría esférica, y que calculamos mediante la tan poco conocida como elegante formula Haversine en la cual se toma como referencia el radio de la tierra, 6367.45 Kilómetros.
El calculo del rumbo se ha simplificado a la arco tangente del cociente de las diferencias de latitud y longitud, el cual luego se expresa en función del curso que indica el GPS que se está siguiendo.

Simple, pero funciona con gran exactitud. Y para asegurarnos que funcionará bien en cualquier parte del mundo, lo hemos probado con la ayuda de un simulador de GPS; el resultado es muy bueno, como puede apreciarse....

No hay comentarios: