LANCHA O BARCO

  • Driver L298N mini: controla la dirección y la velocidad del motor.
  • Motor: un motor con escobillas.
  • ESP32 Mini C3: este microcontrolador, con capacidad BLE, es el “cerebro” que envía las órdenes al motor y al servo para orientar el barco. El software también es compatible con el controlador ESP32, pero hemos elegido el mini para que no tenga un consumo alto de energía.
  • Servo 9g Motor: permite el giro del timón, tambien es posible usar el mg90s pero necesitaría mínimo 5v.
  • Fuente de alimentación: asegura la potencia necesaria, especialmente si tu motor es exigente en consumo, debe proporcionar entre 3.7V y 12V.
  • Dirección del barco: los archivos están disponibles para ser descargados desde Aquí.
Dirección del barco
La pieza timón con el motor y el servo ya insertado.
  • Carcasa flotante y material reciclado: botellas, bricks de zumo, bandejas de comida o corcho pueden servir como base para crear la estructura flotante.

2. Cableado y conexiones

El ESP32 Mini C3 se debe conectar al Driver L298N y al servo siguiendo las siguientes pautas:

  • Motor: el L298N necesita dos pines de control para el motor de propulsión (GPIO 0 => H-Bridge IN1 y GPIO 10 => H-Bridge IN2), se puede cambiar los pines en el fichero power.cpp y la alimentación puede ser de 3.7V a 12V.
  • Servo: requiere un pin de señal PWM (por ejemplo GPIO 2) se puede cambiar el pin en el fichero servo.cpp, más conexiones de alimentación (5V y GND compartidos con la placa).
  • Alimentación y tierras comunes: es vital que al menos la tierra (GND) sea común entre el ESP32, la alimentación al driver y el servo, para asegurarnos de que las señales funcionen correctamente.

Esquema de conexiones con una fuente de 5v y servo MG90S:

          +5 V Pila
            + o
            |
   ┌────────┴────────┐
   │                 │
   │   ESP32-C3      │
   │   Mini          │
   │  VCC •••••••••––+––––––––––[+]  
   │  GND •••••••••––+––––––––––[–]  
   │  D2  •••–––––––––––––––––––––> Servo MG90S PWM
   │  D10 •–––––––––––––––––––––––> L298N IN1
   │  D0  •–––––––––––––––––––––––> L298N IN2
   └─────────────────┘
            |
            + o
           GND

            +5 V Pila
            + o
            |
   ┌────────┴────────┐
   │                 │
   │   L298N Mini    │
   │                 │
   │  VIN •••••••••––+––––––––––[+]  
   │  GND •••••••••––+––––––––––[–]  
   │  IN1 •<––––––––––––––––––––– D10 (ESP32)
   │  IN2 •<––––––––––––––––––––– D0  (ESP32)
   │  Motor A •––––––––––––––––––> Motor terminal 1
   │  Motor B •––––––––––––––––––> Motor terminal 2
   └─────────────────┘
            |
            + o
           GND

            +5 V Pila
            + o
            |
   ┌────────┴────────┐
   │                 │
   │  Servo MG90S    │
   │                 │
   │  VCC •••••••••––+––––––––––[+]  
   │  GND •••••••••––+––––––––––[–]  
   │  PWM •<––––––––––––––––––––– D2  (ESP32)
   └─────────────────┘
            |
            + o
           GND

3. Configuración del software

El software originalmente estaba basado en ESP-IDF que es el framework soportado por Espressif para los microcontroladores ESP32, pero el proyecto se ha traducido a Arduino para que el desarrollo y el seguimiento fueran más sencillos.

El repositorio incluye un sketch principal (connect.ino) que configura la comunicación BLE (Bluetooth Low Energy), que en español se traduce como Bluetooth de baja energía, este procesa los comandos que llegan desde un cliente web o aplicación móvil compatible y los traduce para mover el servo y el motor.

Además, la carpeta client proporciona un sencillo cliente web que utiliza la API de Web Bluetooth para buscar el dispositivo y mandar las instrucciones. El código separa la lógica en varios archivos:

  • DataParser: para interpretar los comandos entrantes.
  • power: control del motor a través del L298N.
  • servo: manejo del servo mediante señales PWM.
  • bluetooth: gestiona la conexión Bluethooth.

Nombre del dispositivo: METALANCHA (configurable en bluetooth.h). Si hay varios dispositivos simultáneos, este nombre debe ser único para cada dispositivo.

4. Control remoto y puesta en marcha

  1. Subir el sketch a la placa: carga connect.ino en tu ESP32, esto se puede hacer usando en IDE de Arduino.
  2. Fuente de alimentación: conecta tu barco a una fuente de entre 3.7V y 12V.
  3. Cliente web o app BLE: desde tu teléfono o un ordenador con Bluetooth, conéctate al ESP32 utilizando el cliente proporcionado (o uno propio) y empieza a mandar los comandos. El cliente facilitado en el repositorio ofrece dos joysticks uno de dirección y otro de control del motor.

Commandos disponibles en la API:

  • on / off para encender o apagar el motor.
  • y 200 para establecer la potencia del motor.
  • x 45 para girar el servo a 45° y controlar el timón.
  • testservo para comprobar que funciona el servo
  • testpower para comprobar que funciona el motor.
     

Pruebas de flotabilidad y ajuste: verifica que la estructura de tu barco es estable y que el timón (servo) gira con amplitud suficiente para maniobrar.