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

 

 Tienda EspañaTienda Mexico
Vista principal Robot educativoRobot 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.

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:

Contenido solo disponible para suscriptores. ¡Accede al contenido!

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

Para porder realizar consultas a nuestros expertos, tienes que ser suscriptor. Suscribiendote nos ayudas a mantener este proyecto en marcha.

¡ Quiero Suscribirme !

Si ya eres premium y no puedes comentar haz login. Hacer login

(8) Comments

    • Mar Martinez Rivas

    hola he seguido los pasos del tutorial y he probado con la velocidad de comunicación de 115200 y la de 9600 subo el código se conecta, pero no se mueve ni el aire. Me podrías orientar donde podría estar mi error.

      • Ivan Uriarte

      Buenos días Mar, pueden ser varias cosas, así que vamos a ir descartando poco a poco.

      ¿Has conseguido mover el coche de manera autónoma como en las sesiones anteriores? Si es así, ya descartamos que sea un problema de cableado o de alimentación insuficiente. Si no prueba a moverlo prescindiendo de momento del bluetooth.

      Si eso te ha ido bien vamos a probar que estemos leyendo bien el bluetooth. Si estás usando mBlock, la velocidad que tienes que tener es 115200. Para eso tienes que configurarlo antes como en la sesión anterior. ¿Te ha cambiado el nombre y la contraseña al que has puesto cuando lo hiciste? (Puedes ver si lo ha hecho desde el móvil) Si no es que seguramente estamos fallando al configurarlo.

      Contéstame cuando puedas y seguimos mirando. Un saludo!

    • Fidel

    Me parece excelente, tu proyecto sin embargo sigo todas las instrucciones que propones, pero no me funciona existe alguna modificación que efectuar para el correcto funcionamiento, Existe la posibilidad que compartas dicho cambio?
    Gracias Saludos

      • Ivan Uriarte

      No hemos modificado nada. Prueba si quieres con mBlock… qué es lo que te pasa?

  • 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

      • Ivan

      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é?

      • Ivan

      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.

Para porder realizar consultas a nuestros expertos, tienes que ser suscriptor. Suscribiendote nos ayudas a mantener este proyecto en marcha.

¡ Quiero Suscribirme !

Si ya eres premium y no puedes comentar haz login. Hacer login