Robotica de Colombia

Controla Tu Carro Robótico Turbobot con Arduino y Bluetooth

bnr-arrow-1-1.png

Controla Tu Carro Robótico Turbobot con Arduino y Bluetooth

📅 30 de noviembre de 2024 | 📂 Carros Roboticos, Intermedio

Turbobot Bluetooth

Bienvenidos al curso de control del Turbobot, un carro robótico con mando a distancia basado en Arduino. Este curso está diseñado para que los estudiantes aprendan sobre robótica, programación y control remoto utilizando el kit Turbobot. Este kit es ideal para aprender los principios básicos de la robótica móvil y el uso de tecnologías STEM (Ciencia, Tecnología, Ingeniería y Matemáticas).

Aquí exploraremos desde la estructura básica del kit hasta la programación y el control del carro mediante un módulo Bluetooth.

Materiales necesarios
Chasis Carro Robotico Turbobot Arduino Negro + Motores Y Ruedas
$96,000.00
Añadir a la cesta ♡ Añadir a Favoritos
ARDUINO UNO R3 ATMEGA328P + CABLE DE DATOS
$24,990.00
Añadir a la cesta ♡ Añadir a Favoritos
BLUETOOTH HC05
$18,790.00
Añadir a la cesta ♡ Añadir a Favoritos
Protoboard Mini 170 Puntos
$5,500.00
Añadir a la cesta ♡ Añadir a Favoritos
Jumpers Dupont Macho Macho 10cm x 40 Unidades
$6,000.00
Añadir a la cesta ♡ Añadir a Favoritos
Controlador Dual L298N Mini para Motores
$8,500.00
Añadir a la cesta ♡ Añadir a Favoritos
PORTAPILAS PORTABATERIAS AA X4
$7,000.00
Añadir a la cesta ♡ Añadir a Favoritos

Pasos a Seguir: Conexión del Hardware

1
Conexión Sistema Tracción

Primero, conectaremos los motores del Turbobot a los pines de control del Arduino a través de un puente H (como el L298N). Esto nos permitirá controlar la dirección de los motores.

Motor Derecho: Pines 2 y 4 del Arduino
Motor Izquierdo: Pines 5 y 6 del Arduino
Diagrama Tracción
2
Conexión del Módulo Bluetooth

Ahora, conectaremos el módulo Bluetooth HC-05/HC-06 al Arduino a través de la librería SoftwareSerial para utilizar los pines 12 y 13:

VCC: Pin de 5V del Arduino
GND: GND del Arduino
TX: Pin 12 del Arduino (configurado con SoftwareSerial)
RX: Pin 13 del Arduino (configurado con SoftwareSerial)
Asegúrate de que las conexiones sean firmes y correctas, ya que esto permitirá la comunicación entre el Arduino y tu teléfono.
Conexión Bluetooth
3
Librerías Necesarias

Para este proyecto, utilizaremos la librería SoftwareSerial, que nos permitirá establecer comunicación con el módulo Bluetooth. Esta librería ya viene incluida en el entorno Arduino IDE, por lo que no es necesario descargar nada extra.

4
Cargar el Código al Arduino

A continuación deberás cargar el siguiente código a tu Arduino:

Turbobot_Bluetooth_Control.ino Arduino C++
/* Control Bluetooth Turbobot 
  Desarrollado por RDC - Robotica de Colombia 
  Visitanos: 
  www.facebook.com/roboticadecolombia 
  www.youtube.com/@RoboticadeColombia 
  www.instagram.com/roboticadecolombia/ 
  Mercadolibre: www.mercadolibre.com.co/perfil/ROBOTICADECOLOMBIA*/

#include <SoftwareSerial.h>

// Definición de pines del Bluetooth
SoftwareSerial Bluetooth(12, 13);  // RX, TX

// Pines de los motores
int motorDerecho1 = 5;
int motorDerecho2 = 6;
int motorIzquierdo1 = 9;
int motorIzquierdo2 = 10;

void setup() {
  // Inicializar los pines de los motores como salidas
  pinMode(motorDerecho1, OUTPUT);
  pinMode(motorDerecho2, OUTPUT);
  pinMode(motorIzquierdo1, OUTPUT);
  pinMode(motorIzquierdo2, OUTPUT);
    
  // Iniciar comunicación Bluetooth
  Bluetooth.begin(9600);
  Serial.begin(9600);

  // Mensaje de inicio del sistema
  Serial.println("Iniciando sistema...");
  delay(2000);
  mostrarMenu();
}

