Módulo 5

Proyecto: control de brazo robótico vía Bluetooth desde app móvil

Conectividad Inalámbrica

ESP32 Mecatrónica IoT UNAM

1. Introducción al Control Robótico vía Bluetooth

En los campos de la mecatrónica e Internet de las cosas (IoT), el control inalámbrico de los sistemas robóticos es esencial. Específicamente, el ESP32, un microcontrolador de bajo costo con capacidad Bluetooth y WiFi incorporada, ha facilitado la implementación de la conectividad inalámbrica. Este microcontrolador se utiliza ampliamente en la automatización industrial, en particular en el control de robots manipuladores, para tareas que van desde la soldadura hasta la paletización.

Una aplicación notable es el control de un brazo robótico vía Bluetooth desde una app móvil. Esto permite un control remoto y versátil del brazo robótico, con posibles aplicaciones en la industria manufacturera, la medicina, la robótica de servicio y más. Los operadores pueden controlar el brazo robótico de forma inalámbrica, aumentando la flexibilidad y la seguridad.

2. Explicación Técnica Detallada

El ESP32 es un microcontrolador con un conjunto de características que le permiten funcionar tanto como un dispositivo Bluetooth como WiFi. En este caso, utilizaremos su funcionalidad Bluetooth para controlar un brazo robótico.

El ESP32 tiene tres componentes clave para su funcionamiento Bluetooth: el controlador, el host y el perfil Bluetooth. Para el control del brazo robótico, utilizaremos el perfil Bluetooth Serial Port Profile (SPP), que emula una conexión serial a través de Bluetooth.

Bluetooth ESP32 - Configuración Básica
#include "BluetoothSerial.h"
#include 

BluetoothSerial SerialBT;
Servo servo1, servo2, servo3;

void setup() {
  Serial.begin(115200);
  
  // Inicializar Bluetooth
  SerialBT.begin("BrazoRobotico_ESP32"); 
  Serial.println("Dispositivo listo para emparejar");
  
  // Configurar servos
  servo1.attach(18);
  servo2.attach(19);
  servo3.attach(21);
  
  // Posición inicial
  servo1.write(90);
  servo2.write(90);
  servo3.write(90);
}

void loop() {
  if (SerialBT.available()) {
    String comando = SerialBT.readString();
    procesarComando(comando);
  }
}

void procesarComando(String cmd) {
  // Procesar comandos de la app móvil
  if (cmd.startsWith("S1:")) {
    int angulo = cmd.substring(3).toInt();
    servo1.write(angulo);
    SerialBT.println("Servo 1: " + String(angulo));
  }
  // Agregar más comandos según necesidad
}

3. Ejercicios Prácticos

1

Conexión Bluetooth ESP32-App

Básico 30-45 min

Objetivo: Establecer una conexión Bluetooth entre el ESP32 y una app móvil.

Materiales:

  • ESP32
  • Cable USB
  • Smartphone con app "Serial Bluetooth Terminal"

Resultado esperado: Comunicación bidireccional entre ESP32 y móvil.

2

Control de Servo vía Bluetooth

Intermedio 60-90 min

Objetivo: Controlar la posición de un servo a través de la app móvil.

Materiales:

  • ESP32
  • Servomotor SG90
  • Cables jumper
  • Protoboard

Resultado esperado: Movimiento preciso del servo desde comandos móviles.

3

Control Multi-Servo (Brazo Completo)

Avanzado 120-180 min

Objetivo: Controlar múltiples servos simultáneamente para mover un brazo robótico completo.

Materiales:

  • ESP32
  • 4-6 Servomotores
  • Estructura de brazo robótico
  • Fuente de alimentación externa
  • App móvil personalizada

Resultado esperado: Movimiento coordinado del brazo robótico completo.

4. Proyecto Aplicado: Brazo Robótico Bluetooth

Sistema de Control Robótico Inalámbrico

Objetivo: Construcción y control completo de un brazo robótico de 6 grados de libertad controlado vía Bluetooth desde una aplicación móvil personalizada.

Materiales del Proyecto:

  • ESP32 DevKit
  • 6 Servomotores MG996R
  • Estructura de brazo robótico (impresa 3D o acrílico)
  • Fuente de alimentación 6V 3A
  • Capacitores de filtrado
  • Cables y conectores
  • Protoboard o PCB personalizada
  • App móvil (MIT App Inventor)

Funcionalidades del Sistema:

  • Control individual de cada articulación
  • Movimientos predefinidos (pick & place)
  • Retroalimentación de posición en tiempo real
  • Interfaz móvil intuitiva con sliders
  • Modo automático y manual

5. Evaluación y Troubleshooting

Problemas Comunes

  • No empareja Bluetooth: Verificar nombre del dispositivo
  • Servos se mueven erróneamente: Revisar alimentación
  • Desconexión frecuente: Verificar distancia y obstáculos
  • Movimientos bruscos: Implementar suavizado de trayectorias

Criterios de Evaluación

  • Emparejamiento exitoso vía Bluetooth
  • Control preciso de cada articulación
  • Respuesta fluida a comandos móviles
  • Estabilidad de la conexión inalámbrica
  • Funcionalidad de la app móvil
Los problemas comunes incluyen dificultades para establecer la conexión Bluetooth, problemas para controlar los servos y problemas de potencia. Las soluciones pueden implicar la comprobación de las conexiones, la prueba con diferentes apps Bluetooth y la utilización de una fuente de alimentación adecuada para los servos. Los criterios de evaluación incluirán la capacidad para establecer una conexión Bluetooth, controlar un servo y, finalmente, controlar un brazo robótico completo. Las referencias adicionales incluirán documentación sobre el ESP32, la biblioteca BluetoothSerial y el control de servos con PWM.