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

(4) Comments

  • He observado que el primer bloque del diseño del proyecto final (el de la “F”) abarca los siguientes por lo que solo actua la marcha
    hacia delante.. He corregido este detalle y me ha funcionado correctamente. Creo que sigue lineas esta igual. Un saludo

    • Gracias Teo, ya hemos corregido el pantallazo y además hemos puesto un enlace para descargar el programa completo directamente. Un saludo.

  • Sigo vuestros tutoriales desde hace mas de un año. Felicidades es el mejor proyecto que conozco de internet. Me he dedicado preferentemente a los robots que habéis propuesto desde el primero con p2p y los siguientes. En todos ellos he tenido dificultades para adaptar el bluetooth (por mi inexperiencia o la mala calidad de los materiales). Dicho todo esto y como sea que se están utilizando en muchos trabajos los bluetooth , seria posible que publicaseis un tutorial que nos ayudara para cambiar, nombre, velocidad, c ontraseña y demás cualidades del dispositivo, asi como visualizar la velocidad .¿ En el ultimo de mBlock (robot)se puede cambiar la velocidad de algún modo? El programa la saca por defecto en 115.200. El tema de la velocidad de este dispositivo tiene diversos valores según el programa. ¿Por qué?

    • Hola Teo, la verdad es que configurar el Bluetooth suele ser la parte más problemática en estos proyectos. Ahora estamos trabajando precisamente en la creación de nuevos bloques de mBlock para conseguir por una parte cambiar precisamente la velocidad de comunicación que viene por defecto en 115200 y, por otra parte, poder cambiar la velocidad de comunicación, nombre y contraseña del módulo Bluetooth directamente desde mBlock sin tener que usar el IDE. Un saludo.

Give a Reply

WordPress Anti-Spam by WP-SpamShield