¿Quieres comunicarte vía bluetooth con tu placa controladora? Puedes hacerlo si tienes un módulo bluetooth compatible con arduino o una placa como la ZUM BT-328 que lo lleve integrado. Una comunicación se realiza siempre entre dos partes, entre dos makers, entre dos robots, entre dos lechugas… bueno, las lechugas lo tienen más difícil para comunicarse… A lo que iba, para conseguir una comunicación inalámbrica vía bluetooth lo que necesitas son dos programas, uno que se ejecute en el ordenador o dispositivo móvil/tablet y otro que se ejecute en la placa cerebro que uses.
En este post se explica cómo realizar dicha comunicación con un ordenador que tenga Bluetooth. Necesitamos entonces:
- Programa dentro de la placa controladora que envíe/reciba datos. (Lo haremos con bitbloq )
- Programa dentro del ordenador o dispositivo con bluetooth que envíe/reciba datos. (Usaremos el Monitor Serial de la IDE de Arduino)
Abre bitbloq y descarga el IDE de Arduino. ¡Manos al código!
ESCRIBIR POR PUERTO SERIE BLUETOOTH
En este primer ejemplo queremos enviar una frase ‘Bluetooth era un vikingo‘ por el puerto bluetooth esperando 2 segundos entre envío y envío.
Parte 1: EMISOR – Programación en bitbloq
En primer lugar usaremos este bloque de bitbloq de la pestaña Comunicación para inicializar los parámetros del puerto serie bluetooth. Si usas una placa ZUM BT-328 tendrás que poner una velocidad de 19200 baudios:
Si en cambio usas el módulo Bluetooth de “Mi Primer Kit de Robótica” que es un HC-05, tendrás que poner 38400 baudios y conectarlo de la siguiente forma:
¡OJO! Justo cuando le des a Cargar el programa en la placa controladora, debe estar desconectado el cable naranja del pin 0. En cambio, cuando lo vayas a hacer funcionar vuelve a conectarlo como en el esquema.
Los bloques bitbloq de este ejemplo de programación son así de sencillos:
Como habrás visto, tan sólo es necesario el bloque de Bluetooth: Enviar donde conectamos el bloque de texto de nuestra frase. Carga este programa en la placa.
Parte 2: RECEPTOR – Usando el Monitor Serial de Arduino IDE
Vamos con la segunda parte, configurar el ordenador para que actúe como receptor.
Si estás usando la placa ZUM BT-328 Recuerda que debes tener el interruptor en ON y los conmutadores en la siguiente posición:
![]() |
|
Alimenta la placa con el portapilas, adaptador o cable USB.
>> Configuración Bluetooth en Windows 7:
Busca desde el botón inicio el asistente de configuración bluetooth que te guiará para establecer la conexión.
Aunque en algunos ordenadores el asistente de configuración bluetooth sea ligeramente distinto, los pasos a seguir serán como estos:
Una vez esté configurado y le demos a conectar, nos pedirá que introduzcamos el PIN que por defecto será 1234
>> Configuración Bluetooth en Linux (Ubuntu):
- Abre una Terminal (Alt + F2) y escribe gnome-terminal
- Busca la habilitación de nuevos dispositivos Bluetooth escribiendo el siguiente comando.
$ sudo hcitool scan
Scanning …
98:D3:31:B2:DB:09 bqZUM_BT328 - Conecta tu dispositivo al puerto ‘/dev/rfcomm0′ escribiendo el siguiente comando usando la dirección obtenida en el paso anterior:
$ sudo rfcomm bind /dev/rfcomm0 98:D3:31:B2:DB:09
>> Configuración Bluetooth en MacOX:
- En Preferencias de sistema selecciona Bluetooth.
- Busca tu placa y pulsa enlazar. Si no puede conectarse y aparece un error, es necesario “emparejar” el dispositivo Bluetooth con el ordenador. Para ello, pulsa sobre Opciones e introduce el código “1234” y vuelve a pulsar sobre enlazar.
¡¡Ya estamos conectados!! Y sabremos el numero del puerto creado dependiendo del sistema operativo, por ejemplo: ‘COM46′, ‘/dev/rfcomm0′, ‘/dev/tty.bqZUM_BT320-SPPDev’…
Abre el IDE de Arduino y selecciona en Herramientas la placa [ArduinoUNO o Arduino BT w/ATmega328] y el puerto [ej: COM46]
Ya podemos abrir el Monitor Serial desde Herramientas/MonitorSerial o pulsando este icono:
Recuerda seleccionar la velocidad de 19200 o 38400 baudios según tu placa. Verás cómo aparece la frase cada 2 segundos
LEER EL PUERTO SERIE BLUETOOTH
Recibiendo vía Bluetooth:
Vamos con un ejemplo para recibir datos por el puerto que hemos abierto. Lo que hace este bloque de comunicación es comprobar si ha llegado algo vía bluetooth:
Si recibimos algo por el puerto creado lo vamos a guardar en una variable local llamada “dato” que compararemos para ver si es la letra A (¡en mayúscula!) y en caso de ser cierto, encenderemos el LED ya integrado en la placa, es decir, el del pin digital 13 (así no necesitas conectar el módulo LED). En caso de recibir cualquier otro dato, apagaremos dicho LED:
“- Pero… ¡Has comparado el dato con un 65!¿? – ” Pues sí querido robonauta, porque ahora mismo en bitbloq no hay un bloque para comparar variables de texto tipo char de momento sólo pueden ser tipo String. No te preocupes si te suena a chino, tan sólo debes saber que para este ejemplo usamos números para identificar letras.
La letra ‘A‘ corresponde con el número decimal 65 en código Ascii (mira la tabla al final de este post).
Carga este programa en tu placa y abre de nuevo el Monitor Serial. Escribe una ‘A’ en mayúscula y dale a enviar… ¿Ves cómo se enciende el pequeño LED? ¿Qué sucede si envias cualquier otra cosa?
Ahora que eres un experto en comunicación bitbloq-bluetooth, que sepas que la aplicación para Android llamada RoboPad envía los caracteres: S,U,D,R,L,C,M… (stop, up, down, right, left, claw, manual) al pulsar los botones de control de los PrintBots. Aquí te dejo la tabla Ascii para que compares la equivalencia de las letras y caracteres que viajan:
¿Te has fijado en que los números 0,1,2,3… también se envían como caracteres y tienen su correspondencia decimal en el código Ascii? Qué de cosas se pueden aprender en un día… ¡Dentro de poco sabrás leer las letras de Matrix!