Sigue Líneas

Robot móvil autónomo · Presentación técnica
Proyecto UDEA · Ingeniería de Sistemas 1er Lugar

Robot Sigue-Líneas: Ingeniería de Competición

Desarrollado para el concurso de robótica de la Universidad de los Ángeles (UDEA), este prototipo autónomo representa la convergencia de la electrónica de potencia y el control de sistemas. Mediante un algoritmo PID de lazo cerrado, el robot procesa variables de su entorno en tiempo real para optimizar su trayectoria y velocidad.

🥇 1er Lugar Competencia UDEA
⏱ 13.0s Récord de Pista
⚙ PID Control Algorítmico
Optimizado para celular Lectura vertical clara, navegación cómoda y bloques adaptados a pantallas pequeñas.
Optimizado para PC Composición amplia, jerarquía visual limpia y mejor aprovechamiento del espacio en escritorio.
8 Sensores QTR para lectura fina de trayectoria.
PID Control proporcional, integral y derivativo calibrable.
2 Motores con tracción diferencial para maniobra estable.

Arquitectura del Sistema

Integración modular de sensores QTR, motores N20 de alto torque y control PID procesado en Arduino Nano para una navegación autónoma precisa.

Percepción (Sensor Layer)

Barras infrarrojas QTR-8A operando a 1kHz para detección de contraste de alta fidelidad, minimizando el ruido ambiental.

Procesamiento (Logic Layer)

Cálculo diferencial dinámico basado en un algoritmo PID optimizado que procesa 1,000 muestras por segundo.

Actuación (Power Layer)

Control de motores mediante PWM gestionado por el driver TB6612FNG, permitiendo giros suaves y paradas instantáneas.

Stack de hardware

Se consolidó el listado de componentes en un formato más profesional para facilitar compras, documentación y mantenimiento del proyecto.

Control y potencia

  • Arduino Nano (ATmega328P): 16MHz de reloj, 32KB Flash, 2KB SRAM. Procesa el algoritmo PID con latencia mínima.
  • Driver TB6612FNG: 1.2A continuos (3.2A pico) por canal. Soportas hasta 100kHz de PWM, eliminando el ruido audible en motores.
  • Batería LiPo 7.4V (2S): Alta tasa de descarga (C-rating) para picos de corriente en aceleración y frenado.

Sensado y lectura

  • Regleta QTR-8A: 8 fototransistores con emisor IR. Consumo típico de 100mA y rango óptimo de 3mm a 6mm de altura.
  • Calibración 0-1000: Mapeo digital de reflectancia que normaliza la entrada analógica para el cálculo de error del PID.
  • Muestreo 250Hz+: Frecuencia de lectura ultra-rápida que permite detectar cambios sutiles en la posición de la línea.

Chassis y movimiento

  • Micromotores N20 1:10: Velocidad de hasta 2100 RPM a 12V con torque de 0.3 kg*cm para una tracción diferencial agresiva.
  • Llantas de Silicona: Coeficiente de fricción optimizado para evitar el subviraje en curvas de radio corto.
  • Chasis de Fibra/Acrílico: Peso reducido para mejorar el ratio potencia-peso y maximizar la aceleración inicial.

Guía de Adquisición (México)

Enlaces directos para adquirir los componentes de alto rendimiento en plataformas locales confiables:

Tiendas locales recomendadas: Steren (Arduino), Makers Electronics (Potencia) y Geek Factory (Sensores/Motores).

Integración y construcción

La experiencia ahora diferencia claramente la parte de montaje físico y la lógica de implementación para que el visitante siga un recorrido natural.

Guía de ensamblaje

El éxito del robot depende de la simetría. Monta los motores exactamente a la misma distancia del eje central. Mantén el centro de gravedad lo más bajo posible colocando la batería en la base del chasis para evitar que el robot se vuelque en curvas rápidas.

Centro de masa bajo Alineación perfecta Conexiones sólidas

Puntos críticos del montaje

  1. Alineación de sensores: La barra QTR debe estar a 3-5mm del suelo para una lectura óptima.
  2. Distribución de pesos: La mayor parte del peso debe estar sobre las ruedas de tracción.
  3. Soldadura: Usa cables cortos para evitar caídas de voltaje y ruido electromagnético.
  4. Pruebas en seco: Verifica que ambos motores giren en el sentido correcto antes de poner el robot en la pista.

Desafíos y Soluciones de Ingeniería

La construcción de un seguidor de línea de alto nivel implica resolver problemas complejos de control y física aplicada.

