proyecto · 機甲 · v0.1 beta

MechaLab Sumo Bot

Robot de combate sumo diseñado y construido por 6 estudiantes de ingeniería. Arduino, motores TT, lifter activo, control Bluetooth.

1 kg · 30 × 30 cm Arduino Uno + L298N arma activa: lifter frontal
~/mechabot/firmware/main.ino
// loop principal · control BT

void loop() {
  // recibir comando vía HC-05
  if (BT.available()) {
    cmd = BT.read();
    handleCmd(cmd);
  }
  if (cmd == 'F') drive(255, 255);
  if (cmd == 'L') lifter.write(90);
}
compiled · 2 142 bytes · 6 % flash

battery

7.4 V

drive

2× TT 200 RPM

link

HC-05 · BT

6

integrantes

200 RPM

velocidad motor

1.2 kg·cm

torque por motor

7.4 V

alimentación

30×30 cm

área permitida

<1 kg

peso máximo

¿Qué es un robot sumo?

El sumo robótico es una disciplina de combate donde dos robots autónomos o controlados a distancia se enfrentan en un dohyō (anillo circular o cuadrado). Gana quien empuje al rival fuera del área antes de que termine el round.

MechaLab Sumo Bot es nuestro proyecto: un robot construido desde cero combinando electrónica, programación embebida, diseño 3D y control en tiempo real. La idea no es sólo que gane combates, sino documentar el proceso —planos, código, decisiones— en este mismo sitio.

Estrategia: cuña baja al frente, tracción 2WD con motores TT, y lifter accionado por servo MG996R que levanta al rival rompiendo su tracción.

Peso máximo

1.000 g

Tamaño

30 × 30 cm

Elemento móvil

mínimo 1 (arma)

Alimentación

a bordo · 7.4 V

Especificaciones técnicas

BOM completo, ordenado por rol funcional.

Rol Componente
control Arduino Uno
driver L298N
tracción 2× motor TT amarillo
energía 2× 18650 (en serie)
comms Bluetooth HC-05
arma Servo MG996R
auxiliar Servo MG90S
estructura Chasis PLA + TPU

Control desde Arduino

El robot recibe comandos vía Bluetooth (HC-05 sobre UART) desde una app tipo Bluetooth RC Controller. El firmware traduce caracteres simples (F/B/L/R) en señales PWM para el L298N y posiciones del servo del lifter.

  • PWM directo para tracción diferencial (giros tipo tank).
  • Lifter accionado por servo MG996R con control angular.
  • Failsafe: si pierde link 200 ms, frena los motores.
control.ino · arduino-uno
#include <Servo.h>
#include <SoftwareSerial.h>

SoftwareSerial BT(2, 3);   // HC-05 RX, TX
Servo lifter;
const int IN1=5, IN2=6, IN3=9, IN4=10;
unsigned long lastCmd = 0;

void setup() {
  BT.begin(9600);
  lifter.attach(11);
  pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT);
}

void drive(int l, int r) {
  analogWrite(IN1, l > 0 ? l : 0);
  analogWrite(IN2, l < 0 ? -l : 0);
  analogWrite(IN3, r > 0 ? r : 0);
  analogWrite(IN4, r < 0 ? -r : 0);
}

void loop() {
  if (BT.available()) {
    char cmd = BT.read();
    lastCmd = millis();
    switch (cmd) {
      case 'F': drive(255, 255);  break;
      case 'B': drive(-255,-255); break;
      case 'L': drive(-180,180);  break;
      case 'R': drive(180, -180); break;
      case 'A': lifter.write(90);  break;
      case 'a': lifter.write(0);   break;
      case 'S': drive(0, 0);      break;
    }
  }
  // failsafe: sin comandos por 200ms → frenar
  if (millis() - lastCmd > 200) drive(0, 0);
}

Esquema lógico

Cómo se comunican los bloques principales del robot.

┌──────────────┐      ┌────────────────┐      ┌──────────────┐
celular app  ──BT──▶│ HC-05         ──UART──▶│ Arduino Uno 
RC controller      Bluetooth SPP         ATmega328P  
└──────────────┘      └────────────────┘      └──────┬───────┘
                                                       │
            ┌──────────────────────┬───────────────────┼───────────────────┐
            │                      │                   │                   │
            ▼                      ▼                   ▼                   ▼
    ┌──────────┐          ┌──────────┐      ┌──────────┐      ┌──────────┐
    L298N              L298N          MG996R         MG90S    
    motor IZQ          motor DER      lifter         aux      
    └────┬─────┘          └────┬─────┘      └────┬─────┘      └────┬─────┘
         │                     │                  │                  │
         ▼                     ▼                  ▼                  ▼
    TT motor              TT motor           cuña/arma          aux mech
    200 RPM               200 RPM            activa             opcional

         ▲ alimentación: 2× 18650 en serie · 7.4 V · BEC al Arduino ▲
    

Build del robot

Fotos reales se irán publicando a medida que avancemos.

chasis impreso

PLA + TPU · vista frontal

placeholder

tracción

motores TT + ruedas

placeholder

lifter

arma activa · MG996R

placeholder

electrónica

Arduino + L298N + HC-05

placeholder

ensamble

visión completa

placeholder

pruebas

en el dohyō

placeholder

Quiénes lo construyen

6 personas, áreas distintas, un solo robot.

1

Miembro 1

core

2

Miembro 2

firmware

3

Miembro 3

CAD

4

Miembro 4

control

5

Miembro 5

electrónica

6

Miembro 6

docs

Hitos del proyecto

De la definición al combate. Trazabilidad pública del build.

  1. Definición de specs

    Reglamento, restricciones, BOM inicial.

    done mar 2026
  2. Compra de componentes

    Arduino, motores, drivers, baterías, servos.

    done mar 2026
  3. Diseño CAD chasis v1

    Modelado en Fusion 360, prints de prueba.

    done abr 2026
  4. Firmware control BT

    Tracción, lifter, failsafe, integración HC-05.

    in progress may 2026
  5. Ensamble final

    Montaje completo, cableado limpio, balanceo.

    next jun 2026
  6. Pruebas en dohyō

    Testing de empuje, estrategia, ajuste de torque.

    next jul 2026

Cargando…

¿Quieres seguir el build?

Crea tu cuenta y accede al área privada con archivos del proyecto: planos CAD, código Arduino, fotos y bitácora detallada.