Conexión serie Bluetooth con Processing en Ubuntu
04 mayo 2016
Estas semanas, en el taller semanal de Arduino Gran Canaria, estamos montando un cochecito robótico con Arduino. Después de resolver el montaje del puente H y los motores, le hemos añadido el componente Bluetooth HC-06. De esta forma, podremos controlar remotamente el Arduino a través de un dispositivo Bluetooth.
Para facilitar la tarea, en Android existe una aplicación llamada Arduino Bluetooth RC Car. La aplicación se conecta mediante el Bluetooth HC-06 a Arduino y le envía diferentes caracteres según el botón que se pulse: adelante, atrás, izquierda, derecha, parar, etc. Por desgracia, aún no hay una aplicación similar para Ubuntu Touch, así que tuve que pedir prestado un móvil con Android.
Para ocasiones posteriores, he visto que mi portátil sí tiene Bluetooth. Así que lo más socorrido para mi es programar una aplicación de control remoto similar, pero usando el entorno de programación Processing. Así que detallo los pasos para realizar una conexión serie entre el Bluetooth HC-06 y Processing en Ubuntu.
Instalación de Bluetooth Manager.
El primer paso es instalar la aplicación Bluetooth Manager. Para ello, desde consola ejecutamos:
$ sudo apt-get install blueman
Emparejar el dispositivo Bluetooth HC-06.
El segundo paso es emparejar el ordenador con el Bluetooth HC-06. Para ello, abrimos la aplicación Bluetooth Manager y realizamos una búsqueda de los dispositivos Bluetooth visibles. De fábrica el HC-06 viene con el identificador «HC-06», aunque en mi caso lo configuré para ponerle el nombre «McLaren-rvr».
Para emparejar el dispositivo, hacemos clic con el botón derecho del ratón sobre el dispositivo y seleccionamos la opción Pairing.
Para finalizar el emparejamiento, deberemos introducir la contraseña del dispositivo HC-06. Por defecto es «1234».
Conexión serie
En tercer lugar debemos activar la conexión serie del dispositivo HC-06 en Ubuntu. Para ello, volvemos a abrir el menú contextual y seleccionamos la opción «Conectar a: Puerto serie» (Serial Port).
Bluetooth Manager nos indicará en una barra de estado el nombre del puerto serie creado en el sistema de ficheros, con el formato /dev/rfcomm<número>.
En este caso, sería /dev/rfcomm3.
Conexión serie en Processing.
Llegados a este paso ya tenemos un dispositivo serie como cualquier otro. Por tanto, podemos utilizar la librería Serial de Processing para conectar vía Bluetooth con Arduino. La única diferencia con una conexión de Processing con Arduino habitual es que en lugar de enviar los datos por una conexión USB lo haremos mediante una conexión Bluetooth. Pero, gracias a Bluetooth Manager, esos detalles son irrelevantes para Processing. Lo único que cambia es el nombre del dispositivo.
En este caso el programa lo que hace es interceptar las pulsaciones de teclas del ordenador y enviarlas al dispositivo Bluetooth (en mi caso, el HC-06 que a su vez se lo reenvía a Arduino). Un ejemplo bastante sencillo si ya has programado Processing con dispositivos Serial anteriormente.
Para emular de forma tonta la aplicación Arduino Bluetooth RC Car tan solo hay que presionar las teclas 'F' (adelante), 'B' (atrás), 'L' (izquierda), 'R' (derecha) y 'S' (detener).
Queda pendiente la programación del interfaz con esos botones en Processing para que funcione a golpe de ratón. ¡Eso es to-to-todo, amigos!