Comando HM — Detector de Manobras Bruscas
Detecção de eventos de condução com 8 instâncias independentes e 8 algoritmos: aceleração e frenagem por GPS; curvas, manobra forte e colisões por acelerômetro.
Para que serve?
| Caso de uso | Descrição |
|---|---|
| 🏎️ Pontuação de condução | Avaliar o estilo de direção do motorista |
| 🚨 Alertas de segurança | Notificar frenagens bruscas ou manobras perigosas |
| 💥 Detecção de colisões | Identificar colisões ou acidentes |
| 📈 Análise de frota | Gerar estatísticas de comportamento |
Descrição
O módulo HM detecta eventos de condução usando 8 instâncias independentes (HM00-HM07) onde cada uma pode ser configurada para qualquer tipo de algoritmo (0-7):
- HMxx = Índice de módulo (instância independente)
- eventType = Tipo de algoritmo de detecção (0-7)
- Flexibilidade total: HM03 pode usar algoritmo tipo 5, HM00 pode usar tipo 2, etc. O tipo é definido por
eventType, não pelo índice.
Configuração
Sintaxe
Configuração completa (os parâmetros são posicionais e os finais podem ser omitidos):
SHMxx,eventType,magnitude,min_speed_kmh,hysteresis_percent,time_window_ms,cooldown_sFormas abreviadas (sem vírgula entre xx e a letra):
| Forma | Ação |
|---|---|
SHMxxE | Habilitar módulo |
SHMxxD | Desabilitar módulo (guarda a configuração, mas não detecta) |
SHMxxR | Reset para configuração padrão |
SHMxxE,... / SHMxxD,... / SHMxxR,... | Combinar habilitar/desabilitar/reset com parâmetros |
QHMxx | Consultar configuração atual |
Parâmetros
| Parâmetro | Descrição |
|---|---|
| xx | Instância do módulo (00-07) |
| eventType | Algoritmo a usar (0-7) |
| magnitude | Limiar: km/h por segundo no GPS (tipos 0-1), mg no acelerômetro (tipos 2-7) |
| min_speed_kmh | Velocidade mínima GPS (0 = sem restrição). Os tipos 5-7 a ignoram |
| hysteresis_percent | Porcentagem que se soma ao limiar |
| time_window_ms | Duração mínima sustentada (0 = instantâneo) |
| cooldown_s | Tempo entre eventos (anti-spam) |
Tipos de Algoritmos
🌐 Por GPS (Tipos 0-1)
Medem a variação de velocidade GPS de um segundo para o seguinte. Não dependem de como o equipamento está montado.
| Tipo | Ícone | Nome | Detecta | Valores de referência |
|---|---|---|---|---|
| 0 | 🏎️ | Aceleração GPS | Ganha ≥ magnitude km/h em um segundo | 5-7 km/h/s, vel_min 5 km/h, janela 1000 ms |
| 1 | 🛑 | Frenagem GPS | Perde ≥ magnitude km/h em um segundo | 6-9 km/h/s, vel_min 10 km/h, janela 1000 ms |
📐 Por acelerômetro, com velocidade mínima (Tipos 2-4)
| Tipo | Ícone | Nome | Detecta | Valores de referência |
|---|---|---|---|---|
| 2 | ↪️ | Curva esquerda | Eixo Y positivo ≥ limiar | 220-330 mg, vel_min 15 km/h, janela 2000 ms |
| 3 | ↩️ | Curva direita | Eixo Y negativo ≥ limiar | 220-330 mg, vel_min 15 km/h, janela 2000 ms |
| 4 | 🌀 | Manobra forte (centrípeta) | Força horizontal total √(x²+y²): curva, frenagem, aceleração ou combinadas | 250-330 mg, vel_min 20 km/h, janela 2000 ms |
⚡ Colisões (Tipos 5-7)
Ignoram min_speed_kmh: detectam também com o veículo parado.
| Tipo | Ícone | Nome | Detecta | Valores de referência |
|---|---|---|---|---|
| 5 | ↔️ | Colisão lateral | |eixo Y| ≥ limiar | 1500-2000 mg, janela 0 |
| 6 | ⬆️ | Colisão frontal | Eixo X ≤ −limiar | 1500-2000 mg, janela 0 |
| 7 | ⬇️ | Colisão traseira | Eixo X ≥ +limiar | 1500-2000 mg, janela 0 |
Como o Firmware Avalia
GPS: um dado por segundo
A variação de velocidade é avaliada uma vez por segundo e precisa se manter em segundos consecutivos até completar time_window_ms; se um segundo não atinge o limiar, a contagem recomeça. Com uma janela de T ms são necessários T/1000 + 1 segundos seguidos:
| time_window_ms | Segundos seguidos | Exemplo com magnitude 9 (frenagem) |
|---|---|---|
| 100 ou 1000 | 2 | Perder 18 km/h em 2 s (≈0,25 g) |
| 2000 | 3 | Perder 27 km/h em 3 s |
| 3000 | 4 | Perder 36 km/h em 4 s |
| 4000 | 5 | Perder 45 km/h em 5 s (na prática não acontece) |
Para os tipos 0-1 use janela de 1000 ms e histerese 0. Com janelas de 3000 ms ou mais a detecção quase nunca dispara. Uma frenagem seca de menos de 2 segundos não é vista pelo GPS.
Acelerômetro
O equipamento lê o acelerômetro a cada 20 ms e calcula a média de 4 leituras (cerca de 80 ms); o HM verifica essa média a cada 100 ms. time_window_ms exige que o limiar se mantenha em todas as verificações desse período, e com 0 basta uma. magnitude é em mg (1000 mg = 1 g).
Histerese
hysteresis_percent se soma ao limiar: limiar efetivo = magnitude × (1 + hysteresis_percent / 100). Não existe limiar de desativação, então mais histerese torna o disparo mais difícil. Exemplo: 330 mg com 10 % dispara a partir de 363 mg.
Cooldown
Depois de um evento, a mesma instância não volta a detectar até passarem cooldown_s segundos.
Orientação do Equipamento
Os tipos 2-7 usam os eixos do acelerômetro. Se o equipamento não foi calibrado (ver Calibração de Eixos), são usados os eixos da placa tal como foi instalada:
- Equipamento inclinado: a gravidade se soma aos eixos horizontais (10° ≈ 170 mg) e um lado dispara antes do outro.
- Equipamento girado: esquerda e direita, ou frontal e traseira, podem ficar invertidos, e uma curva pode ser lida como frenagem.
Antes de usar em uma frota, teste em um veículo: faça uma curva clara à esquerda e verifique qual evento chega, e frene firme em linha reta verificando que nenhuma curva dispare. As colisões laterais (tipo 5) e a manobra forte (tipo 4) usam a magnitude do eixo, então dependem menos da orientação.
Presets por Classe de Veículo
São os mesmos oferecidos pelo configurador em Módulos → Manobras → Presets. As três classes usam o mesmo mapa de slots, então as regras servem para qualquer uma. São valores de partida: ajuste-os com os eventos reais da frota.
🚗 Carro / Leve
>SHM00E,0,7,5,0,1000,5< // Aceleração brusca: +7 km/h por segundo, 2 s seguidos
>SHM01E,1,9,10,0,1000,5< // Frenagem brusca: −9 km/h por segundo, 2 s seguidos
>SHM02E,2,330,15,10,2000,3< // Curva brusca à esquerda: 0,36 g sustentados 2 s
>SHM03E,3,330,15,10,2000,3< // Curva brusca à direita: 0,36 g sustentados 2 s
>SHM04E,5,2000,0,5,0,30< // Colisão lateral: 2,1 g, sem demora
>SHM05E,6,2000,0,5,0,30< // Colisão frontal: 2,1 g, sem demora
>SHM06E,7,2000,0,5,0,30< // Colisão traseira: 2,1 g, sem demora
>SHM07E,4,330,20,10,2000,5< // Manobra forte: 0,36 g horizontais sustentados 2 s🚛 Utilitário / Frota
>SHM00E,0,6,5,0,1000,5< // Aceleração brusca: +6 km/h por segundo, 2 s seguidos
>SHM01E,1,8,10,0,1000,5< // Frenagem brusca: −8 km/h por segundo, 2 s seguidos
>SHM02E,2,280,15,0,2000,3< // Curva brusca à esquerda: 0,28 g sustentados 2 s
>SHM03E,3,280,15,0,2000,3< // Curva brusca à direita: 0,28 g sustentados 2 s
>SHM04E,5,2000,0,5,0,30< // Colisão lateral: 2,1 g, sem demora
>SHM05E,6,2000,0,5,0,30< // Colisão frontal: 2,1 g, sem demora
>SHM06E,7,2000,0,5,0,30< // Colisão traseira: 2,1 g, sem demora
>SHM07E,4,300,20,0,2000,5< // Manobra forte: 0,30 g horizontais sustentados 2 s⛽ Pesado / Perigosos
>SHM00E,0,5,5,0,1000,5< // Aceleração brusca: +5 km/h por segundo, 2 s seguidos
>SHM01E,1,6,10,0,1000,5< // Frenagem brusca: −6 km/h por segundo, 2 s seguidos
>SHM02E,2,220,15,0,2000,5< // Curva brusca à esquerda: 0,22 g sustentados 2 s
>SHM03E,3,220,15,0,2000,5< // Curva brusca à direita: 0,22 g sustentados 2 s
>SHM04E,5,1500,0,5,0,30< // Colisão lateral: 1,6 g, sem demora
>SHM05E,6,1500,0,5,0,30< // Colisão frontal: 1,6 g, sem demora
>SHM06E,7,1500,0,5,0,30< // Colisão traseira: 1,6 g, sem demora
>SHM07E,4,250,20,0,2000,5< // Manobra forte: 0,25 g horizontais sustentados 2 sExemplo Completo: Evento e Caixa-Preta
Cada manobra dispara uma regra que gera seu evento (relatório UC0) e a caixa-preta com os segundos anteriores e posteriores, tudo para o log para que nada se perca sem cobertura.
>SCXBB,U0,1,10,20< // Caixa-preta: UC0 a cada 1 s, 10 amostras depois e 20 antes
>SRL70E;TRG=HM00+;ACC={GBBFFH;@LOG}{GU070H;@LOG}< // Evento 70: aceleração brusca
>SRL71E;TRG=HM01+;ACC={GBBFFH;@LOG}{GU071H;@LOG}< // Evento 71: frenagem brusca
>SRL72E;TRG=HM02+;ACC={GBBFFH;@LOG}{GU072H;@LOG}< // Evento 72: curva brusca à esquerda
>SRL73E;TRG=HM03+;ACC={GBBFFH;@LOG}{GU073H;@LOG}< // Evento 73: curva brusca à direita
>SRL74E;TRG=HM04+;ACC={GBBFFH;@LOG}{GU074H;@LOG}< // Evento 74: colisão lateral
>SRL75E;TRG=HM05+;ACC={GBBFFH;@LOG}{GU075H;@LOG}< // Evento 75: colisão frontal
>SRL76E;TRG=HM06+;ACC={GBBFFH;@LOG}{GU076H;@LOG}< // Evento 76: colisão traseira
>SRL77E;TRG=HM07+;ACC={GBBFFH;@LOG}{GU077H;@LOG}< // Evento 77: manobra forte- O conteúdo de cada amostra da caixa-preta e de cada evento é definido pelo relatório UC00: inclua data, hora e posição.
- Uma curva ou frenagem muito fortes podem gerar também o evento de manobra forte (77).
- A caixa-preta envia uma rajada por vez: se outra manobra ocorrer enquanto as amostras posteriores são enviadas, essa segunda rajada não é gerada (o evento sim).
- Numere os eventos entre 00 e 99 se a plataforma lê o número em decimal.
Para somar as manobras à pontuação da viagem, adicione {STPGCI,n} em cada regra: aceleração → GC2, frenagem → GC3, curvas → GC4 (ver Contadores GC).
Validações
Limites por Parâmetro
| Parâmetro | Unidade | 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 |
Os tipos 0-4 não admitem time_window_ms=0: o firmware corrige automaticamente para 100 ms e retorna um WARNING.
Recomendações
Para Detecção de Colisões
- Tipos 5, 6 e 7 com magnitude entre 1500 e 2000 mg
time_window_msem 0: uma colisão dura cerca de 100 ms e uma janela maior a deixa passarcooldown_slongo (30 s)
Para Avaliação de Motoristas
- Aceleração e frenagem por GPS (tipos 0-1) com janela de 1000 ms e histerese 0
- Curvas e manobra forte (tipos 2-4) com janela de 2000 ms para filtrar buracos
cooldown_smoderado (3-5 s)- Combinar com os contadores do módulo TRIP para a pontuação por viagem
Antes de Implantar em uma Frota
- Fazer o teste de orientação em pelo menos um veículo
- Revisar a quantidade de eventos da primeira semana e ajustar
magnitudepor classe de veículo
Sinais Associados
| Sinal | Índice | Apto para uso condicional |
|---|---|---|
| HM | 00-07 | NÃO |
Os disparadores disponíveis são HM00+ a HM07+. Apenas flanco positivo.
Compatibilidade
Ver Também
- Calibração de Eixos — Calibração do acelerômetro
- Comando AC — Leitura do acelerômetro
- Comando CXAC — Configuração do acelerômetro
- Comando MVT — Detecção de movimento
- Black Box (CXBB) — Relatórios antes e depois de um evento
- Contadores GC — Pontuação de condução por viagem