Skip to Content

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 usoDescripción
🏎️ Scoring de conducciónEvaluar el estilo de manejo del conductor
🚨 Alertas de seguridadNotificar frenadas bruscas o maniobras peligrosas
💥 Detección de choquesIdentificar colisiones o accidentes
📈 Análisis de flotaGenerar 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_s

Formas abreviadas (sin coma entre xx y la letra):

FormaAcción
SHMxxEHabilitar módulo
SHMxxDDeshabilitar módulo (guarda la configuración, pero no detecta)
SHMxxRReset a configuración por defecto
SHMxxE,... / SHMxxD,... / SHMxxR,...Combinar habilitar/deshabilitar/reset con parámetros
QHMxxConsultar configuración actual

Parámetros

ParámetroDescripción
xxInstancia del módulo (00-07)
eventTypeAlgoritmo a usar (0-7)
magnitudeUmbral: km/h por segundo en GPS (tipos 0-1), mg en acelerómetro (tipos 2-7)
min_speed_kmhVelocidad mínima GPS (0 = sin restricción). Los tipos 5-7 la ignoran
hysteresis_percentPorcentaje que se suma al umbral
time_window_msDuración mínima sostenida (0 = instantáneo)
cooldown_sTiempo 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.

TipoIconoNombreDetectaValores de referencia
0🏎️Aceleración GPSGana ≥ magnitude km/h en un segundo5-7 km/h/s, vel_min 5 km/h, ventana 1000 ms
1🛑Frenada GPSPierde ≥ magnitude km/h en un segundo6-9 km/h/s, vel_min 10 km/h, ventana 1000 ms

📐 Por acelerómetro, con velocidad mínima (Tipos 2-4)

TipoIconoNombreDetectaValores de referencia
2↪️Giro izquierdaEje Y positivo ≥ umbral220-330 mg, vel_min 15 km/h, ventana 2000 ms
3↩️Giro derechaEje Y negativo ≥ umbral220-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 combinadas250-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.

TipoIconoNombreDetectaValores de referencia
5↔️Choque lateral|eje Y| ≥ umbral1500-2000 mg, ventana 0
6⬆️Choque frontalEje X ≤ −umbral1500-2000 mg, ventana 0
7⬇️Choque traseroEje X ≥ +umbral1500-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_msSegundos seguidosEjemplo con magnitude 9 (frenada)
100 o 10002Perder 18 km/h en 2 s (≈0,25 g)
20003Perder 27 km/h en 3 s
30004Perder 36 km/h en 4 s
40005Perder 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 s

Ejemplo 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ámetroUnidadMínimoMáximo
magnitude (GPS, tipos 0-1)km/h por segundo150
magnitude (acelerómetro, tipos 2-7)mg508000
min_speed_kmhkm/h0200
hysteresis_percent%050
time_window_msms030000
cooldown_ss0120

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_ms en 0: un choque dura unos 100 ms y una ventana mayor lo deja pasar
  • cooldown_s largo (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_s moderado (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 magnitude por clase de vehículo

Señales Asociadas

SeñalÍndiceApto para uso condicional
HM00-07NO

Los disparadores disponibles son HM00+ a HM07+. Solo flanco positivo.


Compatibilidad

💾Firmware:v1.09.15
SP-IOT
SM-IOT
ZE-IOT

Ver También

Última actualización