09 mayo 2013

Conectando el GPS Venus a la Raspberry Pi

Para los que han venido leyendo mis artículos, sabrán que estoy trabajando en un data-logger/visualizador de los parámetros de los sensores eléctricos de mi carro. Una de las funciones que quiero incluir en el módulo, es la capacidad de guardar el recorrido que ha realizado el vehículo. Para agregar esta funcionalidad necesito utilizar un receptor de GPS que me permita conocer la ubicación del vehículo.

El día de hoy, les presentaré al GPS Venus, un pequeño módulo de GPS de relativamente bajo costo que puede ser conectado fácilmente a la Raspberry Pi para cualquier proyecto que estén realizando en el que necesiten información de ubicación.


El GPS Indicado


Existen muchos módulos receptores de GPS, sin embargo la mayoría tienen una frecuencia de actualización de un segundo. Como pienso utilizar el carro en la pista de carreras, estos módulos se quedan sumamente cortos para las velocidades que se alcanzan en una competencia. Un solo segundo en pista a una velocidad de 150Km/h implica haber recorrido casi 50m. En una carrera donde la diferencia entre tiempos se mide en milésimas de segundo 50m es más de lo que se podría considerar aceptable.

Luego de buscar en Internet me encontré con la página de SparkFun Electronics, ellos se especializan en vender componentes para proyectos electrónicos. Uno de los productos que tienen en venta es el Venus638FLPx-L. Este circuito integrado es un pequeño receptor de GPS que puede obtener la señal de hasta 12 satélites de manera simultánea. Su característica más importante es que tiene una frecuencia máxima de trabajo de 20Hz es decir, es capaz de calcular 20 posiciones por segundo. A 150Km/h en pista esto significa que la distancia recorrida entre posición y posición se reduce a tan solo 2m, casi la longitud de un vehículo y esto más aceptable para la aplicación que le quiero dar*.

La ventaja de comprar en SparkFun es que venden también las muy útiles "tabletas de prueba". Estas son unas tabletas impresas que facilitan el acceso a los pines de los circuitos integrados. La mayoría de circuitos integrados que tienen funciones interesantes vienen en la presentación de "montaje superficial". Los integrados en esta presentación resultan excelentes para reducir espacio y producir un producto final, pero para hacer un prototipo en el que hay que modificar continuamente las conexiones tener pines que se puedan conectar a una breadboard o soldar/desoldar de un protoboard es muchísimo más práctico. Adicionalmente, en estas tabletas de prueba, todos los pines tienen impreso sus respectivos nombres. Algo que resulta muy útil, sobre todo para personas olvidadizas como yo.

Como habrán observado en la imagen, la tableta de pruebas no trae pines, en la tienda pueden adquirir los pines para quebrar que pueden soldar a la tableta para colocarla en una breadboard.

La Antena


Un GPS requiere de una buena antena para trabajar de manera efectiva. En la misma tienda pueden encontrar antenas "activas" a buen precio, yo elegí la antena de montaje magnético para facilitar su colocación sobre el techo del vehículo, esta trae un cable lo suficientemente largo como para colocarla donde nos parezca más conveniente.

Debido a una confusión por parte de mi persona, en vez de elejir la antena con el conector tipo "SMA" elegí una con el tipo de conector "MCX". El problema de esto es que son dos conectores completamente diferentes, el conector SMA es de rosca mientras que el MCX es de presión y mucho más pequeño, así que tuve que adquirir un adaptador que convierte un terminal MCX hembra a un SMA macho como se muestra en la imagen:


Lo que comenzó como un problema termino siendo una ventaja ya que el conector tipo MCX resulta más práctico de conectar y desconectar que su equivalente SMA por lo que les recomiendo cometer el mismo "error" que yo tuve y así tendrán la posibilidad de armar y desarmar fácilmente todo el conjunto GPS/Antena.

Preparando la tableta


Primero preparen sus materiales, van a necesitar un cautín (soldador) máximo de 15W de potencia, pueden utilizar uno de mayor potencia pero corren el riesgo de dañar la tableta o levantar la "pista" si no son cuidadosos; también necesitan un poco de soldadura de estaño, yo ocupé de la que tiene pasta para soldar en el interior y me funcionó a la perfección; lo último es que tengan a la mano su breadboard, los pines y la tableta GPS Venus.

Así es como se mira la tableta recién sacada de su empaque:


Primero coloquen los pines en la breadboard y ubiquen la tableta encima de ellos. Usualmente la gente suelda los pines con el chip hacia arriba, sin embargo yo la he colocado con el chip hacia abajo porque el "perfil" del conector se vuelve más bajo al conectarlo de esta manera y quedan visibles los nombres de los pines.

