jueves, 11 de octubre de 2007
Comenzamos
Coordenadas
Ver mapa más grande
- Latitud: 40.411290
- Longitud: -3.708580
Project plan
- GPS (60€)
- Microcontrolador (10€)
- Sistema de visualización (20€)
- Estuche (20€)
El presupuesto rondará los 110€ a los que habrá que sumarle los gastos de envío a certificado a Noruega. El plazo aproximado de ejecución será de unos 15 días invirtiendo alrededor de 50 horas de trabajo.
Esperamos tenerlo finalizado y listo para enviarlo el 11 de Septiembre.
El GPS
Sus prestaciones no son para nada destacables, sus tiempos de arranque y readquisición son bastante pobres, pero es barato, fácil de conseguir, cuenta con conexión serie tanto RS-232 como LVTTL (0-3.3v), consume tan sólo 110mW alimentado entre 3.8v y 8.0v, y sólo pesa 14 gramos (34.0mm x 34.0mm x 8.6mm).
El microcontrolador

El sistema de visualización
La distancia será mostrada por medio de seis displays numéricos de 7 segmentos LED de cátodo común, cinco dígitos más un decimal para la distancia expresada en kilómetros. Los displays serán gobernados por el controlador MAX7219 de la casa MAXIM.
El estuche

El software
El firmware deberá ser actualizable por lo que es necesario utilizar un bootloader; como de costumbre usaremos el Colt Bootloader que tan buen resultado ha dado en otras ocasiones.
El bootloader usa para cargar el firmware la UART hardware del microcontrolador, lo que implica utilizar un driver TTL/RS-232, usualmente un MAX232A, para obtener así un puerto serie RS-232 totalmente operativo tanto para actualizar el firmware, como para el diálogo (entrada/salida) con el dispositivo en funcionamiento.
El 18F2550 cuenta únicamente con una UART hardware, que al disponerla como entrada/salida del dispositivo impediría utilizarla para la conexión con el GPS. En este punto hay varias opciones, la más "fácil" es utilizar una UART emulada por software, ya que el dialogo con el GPS se realiza únicamente a 4800bps, pero al no ser estrictamente necesario usar la conexión de entrada/salida y la conexión con el GPS de forma simultanea, existe la posibilidad de utilizar la misma UART hardware para las dos conexiones mediante el cambio de las líneas de I/O. La conexión con el GPS se realizará también a niveles RS-232 aprovechando así los 4 drivers del MAX232A. Esta es una opción interesante que al menos probaremos.
El diálogo con el MAX7219, el controlador de los displays numéricos, se realiza mediante un protocolo serie de tres líneas (3-wire) algo diferente al SPI de su hermano gemelo el MAX7221 y cuyo driver posee implementado por hardware el 18F2250, pero al ser menos común es más caro y difícil de encontrar, y la implementación por software del 3-wire para "hablar" con el MAX7219 ha resultado bastante sencilla, este es un extracto del archivo "MAX7219.h".
Simulando el hardware
- Estuche de tapa cerrada el cual hay que abrirlo para ver los indicadores.
- Estuche de tapa translúcida a través de la cual se observan los indicadores.
Simulando el software
Una vez más, estamos utilizando las bondades del VSM (Virtual System Modelling) integradas en el entorno de diseño PROTEUS, fruto del laboratorio Británico Labcenter Electronics.
Disfrutad del viaje, no sólo del destino
Ha aparecido una voz discordante que propone que se lo enviemos para el día de su cumpleaños, al parecer el próximo 9 de Noviembre. Ya veremos los comentarios al respecto.
NMEA-0183
$GPGLL,4400.000,N,07143.125,W,020822,A*35
$PGRMZ,584,f,3*12
$PGRMM,WGS 84*06
$GPBOD,347.7,T,004.3,M,MOB,R2NHB*23
$GPRTE,1,1,c,0,TYC,R2NHB,MOB*01
$GPWPL,4119.832,N,07205.454,W,TYC*16
$GPRMC,020824,A,4400.00,N,07143.125,W,00.0,038.6,161201,016.6,W*7C $GPRMB,A,9.99,L,R2NHB,MOB,4437.379,N,07300.351,W,066.9,304.5,,V*66$GPGGA,020824,4400.000,N,07143.125,W,1,00,2.0,177.9,M,-32.2,M,,*7F
$GPGSA,A,3,,,,,,,,,,,,,10.1,2.0,3.0*03$GPGSV,1,1,00,,,,,,,,,,,,,,,,*79
$PGRME,15.0,M,22.5,M,15.0,M*1B
Para nuestro propósito sólo necesitamos obtener del dispositivo GPS (ID=GP), los valores de la sentencia MRC (Recommended minimum specific GPS/Transit data), cuyo formato para la v3 de NMEA es el siguiente:
$GPRMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,ddmmyy,x.x,a,m*hh
Field #
01 = UTC time of fix
02 = Data status (A=Valid position, V=navigation receiver warning)
03 = Latitude of fix
04 = N or S of longitude
05 = Longitude of fix
06 = E or W of longitude
07 = Speed over ground in knots
08 = Track made good in degrees True
09 = UTC date of fix
10 = Magnetic variation degrees (Easterly var. subtracts from true course)
11 = E or W of magnetic variation
12 = Mode indicator, (A=Aut., D=Diff., E=Estim., N=Invalid)
13 = Checksum
Las coordenadas geográficas eclípticas, Latitud y Longitud, vienen expresadas en grados y minutos con decimales sexagesimales, junto al hemisferio o lado del ecuador de dirección, por lo que habrá que convertirlas a coordenadas absolutas.
Es decir, en una sentencia como esta:
$GPRMC,154653,V,4428.2011,N,00440.5161,W,000.5,342.8,050407,,,N*7F
Tenemos una latitud de 44 grados con 28.2011 minutos al Norte, y una longitud de 4 grados con 40.5161 minutos al Oeste, que convertidas a valores absolutos serían:
- Latitud: 44.470018
- Longitud: -4.675268
Un punto en mitad del mar Cantábrico......
Distancia y Rumbo
Estas dos coordenadas geográficas indican la distancia en grados sexagesimales desde el punto en cuestión hasta las líneas base de referencia; el paralelo cero o Ecuador para la Latitud, y el meridiano cero o meridiano de Greenwich para la Longitud.
Para la Latitud, sabiendo que la circunferencia que corresponde al Ecuador mide 40076 km, 1º equivale a 113.3 km.
Para la Longitud, sabiendo que junto con sus correspondientes antimeridianos se forman circunferencias de 40007 km de longitud, 1º equivale a 111.11 km.
A veces es conveniente usar en diversos problemas el concepto de Colatitud, que es el complemento de la latitud a 90º, es decir es el ángulo que forma la vertical del lugar con el eje Norte-Sur, o bien, dicho de otro modo, el arco de meridiano terrestre comprendido entre el lugar y el polo geográfico más próximo. Es evidente, en definitiva, que para un lugar cualquiera de la superficie terrestre es: Latitud + Colatitud = 90º.
La distancia entre dos puntos, P y P' de la superficie de la Tierra es la longitud del arco de círculo máximo comprendido entre el punto P y el punto P'. Para hacer estos cálculos aproximaremos el elipsoide terrestre por la forma esférica, y calcularemos el arco de círculo máximo entre ambos puntos mediante la fórmula de los cosenos de la trigonometría esférica.
Sean los puntos P y P' dados por sus coordenadas:
- P -> Latitud: θ Longitud: λ Colatitud: φ = 90º - θ
- P' -> Latitud: θ' Longitud: λ' Colatitud: φ' = 90º - θ'
dPP' = | 40000 | αPP' |
360 |
dPP' = | 40000 | arc cos [cos φ · cos φ' + sen φ · sen φ' · cos (λ - λ')] |
360 |
El Rumbo a seguir para desplazarse por un arco de círculo máximo desde el punto P al punto P' cumple el teorema de los senos:
sen NPP' | = | sen (λ - λ') | -> NPP' = | sen φ' · cos (λ - λ') | |
sen φ' | sen dPP' | sen dPP' |
Se tiene en definitiva:
rumbo = NPP' = arc sen | sen φ · sen (λ - λ') | ||
sen dPP' |
Expresado en función de las coordenadas de los puntos P y P':
rumbo = arc sen | sen φ · sen (λ - λ') | ||
sen [ arc cos [cos φ · cos φ' + sen φ · sen φ' · cos (λ - λ')]] |
De esta forma tan sencilla podemos calcular la distancia y el rumbo entre dos puntos cuyas coordenadas geográficas son conocidas.
Últimos detalles
Entregado


miércoles, 10 de octubre de 2007
2388.5 kilómetros
Hola a todos,
gracias de nuevo por este magnifico recuerdo que nunca podre olvidar, os lo garantizo :)
Perdonadme por la tardanza, pero he estado super liado y he tenido un problema con las pilas ya que ha estado encendido todo el viaje de vuelta, pero al fin lo he probado.
La distancia que nos separa es de 2.388,5 KM. Las fotos que os adjunto son desde el lugar donde trabajo. He dejado el latinometro en mi mesa, al lado del ordenador. Lamentablemente no funciona dentro de edificio. Pero cuando este agobiado, especialmente por la gente tan sosa y rara con la que trabajo ahora (claro que después de estar con vosotros estoy seguro que no voy a encontrar gente igual en ningún otro lugar), puedo salir a la terraza y encender mi latinometro, fumarme un cigarrito de los mios y pensar que estáis a unos 2.388 Km en la dirección que me indique mi querido LATINOMETRO.
Gracias a todos, no solo por este regalo, sino por el regalo que ha sido conoceros, trabajar y hacer cosas juntos. Cada vez que pase por Madrid estad seguros que os avisaré para intentar veros.
Un abrazo a tod@s, TOD@S.
PD: No veáis como hipnotiza mirar la circunferencia de leds mientras busca señal...
Ángel