← RESUMEN DE SIRENSENSE

La arquitectura, sin discurso comercial.

Esta página explica cómo está construido el prototipo, las decisiones importantes y los límites de lo que se ha medido. Es un sistema en desarrollo, no un producto de automoción certificado.

Nodo de techo · captura de audio

Cuatro INMP441 en un solo ESP32-S3.

La matriz no se reparte entre dos controladores. Un único ESP32-S3 captura los cuatro canales mediante la selección izquierda/derecha de los micrófonos y dos periféricos I²S dentro del mismo dominio de reloj.

Disposición física

Los micrófonos norte, sur, este y oeste forman una cruz de 190 mm. Cada pareja opuesta comparte una línea I²S: uno ocupa el canal izquierdo y el otro, el derecho.

Este / OesteI²S0 maestro · DATA GPIO 4
Norte / SurI²S1 esclavo · DATA GPIO 14
RelojBCLK GPIO 6 · WS GPIO 5
Formato44,1 kHz · ranuras estéreo de 32 bits · datos de 24 bits
Entrada DSPLa correlación utiliza los 16 bits superiores

Relojes compartidos

I²S0 genera BCLK y WS. La matriz GPIO del ESP32-S3 dirige internamente esas señales hacia I²S1, que funciona como esclavo sin pines físicos de reloj separados. Durante el arranque, una prueba de bucle y la calibración comprueban que ambos buses estén activos y alineados.

INMP441 E [L] ─┐
INMP441 O [R] ─┴─ DATA4 → I²S0 MAESTRO ─┐
BCLK6 / WS5
INMP441 N [L] ─┐ │ matriz GPIO interna
INMP441 S [R] ─┴─ DATA14 → I²S1 ESCLAVO ←┘
Por qué no se resta una corrección fija: cada pareja opuesta se captura con el mismo controlador I²S. Restar a cualquiera de los ejes un supuesto desfase entre controladores introduciría un retardo inexistente y puede añadir unos 9° de error. Esa corrección se eliminó tras revisar el recorrido real de los datos.

Clasificación y dirección

Primero, detectar. Después, estimar la dirección.

El clasificador TinyML decide si la ventana contiene una sirena. A continuación se calculan los retardos de llegada para estimar la dirección. Separar ambas tareas evita calcular una dirección sobre audio irrelevante.

Clasificador de audio

El firmware utiliza una exportación de Edge Impulse con características MFE. Los datos incluyen ambulancias grabadas junto a la carretera, con tráfico, viento y efecto Doppler, no solo muestras limpias obtenidas por internet.

  • Arduino/PlatformIO para integrar el modelo exportado
  • Solo se activa el aviso cuando la confianza supera el umbral definido
  • La ampliación del conjunto de datos y las pruebas de falsos positivos siguen en curso

Dirección con GCC-PHAT

Los retardos este/oeste y norte/sur forman los ejes combinados mediante atan2. Con 190 mm y 44,1 kHz, una muestra equivale aproximadamente a 2,3° cerca de la perpendicular. Una interpolación 8× da un paso teórico de unos 0,29°.

0,29° no es la precisión angular medida. Es la resolución de la rejilla temporal interpolada. Ruido, reflexiones, carcasa, geometría y calibración determinan el error real.
Temperatura: corregir la velocidad del sonido puede afectar a un modelo de distancia, pero la escala común se cancela al combinar los dos ejes con atan2. Por eso no se afirma que la compensación de temperatura mejore la precisión angular.

Calidad de la alimentación

La alimentación de los micrófonos también forma parte de la cadena de señal.

Radio, convertidor y micrófonos sensibles comparten una carcasa pequeña. Protección de batería, conversión y filtrado se diseñaron como un único problema.

LiFePO₄ 26650
BMS 1S · negativo de batería solo a B− · masa del sistema desde P−
Elevador MT3608 hasta 5 V
Filtro π · 220 µF + 10 µH + 100 nF
AMS1117-3.3 con configuración de ESR documentada
Por micrófono: ferrita de 100 Ω + condensador cerámico de 100 nF

