Archive for December, 2005

Proyecto CarPC: Instalación del LCD en un Chasis Doble DIN

Saturday, December 31st, 2005

Para la primera versión del proyecto CarPC, la pantalla tuvo que ser localizada en un lugar incómodo para verla e interactuar con ella, esto fue necesario ya que en su momento era el lugar más conveniente y fácil de instalar. Hace unos días encargué un chasis especiamente diseñado para mi pantalla LCD y que se adapta al tamaño estándar doble DIN. si bien el mismo se destinó originalmente para el tablero del Subaru WRX (al cual se adapta a la perfección sin ninguna modificación) yo tomé el riesgo de comprarlo sin estar 100% seguro de que le quedaría a mi Nissan X-Trail de primera generación.

Diagrama del Chasis doble DIN
Cuando recibí el chasis, lo primero que hice fue confirmar las dimensiones ya que según las medidas publicadas por el fabricante, aparentemente quedaría bien en el tablero de la X-Trail. Sin embargo para mi decepción, el marco es quizas un milimetro más grande que la abertura en el tablero (la abertura donde se encontraba el equipo de sonido original), aún así, me dí cuenta que si inclinaba ligeramente el ángulo del chasis, el borde superior del marco podría protuberar fuera de la abertura del tablero, haciendo factible su instalación.
Una vez confirmado que no había desperdiciado el dinero, procedí a fabricar 2 brackets que permitieran atornillar el chasis del mismo modo que el equipo de sonido de fabrica. Tomé como modelo los brackets originales y dibujé ua plantilla en cartón, luego utilicé la lámina de aluminio del case de una vieja computadora, y con la ayuda de un Dremel y de discos cortadores, fabriqué las 2 brackets.

Posteriormente atornillé los brackets en el tablero e hice los ajuste necesarios hasta conseguir una alineación adecuada entre el chasis y el tablero; luego marqué la posición de los orificios del chasis utilizando un plumón para después saber adonde taladrar los orificios en los brackets y lograr un ajuste perfecto.

Luego de atornillar las brackets al chasis, hice una ultima revisión y calibración en el tablero

Despues trasladé la pantalla LCD y su controladora al chasis, lo cual fué muy fácil ya que el kit incluye todas las piezas y los tornillos necesarios para el montaje.

Me llevé una sorpresa con el conector de poder, su posición queda demasiado cerca de las paredes del chasis, lo que hace imposible utilizar el conector original de la pantalla.

Mechatroniks, fabricante del chasis aconseja soldar los cables directamente a la placa de circuitos, sin embargo siguiendo los lineamientos del proyecto referente a cortar, o realizar modificaciones irreversibles, tomando como base otra "espiga" del mismo tamaño, la corté con el Dremel y le soldé los cables. El resultado es un conector que se adapta exactamente a las medidas y que no requiere modificar la pantalla; también aproveche para soldar los cables a un conector Molex para hacer más fácil la conexión/desconexión,

Una vez armado el tablero, pueden apreciarse los resultados.

Proyecto CarPC: Integración de GPS con Google Earth

Thursday, December 1st, 2005

Google tienen grandes planes para Google Earth (de aquí en adelante GE), de eso no hay duda, el público en general se ha visto beneficiado con una herramienta de una funcionalidad nunca antes disponible, al menos no gratis.
Para quienes han estado naúfragos en una isla el último año, GE es un software para exploración terrestre que combina fotografía satelital, mapas e información geográfica, en una interfaz fácil de navegar con el mouse.
Desde que inicié el proyecto CarPC he venido salivando con encontrar la manera de integrar mi receptor GPS(1) (un Microsoft/Pharos USB) con GE para de esa manera contar con tracking o rastreo GPS en tiempo real, es decir, que GE muestre la foto satelital de la posición actual del carro. Por un momento desvié mi atención hacia el software World Wind de la NASA, el cual tiene funcionalidad similar a GE, pero con la diferencia que su código fuente está disponible, además cuenta con infraestructura para el desarrollo de plug-ins o complementos que permiten extender la funcionalidad de World Wind. Uno de estos complementos es GPSTracker, el cual lee las sentencias NMEA(2) 0183 provenientes del receptor GPS y las traduce en información tal como longitud, latitud y altura, que pueden ser desplegadas en World Wind. GPSTracker funciona muy bien, sin embargo las imágenes satelitales de World Wind no son tan buenas como las de GE, especialmente ahora que hay disponibilidad de imágenes de alta resolución para San Salvador.
Google ofrece varias versiones de GE, la versión Plus hace mención de integración con GPS, pero al leer cuidadosamente se hace evidente que solo soporta el bajado de rutas y puntos de referencia de ciertos modelos de receptor GPS, no el rastreo en tiempo real. Esta distinción me ahorró los $20 dólares que cuesta la versión Plus, tuve que seguir salivando hasta que descubrí un pequeño pero útil programa llamado nmeaGE, cuya función, como su nombre revela, es convertir periodicamente las sentencias NMEA 0183 que generan los receptores GPS, en un archivo KML que es el formato con el que Google exporta los puntos de referencia, básicamente es un archivo XML con un esquema sencillo que describe una posición en GE incluyendo latitud, longitud, altura, rumbo, un nombre y una descripción.
Ahora bien, quizas la pregunta es ¿como nos ayuda esta pequeña utilidad para integrar a GE con un receptor GPS?, la respuesta reside en una función poco conocida de GE llamada "Network Link", esta permite indicarle a GE que busque periodicamente un recurso KML en una ruta predefinida, esta puede ser una URL http, ftp ó del sistema de archivos local. Dada la naturaleza propietaria de GE, el formato KML se convierte en el mecanismo de integración tan deseado; es una solución elegante y una bienvenida cortesía de parte de Google para conseguir este tipo de integración.


