OBJETIVOS
MATERIAL REQUERIDO
Robot educativo |
APP PARA CONTROLAR EL COCHE
Hay muchas aplicaciones distintas diseñadas para el control de coches, 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.
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”.
Las que nos interesan a nosotros son estas:
PROGRAMACIÓN DEFINITIVA USANDO EL 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.
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 “byte leído en el serial” que encontraréis en la categoría “Robots”.
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”.
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.
Y ya sólo nos queda hacer lo mismo con las demás direcciones. Al terminar deberíamos tener un programa como este:
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 de los pines 0 y 1.
La placa la seleccionamos en “Placas->Arduino UNO” y el puerto en “Conectar->Puerto Serie”.
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.
Podéis descargar el programa completo aquí: Coche teledirigido.
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.
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ú.
Aquí tenéis un vídeo con el resultado:
RESUMEN DE LA SESIÓN
En esta sesión hemos aprendido varias cosas importantes: