bclose

PROGRAMA FINAL PARA EL COCHE TELEDIRIGIDO

Controlar el coche con el teléfono

OBJETIVOS

 

    • Instalar la aplicación para manejar el coche desde el Smartphone.
    • Entender cómo se comunica con nuestro Arduino.
    • Realizar el programa final que cargaremos en el coche.
 

MATERIAL REQUERIDO

 montaje coche s4a

Set de piezas del coche

Imagen de Arduino UNOArduino Uno o compatible y un PC con el entorno mBlock correctamente instalado y configurado.
Vista principalUn módulo controlador de motores L298N.
Img_3_6

Algunos cables de Protoboard macho-macho y macho-hembra.

imagen frontal

 Un módulo BlueTooth HC-06

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.

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”. 

 

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.

 
  • 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 “byte leído en el serial” que encontraréis en la categoría “Robots”.

bloques mblock

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.

bloques mblock

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

mblock coche

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”.

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.

cargar mblock 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.

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 trabajado con el puerto serie del Arduino.
  • Construimos el programa de control del coche teledirigido usando estructuras condicionales.

Índice mBlock LikeUsOnFacebook_Icon

No Comments

Give a Reply

WordPress Anti-Spam by WP-SpamShield