Arduino: controla 2 motores CC mediante Bluetooth (perfecto para construir un robot)

¡Bienvenidos a nuestro artículo sobre cómo controlar 2 motores CC mediante Bluetooth con Arduino! Si estás buscando construir tu propio robot, esta guía es perfecta para ti. Aprenderemos paso a paso cómo conectar y programar Arduino para controlar los motores de tu robot de forma inalámbrica a través de Bluetooth. ¡No te lo pierdas! ¡Sigue leyendo para convertirte en un experto en robótica!

En este tutorial, le mostraré cómo controlar dos motores de CC a través de Bluetooth usando una aplicación de Android creada con MIT App Inventor 2. MIT App Inventor es una gran plataforma para comenzar con el desarrollo de Android.

Arduino: controla 2 motores CC mediante Bluetooth (perfecto para construir un robot)

En un tutorial anterior (haga clic aquí para ver este proyecto), controlé un motor de CC usando una aplicación llamada BlueTerm. Esta aplicación hizo su trabajo, pero no es ideal para enviar constantemente diferentes comandos de una manera sencilla.

La aplicación que crearás es perfecta para controlar cualquier pin Arduino o integrarlo en tu propio coche robot. Puede editar esta aplicación para sus necesidades específicas.

Módulo Bluetooth HC-05

Para establecer comunicación Bluetooth entre su teléfono inteligente y su Arduino, necesita un módulo Bluetooth. Este proyecto utiliza el módulo Bluetooth HC-05 (como se muestra en la siguiente figura).

Arduino: controla 2 motores CC mediante Bluetooth (perfecto para construir un robot)

Este módulo Bluetooth funciona con datos en serie. Esto significa que Arduino envía información y el módulo Bluetooth la recibe en serie (y viceversa).

Por defecto, el módulo Bluetooth HC-05 funciona con una velocidad de baudios de 9600.

Crea tu aplicación para Android

La aplicación de Android se crea utilizando una aplicación web gratuita llamada Inventor de la aplicación del MIT. MIT App Inventor es un excelente lugar para comenzar el desarrollo de Android porque le permite crear aplicaciones simples de arrastrar y soltar.

Necesita una cuenta de Google para registrarse en MIT App Inventor. Aquí está la página de inicio de sesión: http://ai2.appinventor.mit.edu.

Haga clic aquí para descargar el archivo .aiaentonces mira el vídeo a continuación:

Si vas a la pestaña Proyectos puedes subirlos Archivo .aia para este proyecto

Arduino: controla 2 motores CC mediante Bluetooth (perfecto para construir un robot)

Con MIT App Inventor tienes dos áreas principales: Diseñador y Bloques. El diseñador le brinda la posibilidad de agregar botones, agregar texto, agregar pantallas y editar la apariencia general de la aplicación.

Arduino: controla 2 motores CC mediante Bluetooth (perfecto para construir un robot)

Las secciones de bloque le permiten crear funciones personalizadas para su aplicación. Entonces, cuando presionas los botones, realmente hace algo con esa información.

Arduino: controla 2 motores CC mediante Bluetooth (perfecto para construir un robot)

Te recomiendo que sigas este proyecto primero y uses la aplicación sin modificarla.

Si desea realizar cambios en la aplicación cuando haya terminado y desea instalarla en su teléfono inteligente, vaya a la pestaña «Crear».

  • Puede generar un código QR que puede escanear con su teléfono inteligente e instalar automáticamente la aplicación en su teléfono inteligente.
  • O puede descargar el archivo APK, conectar su teléfono inteligente a su computadora y mover el archivo APK al teléfono.

Arduino: controla 2 motores CC mediante Bluetooth (perfecto para construir un robot)

¡Simplemente siga el asistente de instalación para instalar la aplicación y listo!

código

Este proyecto no requiere que instales ninguna biblioteca Arduino. Así que sólo necesitas descargar o copiar el siguiente código a tu IDE de Arduino y subirlo a tu placa Arduino. Asegúrese de haber seleccionado la placa y el puerto COM correctos.

/*
 * created by Rui Santos, https://randomnerdtutorials.com
 * Control 2 DC motors with Smartphone via bluetooth
 */
 
