Robô controlado por telefone Android usando Arduino

Robot controlado por teléfono Android usando Arduino

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.

Protótipo de robô Arduino operado por dispositivos móveis

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:

Diagrama de blocos do robô Arduino operado por dispositivos móveis

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.

Imagem do Módulo Bluetooth HC-05

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 entre las dos resistencias para obtener una salida de aproximadamente 3,4 voltios.

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:

Diagrama de circuito da interface do módulo Bluetooth Arduino e HC-05

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:

Captura de tela do aplicativo Android mostrando a conexão Bluetooth com o robô

Figura 5:

Captura de pantalla de la aplicación de Android que muestra la conexión Bluetooth con el robot.

Captura de tela do aplicativo Android mostrando mensagens enviadas ao robô Arduino

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.

Diagrama de pinos do IC do driver do motor L293D

Figura 7: Diagrama de pines del IC del controlador del motor L293D

El conjunto del robot se puede mostrar a continuación:

Imagem mostrando o projeto mecânico do Arduino Robot

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.

Imagem mostrando chassi e corpo do Robô Arduino

Figura 9: Imagen que muestra el chasis y el cuerpo del Robot Arduino

Imagem do robô Arduino controlado pelo telefone Android

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

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.