Controla Tu Carro Robótico Turbobot con Arduino y Bluetooth
📅 30 de noviembre de 2024 | 📂 Carros Roboticos, Intermedio
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.
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.
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:
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:
/* 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 |
|---|---|
| X | Volver al Menú |
| F | Adelante |
| B | Atrás |
| L | Izquierda |
| R | Derecha |
| S | Detener |
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.

