Las notas detrás de los números
Lo que las secciones anteriores comprimen en diagramas, escrito con palabras: el mapa de pines, la cadena de alimentación, la división de la cabina y el transpondedor. Cuando una decisión tiene un modo de fallo, el modo de fallo se indica junto a ella.
Captura de audio en el nodo de techo
Un solo ESP32-S3 captura los cuatro canales; el array no se reparte entre dos controladores. A un INMP441 se le puede indicar qué ranura de una trama estéreo I²S debe excitar, así que cada par opuesto comparte una línea de datos, con un micrófono en la ranura izquierda y su opuesto en la derecha.
| Este / Oeste | I²S0 maestro · datos GPIO 4 |
| Norte / Sur | I²S1 esclavo · datos GPIO 14 |
| Relojes compartidos | BCLK GPIO 6 · WS GPIO 5 · enrutados internamente a través de la matriz GPIO |
| Formato de muestreo | 44.1 kHz · ranuras estéreo de 32 bits · datos de micrófono de 24 bits |
| Entrada del correlador | Los 16 bits superiores de cada muestra |
| Comprobación de arranque | El bucle de retorno y la calibración confirman 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 ←┘
El segundo par es esclavo de los relojes que genera el primero, en lugar de ser una segunda captura independiente que tendría que alinearse después. La razón está en la sección de la cadena de procesado anterior: una corrección fija entre pares con relojes independientes no es un retardo real, y aplicar una midió en torno a 9° de error de rumbo en este montaje.
La detección condiciona la dirección
El clasificador y el estimador de rumbo hacen trabajos distintos y no se fusionan. El clasificador es una exportación de audio de Edge Impulse que usa características de energía de banco de filtros mel, entrenada con grabaciones de ambulancias en carretera que incluyen tráfico, viento y desplazamiento Doppler en lugar de muestras limpias de estudio. Su confianza decide si una ventana contiene una sirena o no.
Solo las ventanas que pasan se entregan a la correlación. Ese orden es lo que mantiene la cadena de procesado del rumbo apartada del audio irrelevante, y es la razón de que el simulador anterior etiquete su trama mel y su etapa de clasificador como sustitutos: el modelo real se ejecuta en el ESP32-S3 y esta página no pretende reproducirlo. El comportamiento ante falsos positivos en carreteras reales sigue siendo una tarea abierta de conjunto de datos, no un resultado terminado.
Integridad de la alimentación
El nodo de techo aloja una radio, un convertidor conmutado y cuatro micrófonos digitales en una carcasa pequeña, así que la alimentación forma parte del problema de sensado y no es algo situado después de él. La cadena, en orden:
- Celda LiFePO₄ 26650 — todo el nodo funciona con una sola celda.
- Módulo TP5000 USB-C — carga con el perfil LiFePO₄, no con uno de Li-ion.
- BMS 1S — el retorno protegido del sistema se toma de P−.
- Convertidor elevador MT3608 — eleva hasta un rail regulado de 5 V.
- Filtro π — 220 µF de bulk, 10 µH en serie, 100 nF cerámico.
- AMS1117-3.3 — el propio rail de los micrófonos.
- Cuenta de ferrita y 100 nF — en cada rama de micrófono, no una sola vez en la alimentación.
- Adaptador de 12 V a 5 V — una alimentación aparte para la unidad de cabina.
Dos formas de equivocarse aquí
El MT3608 es aquí un convertidor elevador, no un convertidor reductor: la celda está por debajo del rail de 5 V, así que un componente reductor nunca regularía. Y el retorno protegido debe venir del terminal P− del BMS — tomarlo de B− puentea la protección de descarga y anula el circuito de protección.
El nodo de cabina, dividido en dos
La arquitectura de cabina separa la E/S sensible al tiempo de la interfaz más rica. Las lecturas de sensores y el enlace de radio se quedan en un microcontrolador; el renderizado, las cámaras y la aplicación viven en la Pi, y ambos se comunican mediante un enlace UART estructurado.
Controlador ESP32-S3
- Firmware ESP-IDF v5
- Mensajes ESP-NOW procedentes del nodo de techo
- Interfaces de LoRa, GPS, radar, audio, microSD y MPU6050
- Mensajes UART estructurados hacia la Raspberry Pi
- PCB de cabina fabricada; montaje y puesta en marcha completa en curso
Aplicación de la Raspberry Pi
- Interfaz pygame de ocho páginas
- Alertas de sirena, navegación vectorial sin conexión y diagnóstico del sistema
- Cámaras frontal y orientada al conductor
- Indicadores OBD-II, control multimedia mediante MPRIS y vista de cámara trasera
- Gestionada como servicio de Linux con systemd
Mantener la vía sensible al tiempo fuera de un sistema operativo de propósito general es el objetivo de la división: nada en la cadena de alerta depende de que el planificador de escritorio esté de buen humor.
El transpondedor del vehículo de emergencia
Un demostrador aparte, transportado por el propio vehículo de emergencia. Emite un mensaje de posición compacto que los nodos SirenSense cercanos pueden situar en su mapa, de modo que un aviso puede indicar una dirección y una distancia en lugar de solo un rumbo.
| Controlador | ESP32-S3 |
| Radio | SX1278 · 433 MHz LoRa |
| Posición | Receptor GNSS BN-880 |
| Interfaz local | Pantalla OLED de estado |
| Paquete | Carga útil protegida con AES-128 |
| Acceso al canal | Jitter estilo ALOHA, de 800 a 1500 ms |
Se ha construido una unidad de demostración en placa perforada y se ha diseñado una PCB. El alcance de radio no se ha caracterizado en un ensayo de campo urbano controlado, así que la cifra recogida en el registro anterior — 4 km objetivo de diseño — aún no caracterizado en campo — es una estimación de ingeniería.
Lo que estas notas no afirman
El prototipo no tiene certificación IP. V16 Pro no está certificado por la DGT y no es un sustituto reglamentario de un dispositivo V16 certificado. No se declara ninguna exactitud de rumbo en campo, porque no se ha medido ninguna, y el conjunto de datos del clasificador sigue creciendo. Cada frase cambia solo cuando el ensayo correspondiente está completo, en el registro anterior.
Los diseños de placa, las capturas de KiCad y el registro de validación completo están en el registro técnico. Código fuente y documentación: SirenSense y SirenSense V2 en GitHub.