En la imagen pueden observar como el módulo se balancea un poco, pueden utilizar un alambre colocado de lado a lado mientras sueldan los primeros pines.

Al momento de soldar no llenen de estaño la punta del cautín, simplemente toquen entre el agujero de la tableta y la parte del pin que sobresale y luego acerquen el estaño hasta que se derrita lo suficiente para que llene el agujero y haga contacto con el pin.

Comiencen con las cuatro 4 esquinas y luego vayan soldando el resto de pines siguiendo un circulo. La razón de hacerlo así es que la tableta tenga apoyo en los pines para que puedan quitar el alambre que utilizaron para sostenerla y de manera adicional tiene la ventaja que darán tiempo a que se la tableta se vaya enfriando reduciendo el riesgo de recalentar demasiado mucho alguna parte de la tableta.

Si todo salio bien, el resultado deberá asemejarse a las fotos siguientes:


Conectando todo


No se asusten por el número de pines que tiene la tableta. Para probar el módulo solo utilizaremos las líneas de positivo (Vcc), tierra (GND) y las líneas de envío y recepción de datos (TX0 y RX0 respectivamente).

La siguiente imagen muestra el sencillo diagrama de conexión:

¿Ven como es sencillo? Solo tengan cuidado de invertir las líneas de envío y recepción de datos. En el módulo la linea TX debe ir conectada a la línea RX de la Raspberry Pi y viceversa.

Una vez conectados los cables conectar la antena es sumamente sencillo como pueden ver en la siguiente serie de imágenes.




Probando el módulo


Para probar el módulo, solo asegúrense de tener el puerto serial del GPIO habilitado, si no saben como hacerlo pueden revisar la entrada sobre como conectar la Raspberry Pi al Arduino vía Serial.

Alimenten el módulo con los 3.3V de la Raspberry y escriban el siguiente comando desde la consola:


$ cat /dev/ttyAMA0

Si todo sale según lo planeado, después de unos segundos comenzarán a visualizar la salida NMEA generada por el GPS.

Por el momento dejaremos esta entrada hasta acá, pero en próximas entradas vamos a revisar un poco como procesar la salida NMEA generada por el GPS y cómo extraer los valores de posición de la misma para generar algo más útil que un montón de líneas de texto que resultan difíciles de entender.

Les dejo unas cuantas fotos de como se ve todo el sistema ya armado y funcionado.



No habiendo nada más que decir por ahora, solo me queda decirles... ¡¡Hasta la próxima!!

Información y Recursos





5 comentarios:

felipem dijo...

Espero que compartas fotos cuando lo tengas montado en el vehículo.
Hace tiempo había pensado en conectarle una webcam usb para grabar desde el salpicadero, y con gps quedaría mucho mejor :)

Alejandro dijo...

Hola primero te felicito por tu blog, respecto al tema, te pregunto cual especificacion de gps me recomendarias para hacer un prototipo mas exacto aun, que este modelo venus, suponiendo mayor velocidad del vehiculo, y que es para un auto de carreras, saludos Alejandro

Mario Gómez dijo...

¡Hola Alejandro!

Realmente con el GPS siempre es un poco problemático, en teoría la precisión del GPS depende de varios factores. Primero de la visibilidad de los satélites, sus posiciones respecto al receptor y la calidad de la antena que estés utilizando.

El problema es que una posición precisa (sin recurrir a la corrección diferencial) solo se puede obtener "promediando" la información de posiciones recibida de los GPS. El problema es que mientras más corto el tiempo de la "ventana" que se utilice para promediar las posiciones menos precisa será la misma.

El GPS Venus que estoy usando tiene la ventaja de que podes reducir el tiempo de ventana a 1/20 de segundo. Esto tiene la ventaja de que tenes una ruta mejor definida pero sacrificas precision. Para darte un ejemplo, con la ventana de 1seg la precisión se mantiene en 3m, con la de 1/20 la precisión aumenta casi a 10m en las pruebas que he hecho.

Recuerda que igual yo estoy armando este proyecto para un carro de carreras, así que igual cuando lo pruebe te cuento a ver que tal nos va y si los datos son lo suficientemente precisos. Mi idea es comparar los resultados del GPS con los del sistema AMB y ver cuanto es la diferencia en el error.

¡Saludos!

Ramón Gutiérrez dijo...

cortate el pelo

Ramón Gutiérrez dijo...

cortare ese pelo, eso no se lleva, buscate un trabajo formal!! rulitooooo