Comando HM — Detector de Maniobras Bruscas
Detección de eventos de conducción con 8 instancias independientes y 8 algoritmos: aceleración y frenada por GPS; giros, maniobra fuerte y choques por acelerómetro.
¿Para qué sirve?
| Caso de uso | Descripción |
|---|---|
| 🏎️ Scoring de conducción | Evaluar el estilo de manejo del conductor |
| 🚨 Alertas de seguridad | Notificar frenadas bruscas o maniobras peligrosas |
| 💥 Detección de choques | Identificar colisiones o accidentes |
| 📈 Análisis de flota | Generar estadísticas de comportamiento |
Descripción
El módulo HM detecta eventos de conducción usando 8 instancias independientes (HM00-HM07) donde cada una puede configurarse para cualquier tipo de algoritmo (0-7):
- HMxx = Índice de módulo (instancia independiente)
- eventType = Tipo de algoritmo de detección (0-7)
- Flexibilidad total: HM03 puede usar algoritmo tipo 5, HM00 puede usar tipo 2, etc. El tipo lo fija
eventType, no el índice.
Configuración
Sintaxis
Configuración completa (los parámetros son posicionales y pueden omitirse los del final):
SHMxx,eventType,magnitude,min_speed_kmh,hysteresis_percent,time_window_ms,cooldown_sFormas abreviadas (sin coma entre xx y la letra):
| Forma | Acción |
|---|---|
SHMxxE | Habilitar módulo |
SHMxxD | Deshabilitar módulo (guarda la configuración, pero no detecta) |
SHMxxR | Reset a configuración por defecto |
SHMxxE,... / SHMxxD,... / SHMxxR,... | Combinar habilitar/deshabilitar/reset con parámetros |
QHMxx | Consultar configuración actual |
Parámetros
| Parámetro | Descripción |
|---|---|
| xx | Instancia del módulo (00-07) |
| eventType | Algoritmo a usar (0-7) |
| magnitude | Umbral: km/h por segundo en GPS (tipos 0-1), mg en acelerómetro (tipos 2-7) |
| min_speed_kmh | Velocidad mínima GPS (0 = sin restricción). Los tipos 5-7 la ignoran |
| hysteresis_percent | Porcentaje que se suma al umbral |
| time_window_ms | Duración mínima sostenida (0 = instantáneo) |
| cooldown_s | Tiempo entre eventos (anti-spam) |
Tipos de Algoritmos
🌐 Por GPS (Tipos 0-1)
Miden el cambio de velocidad GPS de un segundo al siguiente. No dependen de cómo esté montado el equipo.
| Tipo | Icono | Nombre | Detecta | Valores de referencia |
|---|---|---|---|---|
| 0 | 🏎️ | Aceleración GPS | Gana ≥ magnitude km/h en un segundo | 5-7 km/h/s, vel_min 5 km/h, ventana 1000 ms |
| 1 | 🛑 | Frenada GPS | Pierde ≥ magnitude km/h en un segundo | 6-9 km/h/s, vel_min 10 km/h, ventana 1000 ms |
📐 Por acelerómetro, con velocidad mínima (Tipos 2-4)
| Tipo | Icono | Nombre | Detecta | Valores de referencia |
|---|---|---|---|---|
| 2 | ↪️ | Giro izquierda | Eje Y positivo ≥ umbral | 220-330 mg, vel_min 15 km/h, ventana 2000 ms |
| 3 | ↩️ | Giro derecha | Eje Y negativo ≥ umbral | 220-330 mg, vel_min 15 km/h, ventana 2000 ms |
| 4 | 🌀 | Maniobra fuerte (centrípeta) | Fuerza horizontal total √(x²+y²): giro, frenada, aceleración o combinadas | 250-330 mg, vel_min 20 km/h, ventana 2000 ms |
⚡ Choques (Tipos 5-7)
Ignoran min_speed_kmh: detectan también con el vehículo detenido.
| Tipo | Icono | Nombre | Detecta | Valores de referencia |
|---|---|---|---|---|
| 5 | ↔️ | Choque lateral | |eje Y| ≥ umbral | 1500-2000 mg, ventana 0 |
| 6 | ⬆️ | Choque frontal | Eje X ≤ −umbral | 1500-2000 mg, ventana 0 |
| 7 | ⬇️ | Choque trasero | Eje X ≥ +umbral | 1500-2000 mg, ventana 0 |
Cómo evalúa el firmware
GPS: un dato por segundo
El cambio de velocidad se evalúa una vez por segundo y tiene que cumplirse en segundos consecutivos hasta completar time_window_ms; si un segundo no alcanza el umbral, la cuenta vuelve a cero. Con una ventana de T ms hacen falta T/1000 + 1 segundos seguidos:
| time_window_ms | Segundos seguidos | Ejemplo con magnitude 9 (frenada) |
|---|---|---|
| 100 o 1000 | 2 | Perder 18 km/h en 2 s (≈0,25 g) |
| 2000 | 3 | Perder 27 km/h en 3 s |
| 3000 | 4 | Perder 36 km/h en 4 s |
| 4000 | 5 | Perder 45 km/h en 5 s (en la práctica no ocurre) |
Para los tipos 0-1 usa ventana 1000 ms e histéresis 0. Con ventanas de 3000 ms o más la detección casi nunca dispara. Una frenada seca de menos de 2 segundos no la ve el GPS.
Acelerómetro
El equipo lee el acelerómetro cada 20 ms y promedia 4 lecturas (unos 80 ms); el HM revisa ese promedio cada 100 ms. time_window_ms exige que el umbral se mantenga en todas las revisiones de ese lapso, y con 0 alcanza una sola. magnitude va en mg (1000 mg = 1 g).
Histéresis
hysteresis_percent se suma al umbral: umbral efectivo = magnitude × (1 + hysteresis_percent / 100). No existe un umbral de desactivación, así que más histéresis significa que cuesta más disparar. Ejemplo: 330 mg con 10 % dispara desde 363 mg.
Cooldown
Después de un evento, la misma instancia no vuelve a detectar hasta que pasan cooldown_s segundos.
Orientación del equipo
Los tipos 2-7 usan los ejes del acelerómetro. Si el equipo no se calibró (ver Calibración de Ejes), se usan los ejes de la placa tal como quedó instalada:
- Equipo inclinado: la gravedad se suma a los ejes horizontales (10° ≈ 170 mg) y un lado dispara antes que el otro.
- Equipo girado: izquierda y derecha, o frontal y trasero, pueden quedar invertidos, y un giro puede leerse como frenada.
Antes de usarlo en una flota, pruébalo en un vehículo: con un giro claro a la izquierda verifica qué evento llega, y con una frenada firme en recta verifica que no disparen los giros. Los choques laterales (tipo 5) y la maniobra fuerte (tipo 4) usan la magnitud del eje, así que dependen menos de la orientación.
Presets por Clase de Vehículo
Son los mismos que ofrece el configurador en Módulos → Maniobras → Presets. Las tres clases usan el mismo mapa de slots, así las reglas sirven para cualquiera. Son valores de partida: conviene ajustarlos con los eventos reales de la flota.
🚗 Auto / Liviano
>SHM00E,0,7,5,0,1000,5< // Aceleración brusca: +7 km/h por segundo, 2 s seguidos
>SHM01E,1,9,10,0,1000,5< // Frenada brusca: −9 km/h por segundo, 2 s seguidos
>SHM02E,2,330,15,10,2000,3< // Giro brusco a la izquierda: 0,36 g sostenidos 2 s
>SHM03E,3,330,15,10,2000,3< // Giro brusco a la derecha: 0,36 g sostenidos 2 s
>SHM04E,5,2000,0,5,0,30< // Choque lateral: 2,1 g, sin demora
>SHM05E,6,2000,0,5,0,30< // Choque frontal: 2,1 g, sin demora
>SHM06E,7,2000,0,5,0,30< // Choque trasero: 2,1 g, sin demora
>SHM07E,4,330,20,10,2000,5< // Maniobra fuerte: 0,36 g horizontales sostenidos 2 s🚛 Utilitario / Flota
>SHM00E,0,6,5,0,1000,5< // Aceleración brusca: +6 km/h por segundo, 2 s seguidos
>SHM01E,1,8,10,0,1000,5< // Frenada brusca: −8 km/h por segundo, 2 s seguidos
>SHM02E,2,280,15,0,2000,3< // Giro brusco a la izquierda: 0,28 g sostenidos 2 s
>SHM03E,3,280,15,0,2000,3< // Giro brusco a la derecha: 0,28 g sostenidos 2 s
>SHM04E,5,2000,0,5,0,30< // Choque lateral: 2,1 g, sin demora
>SHM05E,6,2000,0,5,0,30< // Choque frontal: 2,1 g, sin demora
>SHM06E,7,2000,0,5,0,30< // Choque trasero: 2,1 g, sin demora
>SHM07E,4,300,20,0,2000,5< // Maniobra fuerte: 0,30 g horizontales sostenidos 2 s⛽ Pesado / Peligrosos
>SHM00E,0,5,5,0,1000,5< // Aceleración brusca: +5 km/h por segundo, 2 s seguidos
>SHM01E,1,6,10,0,1000,5< // Frenada brusca: −6 km/h por segundo, 2 s seguidos
>SHM02E,2,220,15,0,2000,5< // Giro brusco a la izquierda: 0,22 g sostenidos 2 s
>SHM03E,3,220,15,0,2000,5< // Giro brusco a la derecha: 0,22 g sostenidos 2 s
>SHM04E,5,1500,0,5,0,30< // Choque lateral: 1,6 g, sin demora
>SHM05E,6,1500,0,5,0,30< // Choque frontal: 1,6 g, sin demora
>SHM06E,7,1500,0,5,0,30< // Choque trasero: 1,6 g, sin demora
>SHM07E,4,250,20,0,2000,5< // Maniobra fuerte: 0,25 g horizontales sostenidos 2 sEjemplo Completo: Evento y Caja Negra
Cada maniobra dispara una regla que genera su evento (reporte UC0) y la caja negra con los segundos previos y posteriores, todo al log para que no se pierda sin cobertura.
>SCXBB,U0,1,10,20< // Caja negra: UC0 cada 1 s, 10 muestras después y 20 antes
>SRL70E;TRG=HM00+;ACC={GBBFFH;@LOG}{GU070H;@LOG}< // Evento 70: aceleración brusca
>SRL71E;TRG=HM01+;ACC={GBBFFH;@LOG}{GU071H;@LOG}< // Evento 71: frenada brusca
>SRL72E;TRG=HM02+;ACC={GBBFFH;@LOG}{GU072H;@LOG}< // Evento 72: giro brusco a la izquierda
>SRL73E;TRG=HM03+;ACC={GBBFFH;@LOG}{GU073H;@LOG}< // Evento 73: giro brusco a la derecha
>SRL74E;TRG=HM04+;ACC={GBBFFH;@LOG}{GU074H;@LOG}< // Evento 74: choque lateral
>SRL75E;TRG=HM05+;ACC={GBBFFH;@LOG}{GU075H;@LOG}< // Evento 75: choque frontal
>SRL76E;TRG=HM06+;ACC={GBBFFH;@LOG}{GU076H;@LOG}< // Evento 76: choque trasero
>SRL77E;TRG=HM07+;ACC={GBBFFH;@LOG}{GU077H;@LOG}< // Evento 77: maniobra fuerte- El contenido de cada muestra de la caja negra y de cada evento lo define el reporte UC00: incluye fecha, hora y posición.
- Un giro o una frenada muy fuertes pueden generar también el evento de maniobra fuerte (77).
- La caja negra envía una ráfaga por vez: si otra maniobra ocurre mientras se envían las muestras posteriores, esa segunda ráfaga no se genera (su evento sí).
- Numera los eventos entre 00 y 99 si la plataforma lee el número en decimal.
Para sumar las maniobras al puntaje del viaje, agrega {STPGCI,n} en cada regla: aceleración → GC2, frenada → GC3, giros → GC4 (ver Contadores GC).
Validaciones
Límites por Parámetro
| Parámetro | Unidad | Mínimo | Máximo |
|---|---|---|---|
| magnitude (GPS, tipos 0-1) | km/h por segundo | 1 | 50 |
| magnitude (acelerómetro, tipos 2-7) | mg | 50 | 8000 |
| min_speed_kmh | km/h | 0 | 200 |
| hysteresis_percent | % | 0 | 50 |
| time_window_ms | ms | 0 | 30000 |
| cooldown_s | s | 0 | 120 |
Los tipos 0-4 no admiten time_window_ms=0: el firmware lo corrige automáticamente a 100 ms y devuelve un WARNING.
Recomendaciones
Para Detección de Choques
- Tipos 5, 6 y 7 con magnitude entre 1500 y 2000 mg
time_window_msen 0: un choque dura unos 100 ms y una ventana mayor lo deja pasarcooldown_slargo (30 s)
Para Evaluación de Conductores
- Aceleración y frenada por GPS (tipos 0-1) con ventana 1000 ms e histéresis 0
- Giros y maniobra fuerte (tipos 2-4) con ventana 2000 ms para filtrar baches
cooldown_smoderado (3-5 s)- Combinar con los contadores del módulo TRIP para el puntaje por viaje
Antes de Desplegar en una Flota
- Hacer la prueba de orientación en al menos un vehículo
- Revisar la cantidad de eventos de la primera semana y ajustar
magnitudepor clase de vehículo
Señales Asociadas
| Señal | Índice | Apto para uso condicional |
|---|---|---|
| HM | 00-07 | NO |
Los disparadores disponibles son HM00+ a HM07+. Solo flanco positivo.
Compatibilidad
Ver También
- Calibración de Ejes — Calibración del acelerómetro
- Comando AC — Lectura del acelerómetro
- Comando CXAC — Configuración del acelerómetro
- Comando MVT — Detección de movimiento
- Black Box (CXBB) — Caja negra de reportes antes y después de un evento
- Contadores GC — Puntaje de conducción por viaje