Saltar a contenido
← Volver a OPRobots.github.io

ZoroBot3 — Documentación Técnica

Robot micromouse de alto rendimiento con STM32F4, encoders magnéticos de alta resolución, ventilador de succión y 4 sensores infrarrojos.

ZoroBot3


🏆 Palmarés

🥇 🥈 🥉
8 0 0

Resultados por Evento

Evento Categoría Posición Año
🇵🇹 Micromouse Portuguese Contest Micromouse Classic 🥇 2026
🇷🇴 RoboChallenge Maze 🥇 2025
🇪🇸 OSHWDem Micromouse Classic 🥇 2025
🇵🇹 Micromouse Portuguese Contest Micromouse Classic 🥇 2025
🇵🇹 Micromouse Portuguese Contest Time Trial 🥇 2025
🇷🇴 RoboChallenge Maze 🥇 2024
🇪🇸 OSHWDem Micromouse Classic 🥇 2024
🇪🇸 OSHWDem Micromouse Wall-Follower 🥇 2023

⚙️ Hardware

  • Microcontrolador: STM32F405RGT6 @168MHz
  • Driver de motores: MP6551 @20kHz
  • Giroscopio: LSM6DSRTR 4000dps
  • Encoders: AS5145B-HSST (12-bit, lectura en cuadratura por hardware)
  • Regulador: CN3903 + LDO ME611C33M5G
  • Sensores IR: 4× SFH-4550 (emisores) + 4× ST-1KL3A (receptores) + TSSP77038TR (38kHz)
  • Batería: LiPo 2S 260mAh 35-70C Turnigy nano-tech
  • Tracción: 2× Motores Coreless 8520 7.4v, chasis de PCB, gomas Kyosho

Chasis


💻 Software

  • Programado en C11 con VSCode, PlatformIO y LibOpenCM3.
  • Valores analógicos leídos por DMA, procesados cada 1 ms.
  • Sensores IR gestionados por máquina de estados a 16 kHz con filtrado de luz ambiente.
  • Encoders en cuadratura por hardware mediante timers, MPU por SPI.
  • 7 lazos PID en cascada (velocidad lineal, angular, control frontal, control lateral) ejecutados cada 1 ms.
  • Reseteo de posición por pérdida de pared lateral.
  • Curvas con perfiles de giro de aceleración senoidal.
  • Algoritmos: seguimiento de pared, exploración, Floodfill basado en pesos cinemáticos y movimientos hardcodeados.

📚 Documentación Detallada

  • Hardware — MCU, sensores, motores, encoders, batería, chasis, versiones del robot
  • Arquitectura Software — Bucle principal, SysTick ISR, flujo de carrera, exploración
  • Sensores — Máquina de estados ADC, linealización, detección de paredes, histéresis
  • Movimiento — Tipos de movimiento, perfiles de giro, speed run, wall loss correction
  • Floodfill — Algoritmos BASIC/DIAGONAL/TIME_BASED, BFS, path following
  • Control PID — 7 lazos en cascada, anti-windup, compensación de batería
  • Menú — Navegación, selección de algoritmo, configuración de velocidad
  • Debug — LEDs, RGB, USART, funciones de debug
  • Calibración — Calibración frontal/lateral, giroscopio, persistencia en EEPROM
  • EEPROM — Almacenamiento, checksum, maze persistente
  • Encoders y Giroscopio — AS5145B-HSST, LSM6DSR, integración angular
  • Batería y LEDs — Monitorización de voltaje, divisor de tensión, LEDs de estado
  • Simulador MMSIM — API de paredes virtuales, estimación de tiempo
  • Cinemática — Estrategias de velocidad, perfiles de aceleración, parámetros de giro
  • Problemas Conocidos — Issues documentados con IDs, impacto y soluciones

🔧 Stack Tecnológico

Componente Detalle
MCU STM32F405RGT6 @ 168 MHz (ARM Cortex-M4F)
Framework LibOpenCM3 + PlatformIO
Lenguaje C11
Compilador GCC ARM Embedded (arm-none-eabi-gcc)
IDE VSCode
Control de versiones Git

🎥 Vídeos

Micromouse Portuguese Contest 2026 — 🥇

OSHWDem 2025 — 🥇

Micromouse Portuguese Contest 2025 — 🥇

RoboChallenge 2024 — 🥇

OSHWDem 2024 — 🥇