Configuración de un Network Link en Google Earth

nmeaGE como tal es muy pequeño, esta desarrollado en .NET por lo que requiere el framework .NET 1.1 para instalarse y correr. Su configuración es muy sencilla, solo hay que especificar los parámetros de conexión con el receptor GPS, tal como puerto de comunicación, y velocidad de transferencia; así como los parámetros de generación del archivo KML, tal como ángulo de inclinación, altura y ruta donde se desea guardar.


Configuración del receptor GPS


Configuración para el archivo KML

Al principio los resultados que obtuve fueron mixtos, configuré a GE para que refrescara el link cada 2 segundos, sin embargo la representación de mi posición se retrasaba en relación a lo real, GE se tardaba mucho en actualizar mi posición, lo que en algún momento me hizo sospechar que el CPU de mi CarPC no estaba a la altura de la tarea. Sin embargo, al conectarle un mouse a la CarPC, GE se comportaba muy bien y la actualización de la pantalla era más que adecuada, lo que me hizo revisar en las opciones de GE; en la pestaña "Control" encontré un ajuste para aumentar la velocidad del "sobre-vuelo" o "Fly-To", esto solucionó el problema definitivamente.
Configuración de velocidad de "sobre-vuelo" en GE

nmeaGE ofrece la opción "Use GPS Heading When Moving" que básicamente rota la posición en GE para que el vector de dirección en la que se navega siempre apunte hacia arriba, por ejemplo, cuando se transita por una calle, GE rota toda la imagen de manera que el movimiento del marcador de posición siempre es hacia arriba, cuando la posición del marcador cambia, GE inmediatamente "sobre-vuela" de tal forma que la nueva posición quede en el centro de la pantalla.
En el aspecto negativo, nmeaGE tiene problemas cuando la computadora regresa de estado de hibernación, lo que hace necesario cerrarlo y abrirlo nuevamente, además los botones de la interfaz gráfica son muy pequeños, resultando incómodos de manipular con una pantalla sensible al tacto. Otro detalle que sería muy deseable es contar con una manera de guardar configuraciones KML pre-establecidas y poder cambiar fácilmente entre ellas. Debo admitir que la mayor novedad es haber descubierto la característica "Network Link" en GE, una vez abierta esta puerta, es fácil crear un pequeño software equivalente a nmeaGE y que sea más amigable para una CarPC.

Google Earth y nmeaGE en acción

Para los que se preguntan como es posible utilizar GE sin conexión a Internet, afortunadamente GE utiliza un caché o almacenamiento temporal en el disco. El objetivo del caché es mantener la información utilizada más recientemente en el disco duro de la computadora para no tener que recurrir a Internet cada vez que dicha información se requiera, mejorando de esa manera el tiempo de respuesta. Al inicio GE desplegará un cuadro de mensaje quejándose que no puede contactar al servidor, solo basta presionar el botón "OK" para que Google pase a modo "fuera de línea" y utilice el caché como fuente de datos. El tamaño máximo del caché es configurable; el mio puede crecer hasta 400MB lo cual es más que suficiente para almacenar fuera de línea la información geografica necesaria. La única desventaja es que se requiere haber explorado los lugares para que GE los almacene en el caché. Debo mencionar que la empresa Tigo ya está ofreciendo el servicio de Internet celular EDGE, el cual ofrece velocidades de transferencia de hasta 400KBps por $35 mensuales.

Por lo pronto el artificio del caché me funciona muy bien, así que a corto plazo no veo la necesidad de contratar el servicio EDGE.

Conclusiones

Este articulo habló de la integración entre Google Earth y un receptor GPS; el concepto es muy "Cool " y muestra la flexibilidad alcanzada al utilizar a una PC en un ambiente móvil. Es muy divertido verificar la posición en pantalla con la real, y es muy curioso identificar cosas que no pueden ser vistas a simple vista al transitar por las calles.

La utilidad de los conceptos cubiertos no solo se limita a una curiosidad o al factor "Cool", una empresa con unidades móviles pudiera mejorar su logística al utilizar un programa similar a nmeaGE para "subir" periodicamente la posición de cada unidad móvil a un servidor central (utilizando una CarPC ó una Laptop y un enlace celular GPRS ó EDGE), luego pudiera configurarse una "estación de monitoreo" con GE creando tantos Network Links como unidades móviles se requiera monitorear.
Ante todo es necesario recordar que se debe mantener la atención puesta en la calle y evitar distraerse con aparatos tales como teléfonos celulares, equipos de audio, DVDs…y ¿por que no?…con una computadora….

En las próxima entrega del proyecto CarPC mostraremos la integración con la computadora del motor utilizando la interfaz OBD-II(3)

En subsiguientes entregas hablaremos de como se planea mejorar el sonido de la CarPC al instalarle una tarjeta de sonido externa Sound Blaster Live! de 24 bits y conectarla a un amplificador Sony Xplód de 500W y salida de cuatro canales.

Hasta la pròxima….!

Glosario

  1. GPS: Global Positioning System
  2. NMEA: (National Marine Electronics Association ó Asociación Nacional de Electrónica Marítima, la cual conglomera a la industria electrónica para fines marítimos)
  3. OBD-II: On-Board Diagnostics version 2, Interfaz estándar de la industria para el diagnóstico de vehículos automotores.