jueves, 22 de octubre de 2015

Holux GPSlim236 con Raspberry Pi 2 Model B y Bluetooth dongle.(Debian Wheezy version)

He movido los trastos

A: http://www.ipv6labs.es

Allí hay mucho más, que te puede ser útil

Puedes seguir esta entrada en:

http://www.ipv6labs.es
     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.

No hay comentarios: