Electrónica y Firmware

Tabla de Contenidos

  1. Arquitectura del Sistema Embebido
  2. Código Arduino (fragmento principal)
  3. Parámetros de Muestreo

Arquitectura del Sistema Embebido

El controlador embebido corre en un Arduino y realiza tres funciones en tiempo real:

  1. Lectura de sensores — ángulo θ del péndulo (encoder rotatorio) y posición x del carro.
  2. Comunicación serial — recibe la acción u calculada por la red DQN e informa el estado (θ, ẋ, x, θ̇).
  3. Actuación — traduce la acción discreta a una señal PWM para el driver del motor.

Código Arduino (fragmento principal)

El archivo completo se encuentra en pendulo_center_FIXED.ino.

// Loop principal de control — inferencia en tiempo real
void loop() {
  // Leer encoders
  theta    = leerEncoderPendulo();   // ángulo en radianes
  x_pos    = leerEncoderCarro();     // posición en mm
  theta_d  = calcularVelocidadAngular();
  x_vel    = calcularVelocidadCarro();

  // Enviar estado al sistema de inferencia
  Serial.print(theta);   Serial.print(",");
  Serial.print(theta_d); Serial.print(",");
  Serial.print(x_pos);   Serial.print(",");
  Serial.println(x_vel);

  // Recibir acción y aplicar al motor
  if (Serial.available()) {
    float u = Serial.parseFloat();
    aplicarFuerza(u);
  }
}

Parámetros de Muestreo

Parámetro Valor
Frecuencia de muestreo ~100 Hz
Resolución encoder péndulo Alta resolución (ver BOM)
Espacio de acciones 41 niveles discretos [−10 N, +10 N]
Paso de acción 0.5 N

Nota de diseño: La latencia de comunicación serial fue una fuente crítica de inestabilidad en las primeras pruebas. Se optimizó el protocolo para minimizar el tiempo de ciclo.


← Hardware    Simulación →


↑ Subir

Andrick Millán  ·  Jesús Velázquez  ·  Elías Santiago Jiménez Hernández
Ingeniería Electrónica · Primavera 2026 · IBERO Ciudad de México
Control Inteligente  ·  Dr. Alexandro López  ·  Mtro. Julio Caballero
IBERO
Universidad Iberoamericana
Ciudad de México · 2026
This site uses Just the Docs, a documentation theme for Jekyll.