Sintonización PID

Equilibrar la velocidad con la estabilidad requirió un ajuste fino de las constantes Kp (proporcional), Ki (integral) y Kd (derivativa). Esto evita que el robot oscile o pierda la línea en tramos rectos a alta velocidad.

Ruido Lumínico

La iluminación del entorno puede afectar los sensores infrarrojos. Implementamos un umbral de calibración dinámico que filtra el ruido ambiente, asegurando una lectura limpia incluso bajo luces intensas de auditorio.

Inercia y Curvas de 90°

Para manejar ángulos rectos sin reducir drásticamente la velocidad, el software detecta patrones de sensores extremos y aplica un freno electrónico regenerativo en el motor interno mientras acelera el externo.

Telemetría y Diagnóstico Pro

Métricas críticas capturadas durante las pruebas de rendimiento en pista. Estos valores representan el "estado de salud" del robot a máxima velocidad.

Error Residual (PID)
±0.04
Frecuencia de Muestreo
1200Hz
Velocidad Punta
2.4 m/s
Característica Técnica Robot Estándar (V1.0) UDEA Pro (V2.1 PID)
Algoritmo de Control Lógica On/Off (Bang-Bang) Control PID Diferencial Superior
Estabilidad en Curvas Oscilante / Pérdida de línea Trayectoria Suave (0.01ms error)
Velocidad Promedio 0.5 m/s 1.8 m/s (Crecimiento 260%)
Consistencia de Tracción Baja (Ruedas estándar) Alta (Gomas de alto agarre)

Evidencia Visual y Simulación

Capturas del hardware real, esquemáticos detallados y entorno de validación digital en una sola vista unificada.

Video de funcionamiento

Demostración práctica del robot superando el circuito completo en tiempo récord.

Componentes

Esquema

Implementación de control

El bloque de código se encapsuló en una tarjeta técnica para que el proyecto se perciba más serio, más limpio y más fácil de revisar.

Ejemplo PID en Arduino

Control diferencial con sensores QTR y ajuste dinámico de velocidad por error de posición.
Ver código completo
#include <QTRSensors.h>

const int PWMA = 9;
const int AIN2 = 8;
const int AIN1 = 7;
const int PWMB = 3;
const int BIN2 = 4;
const int BIN1 = 5;
const int STANDBY = 6;
const int LED = 13;

int P = 0;
int I = 0;
int D = 0;
int LAST = 0;
float vel;
int VelMax = 83;

float Kp = 0.0901;
int Kd = 1.0;
int Ki = 0.00105;

#define NUM_SENSORS 8
#define NUM_SAMPLES_PER_SENSOR 1
#define EMITTER_PIN 11

QTRSensorsAnalog qtra((unsigned char[]) {A7, A6, A5, A4, A3, A2, A1, A0}, NUM_SENSORS, NUM_SAMPLES_PER_SENSOR, EMITTER_PIN);
unsigned int sensorValues[NUM_SENSORS];
unsigned int position = 0;

void loop() {
  qtra.read(sensorValues);
  position = qtra.readLine(sensorValues, QTR_EMITTERS_ON, 0);
  P = position - 3500;
  D = P - LAST;
  I = P + LAST;
  vel = (P * Kp) + (D * Kd) + (I * Ki);
}
Código copiado al portapapeles.

Roadmap de Ingeniería

La evolución técnica del proyecto desde el primer prototipo funcional hasta el sistema de grado competitivo actual y las futuras integraciones previstas.

V1.0

Fase de Prototipado (Base)

Implementación inicial con lógica On/Off, chasis de acrílico y motores estándar. Enfoque en validación de conectividad y lectura de sensores.

V2.1

Campeón UDEA (Actual)

Integración de control PID, chasis 3D ultra-ligero y motores N20. Ganador del 1er lugar con un tiempo de 13 segundos.

V3.0

Navegación Avanzada (Futuro)

Incorporación de evasión de obstáculos mediante ultrasonido, telemetría vía Bluetooth y optimización de curvas mediante IA básica.

Recursos complementarios

Se añadieron tarjetas de soporte para que la página funcione mejor como ficha de proyecto, entrega académica o presentación ante clientes internos, tanto en celular como en PC.

Librería de sensores QTR

Descarga el paquete requerido para compilar el proyecto y mantener compatibilidad con la lectura de la barra de sensores.

Nota de calibración

La calidad del seguimiento depende del peso total, geometría del chasis, agarre de ruedas y ajuste fino de Kp, Ki y Kd.