Carga y distribución

  • Un módulo USB-C TP5000 carga la celda LiFePO₄ con el perfil adecuado.
  • La masa del sistema sale de P−; conectarla directamente a B− anularía la protección de descarga del BMS.
  • El MT3608 trabaja como elevador en este nodo, no como reductor.
  • Los condensadores de filtrado de alta capacidad absorben variaciones lentas, mientras los cerámicos y las ferritas reducen el ruido de alta frecuencia.
  • El sistema de cabina se alimenta mediante un adaptador separado de 12 V a 5 V.

Nodo de cabina · Copilot

Control en tiempo real junto a una interfaz Linux.

La arquitectura separa las entradas y salidas sensibles al tiempo de la interfaz gráfica. Un ESP32-S3 se ocupa de los sensores y los enlaces; una Raspberry Pi gestiona la pantalla y las cámaras, y ejecuta la aplicación.

Controlador ESP32-S3

  • Firmware ESP-IDF v5
  • Mensajes ESP-NOW desde el techo
  • Interfaces LoRa, GPS, radar, audio, microSD y MPU6050
  • Mensajes UART estructurados hacia la Raspberry Pi
  • PCB fabricada; montaje y puesta en marcha completa en curso

Aplicación Raspberry Pi

  • Interfaz pygame de ocho pantallas
  • Avisos de sirena, navegación vectorial sin conexión y diagnóstico
  • Cámaras frontal e interior
  • Indicadores OBD-II, control multimedia mediante MPRIS y cámara trasera
  • Servicio Linux gestionado con systemd
Corrección sobre sensores: la Raspberry Pi no llegó a detectar el DS18B20 durante el desarrollo, por lo que el AHT21 es la fuente utilizada actualmente. No se presentan dos sensores de temperatura como si ambos estuviesen validados.

Transpondedor de emergencias

Un canal directo de posición.

Es un demostrador separado pensado para ambulancias y otros vehículos de emergencia. Emite un mensaje compacto que los prototipos SirenSense cercanos pueden representar en sus mapas.

Hardware del demostrador

ControladorESP32-S3
RadioLoRa SX1278 · 433 MHz
PosiciónReceptor GNSS BN-880
InterfazPantalla OLED local
PaqueteCarga útil protegida mediante AES-128
AccesoRetardo aleatorio tipo ALOHA · 800 a 1500 ms

Estado actual

Se ha construido una unidad de demostración en placa perforada y se ha diseñado una PCB. El alcance aún no se ha caracterizado en un ensayo urbano controlado.

Solo objetivos: las referencias a 1–2 km de alcance urbano o a 30–60 segundos de posible mejora en el tiempo de respuesta son estimaciones, no garantías validadas.

Registro de validación

Del prototipo al producto, sin ocultar lo que falta.

Indicar el estado real también es hacer buena ingeniería. Estas etiquetas describen el proyecto hoy y solo cambiarán cuando se completen las pruebas correspondientes.

SubsistemaEstado
PCB y carcasa de techoConstruidas y demostradas
Captura sincronizada de cuatro canalesImplementada con comprobaciones de arranque
Clasificación TinyMLPrototipo funcional; ampliación del conjunto de datos en curso
Estimación de dirección con GCC-PHATImplementada; aún no existe una cifra única y validada para su precisión en campo
PCB de cabinaFabricada; montaje final y puesta en marcha en curso
Interfaz Raspberry PiSoftware funcional; faltan la validación en una Pi 5 y las pruebas en el coche
TranspondedorDemostrador en placa perforada; PCB de producción y ensayos de alcance pendientes
Resistencia a la intemperieObjetivo de diseño; sin certificación IP
V16 ProFunción experimental; sin certificación DGT

Código del proyecto

La implementación está en los repositorios públicos.