Bluetooth de Makeblock con Arduino y Android

Aprenderás a usar el módulo bluetooth de Makeblock para controlar tus robots o máquinas desde tu móvil

Con este tutorial vas a aprender cómo usar el módulo bluetooth de Makeblock para controlar tus robots o máquinas usando tu móvil como control remoto.

Haremos un ejemplo sencillo que controla un Motor DC desde el móvil en un sentido, en otro e incluso su velocidad. Es muy fácil de comprender para que lo puedas adaptar a cualquier otro mecanismo y seas capaz de controlar cualquier  robot, servo, motor, ... desde tu móvil vía bluetooth.

Preparación

Conectamos con un cable RJ11 nuestro módulo bluetooth a unos de los puertos marcados con color Azul de nuestra placa base Me.
conectamos un motor DC al puerto M1 de la placa (uno de los 2 amarillos), y alimentamos la placa con el soporte para pilas o con una fuente de alimentación de 12V . OJO! siempre alimentar la placa superior (Me) nunca la inferior (Arduino UNO))

Si quieres saber cómo usar la placa base Me de Makeblock puedes seguir el siguiente tutorial:
Ejemplos de programación con Arduino


Código fuente de ejemplo de uso de bluetooth con Arduino

El siguiente ejemplo configura el bluetooth conectado en el puerto 4 de la placa base Me y queda a la espera de recibir los comandos enviados desde el móvil.
L para que el motor gire a la izquierda, R para la derecha,  los números 1 y 2 para usar una velocidad lenta o rápida y el número 0 para parar el motor.


#include "Makeblock.h"
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "Wire.h"

MeBluetooth bluetooth(4);  //- Usamos el puerto 4 marcado con azul
MeDCMotor motorDriver1(M1); //- Un motor conectado en el puerto M1

void setup()
{
    bluetooth.begin(9600);
}

int velocidad = 100;
int sentido = 1;	// Sentido de giro 1 o -1

void loop()
{
    char inDat;		
    
    if(bluetooth.available())
    {   
        //- caracter recibido por bluetooth convertido a mayúsculas
        inDat = toUpperCase(bluetooth.read());
        
        switch(inDat){
          case 'L':		//- Izquierda
            sentido=1;
            run_motor();
            break;
          case 'R':		//- Derecha
            sentido=-1;
            run_motor();
            break;
          case '0':		//- Parada del motor
            velocidad=0;
            run_motor();
            break;
          case '1':		//- Velocidad lenta
            velocidad=100;
            run_motor();
            break;
          case '2':
            velocidad=200;	//- Velocidad rápida
            run_motor();
          break;
          default:break;
        
        }
    }
}


//- Le decimos al motor cómo debe girar en base a la velocidad establecida por bluetooth
void run_motor(){
  motorDriver1.run( sentido*velocidad); 
}



NOTA: El código PIN por defecto del bluetooth es 1234
--


Probando el bluetooth desde el móvil


Opción 1 - Aplicación básica tipo terminal

Para poder probar cualquier bluetooth desde nuestro móvil con Android deberemos descargar BlueTerm (220 Kb.) que es un simple terminal que se conecta y comunicarse con cualquier dispositivo bluetooth enviando y recibiendo texto.





Nos conectamos con el dispositivo bluetooth que queramos (en nuestro caso se llama Makeblock),  y una vez conectados ya podemos enviar los caracteres que hemos programado en nuestro código de Arduino para manejar el motor.



Opción 2 - Aplicación tipo mando totalmente configurable


Esta aplicación también enviará los caracteres que queramos pero con la ventaja de que podemos configurar cada tecla del mando para enviar el caracter deseado.

Para ello hay que descargar la aplicación Itead Bluetooth Robot Panel 



Desde la pantalla Setup podremos configurar cada tecla del mando para que envíe el caracter que queramos a nuestro bluetooth.

En nuestro caso hemos configurado las teclas como se muestran en la siguiente pantalla.



Y una vez hecho ésto ya podremos manejar nuestro robot desde nuestro móvil Android.

Nota:  Para los que tienen un iPhone en breve Makeblock lanzará un dispositivo BLE bluetooth 4.0  ;)