void loop() {
  if (Serial.available() > 0) {
    char opcion = Serial.read();
    switch (opcion) {
      case '1':
        controlBluetooth();
        break;
      case '2':
        controlManual();
        break;
      case 'x':
      case 'X':
        mostrarMenu();
        break;
      default:
        Serial.println("Opción no válida. Por favor, selecciona 1, 2 o x para volver al menú.");
        break;
    }
  }
}

void mostrarMenu() {
  Serial.println("\n--- MENÚ PRINCIPAL ---");
  Serial.println("1: Control por Bluetooth");
  Serial.println("2: Control Manual");
  Serial.println("x: Volver al Menú Principal");
  Serial.print("Selecciona una opción: ");
}

void controlBluetooth() {
  Serial.println("\n--- CONTROL BLUETOOTH ACTIVADO ---");
  Serial.println("Usa la aplicación Bluetooth para controlar el Turbobot.");
  while (true) {
    if (Bluetooth.available() > 0) {
      char comando = Bluetooth.read();
      if (comando == 'x' || comando == 'X') {
        mostrarMenu();
        break;
      }
      ejecutarComando(comando);
    }
  }
}

void controlManual() {
  Serial.println("\n--- CONTROL MANUAL ACTIVADO ---");
  Serial.println("F: Adelante, B: Atrás, L: Izquierda, R: Derecha, S: Detener, X: Volver al Menú");
  while (true) {
    if (Serial.available() > 0) {
      char comando = Serial.read();
      if (comando == 'x' || comando == 'X') {
        mostrarMenu();
        break;
      }
      ejecutarComando(comando);
    }
  }
}

void ejecutarComando(char comando) {
  switch (comando) {
    case 'F':
      moverAdelante();
      Serial.println("Moviendo adelante");
      break;
    case 'B':
      moverAtras();
      Serial.println("Moviendo atrás");
      break;
    case 'L':
      moverIzquierda();
      Serial.println("Moviendo a la izquierda");
      break;
    case 'R':
      moverDerecha();
      Serial.println("Moviendo a la derecha");
      break;
    case 'S':
      detener();
      Serial.println("Detenido");
      break;
    default:
      Serial.println("Comando no válido");
      detener();
      break;
  }
}

// Funciones para controlar el movimiento
void moverAdelante() {
  digitalWrite(motorDerecho1, HIGH);
  digitalWrite(motorDerecho2, LOW);
  digitalWrite(motorIzquierdo1, HIGH);
  digitalWrite(motorIzquierdo2, LOW);
}

void moverAtras() {
  digitalWrite(motorDerecho1, LOW);
  digitalWrite(motorDerecho2, HIGH);
  digitalWrite(motorIzquierdo1, LOW);
  digitalWrite(motorIzquierdo2, HIGH);
}

void moverIzquierda() {
  digitalWrite(motorDerecho1, HIGH);
  digitalWrite(motorDerecho2, LOW);
  digitalWrite(motorIzquierdo1, LOW);
  digitalWrite(motorIzquierdo2, HIGH);
}

void moverDerecha() {
  digitalWrite(motorDerecho1, LOW);
  digitalWrite(motorDerecho2, HIGH);
  digitalWrite(motorIzquierdo1, HIGH);
  digitalWrite(motorIzquierdo2, LOW);
}

void detener() {
  digitalWrite(motorDerecho1, LOW);
  digitalWrite(motorDerecho2, LOW);
  digitalWrite(motorIzquierdo1, LOW);
  digitalWrite(motorIzquierdo2, LOW);
}
5
Configuración de la App Bluetooth

Para controlar el Turbobot desde tu smartphone, utiliza una aplicación como Bluetooth Electronics o Arduino Bluetooth Controller. Configura botones con los siguientes comandos:

Botón / Comando Acción en el Turbobot
XVolver al Menú
FAdelante
BAtrás
LIzquierda
RDerecha
SDetener
6
Prueba y Ajuste

Una vez que todo esté conectado y el código cargado, enciende el Turbobot y empareja tu teléfono con el módulo Bluetooth. Utiliza la aplicación para controlar el movimiento y verifica que todo funcione correctamente.

Si notas que el robot no responde como se espera, revisa las conexiones y asegúrate de que el código se haya cargado sin errores.

¡FELICITACIONES!

Ahora has aprendido a controlar tu Turbobot usando un módulo Bluetooth. Esto es solo el comienzo: puedes agregar sensores y mejorar el proyecto para que el Turbobot sea más autónomo y divertido.

🚀🤖
Tags: