CDIO III · Universidad del Quindío · Ingeniería Electrónica

LANCEA

Dispositivo electrónico embebido que transforma una jabalina deportiva en una herramienta de análisis biomecánico en tiempo real.

Explorar el Sistema Ver Repositorio
100Hz
Tasa de muestreo
7h15
Autonomía validada
19.8mm
Ancho de PCB
6/6
Tests en PASS

¿Qué es LANCEA?

Un sistema embebido integrado físicamente dentro de una jabalina profesional que captura, procesa y transmite datos inerciales durante el lanzamiento sin alterar la aerodinámica.

  • 📡
    Captura inercial 9-DOF El sensor BNO055 entrega cuaterniones por hardware, eliminando el "Gimbal Lock" y capturando aceleración, giroscopio y magnetómetro fusionados.
  • ISR a 100Hz exactos Rutina de interrupción hardware garantiza σ(Δt) < 1ms entre muestras, sin usar delay() bloqueante en ningún momento del ciclo.
  • 📶
    Access Point propio El ESP32-C3 actúa como router Wi-Fi (SSID: LANCEA_AP). Sin internet, desde el celular o PC se accede a 192.168.4.1 para ver datos y descargar CSV.
  • 🔔
    Buzzer de ángulo óptimo Suena a 2700Hz cuando el ángulo de inclinación está entre 42°–45.8° (zona óptima de lanzamiento), brindando feedback auditivo inmediato al atleta.
Especificaciones técnicas
MCUXIAO ESP32-C3
Sensor IMUBNO055 (9-DOF)
Protocolo IMUI2C · 400kHz
SDA / SCLGPIO 6 / GPIO 7
Muestreo100 Hz (ISR)
Jitterσ < 1 ms
BateríaLi-Ion 14500 · 3.7V
Autonomía7h 15min ✓
CargaTP4056 USB-C
ChasisPETG · O-Rings
Ancho PCB19.8 mm ✓
Ø int. jabalina25.2 mm
Peso total~42 g
TriggerJerk > 50 m/s³
WiFi SSIDLANCEA_AP
Dashboard192.168.4.1
Costo total$235.300 COP
Variación+0.26% ✓

Cómo funciona

El firmware implementa una Máquina de Estados Finitos (FSM) que coordina la adquisición de alta velocidad, el procesamiento y la transmisión inalámbrica de forma completamente no bloqueante.

IDLE

Monitorea el Jerk continuamente. Buzzer activo si ángulo está en zona óptima.

Jerk > 50 m/s³
IMPULSO

Integra aceleración a 100Hz. Registra ángulo de lanzamiento en el instante de detección.

Accel < 0.8g y Max > 15g
PAUSA

Calcula velocidad, distancia, energía y potencia. LED parpadea 3 veces.

3 segundos
PUBLICADO

Datos disponibles en 192.168.4.1 y por Serial. Vuelve a IDLE.

🧠
Procesamiento

XIAO ESP32-C3

Dual-core con WiFi 2.4GHz integrado. Maneja ISR, servidor web y FSM simultáneamente sin bloqueos.

C++ / Arduino
📐
Sensor inercial

Adafruit BNO055

Fusión sensorial por hardware. Entrega cuaterniones listos para usar. Sin Gimbal Lock. 9-DOF.

I2C · 400kHz
🌐
Servidor Web

WebServer.h (AP)

ESP32 actúa como Access Point. Panel en HTML, descarga CSV, gestión de atletas, estado JSON.

192.168.4.1
🔋
Potencia

Li-Ion 14500 + TP4056

Celda cilíndrica 14mm de diámetro, encaje perfecto en el Sled. Carga USB-C accesible externamente.

7h 15min probado
🖨️
Mecánica

Chasis Sled (PETG)

Impreso en 3D con tolerancias ajustadas. O-Rings de compresión radial eliminan vibración parásita.

PCB 19.8mm
🔔
Retroalimentación

Buzzer + LED RGB

Buzzer pasivo a 2700Hz indica ángulo óptimo. LED RGB señaliza estado del sistema en campo.

GPIO 21 / GPIO 2-4
// Detección de lanzamiento por Jerk (derivada de aceleración) double aMag = sqrt(ax_f*ax_f + ay_f*ay_f + az_f*az_f); double jerk = (aMag - prev_aMag) / DT; // DT = 0.01s (100Hz) if (estadoActual == IDLE && jerk > JERK_THRESHOLD) { // Capturar ángulo de lanzamiento en el instante exacto imu::Quaternion quat = bno.getQuat(); imu::Vector<3> euler = quat.toEuler(); launchAngle = euler.y() * 180.0 / PI; estadoActual = IMPULSO; } // Al detectar caída libre después de impulso → calcular métricas if (aMag < FREEFALL_THRESHOLD && maxAccel > ARMING_ACCEL) { double velFinal = sqrt(v_x*v_x + v_y*v_y + v_z*v_z); double distance = (velFinal*velFinal * sin(2*angleRad)) / g; double energy = 0.5 * JAVELIN_MASS * velFinal * velFinal; }

Panel 192.168.4.1

Sin internet, sin cables. Conéctate a la red LANCEA_AP desde cualquier celular o PC y accede al panel completo de análisis del atleta.

GET /

Panel principal. Tabla de lanzamientos, badges de rendimiento (vel. máx, ángulo promedio, distancia, energía) y estado del dispositivo.

GET /atletas

Gestión de hasta 10 atletas en memoria RAM. Registrar, activar o eliminar. Los siguientes lanzamientos se asignan al atleta activo.

GET /csv

Descarga el archivo CSV del atleta activo. Con parámetro ?a=Todos descarga todos los atletas en un solo archivo.

GET /status

JSON con estado del sistema: lanzamientos, atleta activo, estado FSM, uptime y nivel de batería (voltaje + porcentaje).

GET /reset

Borra los lanzamientos del atleta activo con confirmación previa en el navegador.

GET /resetall

Limpia toda la sesión en memoria RAM. Usar solo después de exportar el CSV completo.

Protocolos de Prueba

Cada test sigue el principio de cero subjetividad: valores numéricos medibles, criterios definidos antes de energizar el circuito, y resultados reales documentados.

TEST-HW-01-A · P1 Alto
Validación Dimensional PCB

Ancho de la PCB debe encajar en el Sled (Ø 24mm). Medición en KiCad con tolerancia estricta.

19.8 mm ✓ PASS
TEST-FW-01-A · P0 Crítico
Validación Ángulo IMU (Estático)

Lectura de Pitch/Roll del BNO055 posicionado a 45° sobre escuadra física. Error máx. ±2°.

44.5° – 45.1° ✓ PASS
TEST-MC-01-A · P0 Crítico
Autonomía de Batería

Operación continua con Li-Ion 14500 hasta corte BMS a 3.0V. Objetivo: ≥ 6 horas.

7h 15min ✓ PASS
TEST-HW-01-B · P1 Alto
Inspección Dimensional Jabalina

Diámetro interno de jabalina profesional medido con calibrador Pie de Rey. Debe ser > 24mm.

25.2 mm ✓ PASS
TEST-FW-02 · P1 Alto
Tasa de Muestreo 100Hz

1000 muestras capturadas. σ(Δt) debe ser < 1ms. Corregido implementando ISR con Timer hardware.

σ < 1ms ✓ PASS
TEST-FW-01-B · P0 Crítico
Trigger de Lanzamiento en Campo

Lanzamiento real en pista de atletismo. El sistema debe generar archivo CSV con datos completos.

CSV generado ✓ ✓ PASS

De V1 a V2

Cada decisión de cambio se fundamentó en restricciones físicas reales descubiertas en laboratorio, no en suposiciones teóricas.

Sensor de medición

Velocimetría

HC-SR04 Ultrasónico
IMU BNO055

El ultrasónico no tiene alcance útil (>4m) y daña la aerodinámica. El BNO055 entrega cuaterniones por hardware.

Microcontrolador

Factor de forma

ESP32 DevKit V1 (28mm)
XIAO ESP32-C3 Mini

El DevKit estándar (28mm) no cabe en el tubo de la jabalina (25.2mm de diámetro interno).

Sistema de energía

Tipo de batería

LiPo Plana
Li-Ion Cilíndrica 14500

14mm de diámetro permite ensamble tubular perfecto. Otorgó >7h de autonomía probada.

Interfaz de usuario

Feedback visual

Pantalla OLED 0.91"
Buzzer + LED RGB

Eliminación de OLED por consumo energético y espacio. El Buzzer da mejor feedback auditivo en campo abierto.

Almacenamiento

Gestión de datos

Módulo MicroSD (SPI)
RAM + WiFi (CSV)

El aluminio de la jabalina actúa como Jaula de Faraday. SD generaba picos de corriente que corrompían el I2C.

Estabilidad temporal

Adquisición de datos

loop() con delay()
ISR con Timer hardware

El jitter de loop() superaba 1ms. La ISR garantiza σ < 1ms y muestreo exacto a 100Hz.

Presupuesto

Costo real vs. estimado al cierre del proyecto (Feb 2026). Variación total de apenas +$600 COP sobre el presupuesto inicial.

# Componente Especificación Estimado Real Estado
01
XIAO ESP32-C3
WiFi 2.4GHz · Dual Core
$25.000$27.500✓ Adquirido
02
IMU BNO055
9-DOF · I2C · Fusión HW
$120.000$115.000✓ Adquirido
03
Batería Li-Ion 14500
3.7V · ~1000mAh · Cilíndrica
$18.000$20.000✓ Adquirido
04
TP4056 USB-C
Carga LiPo con protección
$3.500$3.500✓ Adquirido
05
Filamento PETG
~20g · Chasis Sled 3D
$5.000$5.000✓ Adquirido
06
PCB Baquelita
Doble cara · Strip 20mm
$5.000$6.000✓ Adquirido
07
O-Rings + Insumos
Cable 30AWG · Estaño
$10.000$12.000✓ Adquirido
08
LED RGB + Pulsador
5mm · Cátodo común · 6×6mm
$1.500$1.500✓ Adquirido
Presupuesto estimado
$234.700 COP
Variación
+0.26%
Costo real total
$235.300 COP

Ingenieros a cargo

Programa de Ingeniería Electrónica · Séptimo Semestre · Universidad del Quindío · Armenia, Colombia · 2025–2026

JG
Joseph Fernando Gutiérrez
Líder · Firmware · Hardware
EC
Emerson Santiago Córdoba
Hardware · Mecánica · Integración
JP
Johan Rodrigo Piedrahita
Pruebas · Calibración · Campo
👤 Entrenador · Liga de Atletismo del Quindío

"Por fin tenemos datos objetivos e inmediatos. Poder descargar el CSV en la misma pista sin depender de cables o de una red Wi-Fi externa es un cambio total en la dinámica de entrenamiento."

🏃 Atleta · Liga de Atletismo del Quindío

"El dispositivo es prácticamente imperceptible. El sonido de confirmación me ayudó a saber exactamente cuándo estaba listo para lanzar, sin interrumpir mi concentración."