#18 Bluetooth

Introducción

Este proyecto se basa en la comunicación de un teléfono Android, con la tarjeta PICARO, por medio del BlueBee, es decir a través de una aplicación que se instala en el teléfono celular podemos enviar comandos, que serán recibidos por la BlueBee, para luego ser procesado por la PICARO. En nuestro caso, se envían caracteres, que al recibirlos se comparan con los caracteres previamente almacenados, y al encontrar coincidencia se ejecuta una acción, es decir se encenderá el LED deseado.

La app utilizada para el teléfono celular es Bluetooth spp tools pro , la puedes conseguir directamente en Google Play.

Bluetooth es una especificación industrial para Redes inalámbricas de Área Personal (WPAN), que posibilita la transmisión de voz y datos entre diferentes dispositivos, mediante un enlace por radiofrecuencia en la banda de los 2.4 GHz. Los principales objetivos que se pretenden conseguir con esta norma son:

*Facilitar las comunicaciones entre equipos móviles.

*Eliminar los cables y conectores entre estos.

*Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sincronización de datos entre equipos personales.

Esta tecnología la podemos encontrar en las computadoras portátiles, los teléfonos celular, entre otros, lo cual nos permite conectarnos a otro dispositivo, para que ocurra esta conexión es necesario, que uno de los dispositivos se encargue de buscar los dispositivos cercanos y de esta manera seleccionar el nombre del que nos queremos conectar.

En este ejemplo trabajaremos con una tarjeta fabricada por MCI, llamada BlueBee, que consiste en un modulo bluetooth con socket XBee, está tarjeta posee el RN42, que es una radio bluetooth de tamaño pequeño y bajo consumo, ideal para tus proyectos inalámbricos. El BlueBee tiene las siguientes funcionalidades:

 

Compatible con formato XBee para comunicación serial.

Módulo Bluetooth completamente certificado.

Modo de baja energía.

Operación de 3.3V.

LEDs de estados.

Tecnología Bluetooth V2.0 compatible.

Pasos a seguir:

#1   Armar el circuito según la imagen

#2   Abrir el IDE de Arduino y conectar la tarjeta PICARO al computador

#3   Seleccionar el tipo de tarjeta como Arduino Uno

#4   Elegir el puerto serial en que se encuentra conectada la tarjeta PICARO

#5   Copiar el código de ejemplo al IDE, compilarlo y subirlo

Listado de componentes :

Descargas:

Código:

En este programa utilizamos la librería SoftwareSerial.h, ésta ha sido desarrollada para permitir la comunicación en serie utilizando otros pines digitales del Arduino, software para replicar la funcionalidad (de ahí el nombre “SoftwareSerial”). Se utilizan el pin 3 como RX (Receptor)  y el pin 2 como TX (Transmisor). Al conectar el BlueBee a la PICARO por medio de la Xbee Shield, ella empezara a funcionar y lo podrás encontrar en tu teléfono al buscar dispositivos cercanos, es decir, no es necesario hacerle configuraciones previas para que pueda recibir datos.

Al descargar la app en el teléfono móvil, seleccionamos el botón SCAN, esperamos a que nos aparezcan los dispositivos cercanos y nos conectamos al dispositivo BlueBee, seguido a esto escogemos la opción de teclado (Keyboard), en la parte superior hay un botón con tres puntos, lo seleccionas y vas a la opción Buttons Set, luego escoges cualquier botón, le colocas el nombre que desees, en este caso se coloca el color del LED o apagar el LED “xxx” y en la opción BTN Down colocas la letra que quieres enviar. Para este ejemplo se usaron las letras de la “a” hasta la “l”, al finalizar la configuración de botones, te diriges a la parte superior de los 3 puntos y seleccionas Buttons set complete, hasta este punto ya tendrás el teléfono móvil configurado.

En el código que cargamos a nuestra PICARO, inicialmente se declaran las variables que esperamos recibir, por ejemplo: char a=”a”. Esto quiere decir que el carácter a va a ser igual a la letra “a” que envías desde el teléfono móvil, de esta manera se declaran todas los caracteres que se esperan, desde la “a” hasta la “l”, luego colocamos los pines de donde conectaremos los LEDs como salidas e inicializamos los puertos seriales.

En el void loop(), que es donde se encuentran las funciones que se están repitiendo consecutivamente, verificamos que mientras haya datos en el puerto serial, se irán almacenando en la variable llamada inByte, luego se compara lo que hay dentro de inByte con cada una de las letras, en caso de coincidir, se encenderá o apagara un LED, depende de lo que quieras que pase al cumplirse la condición, así como encendemos un LED puedes activar un motor o hacer lo que desees.

include 

SoftwareSerial nss(3,2);

char inByte;

int aux = 0;

//----Variables a chequear----

char a='a';

char b='b';

char c='c';

char d='d';

char e='e';

char f='f';

char g='g';

char h='h';

char i='i';

char j='j';

char k='k';

char l='l';

void setup()

{

  pinMode(7, OUTPUT);

  pinMode(8, OUTPUT);

  pinMode(9, OUTPUT);

  pinMode(10, OUTPUT);

 

 Serial.begin(9600);

 nss.begin(9600);

}

void loop()

{

    while (nss.available() > 0) {

    inByte = nss.read();

   

        //-------Prender----------

        if (inByte == a)

        {

        digitalWrite(7,HIGH); //Led ROJO

        }

        else if(inByte == b)

        {

         digitalWrite(8,HIGH); //Led AMARILLO

        }

        else if(inByte == c)

        {

         digitalWrite(9,HIGH); //Led AZUL

        }

        else if(inByte == d)

        {

         digitalWrite(10,HIGH); //Led ROJO

        }

        //-------Apagar----------

       

        else if(inByte == e)

        {

        digitalWrite(7,LOW); //Apagar Led ROJO

        }

        else if(inByte == f)

        {

         digitalWrite(8,LOW); //Apagar Led AMARILLO

        }

        else if(inByte == g)

        {

         digitalWrite(9,LOW); //Apagar Led AZUL

        }

        else if(inByte == h)

        {

         digitalWrite(10,LOW); //Apagar Led ROJO

        }

        //-------Prender todos----------

        else if(inByte == i)

        {

         digitalWrite(7,HIGH);

         digitalWrite(8,HIGH);

         digitalWrite(9,HIGH);

         digitalWrite(10,HIGH);

        }

        //-------Apagar todos----------

        else if(inByte == j)

        {

         digitalWrite(7,LOW);

         digitalWrite(8,LOW);

         digitalWrite(9,LOW);

         digitalWrite(10,LOW);

        }

        //-------Secuencia----------

         if (inByte ==k){

         

          while (inByte == k){

         inByte = nss.read();

         digitalWrite(7,HIGH);

         delay(50);

         digitalWrite(7,LOW);

         delay(50);

         digitalWrite(8,HIGH);

         delay(50);

         digitalWrite(8,LOW);

         delay(50);

         digitalWrite(9,HIGH);

         delay(50);

         digitalWrite(9,LOW);

         delay(50);

         digitalWrite(10,HIGH);

         delay(50);

         digitalWrite(10,LOW);

         delay(50);

         inByte = nss.read();

       if (inByte == l){

          break;

        }

          inByte = k;

        }

        }

         //-------Apagar Secuencia----------

    if (inByte == l){

         digitalWrite(7,LOW);

         digitalWrite(8,LOW);

         digitalWrite(9,LOW);

         digitalWrite(10,LOW);

     }

   }

  }     

 

Demostración

Acá tenemos un vídeo donde podremos observar el funcionamiento de nuestro circuito. Como se explicó anteriormente, tenemos la tarjeta BlueBee conectada a la XBee Shield, que a su vez esta conectado a la tarjeta PICARO. Al iniciar la aplicación en nuestro teléfono celular con sistema operativo Android, iniciamos el Scan para detectar los dispositivos cercanos, allí encontrara el dispositivo BlueBee, se selecciona y luego se le da al botón Connect (Conectar), seguido a esto nos muestra tres opciones de comunicación:

1. Modo cadena de byte.

2. Modo Teclado.

3. Modo linea de comando.

Se selecciona el que se desee, en nuestro caso tomamos el modo Teclado y allí es donde aparecerá el menú con los botones, ya previamente configurados para que envíen un carácter especifico y de esta manera poder procesarlos en la PICARO.

¿En busca del Kit PICARO?

Con el PICARO Starter Kit podrás realizar estos ejemplos ¡y mucho más!
Producto Chileno. Encuéntralo en MCI Electronics.

Contacto

Direccion Luis Thayer Ojeda 0115 Of. 1105, Providencia, Santiago, Chile.

Phone: +56 2 2333 9579 / +56 2 2231 9268

Horario Lunes a Viernes de 8:00 a 18:00

Nosotros

En MCI Electronics, estamos aquí para mantener la industria en movimiento. Nuestro objetivo es difundir y hacer accesible el uso de la electrónica a todo aquel que tenga el interés. Para ello nos esforzamos para traer los mejores componentes y módulos de manera que puedas aprender desarrollando tus propios proyectos.

Somos tu aliado en electrónica.

Suscríbete a nuestro boletín