Inicio » Electronica » Arduino » Bluetooth HC-06

Bluetooth HC-06

Aprende a utilizar el módulo bluetooth HC-06. El robot DYOR utiliza para comunicar con un dispositivo móvil externo y poder ser controlador remotamente. Principio de funcionamiento, diagramas de conexión y ejemplo de programación con Facilino y Arduino.

¿Cómo funciona el módulo Bluetooth HC-06?

La comunicación por Bluetooth está basada en el módulo HC-06 (o similar) que no es más que un dispositivo que permite establecer una comunicación serie a través de una interfaz bluetooth y por tanto nos permite conectarnos de forma sencilla al robot desde cualquier dispositivo móvil o tableta.

La comunicación serie puede realizarse desde cualquier de los pines de Arduino Nano a excepción de los pines 0 y 1, ya que éstos están ocupados por la interfaz serie USB. En este sentido, la comunicación con el módulo bluetooth se realizará una interfaz serie por software, es decir que nos permite escoger los pines de comunicación. Por contra, la comunicación requiere del uso de la CPU de Arduino para codificar/decodificar la señal serie, pero esto es algo completamente transparente, con lo que no se le dará mayor importancia.

La forma más sencilla de comunicar entre Arduino y cualquier dispositivo es mediante el envío/recepción de «comandos» de un byte de información (valores entre 0 y 255), de forma que al intercambiar un byte de información ambos saben, previamente, a qué comando se refiere dicha información. No obstante, esto puede ser demasiado limitado en algunas aplicaciones y puede que sea necesario establecer un protocolo de comunicación más elaborado.

El módulo HC-05 es muy similar al módulo HC-06, simplemente que tiene la capacidad de ser maestro y/o esclavo de la comunicación bluetooth, queriendo implicar que podría utilizarse no sólo para comunicar el robot con un dispositivo, si no que podría utilizarse para comunicar dos robots.

IMPORTANTE: Para poder comunicar dos dispositivos bluetooth deben primero emparejase. La contraseña por defecto del módulo HC-06 es 1234. El nombre por defecto del dispositivo es HC-06, que podremos modificar para identificar mejor a nuestro robot.

Conexión del módulo Bluetooth HC-06

A continuación se describe cómo conectar el módulo Bluetooth a Arduino. Este módulo requiere de los pines de alimentación (VCC) y masa (GND), del pin de transmisión (TX) y del pin de recepción RX (desde el punto de vista del módulo HC-06). Es importante hacer notar que los pines de comunicación serie tienen que estar cruzados, es decir que el pin TX del módulo HC-06 tiene que estar conectado al pin de recepción RX de Arduino y viceversa.

  • VCC: Alimentación. Conectar a los pines de +5V.
  • GND: Masa. Conectar a los pines 0V (GND).
  • TX (HC-06) -> RX(Arduino): Entrada digital (desde el punto de vista de Arduino). Conectar a los pines digitales de Arduino.
  • RX (HC-06) -> TX(Arduino): Salida digital (desde el punto de vista de Arduino). Conectar a los pines digitales de Arduino.

A continuación se muestra un ejemplo de conexión a Arduino Nano v3.0 con placa de expansión con los pines TX (HC-06) y RX (HC-06) conectados a los pines 2 (RX para Arduino) y 4 (TX para Arduino), respectivamente:

Aquí podéis descargar el fichero Fritzing:

¿Cómo cambiar el nombre el dispositivo bluetooth?

Al utilizar el módulo por primera vez, tiene el nombre por defecto HC-06. Por tanto, si queremos identificar a nuestro robot debemos modificar el nombre del dispositivo. Una vez hechos los cambios, el nombre se queda cambiado permanentemente.

Los pines de conexión son como los mostrados en el diagrama anterior, por tanto, desde el punto de vista de Arduino la señal RX es el pin 2, mientras que la señal TX es el pin 4. La velocidad de comunicación por defecto es de 9600 baudios.

Aquí podéis descargar el fichero Facilino:

¿Cómo recibir comandos de mi App?

Tal y como se ha mencionado anteriormente, se pueden definir una serie de comandos que permitan realizar determinadas órdenes enviadas desde la App. Para ello, se deben establecer unas equivalencias entre el «comando» y el valor que representa a dicho comando. A continuación se incluye una tabla con toda la lista de comandos que se han definido por defecto. Si necesitáis comandos adicionales es conveniente utilizar los que están libres.

La instrucción «Bluetooth App» está pensada para recibir comandos desde una App a través de bluetooth o cualquier otra aplicación que envíe comandos por bluetooth. Se pueden agregar todos los comandos a procesar simplemente añadiendo nuevos comandos desde el botón con forma de estrella. Debemos especificar los pines de recepción y transmisión de la comunicación serie desde el punto de vista de Arduino. Cada comando que agreguemos, procesará un dato recibido según la tabla anterior. Existe la posibilidad de enviar un comando y ejecutar las instrucciones sólo cuando el comando es enviado (comandos simples) o se puede guardar en memoria un comando y repetirlo varias veces. Mediante esta utilidad, podemos repetir un conjunto de instrucciones como por ejemplo los modos de control autónomo del robot como la evitación de obstáculos y/o el seguimiento de líneas (entre otros), de forma que no tenemos que estar enviando comandos repetidamente. Para salir del modo de repetición sólo tendremos que enviar el comando «Interrumpir Blucle».

En el ejemplo que se muestra a continuación sólo procesamos los comandos «Feliz», «Enamorado» y «Do» por sencillez, pero lógicamente esto puede ser fácilmente ampliado agregando nuevos comandos. Concretamente el comando «Do» tiene la casilla Repite activada, con lo que si enviamos el comando «Do» desde nuestra aplicación, la nota se repitirá indefinidamente hasta que mandemos el comando «Interrumpir Bucle». Observad que mientras se repite un cierta instrucción podemos seguir enviando comandos simples como por ejemplo para cambiar la expresión de «Feliz» a «Enamorado».

Aquí podéis descargar el fichero Facilino:

Con objeto de hacer funcionar este ejemplo necesitaréis desarrollar una sencilla App con App Inventor. A continuación os incluimos unas imágenes tanto de la interfaz como de del código a desarrollar y también se facilita el código para que lo integréis en vuestros proyectos de App Inventor 2.

Como podéis observar, en este ejemplo, hemos añadido unos botones para conectar/desconectar el dispositivo bluetooth (supuestamente ya emparejado). Para conectarnos debemos de seleccionar al dispositivo que corresponda asegurándonos que no hay otro dispositivo bluetooth con el mismo nombre. En caso contrario, lo recomendable es cambiar el nombre de tu dispositivo. En el código mostrado, se observa que cada vez que pulsemos a alguno de los botones se envía el código de comando correspondiente.

Podéis descargar el código de la App para utilizar en App Inventor 2:

Aquí podéis instalaros directamente la App ya creada para enviar comandos a a partir del siguiente código QR:

AI2 Bluetooth Demo App