Saltar a contenido
← Volver a OPRobots.org

OPRcontrolFOC

Placa de control FOC (Field-Oriented Control) para motores brushless. Implementa conmutación sinusoidal con realimentación de encoders magnéticos y lazo PI de velocidad independiente para cada motor, usando un STM32F103C8 con libopencm3.

Diseñado como módulo de control de motores para robots OPRobots. El circuito FOC está integrado directamente en la PCB de UltiBot.


⚙️ Hardware

Característica Detalle
Microcontrolador STM32F103C8T6 (BluePill) @ 72 MHz
Motores 2× BLDC controlados por conmutación sinusoidal
Drivers MOSFET trifásico (TIM1 motor derecho, TIM2 motor izquierdo)
Encoders 2× encoder magnético por cuadratura (4096 CPR) con índice Z
PWM ~28.125 kHz, 3 fases por motor
Comunicación USART3 @ 115200 baud 8N1
PCB Integrada en UltiBot

💻 Software

Componente Detalle
Framework libopencm3 (bare-metal, sin RTOS)
Entorno PlatformIO
Frecuencia de control PID a ~1 kHz, lectura de encoders a 10 kHz
Algoritmo PI velocidad + conmutación sinusoidal con LUT
Sintonía PID Kp=8.0, Ki=0.1, Kd=0.0

📚 Documentación

  • Hardware — MCU, pinout completo, timers, periféricos, diagrama de bloques
  • Arquitectura Software — main loop, ISRs, flujo de ejecución
  • Comunicaciones — protocolo serie de comandos (USART3)
  • Movimiento — conmutación sinusoidal, LUT de seno, modulación PWM
  • Control PID — lazo PI de velocidad, anti-windup, indicadores LED
  • Encoders — encoders de cuadratura, cálculo RPM, suavizado
  • Debug — LEDs de estado, printf serie, modo open-loop
  • Problemas Conocidos — 12 issues documentados con diagnóstico y soluciones

🔧 Stack Tecnológico

Capa Tecnología
MCU STM32F103C8T6 (ARM Cortex-M3, 72 MHz)
Framework libopencm3
Build PlatformIO
Lenguaje C11
Docs MkDocs Material + KaTeX + Mermaid

Documento generado el 2026-06-30. Ver también Hardware.