Tenía en una estantería un dispositivo bluetooth GPS, de la marca Holux, concretamente el GPSlim 236, que había comprado unos años atrás para hacer funcionar un Qtek 9090 como navegador GPS.
Este nuevo proyecto, no está orientado a un sistema autónomo de navegación, pero añadiendo una pantalla táctil y algunos cables para la alimentación de los dispositivos, sería realmente fácil hacerlo.
Por el momento, nos vamos a centrar en la instalación y configuración del módulo, comprobar que funciona y extrae datos, y luego pondremos un software sobre LXDE para el posicionamiento y navegación.
Vamos a comenzar por Debian Wheezy, que funciona sin ningún tipo de problemas, ya que las pruebas que he realizado con Debian Jessie, (por el momento), no funciona por algunos bugs en el paquete bluez.
Empezaremos asumiendo que tu Debian Wheezy está actualizada, si no es el caso, como siempre:
# sudo apt-get update # sudo apt-get upgrade
Vamos a insertar nuestro dongle bluetooth a ver si lo reconoce y realizamos un :
#dmesg [ 400.583279] usb 1-1.4: new full-speed USB device number 4 using dwc_otg [ 400.683859] usb 1-1.4: device descriptor read/all, error -32 [ 400.763281] usb 1-1.4: new full-speed USB device number 5 using dwc_otg [ 400.867905] usb 1-1.4: New USB device found, idVendor=0a12, idProduct=0001 [ 400.867933] usb 1-1.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 400.942989] Bluetooth: Core ver 2.20 [ 400.943108] NET: Registered protocol family 31 [ 400.943119] Bluetooth: HCI device and connection manager initialized [ 400.943144] Bluetooth: HCI socket layer initialized [ 400.943166] Bluetooth: L2CAP socket layer initialized [ 400.943304] Bluetooth: SCO socket layer initialized [ 400.954548] usbcore: registered new interface driver btusb
En principio parece correcto. Vamos a instalar las utilidades para bluetooth y clientes gps:
# sudo apt-get -y install bluez gpsd gpsd-clients python-gps
Después de instalar los paquetes, parece que es buena idea rebotar la Raspi:
# sudo reboot
Ahora vamos a averiguar la mac de nuestro módulo Holux GPSlim236:
#hcitool scan Scanning ... 00:0B:0D:xx:xx:5A HOLUX GPSlim236
Una vez hallada, vamos a conectarlo:
# sudo rfcomm connect 0 00:0B:0D:xx:xx:5A & [1] 1257 pi@raspberrypi ~ $ Connected /dev/rfcomm0 to 00:0B:0D:xx:xx:5A on channel 1 Press CTRL-C for hangup
Recuerda que el & es para que nos ejecute el comando en segundo plano.
Pulsamos enter, pero no CTRL-C
Probamos que la conexión está realizada, y nos irá mostrando datos NMEA del GPS:
# cat /dev/rfcomm0 $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSV,3,1,12,20,00,000,,10,00,000,,25,00,000,,27,00,000,*79 $GPGSV,3,2,12,03,00,000,,31,00,000,,24,00,000,,15,00,000,*78 $GPGSV,3,3,12,16,00,000,,05,00,000,,01,00,000,,26,00,000,*7D $GPRMC,000112.071,V,0000.0000,N,00000.0000,E,,,110905,,,N*7E $GPVTG,,T,,M,,N,,K,N*2C $GPGGA,000113.083,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*4B $GPRMC,000113.083,V,0000.0000,N,00000.0000,E,,,110905,,,N*72 $GPVTG,,T,,M,,N,,K,N*2C
Pulsa CTRL-C para salir.
Bien, ahora que ya tenemos conectado el módulo, y nos envía datos NMEA, vamos a arrancar un
daemon de GPS.
# gpsd -b /dev/rfcomm0
El parámetro -b es para que solamente nos envíe datos de solo lectura, evitando enviar nada al módulo GPS.
Ahora vamos a arrancar un cliente de terminal, que nos muestre los datos de una forma comprensible:
# cgps -s lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqklqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x Time: 2015-10-17T10:27:21.000Z xxPRN: Elev: Azim: SNR: Used: x x Latitude: 41.439046 N xx 27 77 004 41 Y x x Longitude: 2.189236 E xx 22 60 113 38 Y x x Altitude: 32.4 m xx 16 48 184 17 Y x x Speed: 0.0 kph xx 8 45 307 26 Y x x Heading: 0.0 deg (true) xx 18 37 057 45 Y x x Climb: -6.0 m/min xx 4 29 254 12 N x x Status: 3D FIX (28 secs) xx 26 21 169 07 N x x Longitude Err: +/- 15 m xx 21 17 062 30 N x x Latitude Err: +/- 16 m xx 11 13 267 24 N x x Altitude Err: +/- 81 m xx 7 10 294 23 N x x Course Err: n/a xx 1 05 248 00 N x x Speed Err: +/- 116 kph xx 19 04 294 00 N x x Time offset: -3.606 xx x x Grid Square: JN11ck xx x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqjmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
Bien, ya tenemos en marcha el sistema GPS, ahora, desde un entorno gráfico, vamos a arrancar un monitor de GPS, que nos dará la constelación de satélites detectados y a los que estamos conectados.
#xgps
Y ahora, vamos a montar un navegador GPS, foxtrotgps:
# apt-get -y install foxtrotgps
Lo ejecutamos con:
# foxtrotgps
Como veis, hay diferentes mapas:
En una próxima entrada, explicaremos, la manera de instalarlo con Debian Jessie.
Espero que os sirva de ayuda.