Bluetooth HC-06 para comunicación Android y Arduino

Mtro. Julio César Sandria Reynoso

Resumen

En este artículo mostramos cómo usar una tarjeta bluetooth HC-06 para establecer una comunicación inalámbrica entre un celular o tableta con Android y Arduino UNO. Se muestra el diagrama de conexión entre las tarjetas Arduino y HC-06. Se proporciona el programa que debe cargarse en Arduino para recibir la comunicación por bluetooth. Se indica qué programa debe descargarse del Play Store e instalarse en el dispositivo Android. Y finalmente se describe cómo realizar la conexión entre ambos dispositivos, y qué datos recibe Arduino para mostrarlos en un Monitor Serie.

Material

  • Tarjeta Arduino UNO
  • Tarjeta Bluetooth HC-06
  • 4 cables macho-hembra
  • Celular o tableta con Android
  • Computadora con software Arduino

Diagrama

Con los cables hembra-macho, conecta las tarjeta Arduino UNO y HC-06 como se muestra en el diagrama siguiente:

Arduino_UNO-HC-06 v2

Una vez conectadas entre si ambas tarjetas, conecta Arduino UNO a la computadora mediante el cable USB. De esta forma, la tarjeta bluetooth CH-06 recibe energía e inmediatamente está disponible para conectarse con un dispositivo bluetooth.

Aplicación en Android

En Android vamos a usar la aplicación Bluetooth RC Controller, la cual puedes descargar del Play Store de Google.

Bluetooth RC Controller Med

Una vez instalada la aplicación en tu dispositivo móvil, conéctala mediante bluetooth al HC-06, el cual se muestra con dicho nombre entre los dispositivos bluetooth. El password por default es 1234.

La tarjeta HC-06 tiene un led rojo que se enciende cuando recibe energía. Este led parpadea cuando la tarjeta aún no está conectada a otro dispositivo bluetooth. Cuando se conecta, el led queda encendido permanentemente.

Programa en Arduino

Copia el siguiente código y pégalo en el Software Arduino. Cárgalo a tu tarjeta Arduino UNO.

/*
 * Autor Julio Sandria // Feb 14, 2015 ver 1
 * Programa: bluetooth_sanduino_v1.ino
 * Proyecto: Bluetooth HC-06 para comunicación Android y Arduino
 * Mas información en: www.robotica.sandria.org
 *
 * Conexiones:
 * Arduino UNO pin 10 a pin TXD de HC-06
 * Arduino UNO pin 11 a pin RXD de HC-06
 * Arduino UNO pin 5V a pin VCC de HC-06
 * Arduino UNO pin GND a pin GND de HC-06
 */

// Incluimos librería para comunicación serial con Arduino
#include "SoftwareSerial.h"

// Declaramos objeto BT1 para comunicación serial por bluetooth
// usando pines 10 para recibir y 11 para transmitir
SoftwareSerial BT1(10,11); // RX, TX

int estado;

void setup() {
  // Iniciamos comunicación serial por USB
  Serial.begin(9600);
  // Iniciamos comunicación serial por bluetooth
  BT1.begin(9600);
  // Damos tiempo para iniciar comunicación
  delay(500); 
  Serial.println("Iniciando bluetooth_sanduino_v1.ino...");
  if(BT1.available())
    Serial.println("BT1 disponible");
}

void loop() {
  if (BT1.available()) {
    // Si hay disponible comunicación bluetooth...
    estado = BT1.read();
    if( estado != 83 ) // Default de Bluetooth RC Controller
      Serial.println(estado);
  } else {
    // Si no hay disponible comunicación bluetooth...
    Serial.println("BT1 NO disponible");
  }  
  delay(50);
}

Una vez cargado el programa en la tarjeta Arduino y con el cable USB conectando Arduino con la computadora, en el software Arduino abre el Monitor Serie, para ver lo que está pasando en la tarjeta Arduino.

Monitor_Serie_bluetooth_sanduino_v1

Si no se conectaron bien el móvil Android y el HC-06, en el Monitor Serie debe mostrarse el mensaje “BT1 NO disponible”. Si se conectaron correctamente, se mostrará el mensaje “BT1 disponible”.

Una vez conectados entre si Android y Arduino, oprime los botones de movimiento de carro de la aplicación Bluetooth RC controller. Al hacer esto, en el Monitor Serie se mostrarán números que corresponden a los botones oprimidos de la siguiente manera:

  • 70: Forward: Avanzar
  • 66: Backward: Retroceder
  • 76: Left: Izquierda
  • 82: Right: Derecha

De hecho, cada número corresponde al código ASCII de la primera letra de la palabra en inglés.

En el siguiente artículo, veremos cómo controlar por bluetooth el robot Sanduino con un dispositivo móvil Android.

Enlaces relacionados

Torneo Mexicano de Robótica 2016

El TMR 2016 (Torneo Mexicano de Robótica 2016) se llevará a cabo en el Polyforum “Dr. Rodolfo Torre Cantú” (antes Polyforum  Victoria) en Cd. Victoria Tamaulipas, del 15 al 17 de marzo del 2016 (Sitio web: http://www.femexrobotica.org/tmr2016/).

En los siguientes enlaces se pueden ver reglas y sitios web de las categorías para chicos de 11 hasta 14 años (primary) y hasta 19 años (secundary).