int motor1Pin1 = 3; // pin 2 on L293D IC
int motor1Pin2 = 4; // pin 7 on L293D IC
int enable1Pin = 6; // pin 1 on L293D IC
int motor2Pin1 = 8; // pin 10 on L293D IC
int motor2Pin2 = 9; // pin 15 on L293D IC
int enable2Pin = 11; // pin 9 on L293D IC
int state;
int flag=0;        //makes sure that the serial only prints once the state
int stateStop=0;
void setup() {
    // sets the pins as outputs:
    pinMode(motor1Pin1, OUTPUT);
    pinMode(motor1Pin2, OUTPUT);
    pinMode(enable1Pin, OUTPUT);
    pinMode(motor2Pin1, OUTPUT);
    pinMode(motor2Pin2, OUTPUT);
    pinMode(enable2Pin, OUTPUT);
    // sets enable1Pin and enable2Pin high so that motor can turn on:
    digitalWrite(enable1Pin, HIGH);
    digitalWrite(enable2Pin, HIGH);
    // initialize serial communication at 9600 bits per second:
    Serial.begin(9600);
}

void loop() {
    //if some date is sent, reads it and saves in state
    if(Serial.available() > 0){     
      state = Serial.read();   
      flag=0;
    }   
    // if the state is 'F' the DC motor will go forward
    if (state == 'F') {
        digitalWrite(motor1Pin1, HIGH);
        digitalWrite(motor1Pin2, LOW); 
        digitalWrite(motor2Pin1, LOW);
        digitalWrite(motor2Pin2, HIGH);
        if(flag == 0){
          Serial.println("Go Forward!");
          flag=1;
        }
    }
    
    // if the state is 'R' the motor will turn left
    else if (state == 'R') {
        digitalWrite(motor1Pin1, HIGH); 
        digitalWrite(motor1Pin2, LOW); 
        digitalWrite(motor2Pin1, LOW);
        digitalWrite(motor2Pin2, LOW);
        if(flag == 0){
          Serial.println("Turn LEFT");
          flag=1;
        }
        delay(1500);
        state=3;
        stateStop=1;
    }
    // if the state is 'S' the motor will Stop
    else if (state == 'S' || stateStop == 1) {
        digitalWrite(motor1Pin1, LOW); 
        digitalWrite(motor1Pin2, LOW); 
        digitalWrite(motor2Pin1, LOW);
        digitalWrite(motor2Pin2, LOW);
        if(flag == 0){
          Serial.println("STOP!");
          flag=1;
        }
        stateStop=0;
    }
    // if the state is 'L' the motor will turn right
    else if (state == 'L') {
        digitalWrite(motor1Pin1, LOW); 
        digitalWrite(motor1Pin2, LOW); 
        digitalWrite(motor2Pin1, LOW);
        digitalWrite(motor2Pin2, HIGH);
        if(flag == 0){
          Serial.println("Turn RIGHT");
          flag=1;
        }
        delay(1500);
        state=3;
        stateStop=1;
    }
    // if the state is 'B' the motor will Reverse
    else if (state == 'B') {
        digitalWrite(motor1Pin1, LOW); 
        digitalWrite(motor1Pin2, HIGH);
        digitalWrite(motor2Pin1, HIGH);
        digitalWrite(motor2Pin2, LOW);
        if(flag == 0){
          Serial.println("Reverse!");
          flag=1;
        }
    }
    //For debugging purpose
    //Serial.println(state);
}

Ver código sin formato

Nota: Antes de cargar el código, asegúrese de que los pines TX y RX estén desconectados del módulo Bluetooth.

Piezas requeridas

Arduino: controla 2 motores CC mediante Bluetooth (perfecto para construir un robot)

Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!

Arduino: controla 2 motores CC mediante Bluetooth (perfecto para construir un robot)

Esquema

Siga el diagrama esquemático en la imagen a continuación para cablear su circuito.

Arduino: controla 2 motores CC mediante Bluetooth (perfecto para construir un robot)

Arduino: controla 2 motores CC mediante Bluetooth (perfecto para construir un robot)

Inicie su aplicación

Si no generaste el archivo APK en un paso anterior, puedes hacerlo Haga clic aquí para descargar el archivo APK (este es el archivo de instalación de la aplicación de Android). Mueva este archivo a su teléfono inteligente y ábralo. Siga el asistente de instalación para instalar la aplicación.

Active Bluetooth en su teléfono inteligente.

Toca la aplicación recién instalada. Haga clic en el botón «Conectar» para conectar su aplicación a su módulo Bluetooth Arduino.

Ahora puedes controlar fácilmente los 2 motores DC con tu aplicación:

Arduino: controla 2 motores CC mediante Bluetooth (perfecto para construir un robot)

Mira este vídeo de demostración

Solución de problemas:

  • Retire los cables RX y TX cuando cargue un nuevo boceto en su placa Arduino
  • A menudo, el TX del módulo Bluetooth está conectado al TX del Arduino, esto no funciona. Asegúrese de conectarse: TX va a RX y RX va a TX.
  • Cuando el módulo Bluetooth HC-04/HC-06 y HC-05 solicita una contraseña, es “1234”.

Envolver

Espero que hayas encontrado esto útil.

¿Conoces a algún amigo al que le gustaría ver este proyecto? ¡Asegúrate de compartir este proyecto con tu amigo!

¿Quieres aprender más sobre cómo crear aplicaciones para Arduino? Obtenga acceso a nuestro curso: Aplicaciones de Android para Arduino con MIT App Inventor 2.

Gracias por leer,

rui

PD Si no tiene un módulo Bluetooth, lea mi reseña del HC-05 aquí.

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded



Arduino: Controla 2 motores CC mediante Bluetooth (perfecto para construir un robot)

En este tutorial te mostraré cómo controlar 2 motores CC a través de bluetooth con una aplicación para Android creada con MIT App Inventor 2. MIT App Inventor es una excelente plataforma para comenzar con el desarrollo de Android.

Módulo Bluetooth HC-05

Para establecer la comunicación bluetooth entre tu smartphone y tu Arduino, necesitas un módulo bluetooth. En este proyecto utilizamos el módulo HC-05. Este módulo bluetooth funciona con datos seriales. Esto significa que el Arduino envía información y el módulo bluetooth la recibe de forma serial.

Creación de tu aplicación Android

La aplicación Android se creará utilizando una aplicación web gratuita llamada MIT App Inventor. MIT App Inventor es un gran lugar para comenzar con el desarrollo de Android, ya que te permite construir aplicaciones simples con arrastrar y soltar.

Código

Para este proyecto, no necesitas instalar ninguna biblioteca de Arduino. Simplemente descarga o copia el siguiente código en tu Arduino IDE y súbela a tu placa Arduino.

  1. Arduino UNO
  2. Módulo Bluetooth HC-05
  3. 1 L293D IC
  4. 2 motores CC
  5. Protoboard
  6. Cables jumper

Esquemático

Sigue el diagrama esquemático para cablear tu circuito.

Lanzamiento de tu aplicación

Si aún no has generado el archivo .apk en un paso anterior, puedes hacer click aquí para descargar el archivo .apk (que es el archivo de instalación de la aplicación Android). Mueve ese archivo a tu celular y ábrelo. Sigue el asistente de instalación para instalar la aplicación.

Enciende el bluetooth de tu celular. Presiona el botón «Conectar» para conectar tu aplicación al módulo bluetooth de Arduino. Ahora puedes controlar los 2 motores CC fácilmente con tu aplicación.

Resolución de problemas

• Quita los cables RX y TX cuando estés subiendo un nuevo sketch a tu placa Arduino.

• Asegúrate de que conectas: TX a RX y RX a TX.

• Si el módulo bluetooth HC-04/HC-06/HC-05 pide una contraseña, es ‘1234’.

Espero que este tutorial te haya sido útil. Si conoces a alguien que le gustaría ver este proyecto, ¡compártelo! ¿Quieres aprender más sobre construcción de aplicaciones para Arduino? Obtén acceso a nuestro curso: Android Apps for Arduino con MIT App Inventor 2.

Gracias por leer,

Rui


2 comentarios en «Arduino: controla 2 motores CC mediante Bluetooth (perfecto para construir un robot)»

Deja un comentario