Skip to content

Drivetrain Blocks

En esta guía construirás visualmente el mismo drivetrain mecanum de la guía de Java, usando el editor Blocks integrado en el Control Hub.

El objetivo es aprender:

  • Cómo abrir el editor Blocks desde el navegador
  • Cómo crear un nuevo OpMode en Blocks
  • Cómo usar los bloques de Hardware para controlar motores
  • Cómo leer el gamepad con bloques
  • Cómo replicar la misma matemática de mecanum que usamos en Java
  • Cómo guardar y correr tu OpMode

Asegúrate de tener:

  • Control Hub configurado y encendido
  • Laptop o teléfono conectado a la red WiFi del Control Hub
  • Driver Station instalada
  • 4 motores mecanum cableados

  1. Conéctate a la red WiFi del Control Hub.
  2. Abre un navegador y entra a la dirección del Robot Controller: 192.168.43.1:8080 si usas Control Hub, o 192.168.49.1:8080 si usas un teléfono como Robot Controller.
  3. En la consola del Robot Controller, selecciona el enlace Blocks.

Igual que en la versión Java, los motores deben existir en la configuración del robot antes de programarlos.

  1. Desde Driver Station, entra a Configure Robot.
  2. Agrega 4 motores.
  3. Nómbralos exactamente: front_left_drive, back_left_drive, front_right_drive, back_right_drive.
  4. Guarda la configuración.

  1. Presiona el botón Create New Op Mode en la esquina superior izquierda.
  2. Escribe un nombre, por ejemplo MecanumDriveBlocks.
  3. Elige una plantilla en blanco.

Blocks genera automáticamente la estructura base:

  • Un bloque morado “to runOpMode” que contiene todo el programa
  • Un comentario “Put initialization blocks here” antes de esperar el Start
  • Un bloque “call …waitForStart”
  • Un comentario “Put run blocks here”
  • Un bucle “repeat while call …opModeIsActive”

Declarar los motores (bloques de Hardware)

Section titled “Declarar los motores (bloques de Hardware)”

A diferencia de Java, en Blocks no declaras variables de motor manualmente: cada motor que configuraste en Configure Robot aparece directamente como bloque en la categoría Actuators > DcMotor.

Arrastra el bloque de cada motor (front_left_drive, back_left_drive, front_right_drive, back_right_drive) hacia el área de trabajo cuando lo necesites.


Dentro del bloque de inicialización, arrastra:

set front_left_drive.Direction to REVERSE
set back_left_drive.Direction to REVERSE
set front_right_drive.Direction to FORWARD
set back_right_drive.Direction to FORWARD

Dentro del bucle repeat while, crea 3 variables (categoría Variables > Create Variable): axial, lateral y yaw.

Asigna cada una usando bloques de la categoría Gamepad:

  • axial = un bloque de resta (0 − gamepad1.LeftStickY), para invertir el signo
  • lateral = gamepad1.LeftStickX
  • yaw = gamepad1.RightStickX

Usa bloques de matemáticas (categoría Math) para combinar las 3 variables, replicando la misma fórmula de la versión Java:

MotorFórmula
front_left_driveaxial + lateral + yaw
front_right_driveaxial − lateral − yaw
back_left_driveaxial − lateral + yaw
back_right_driveaxial + lateral − yaw

Guarda cada resultado en una nueva variable, por ejemplo frontLeftPower, frontRightPower, backLeftPower, backRightPower.


Dentro del mismo bucle, para cada motor:

set front_left_drive.Power to frontLeftPower
set front_right_drive.Power to frontRightPower
set back_left_drive.Power to backLeftPower
set back_right_drive.Power to backRightPower

  1. Presiona el botón Save Op Mode.
  2. Espera el mensaje “Save completed successfully”.
Blocks
ConceptoJavaBlocks
Obtener el motorhardwareMap.get(DcMotor.class, "front_left_drive")Bloque front_left_drive en Actuators > DcMotor
InvertirsetDirection(DcMotor.Direction.REVERSE)set front_left_drive.Direction to REVERSE
Leer el stickgamepad1.left_stick_ygamepad1.LeftStickY
Enviar potenciafrontLeftDrive.setPower(frontLeftPower)set front_left_drive.Power to frontLeftPower
CompilarBuild (OnBot Java) / Run (Android Studio)Save Op Mode

  • Confirma que guardaste la configuración en Configure Robot
  • Recarga la página del editor Blocks

Ahora puedes continuar con:

  • Corriendo el programa
  • Drivetrain Java, si quieres comparar ambas rutas
  • Autónomo básico
  • Sensores (IMU, encoders)