Carro a control remoto con Arduino y Android

El coche robot Arduino con control Bluetooth desde un teléfono Android es un proyecto Arduino bastante simple pero interesante que utiliza el Motor Shield L293D y el módulo Bluetooth HC-05. En esta página aprenderás qué componentes necesitarás para construir tu propio coche robot Arduino, instrucciones paso a paso para montar el circuito y podrás descargar todo el software necesario para Arduino Uno y la aplicación Android.

Para esta actividad necesitaremos:

  • Arduino Uno / Arduino Mega
  • Motor Shield L293D y motores FA-130;
  • módulo Bluetooth HC-05 / HC-06;
  • LEDs y resistencias de 220 Ohm;
  • Android aplicación car.apk
  • libreria AFMotor.h y SoftwareSerial.h

Carro a control remoto con Arduino y Android

Para este proyecto se ha utilizado un módulo Motor Shield L293D, dos ruedas con engranajes, una placa Arduino, un módulo bluetooth HC-05 / HC-05 y dos LEDs para los faros. Se controla de forma remota a través de una señal bluetooth desde un smartphone o tablet. Tras montar el modelo e instalar los programas, podrás girar el coche a distancia, avanzar y retroceder, y encender y apagar los faros a través de una app en tu smartphone.

Carro a control remoto con Arduino y Android
Carro a control remoto con Arduino y Bluetooth

La alimentación del módulo Bluetooth proviene de los contactos del servo, ya que no necesitaremos servomotores en el proyecto. Para conectar los puertos TX y RX del módulo HC-05 es más conveniente utilizar los pines analógicos A1 y A2, para ello se utiliza la librería SoftwareSerial.h en el sketch. De esta forma no es necesario desconectar el módulo Bluetooth del Arduino al cargar el código. Los LEDs (luces) se controlan desde el pin 2.

Programa Arduino Carro a control con Bluetooth

#include "SoftwareSerial.h"
SoftwareSerial mySerial(A1, A2); // TX, RX

#include "AFMotor.h"
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);

int val;

void setup() {
  mySerial.begin(9600);
  pinMode(2, OUTPUT);   // LEDs
 
  motor1.setSpeed(250); // velocidad máxima
  motor1.run(RELEASE);  // parar el motor
  motor2.setSpeed(250);
  motor2.run(RELEASE);
  motor3.setSpeed(250);
  motor3.run(RELEASE);
  motor4.setSpeed(250);
  motor4.run(RELEASE);
}

void loop() {
if (mySerial.available() ) {
    val = mySerial.read();
    // adelante
    if (val == 'f') {
       motor1.run(FORWARD);
       motor1.setSpeed(250); 
       motor2.run(FORWARD);
       motor2.setSpeed(250);
       motor3.run(FORWARD);
       motor3.setSpeed(250);
       motor4.run(FORWARD);
       motor4.setSpeed(250);
    }
    // volver
    if (val == 'b') {
       motor1.run(BACKWARD);
       motor1.setSpeed(200); 
       motor2.run(BACKWARD);
       motor2.setSpeed(200);
       motor3.run(BACKWARD);
       motor3.setSpeed(200);
       motor4.run(BACKWARD);
       motor4.setSpeed(200);
    }
    // stop
    if (val == 's') {
       motor1.run(RELEASE);
       motor2.run(RELEASE);
    }
    // izquierda
    if (val == 'l') {
       motor1.run(FORWARD);
       motor1.setSpeed(100); 
       motor2.run(BACKWARD);
       motor2.setSpeed(250);
       motor3.run(FORWARD);
       motor3.setSpeed(100); 
       motor4.run(BACKWARD);
       motor4.setSpeed(250);
    }
    // derecha
    if (val == 'r') {
       motor1.run(BACKWARD);
       motor1.setSpeed(250); 
       motor2.run(FORWARD);
       motor2.setSpeed(100);
       motor3.run(BACKWARD);
       motor3.setSpeed(250); 
       motor4.run(FORWARD);
       motor4.setSpeed(100);
    }
    if (val == '1') { digitalWrite(2, HIGH); }
    if (val == '0') { digitalWrite(2, LOW); }
  }
}

Explicación del código para Carro a control con Bluetooth:

  1. la rotación de los motores será diferente cuando se conecten a la batería;
  2. puedes configurar tu propia velocidad de rotación de los motores en el software.

Aplicación de smartphone para coche teledirigido

Aplicación de smartphone para coche teledirigido
Aplicación de smartphone para coche teledirigido

Después de montar el circuito y cargar el programa en el microcontrolador, descargue e instale la aplicación para smartphone. Cuando conectes el módulo Bluetooth HC-05/06 por primera vez, tendrás que hacer un emparejamiento con el Android (luego el emparejamiento se hará automáticamente). Si tienes problemas con la conexión, lee este artículo Conectar el módulo Bluetooth al Arduino o publica una pregunta en los comentarios de este post.

Conclusión. El shield de motores L293D es muy fácil de conectar – se monta en la placa uno directamente en la parte superior. Ten en cuenta que sin una fuente de alimentación externa la lógica y los motores funcionarán con 5 voltios, que no siempre es suficiente. Por lo tanto, la velocidad de los motores de corriente continua será significativamente diferente cuando la placa Arduino está conectado desde el ordenador y la fuente de alimentación.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *