El teléfono Android que permanece en tu mano la mayor parte del tiempo es útil en muchas otras aplicaciones además de Whatsapp, Facebook; electrodomésticos; y monitorear tus parámetros de salud. ¿Y si pudiera controlar un robot para ayudarle con su trabajo diario? ¡Si es posible! Con este proyecto podrás realizar un robot que pueda ser controlado por un teléfono Android, mediante comunicación Bluetooth.
Figura 1: Prototipo de robot Arduino operado por dispositivos móviles
El robot está construido alrededor de Arduino interconectado con un receptor Bluetooth para recibir comandos desde el teléfono Android.
El diagrama de bloques básico del sistema es el siguiente:
Figura 2: Diagrama de bloques del robot Arduino operado por dispositivos móviles
Comunicación Bluetooth
Bluetooth es un estándar de tecnología inalámbrica para intercambiar datos a distancias cortas (utilizando ondas de radio UHF de longitud de onda corta en la banda ISM de 2,4 a 2,485 GHz) desde dispositivos fijos y móviles y para construir redes de área personal (PAN). Inventado por el proveedor de telecomunicaciones Ericsson en 1994, fue concebido originalmente como una alternativa inalámbrica a los cables de datos RS-232. Puede conectar múltiples dispositivos, superando problemas de sincronización.
El módulo HC-05 es un módulo Bluetooth SPP (Protocolo de puerto serie) fácil de usar diseñado para una configuración de conexión serie inalámbrica transparente. HC-05 es un módulo de 6 pines. El módulo tiene 6 pines etiquetados en la parte posterior, pero la mayoría de los módulos solo tienen 4 de ellos llenos de pines pogo. KEY & STATE parecen no ser necesarios ya que KEY se usa para actualizar el dispositivo y STATE simplemente indica si el dispositivo está activo o no. Eso deja solo GND, VCC, TXD, RXD.
Figura 3: Imagen del módulo Bluetooth HC-05
Para conectar el módulo a Arduino, necesitamos usar los pines serie (Tx y Rx) proporcionados en la placa.
Conexiones con HC-04
Haciendo conexiones con HC-05:
Algunos módulos tienen etiquetado VCC para voltajes de trabajo de hasta ~6 voltios y NO les gusta nada más que 3,3 voltios en la línea VCC. Debemos utilizar un conversor de nivel para 3.3V en la línea RXD. Utilice dos resistencias como divisor de voltaje simple para convertir el nivel TTL. Una resistencia de 2,2 k ohmios a tierra, conectada a una resistencia de 1 k ohmios, a la línea TXD de la MCU.Conecte el pin RXD del módulo al TXD (Pin digital 1) del Arduino, usando la configuración del divisor de voltaje que se muestra a continuación:
Figura 4: Diagrama del circuito de interfaz del módulo Bluetooth Arduino y HC-05
Ahora conecte el TXD del módulo al RXD del Arduino (Pin digital 0).
Aplicación Android para controlar robots.
Hay muchas aplicaciones en Play Store para controlar Arduino a través de Bluetooth que están disponibles de forma gratuita. Para mantener el código simple, usaremos el “Terminal Bluetooth Arduino”. Descargue e instale el mismo y empareje el receptor Bluetooth con su teléfono celular. A continuación se proporciona una captura de pantalla de la aplicación:Figura 5:
Captura de pantalla de la aplicación de Android que muestra la conexión Bluetooth con el robot.
Figura 6: Captura de pantalla de la aplicación de Android que muestra los mensajes enviados al robot Arduino
Interfaz de ensamblaje y motor de robot
Los motores están interconectados a través del Motor Driver (tipo Dual H-Bridge), la versión comúnmente utilizada es L293D, que está disponible en DIP de 18 pines.Figura 7: Diagrama de pines del IC del controlador del motor L293D
El conjunto del robot se puede mostrar a continuación:
Figura 8: Imagen que muestra el diseño mecánico del Robot Arduino
La aplicación móvil de Android para controlar el robot está disponible de forma gratuita en Play Store.
Las entradas del controlador del motor están conectadas a los pines 5 de Arduino; 6; 7 y 8 respectivamente.
Figura 9: Imagen que muestra el chasis y el cuerpo del Robot Arduino
Figura 10: Imagen del robot Arduino controlado por el teléfono Android
Código fuente del proyecto
###
// Robot controlado por teléfono Android
// Probado con éxito en la aplicación de Android --> 'Arduino Bluetooth
// Terminal '; está disponible gratis en Google Play Store
estado entero;
bandera int=0;
paso vacío;
anular el avance;
vacío dejado;
derecho nulo;
retroceso vacío;
configuración vacía
{
pinMode(7,SALIDA);
pinMode(8,SALIDA);
pinMode(5,SALIDA);
pinMode(6,SALIDA);
Serie.begin(9600); // Velocidad en baudios establecida en 9600 bps
}
bucle vacío {
if(Serial.available > 0) // Verifique el comando recibido
{
estado = Serie.leer;
Serial.println(estado);
bandera=0;
}
if (estado == '1') // Comprobando el comando del usuario
{
paso;
si(bandera == 0){
Serial.println("Detener");
bandera=1;
}
}
de lo contrario si (estado == '2')
{
adelante;
si(bandera == 0)
{
Serial.println("Adelante");
bandera=1;
}
}
de lo contrario si (estado == '3')
{
atrás;
si(bandera == 0)
{
Serial.println("Hacia atrás");
bandera=1;
}
}
de lo contrario si (estado == '4')
{
izquierda ;
si(bandera == 0)
{
Serial.println("Izquierda");
bandera=1;
}
}
de lo contrario si (estado == '5')
{
bien;
si(bandera == 0)
{
Serial.println("Derecha");
bandera=1;
}
}
} //el bucle termina aquí
void fwd // Adelante
{
escritura digital (7, ALTO);
escritura digital (5, ALTO);
escritura digital(6,BAJO);
escritura digital(8,BAJO);
}
vacío hacia atrás // hacia atrás
{
escritura digital (8, ALTO);
escritura digital (6, ALTO);
escritura digital(7,BAJO);
escritura digital(5,BAJO);
}
vacío a la izquierda //IZQUIERDA
{
escritura digital (7, ALTO);
escritura digital(5,BAJO);
escritura digital(8,BAJO);
escritura digital(6,BAJO);
}
derecho vacío // derecho
{
escritura digital(7,BAJO);
escritura digital (5, ALTO);
escritura digital(8,BAJO);
escritura digital(6,BAJO);
}
void stp // El robot se detiene
{
escritura digital(7,BAJO);
escritura digital(8,BAJO);
escritura digital(5,BAJO);
escritura digital(6,BAJO);
}
###
Diagramas de circuito
Diagrama de circuito-L293D-Motor-Driver-Arduino-Robot | ![]() |
Circuito-Diagrama-Controlador-Circuito-Arduino-Robot | ![]() |