bclose

Controlando el robot por Bluetooth

Robot educativo mBlock

Objetivos

 

    • Descargar e instalar la app para controlar el robot desde el móvil.
    • Comprender cómo se comunican el Arduino y el teléfono mediante Bluetooth.
    • Programar el coche para controlarlo con el bluetooth.
 

Kit de inicio para seguir el curso

.

Programacion Mblock

Kit de inicio a mBlock

Para poder seguir este curso te recomendamos que compres nuestro kit de inicio mBlock.

Comprar Kit inicio mBlock

APP PARA MANEJAR EL COCHE

 

Hay varias apps distinta para comunicarnos por Bluetooth con Arduino,  pero nosotros hemos elegido la aplicación Arduino Bluetooth RC Car porque no parece la más completa y más sencilla de usar. La instalamos como cualquier otra aplicación desde Play Store.

aplicación bluetooth

El círculo rojo índica que no estamos conectados a ningún dispositivo Bluetooth, y de momento vamos a dejarlo así porque todavía tenemos que construir el programa definitivo con el que vamos a controlar el coche gracias a este programa.

Este tipo de aplicaciones funcionan de forma que cuando pulsamos un botón de la pantalla, el teléfono manda un carácter (letra, número o símbolo) por Bluetooth al dispositivo al que estemos conectados, y que nosotros leeremos en el Arduino utilizando el puerto serie.

Pero para poder interpretar estos mensajes que vamos a recibir necesitamos saber que caracteres envía en cada caso, y para verlo tendremos que ir al menú de opciones pulsando sobre el engranaje y allí seleccionar “Settings”.

comandos bluetooth

Las que nos interesan a nosotros son estas:

 
  • Cuando pulsemos adelante enviará ‘F’.
  • Atrás ‘B’.
  • Derecha ‘R’.
  • Izquierda ‘L’.
  • Parar ‘S’. 

PROGRAMAR EL COCHE PARA CONTROLARLO CON BLUETOOTH

 

Ahora que sabemos qué es lo que vamos a recibir desde el Smartphone, ya podemos adecuar nuestro programa para que pueda entenderlo y reaccionar como debe. Lo primera será colocar el bloque “Programa de Arduino”, porque como hemos comentado, esto nos servirá para cargar el programa en el Arduino y poder prescindir del PC. Lo encontramos dentro de la categoría “Robots”.

A continuación tenemos que crear una variable “vel” con la que controlaremos la velocidad de giro de los motores. Para ellos vamos a la categoría “Datos y bloques” y pulsamos en “Crear una variable”Y para fijar la velocidad seleccionamos el bloque “fijar … a …” justo debajo del bloque “Programa de Arduino”, seleccionamos la variable “vel” en el menú desplegable del bloque y escribimos el valor que queramos, entre 0 y 255.

 
  • Os recomendamos que no sea demasiado bajo, porque no será capaz de mover las ruedas, y si ponemos demasiado, las pilas no aguantarán mucho, porque el Bluetooth consume mucho cuando transmite y recibe datos
bloques mblock

A partir de aquí vamos a querer repetir el programa continuamente así que utilizaremos el bloque “por siempre” que podemos encontrar dentro de la categoría “Control”Dentro de este bloque será donde recibamos los mensajes del teléfono y decidamos cómo actuar en cada caso.

Para ello lo primero crearemos otra variable “dir” en la que guardaremos los caracteres que nos lleguen por el Bluetooth al puerto serie del Arduino. Lo hacemos de la misma forma que hemos hecho con la variable “vel”, pero en este caso en vez de asignarle un valor fijo  haremos que tome el valor del carácter que le llegue por el puerto serie utilizando el bloque “Recibido en el Bluetooth” que encontraréis en la categoría “Robots”.

robot educativo

mensajes que estamos leyendo son precisamente los caracteres ‘F’‘B’, ‘R’, ‘L’ y ‘S’ que nos indican la dirección que hemos pulsado en el teléfono como hemos visto en el apartado anterior. Así que ahora sólo nos queda reaccionar a ellos como corresponde.

Para ellos utilizaremos lo que se conoce como estructuras condicionales, y que crearemos utilizando el bloque de “Control” “si … entonces”. Funcionan de forma que, si se cumple la condición que propongamos, se ejecutarán todos los bloques que estén dentro de él, y si no se cumple se los saltará.

Y para crear las condiciones se utilizan los bloques de “Operadores” que tengan forma de hexágono, que son los que encajan dentro del bloque. En este caso usaremos  el bloque “… = …” para saber qué carácter nos ha llegado y por lo tanto qué dirección se ha pulsado. Por ejemplo, si se ha pulsado adelante, tendremos el carácter ‘F’ en la variable “dir”.

bloques mblock
 
  • Fijaros bien que la ‘F’ va entre comillas simples, las que están en la misma tecla que tecla que “?”. Si las omitís no funcionará. 

Y si esto se cumple lo que queremos es que los motores se muevan hacia delante, y esto ya sabemos hacerlo. Lo haremos igual que en la sesión en la que comprobamos el giro de los motores, pero fijando la velocidad con la variable “vel” que hemos creado.

robot educativo

Y ya sólo nos queda hacer lo mismo con las demás direcciones. Al terminar deberíamos tener un programa como este:

Bluetooth mBlock

Para subir el programa al Arduino, primero tenemos que seleccionar la placa y el puerto serie al que esté conectado el Arduino. Conectamos el cable USB al Arduino y desconectamos el Bluetooth.

La placa la seleccionamos en “Placas->Arduino UNO” y el puerto en “Conectar->Puerto Serie”.

bloques mblock

Hacemos click sobre el bloque “Programa de Arduino” y nos aparecerá un menú en el lateral. Pulsamos en “Subir a Arduino” y esperamos a que termine de cargarlo. Una vez subido no os olvidéis de volver a conectar el Bluetooth al Arduino.

Programa subido bluetooth

 

UTILIZANDO LA APP DE CONTROL

 

Para conectarnos a nuestro coche tenemos que soltar el cable del ordenador y pulsar el interruptor para encenderlo. Una vez hecho seleccionamos vamos al menú de la aplicación y seleccionamos  “Connect to car”. Ahí elegimos el Bluetooth del coche y, si todo va bien, debería cambiar el círculo de rojo a verde.

rc control conectar

Y ya podemos empezar a jugar con nuestro coche. Además de manejarlo con las flechas de la pantalla podemos también controlarlo utilizando el acelerómetro del móvil seleccionando “Accelerometer Control” en el menú.

Control coche acelerómetro

Aquí tenéis un vídeo con el resultado:

 

RESUMEN DE LA SESIÓN

 

En esta sesión hemos aprendido varias cosas importantes:

 
  • Hemos entendido cómo se comunican el Arduino y la app del Smartphone utilizando el Bluetooth.
  • Hemos hecho el programa de control del coche teledirigido usando estructuras condicionales.

Índice mBlock

 

LikeUsOnFacebook_Icon