Objetivos
Material requerido.
Robot educativo |
CONECTAR Y CONFIGURAR EL HC-06
Vamos a utilizar el módulo Bluetooth para poder comunicarnos por el puerto serie de nuestro Arduino sin necesidad de cables, pero para no ocupar el único puerto serie que tiene nuestro Arduino UNO, vamos a utilizar la librería Software Serial que nos permitirá simular en puerto serie utilizando otros pines.
Nosotros vamos a utilizar el pin 2 como Rx y el 3 como Tx, de forma que el esquema de montaje para incluir el HC-06 en el coche sería el siguiente. Recordad que el las conexiones entre el Arduino y el HC-06 son cruzadas, es decir, el Tx de uno con el Rx del
Antes de poder utilizar el módulo vamos a configurarlo para ponerle el nombre y la contraseña que queramos. Simplemente declaramos los pines que vamos a utilizar con la librería Software Serial y cambiamos el nombre y la contraseña. Podéis cambiar “PROMETEC” y “5678” por el nombre y la contraseña que queráis que tenga vuestro dispositivo. Aquí podéis descargarlo: configurar_hc-06.
#include <SoftwareSerial.h> SoftwareSerial BT(2,3); // RX, TX String nombre = "PROMETEC"; //Cambiar PROMETEC por el nombre deseado String password ="5678"; //Cambiar 5678 por el la contraseña deseada void setup() { BT.begin(9600); pinMode (13,OUTPUT); digitalWrite(13,LOW) ; BT.print("AT"); delay(1000); BT.print("AT+NAME"); Serial.print(nombre); delay(1000); BT.print("AT+PIN"); BT.print(password); delay(1000); digitalWrite(13,HIGH) ; }
ADAPTAR EL PROGRAMA DE CONTROL
Ya tenemos hecho el programa de la sesión anterior, y ahora únicamente vamos a incorporar la funcionalidad Bluetooth. Así que para empezar le incorporamos la librería Software Serial y creamos la instancia donde declaramos los pines que va a utilizar.
#include <SoftwareSerial.h> SoftwareSerial BT(2,3); // RX, TX
Y a partir de ahí sólo tenemos que sustituir las instucciones en las que usamos el puerto serie por la instancia BT que hemos creado:
void setup() { BT.begin(9600) ; // Declaramos todos los pines como salidas pinMode (ENA, OUTPUT); pinMode (ENB, OUTPUT); pinMode (IN1, OUTPUT); pinMode (IN2, OUTPUT); pinMode (IN3, OUTPUT); pinMode (IN4, OUTPUT); } void loop() { // Motor gira en un sentido if (BT.available()) switch (BT.read()) { case 'F': Adelante(); break; case 'B': Atras(); break; case 'R': Derecha(); break; case 'L': Izquierda(); break; case 'S': Parar(); break; } }
El resto del programa no necesitaría ningún cambio. Lo podéis descargar aquí: coche_con_bluetooth.
SINCRONIZAR EL SMARTPHONE Y EL HC-06 Y DESCARGAR EL PROGREAMA DE CONTROL
Para vincular el smartphone y el Bluetooth del coche implemente vamos a las opciones de Bluetooth de nuestro teléfono, buscamos el dispositivo con el nombre que hayamos escogido e introducimos la contraseña.
Ahora vamos a descargar la aplicación que usaremos para controlar el coche. Hay muchas, muchísimas, pero nosotros hemos elegido la aplicación Arduino Bluetooth RC Car porque no parece la más completa y más sencilla de usar. Además cuadra con los caracteres que hemos utilizado para controlar la dirección de movimiento del coche.
El círculo rojo indica que todavía no estamos conectados. Para hacerlo hay que pulsar en el icono con forma de engranaje, seleccionar «connect to car» y elegir nuestro dispositivo HC-06. Si todo va bien debería cambiar el círculo 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ú de ajustes, donde también nos permite ver qué caracteres son los que envía la aplicación al Arduino.
Aquí podéis ver el resultado y cómo jugamos un poquito con él:
Resumen de la sesión
En esta sesión hemos aprendido varias cosas importantes: