miércoles, 17 de agosto de 2011

GPS bluetooth y ubuntu 11.04



Hace ya tiempo que me compré este receptor GPS bluetooth Data logger i-Blue 747A+, y en esta entrada voy a explicar como configurarlo con ubuntu 11.04. En entradas posteriores veremos como sacarle partido y experimentar con el.

Este receptor bluetooth está bastante bien porque aparte de que podemos conectarnos con un GPS via bluetooth, también tiene la opción de datalogger, es decir, de grabanos una ruta generándonos un archivo, que luego podremos utilizar. Y el funcionamiento es muy sencillo ya que tiene un botón con tres posiciones, uno para apagado, otro para navegación y otro para navegación y grabación de datos. También tiene otro botón central para grabar un punto de interés en el archivo de datos.
Y como señales indicativas tiene tres leds, uno para indicar el funcionamiento del bluetooth (azul), otro naranja (de conexión GPS, que cuando funciona estará parpadeando) y otro verde/rojo que indica la batería (verde para carga y rojo bajo de batería).

De entrada ubuntu 11.04 trae todo lo necesario para conectarnos a dispositivos bluetooth, pero con este receptor GPS no he sido capaz de utilizar el terminar para conectarme al cacharrillo.

Primero instalaremos los siguientes paquetes para poder trabajar con el dispositivo:
sudo apt-get install bluez bluez-utils python-gobject python-dbus 

Podemos configurar el dispositivo con el entorno gráfico con el programa blueman.
sudo apt-get install blueman

Si no lo conseguimos con blueman podemos utilizar la consola para configurarlo.
Para ver si podemos conectarnos al dispositivo en consola ejecutamos:
hcitool scan

Scanning ...
    00:1C:88:30:xx:xx    iBT A+ GPS


Ya tenemos detectado el dispositivo, ahora crearemos una conexión serie para el dispositivo GPS:



sudo sdptool record 00:1C:88:30:xx:xx
 :xx:xx

Browsing 00:1C:88:30:xx:xx ...
Service Name: SPP slave
Service RecHandle: 0x10000
Service Class ID List:
  "Serial Port" (0x1101)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 1
Language Base Attr List:
  code_ISO639: 0x656e
  encoding:    0x6a
  base_offset: 0x10


El comando anterior nos devolverá la salida del nuevo puerto virtual creado.
Y para crear la conexión fija del puerto editamos el siguiente archivo y añadimos lo siguiente:
sudo nano /etc/bluetooth/rfcomm.conf

rfcomm4 {
bind yes;
device 0
0:1C:88:30:xx:xx;
channel 1;
comment "747A+ Bluetooth GPS";
}


Y para poder conectarnos al puerto serie sin problemas utilizamos el siguiente comando:
sudo rfcomm connect 4



También podemos crear un enlace simbólico para usar el GPS a través de un puerto serie en wine (ttyS4 o COM4 para wine):
cd ~/.wine/dosdevices
ln -s /dev/rfcomm4 com4

O alternativamente:

sudo ln -sb /dev/rfcomm4 /dev/ttyS4


Si has llegado hasta aquí es que todo ha ido bien, y el GPS está "teóricamente" conectado. Todo lo que necesitamos hacer ahora es obtener algunos datos de él. Si tienes problemas en todo este proceso puedes mirar en este foro (está en inglés).

Y ahora necesitamos poder hablar con el GPS, y eso lo conseguimos con el programa gpsd, y lo instalamos con el siguiente comando:
sudo apt-get install gpsd gpsd-clients

E iniciaremos el programa con:
gpsd -n /dev/rfcomm4

Comprobaremos que todo funciona con el comando:
xgps

Y si todo ha ido bien deberíamos tener una salida en la pantalla del programa. En caso contrario deja un comentario o mira el hilo anterior del foro.

Ahora para conseguir ver el GPS simplemente tendremos que ejecutar dos comandos:
rfcomm connect 4
gpsd -n /dev/rfcomm4


Puedes obtener más info en: https://help.ubuntu.com/community/BluetoothSetup

No hay comentarios: