SlideShare uma empresa Scribd logo
1 de 77
Baixar para ler offline
Um Sistema Embarcado para Análise e Classificação
de Condução de Motoristas
1
 Capítulo I: Introdução
 Capítulo II: Fundamentação Teórica
 Capítulo III: Captura de Dados no Barramento CAN
 Capítulo IV: Processamento dos Dados
 Capítulo V: Interface com Usuário
 Capítulo VI: Trabalhos Futuros
2
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Redes Automotivas Como Área De Grande Interesse Na Computação:
 Mercados de Carros Autônomos, Segurança e Aplicativos para Automóveis.
 Barateamento e Aumento da Capacidade Computacional de Sistemas Embarcados.
 Espaço para Aplicação com Algoritmos Complexos (Inteligência Artifical).
3
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
4
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Source : Wired
 CAN (Controller Area Network)
 Protocolo de rede mais empregado nos véiculos atuais.
 Utilizado para controlar ECUs (Eletronic Control Unit).
 Controle de sistemas veiculares como Freios ABS e AirBag.
 Podem conter mais de 50 ECUs conectadas entre si.
 Alta quantidade de dados trafegando dentro do veículo.
5
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
6
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Source : hollisbrothersauto.com
 Embedded Systems (Sistemas Embarcados)
 Sistemas eletrônicos com tamanho e e capacidade computacional reduzidos.
 Sistemas com propósito específico.
 Sua evolução tem possibilitado a criação de aplicações que demandam maior poder
computacional, como aplicações com Inteligência Artificial.
7
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
8
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Source : PixShark.com
 Tecnologias Móveis e a Exigências Por Novos Serviços
 A democratização das tecnologias móveis e o conceito de nuvem condicionando usuários a
reinvidicar novos serviços disponíveis em todo lugar.
9
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
10
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Source : eng-cs.syr.edu
11
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Observar Tráfego Intraveicular
Processar Os Dados
Classificar o Comportamento do
Motorista
Dados em Tempo Real na Web
Um Sistema Embarcado para Análise e Classificação
de Condução de Motoristas
12
 Redes Automotivas
 CAN – Controller Area Network
 Mensagem CAN
 Arbitração
 Verificação de Erro
 Inteligência Artificial
 kNN – K Nearest Neighboor Algorithm
13
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Redes Automotivas
 Carros estão se tornando cada vez mais eletrônicos com dispositivos conectados entre si para
MONITORAR e CONTROLAR o estado do veículo.
 Diversos tipos de redes intraveiculares, cada qual com suas particularidades:
 Largura de Banda.
 Custo.
 Complexidade.
 Exemplos de Redes Intraveiculares:
 LIN (Local Interconnect Network).
 FlexRay.
 MOST (Media Oriented Systems Transport).
 CAN (Controller Area Network).
14
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 CAN – Controller Area Network
 Protocolo desenvolvido pela BOSCH como solução para o ambiente intraveicular, robusta à
interferência eletromagnética e de baixo custo de implementação.
 Protocolo de comunicação BROADCAST, onde todos os nós conectados na rede têm acesso às
mensagens trocadas.
15
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
18
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Campos da mensagem do Standard CAN [3].
 CAN – Controller Area Network
 Mensagem CAN
 O protocolo CAN possui duas variações de composição de campos de mensagem:
 Standard CAN possui 11 bits de ID.
 Extended CAN possui 29 bits de ID.
 ID: Campo responsável por identificar e por definir a prioridade das mensagens.
 IDE: Bit responsável por identificar o padrão utilizado (Standard ou Extended ).
 DLC: Indica a quantidade de bytes de dados sendo transmitidos.
 DATA: Composto pelos dados sendo transmitidos.
19
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 CAN – Controller Area Network
 Arbitração
 A arbitração é uma característica fundamental do protocolo CAN que garante que mensagens
com maior prioridade poderão trafegar no barramento sem colisões ou erros.
 Se dois nós tentam ocupar o barramento no mesmo instante, o acesso ao barramento é
implementado de maneira não destrutiva com uma arbitração bit a bit, garantindo o
barramento para a mensagem com o menor valor de Identifier [3].
 Para que a arbitração aconteça, cada nó segue verificando o barramento à medida que
transmite, possibilitando uma comparação entre bit enviado e bit presente no barramento.
Caso uma mensagem com maior prioridade esteja presente no barramento, o nó para
imediatamente a sua transmissão.
20
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 CAN – Controller Area Network
 Arbitração
Exemplo de arbitração no barramento CAN.
 CAN – Controller Area Network
 Verificação de Erro
 A robustez do protocolo CAN pode ser atribuída em parte ao abundante procedimento de
verificação de erros.
 O protocolo CAN possui cinco diferente métodos de checagem de erro:
 Três em nível de mensagem.
 Dois em nível de bits.
 Se a mensagem falhar em qualquer um deles, esta não é aceita pelo receptor e uma
mensagem de erro é gerada no barramento, obrigando o emissor a reenviar a mensagem até
que esta seja recebida corretamente.
 Se um nó começar a enviar mensagens de erro continuamente no barramento, sua capacidade
de transmissão é removida por seu controlador após atingir um limite máximo de mensagens
[3].
21
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Inteligência Artificial
 Área da computação responsável por estudar e desenvolver algoritmos capazes de
RECONHECER e CLASSIFICAR padrões, como por exemplo:
 Reconhecimento de Fala.
 Identificação Biométrica.
 Existem diversos algoritmos de IA existentes na literatura:
 Redes Neurais.
 Árvores de Decisão.
 kNN – K Nearest Neighboor Algorithm.
 Utilizou-se IA neste projeto com o objetivo de classificar o comportamento do motorista de
maneira AUTOMATIZADA ao término de um período de direção.
22
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Inteligência Artificial
 kNN – K Nearest Neighboor
 Algoritmo baseado em instância, por não precisar ‘ensinar’ a máquina previamente. Ou seja,
todo o processamento é transferido para o processo de classificação, sendo o processo de
aprendizagem apenas o armazenamento do conjunto de treinamento.
 Conjunto de Treinamento: Grupo de objetos cujas características têm valores conhecidos, e suas
classes definidas.
 Objeto de Análise: Objeto cujas características têm valores conhecidos, e cuja classe se deseja
descobrir baseado nas informações do Conjunto de Treinamento.
 Vetor de Características: Sequência de características de um objeto dada por:
𝑎1 𝑥 , 𝑎2 𝑥 , … , 𝑎 𝑛 𝑥 (2.1)
onde an(x) denota a r-ésima característica do elemento x.
23
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Inteligência Artificial
 kNN – K Nearest Neighboor
 Distância Euclidiana: A distância Euclidiana entre duas instâncias xi e xj é dada por d(xi,xj), onde:
𝑑 𝑥𝑖, 𝑥𝑗 = (𝑎 𝑟 𝑥𝑖 − 𝑎 𝑟(𝑥𝑗))2𝑛
𝑟=1 (2.2)
 Calculadas as distâncias entre todos os elementos do Conjunto de Treinamento e o Elemento de
Análise, escolhem-se os K elementos mais próximos. A classe com maior incidência dentre esses
K elementos é então escolhida para classificar o elemento de análise.
24
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Um Sistema Embarcado para Análise e Classificação
de Condução de Motoristas
25
 Introdução
 Componentes Utilizados
 Arduino Uno
 CAN-Shield
 Cabo OBD-II
 Metodologia
 Funcionamento
26
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Introdução
 Etapa inicial do projeto cujo objetivo era ACESSAR o barramento CAN de um carro em
funcionamento, e colher informações a respeito do status do veículo.
 Construi-se um sniffer* para se conectar à entrada de diagnósticos automotivos conhecida
como OBD-II para colher, em tempo real, informações como:
 Velocidade Instantânea.
 Rotações por Minuto.
 Pressão exercida no pedal do acelerador.
 Estes dados foram então salvos em arquivos de log pra serem utilizados na etapa descrita no
próximo capítulo.
27
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
*Em redes de computadores, sniffer é o termo designado para uma ferramenta de hardware ou software
capaz de se conectar a uma rede, interceptar e registrar o tráfego de dados. Esta ferramenta ainda é capaz
de capturar cada pacote, decodificá-lo e analisar seu conteúdo [6].
 Componentes Utilizados
 Arduino Uno
 O Arduino é a placa com microcontrolador baseada no ATmega328:
 14 saídas/entradas digitais (das quais 6 podem ser utilizadas como saídas PWM (Pulse-Width
Modulation).
 6 saídas analógicas.
 Um cristal de quartzo de 16MHz.
 Uma conexão USB, uma entrada de energia, e um botão de reset.
28
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Componentes Utilizados
 Arduino Uno
29
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Arduino Uno.
 Componentes Utilizados
 Arduino Uno
30
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Especificações técnicas do Arduino Uno
 Componentes Utilizados
 CAN-Shield
 Esta foi a placa utilizada como interface entre o Arduino Uno e o barramento CAN do
automóvel.
 Integra o controlador CAN MCP2515 e o transceiver CAN MCP2551 através de uma interface SPI
proporcionando ao Arduino a capacidade de executar ações que um nó CAN de um carro
também possui.
 A comunicação entre este dispositivo e o carro ocorre com o auxílio de um cabo OBD-II.
31
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Componentes Utilizados
 CAN-Shield
32
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Seeed CAN Shield.
 Componentes Utilizados
 CAN-Shield
33
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Especificações técnicas do Seeed CAN Shield.
 Componentes Utilizados
 Cabo OBD-II
 O padrão OBD-II é uma interface utilizada para diagnósticos em automóveis e está presente na
maioria dos carros atualmente.
 Um cabo OBD-II foi utilizado para possibilitar a conexão entre veículo e a porta serial da CAN-
Shield.
 Dentre os 16 pinos presentes no padrão OBD-II, os pinos 4 (GND), 6 (CANH), 14 (CANL) e 16
(12V) são aqueles utilizados especificamente para permitir o acesso ao barramento CAN do
carro.
34
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Componentes Utilizados
 Cabo OBD-II
35
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Cabo OBD-II.
 Componentes Utilizados
 Cabo OBD-II
36
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Configuração da pinagem do cabo OBD-II.
 Metodologia
 Vale lembrar que o objetivo final do projeto era classificar o comportamento do motorista
baseado em suas FRENAGENS e TROCAS DE MARCHA.
 O sniffer foi conectado à entrada OBD-II do automóvel Renault Sandero (2015) requisitando três
informações distintas a respeito do estado interno do veículo a cada 0.6 segundos:
 Velocidade instantânea: A velocidade é dada em Km/h sendo esta informação essencial para a
análise da frenagem.
 Rotações por minuto: O valor do RPM instantâneo é dado em valor absoluto, sendo essencial
para a análise das trocas de marchas.
 Pressão no pedal do acelerador: O valor retornado desta requisição está entre 0 e 100, e indica
a posição relativa do pedal do acelerador no momento em que a requisição é atendida.
37
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Componentes Utilizados
 Metodologia
 A figura abaixo mostra a conexão do sniffer no carro através da ferramenta de diagnósticos
OBD-II:
38
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Componentes Utilizados
 Metodologia
 A figura abaixo mostra a conexão do sniffer ao laptop para que os dados pudessem ser
impressos no monitor serial:
39
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Componentes Utilizados
 Funcionamento
 Inicialmente, o desenvolvimento do sniffer dependeu da integração entre Arduino e o CAN-
Shield, utilizando duas bibliotecas de terceiros:
 SPI (Serial Peripheral Interface): Responsável por implementar funções de controle e
comunicação entre microcontroladores que utilizam este tipo de interface para troca de dados,
como o controlador e transceiver presentes no CAN-Shield;
 mcp_can.h: Liberada pela própria Seeed, fabricante do CAN-Shield, disponibilizando funções
com alto nível de abstração para o desenvolvedor.
40
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Componentes Utilizados
 Funcionamento
 Após desenvolvido e carregado na memória interna do Arduino, o código passa ser executado
assim que a placa é energizada, neste caso, ao se conectar com o automóvel.
 Quando conectada a um computador pessoal, o desenvolvedor tem a possibilidade de
acompanhar os dados gerados no embarcado através de um monitor de saída serial do Arduino.
41
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Componentes Utilizados
 Funcionamento
 Exemplo de saída no monitor Serial do Arduino:
42
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Trecho dos dados impressos no monitor serial.
 Componentes Utilizados
 Funcionamento
 Diagrama com o funcionamento do algoritmo implementado no sniffer:
43
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Setup Inicial
do monitor
serial e CAN-
Shield
Requisições
no CAN Bus
Impressões
no serial
monitor
Arquivo de
log
Um Sistema Embarcado para Análise e Classificação
de Condução de Motoristas
44
 Introdução
 A Intel Edison
 Análises
 Análise das Frenagens
 Análise das Trocas de Marcha
 Relatório do Percurso
 Aplicação de IA
 Criação do Banco de Dados
 Classificação do Comportamento do Motorista
45
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Introdução
 Esta etapa intermediária do trabalho consistiu em PROCESSAR os dados colhidos:
 DETECTAR eventos de frenagem e troca de marcha;
 CATEGORIZÁ-LOS em intervalos de acordo com o nível de ameaça à integridade do veículo;
 GERAR dados estatísticos sobre esses eventos;
 CLASSIFICAR o comportamento do motorista utilizando o algoritmo de Inteligência Artificial
KNN.
 Foi utilizada outra plataforma embarcada chamada Edison e fornecida pela empresa Intel.
46
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 A Intel Edison
 A placa Intel Edison é uma das melhores plataformas de prototipação de aplicações IoT
(Internet of Things) existentes no mercado atualmente.
 Esta placa roda uma versão diferenciada do Linux chamada Yocto, possibilitando um ambiente
capaz de rodar linguagens como Python e Java em um ambiente embarcado.
 Juntamente com o módulo Intel Edison, também foi utilizado o Arduino Breakout Board, cuja
finalidade é destrinchar os 70 pinos da Edison em uma placa de prototipação semelhante a uma
placa Arduino.
47
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 A Intel Edison
48
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Intel Edison conectada à Arduino Breakout Board.Intel Edison.
 A Intel Edison
49
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Processador Atom Dual-Core 500Mhz
Memória RAM 1GB DDR3
Memória Flash 4GB
WiFi 802.11 a/b/g/n Dual Band
Bluetooth 4.0
I/O Pins Total de 40 Pinos
SD Card
UART (2)
I2C (2)
SPI
...
Sistema Operacional Yocto Linux v1.6
Ambiente de Desenvolvimento Arduino IDE; Eclipse com suporte a C, C++ e
Python; Intel XDK.
 A Intel Edison
 Por que não utilizar apenas UM embarcado?
Inicialmente, foi projetado que a Intel Edison TAMBÉM se responsabilizaria pela etapa de Captura
de Dados de um carro em funcionamento, criando um sistema completo que se comunicaria com o
barramento CAN do veículo, processaria os dados e os enviaria a um servidor externo.
Por não existirem bibliotecas disponíveis para o sistema da Edison que possibilitasse o uso do CAN-
Shield, a alternativa de separar os sistemas surgiu como uma SOLUÇÃO.
A unificação dos dois sistemas embarcados é mencionada como um possível trabalho futuro no
Capítulo VI.
50
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Análises
Até o momento os únicos dados disponíveis são valores de:
Velocidade.
Rotações por Minuto.
Pressão no Pedal do Acelerador.
Etapa responsável por encontrar PADRÕES que pudessem indicar eventos de TROCAS DE MARCHA e
FRENAGENS.
Escolha por transformar os dados disponíveis em GRÁFICOS.
51
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Análises
Gráficos com Rotações por Minuto, Velocidade e Pressão no Pedal do Acelerador, respectivamente:
52
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Gráficos dos dados originais gerados.
 Análises
 Análise das Frenagens
Utilizou- se os dados da VELOCIDADE INSTANTÂNEA.
Sabendo o PERÍODO de amostragem do sniffer, um gráfico com a ACELERAÇÃO INSTANTÂNEA em
𝒎 𝒔 𝟐
foi gerado.
Definiu-se que onde existisse ACELERAÇÃO NEGATIVA, teríamos um evento de FRENAGEM.
Classificou-se esses eventos de frenagem entre três classes diferentes, de acordo com o nível de
ameaça que esses eventos indicavam ao veículo.
53
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Análises
 Análise das Frenagens
54
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Gráficos de velocidade e aceleração.
 Análises
 Análise das Frenagens
55
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Classificações dos eventos de frenagem.
Classificação Intervalo
Verde Entre 0 m/s2 e -1 m/s2
Amarelo Entre -1 m/s2 e -2 m/s2
Vermelho Entre -2 m/s2 e -10 m/s2
 Análises
 Análise das Trocas de Marcha
Utilizou- se TODOS os dados disponíveis.
Sabendo o PERÍODO de amostragem do sniffer, um gráfico com a VARIAÇÃO DE RPM em 𝑹𝑷𝑴 𝒔 foi
gerado.
Definiu-se que onde existisse PICOS DE RPM (derivada passando de positiva para negativa),
teríamos um evento de TROCA DE MARCHA.
Classificou-se esses eventos de troca de marcha entre três classes diferentes, de acordo com o nível
de ameaça que esses eventos indicavam ao veículo, utilizando o valor do RPM INSTANTÂNEO como
parâmetro.
56
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Análises
 Análise das Trocas de Marcha
57
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Derivada do RPM.
 Análises
 Análise das Trocas de Marcha
58
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Classificações dos eventos de frenagem.
Classificação Intervalo
Verde Entre 0 a 1000 RPM.
Amarelo Entre 1000 a 2000 RPM.
Vermelho Entre 2000 a 7000 RPM
 Relatório do Percurso
Fase final da etapa de Processamento de Dados contendo os dados estatísticos.
Consistiu em:
Contabilizar os eventos de FRENAGEM e TROCA DE MARCHA.
Calcular o PERCENTUAL de cada uma das classes.
Disponibilizar esses dados de maneira formatada.
59
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Exemplo da saída do Relatório do Percurso.
 Relatório do Percurso
60
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Gráfico de setores com estatísticas dos eventos.
 Aplicação de Inteligência Artificial
 Criação do Banco de Dados
Necessidade de ter um conjunto de treinamento com características devidamente mensuradas e
objetos classificados.
Criação de 200 instâncias com valores aleatórios, mas obedecendo as restrições de um objeto real.
Uma planilha foi disponbilizada na nuvem com esses dados para que colaboradores pudessem
classificar os objetos manualmente.
61
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Aplicação de Inteligência Artificial
 Criação do Banco de Dados
62
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
BD de treinamento.
 Aplicação de Inteligência Artificial
 Classificação do Comportamento do Motorista
Utilizou-se o algoritmo KNN definido no Capítulo III.
Definição do VETOR DE CARACTERÍSTICAS:
Utilizou-se as SEIS saídas da etapa de RELATÓRIO DO PERCURSO.
Definição das CLASSES dos objetos:
Criou-se 5 classes, com valores de 1 a 5. Quanto menor o valor da classe, MENOS RISCO o
motorista oferece à integridade do veículo.
63
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Aplicação de Inteligência Artificial
 Classificação do Comportamento do Motorista
64
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Índice do
Vetor
Característica (%)
a1 Frenagens GREEN
a2 Frenagens YELLOW
a3 Frenagens RED
a4 Trocas de Marcha GREEN
a5 Trocas de Marcha YELLOW
a6 Trocas de Marcha RED
Classe Descrição da Classe
1 Ótimo
2 Bom
3 Regular
4 Ruim
5 Péssimo
Vetor de Características do Sistema. Classes do Knn.
Um Sistema Embarcado para Análise e Classificação
de Condução de Motoristas
65
Disponibilização dos Dados
Comunicação Intel Edison e Servidor Web
Dados na Web
Telas do Sistema
Tela de Acompanhamento em Tempo Real
Tela de Relatório de Percurso
Tela de Classificação do Percurso
66
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Disponibilização dos Dados
Comunicação Intel Edison e Servidor Web
Utilização do framework Django na linguagem Python para desenvolver o Servidor Web.
Utilizou-se o módulo WiFi da Intel Edison para enviar os dados do percurso ao Servidor Web.
67
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
WiFi Broadcom* 43340 802.11 a/b/g/n;
Dual-band (2.4 and 5 GHz)
Onboard antenna
Informações técnicas do módulo WiFi da Intel Edison.
Disponibilização dos Dados
Dados na Web
Os dados recebidos pelo Servidor são guardados em sistema de arquivos e disponibilizados na web
quando requisitados.
Dados apagados dos arquivos no processo de leitura/requisição.
68
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Disponibilização dos Dados
Dados na Web
69
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Dados Processados e
Formatados
Escrita e Leitura dos
Dados Formatados nos
arquivos .txt
Requisições por novos
dados a cada período
Envio de novos dados
ou status de Finalização
Diagrama de funcionamento do sistema de comunicação.
Telas do Sistema
Tela de Acompanhamento em Tempo Real
70
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Tela do Acompanhamento em Tempo Real.
Telas do Sistema
Tela de Relatório de Percurso
71
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Tela final com os dados estatísticos do percurso.
Telas do Sistema
Tela de Classificação do Percurso
72
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Tela da classificação do motorista
Um Sistema Embarcado para Análise e Classificação
de Condução de Motoristas
73
Unificação dos Sistemas Embarcados
Unificar em apenas UM Sistema Embarcado a Captura e o Processamento de Dados.
Detecção de Outros Eventos de Direção
Lane-Drifting
Velocidade em Curvas
Necessidade de outros tipos de informações do barramento CAN que não são fornecidas
publicamente pelas montadoras, como POSIÇÃO DO VOLANTE e ESTADO DAS SETAS.
74
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Fornecimento de Dados a Empresas
Esses dados a respeito do motorista poderiam ser fornecidos a empresas como SEGURADORAS e
EMPRESAS DE LOGÍSTICA.
Refinamento da Classificação de Frenagens e Trocas de Marcha
Realizar um trabalho em conjunto com profissionais de Engenharia Mecânica para refinar a
classificação dos eventos de direção como, por exemplo, FRENAGENS e TROCAS DE MARCHA.
75
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
76
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 MITCHELL, Tom. Machine Learning. McGraw-Hill, 1997.
 DUDA, Richard O.; HART, Peter E.; STORK, David G. Pattern Classification. Second Edition. Wiley-Interscience, 2000.
 CORRIGAN, Steve. Introduction to the Controller Area Network (CAN). Texas Instruments, 2008.
 Wikipedia, (2016). OBD-II PIDs. [Online] Disponível em: https://en.wikipedia.org/wiki/OBD-II_PIDs [Acessado 17 Jan.
2016].
 FIELDING, GETTYS, MOGUL; Hypertext Transfer Protocol -- HTTP/1.1. [Online] Disponível em:
https://www.w3.org/Protocols/rfc2616/rfc2616.txt [Acessado 13 Jan. 2016].
 Wikipedia, (2016). Packet Analyzer. [Online] Disponível em: https://en.wikipedia.org/wiki/Packet_analyzer [Acessado 13
Jan. 2016].
 Arduino, (2016). Arduino Uno. [Online] Disponível em: https://www.arduino.cc/en/Main/ArduinoBoardUno [Acessado 14
Jan. 2016].
77
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
 Seeed, (2016). CAN-Bus Shield. [Online] Disponível em: http://www.seeedstudio.com/wiki/CAN-
BUS_Shield#Getting_Started [Acessado 14 Jan. 2016].
 Intel, (2016). Intel Edison. [Online] Disponível em:
http://download.intel.com/support/edison/sb/edison_pb_331179002.pdf [Acessado 14 Jan. 2016].
 Django Project, (2016). Django. [Online] Disponível em: https://www.djangoproject.com/ [Acessado 17 Jan. 2016].
 VALASEK, MILLER, (2014). Adventures in Automotive Networks and Control Units. [Online] Disponível em:
http://www.ioactive.com/pdfs/IOActive_Adventures_in_Automotive_Networks_and_Control_Units.pdf [Acessado 25 Jan.
2016].
78
Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
Um Sistema Embarcado para Análise e Classificação
de Condução de Motoristas
79

Mais conteúdo relacionado

Destaque (9)

Feira de conhecimento
Feira de conhecimentoFeira de conhecimento
Feira de conhecimento
 
Apresentação1dança
Apresentação1dançaApresentação1dança
Apresentação1dança
 
Encerramento actividadades biblioteca
Encerramento actividadades bibliotecaEncerramento actividadades biblioteca
Encerramento actividadades biblioteca
 
João vitor e gabriel
João vitor e gabrielJoão vitor e gabriel
João vitor e gabriel
 
Homologação de diplomas estrangeiros
Homologação de diplomas estrangeirosHomologação de diplomas estrangeiros
Homologação de diplomas estrangeiros
 
Benefícios
BenefíciosBenefícios
Benefícios
 
IC-Testes Invasao
IC-Testes InvasaoIC-Testes Invasao
IC-Testes Invasao
 
Palavra do pedagogico gestores
Palavra do pedagogico   gestoresPalavra do pedagogico   gestores
Palavra do pedagogico gestores
 
俺とシビックテックとDiy
俺とシビックテックとDiy俺とシビックテックとDiy
俺とシビックテックとDiy
 

Semelhante a Sistema Embarcado para Análise de Condução

Clp automacao redes_protocolos
Clp automacao redes_protocolosClp automacao redes_protocolos
Clp automacao redes_protocolosWellington barbosa
 
VANETs – redes veiculares
VANETs – redes veicularesVANETs – redes veiculares
VANETs – redes veicularesDouglas de Paula
 
Detecção de anomalias em sensor veicular a partir de classificadores one-class
Detecção de anomalias em sensor veicular a partir de classificadores one-classDetecção de anomalias em sensor veicular a partir de classificadores one-class
Detecção de anomalias em sensor veicular a partir de classificadores one-classEronides Da Silva Neto
 
Aula 10 camada de rede
Aula 10   camada de redeAula 10   camada de rede
Aula 10 camada de redewab030
 
Roteadores
RoteadoresRoteadores
RoteadoresTiago
 
Unidade 1.3 Infraestrutura de Redes
Unidade 1.3 Infraestrutura de RedesUnidade 1.3 Infraestrutura de Redes
Unidade 1.3 Infraestrutura de RedesJuan Carlos Lamarão
 
Microservices Architecture Workshop
Microservices Architecture WorkshopMicroservices Architecture Workshop
Microservices Architecture WorkshopClaudio Acquaviva
 
Aula 10 camada de rede
Aula 10   camada de redeAula 10   camada de rede
Aula 10 camada de redewab030
 
Que tal Hackear seu carro e plugá-lo na nuvem ?!
Que tal Hackear seu carro e plugá-lo na nuvem ?!Que tal Hackear seu carro e plugá-lo na nuvem ?!
Que tal Hackear seu carro e plugá-lo na nuvem ?!Ricardo Rufino
 
Rede Can TráFego De Dados E Conectividade De Dispositivos Em AutomóVeis Par...
Rede Can   TráFego De Dados E Conectividade De Dispositivos Em AutomóVeis Par...Rede Can   TráFego De Dados E Conectividade De Dispositivos Em AutomóVeis Par...
Rede Can TráFego De Dados E Conectividade De Dispositivos Em AutomóVeis Par...SOM AMBIENTE®
 
Analisadores de protocolo: comparação e uso
Analisadores de protocolo: comparação e usoAnalisadores de protocolo: comparação e uso
Analisadores de protocolo: comparação e usoJerônimo Medina Madruga
 

Semelhante a Sistema Embarcado para Análise de Condução (20)

Simulacao analise e_controle_de_motor_de_corrente_
Simulacao analise e_controle_de_motor_de_corrente_Simulacao analise e_controle_de_motor_de_corrente_
Simulacao analise e_controle_de_motor_de_corrente_
 
Redes atm
Redes atmRedes atm
Redes atm
 
Aula 6 a camada de rede
Aula 6   a camada de redeAula 6   a camada de rede
Aula 6 a camada de rede
 
Clp automacao redes_protocolos
Clp automacao redes_protocolosClp automacao redes_protocolos
Clp automacao redes_protocolos
 
VANETs – redes veiculares
VANETs – redes veicularesVANETs – redes veiculares
VANETs – redes veiculares
 
Detecção de anomalias em sensor veicular a partir de classificadores one-class
Detecção de anomalias em sensor veicular a partir de classificadores one-classDetecção de anomalias em sensor veicular a partir de classificadores one-class
Detecção de anomalias em sensor veicular a partir de classificadores one-class
 
Aula 10 camada de rede
Aula 10   camada de redeAula 10   camada de rede
Aula 10 camada de rede
 
Roteadores
RoteadoresRoteadores
Roteadores
 
Unidade 1.3 Infraestrutura de Redes
Unidade 1.3 Infraestrutura de RedesUnidade 1.3 Infraestrutura de Redes
Unidade 1.3 Infraestrutura de Redes
 
Microservices Architecture Workshop
Microservices Architecture WorkshopMicroservices Architecture Workshop
Microservices Architecture Workshop
 
Aula 10 camada de rede
Aula 10   camada de redeAula 10   camada de rede
Aula 10 camada de rede
 
GSM
GSMGSM
GSM
 
Que tal Hackear seu carro e plugá-lo na nuvem ?!
Que tal Hackear seu carro e plugá-lo na nuvem ?!Que tal Hackear seu carro e plugá-lo na nuvem ?!
Que tal Hackear seu carro e plugá-lo na nuvem ?!
 
Rct 16 - camada de rede
Rct   16 - camada de redeRct   16 - camada de rede
Rct 16 - camada de rede
 
Palestra Tecredes
Palestra TecredesPalestra Tecredes
Palestra Tecredes
 
Rede Can TráFego De Dados E Conectividade De Dispositivos Em AutomóVeis Par...
Rede Can   TráFego De Dados E Conectividade De Dispositivos Em AutomóVeis Par...Rede Can   TráFego De Dados E Conectividade De Dispositivos Em AutomóVeis Par...
Rede Can TráFego De Dados E Conectividade De Dispositivos Em AutomóVeis Par...
 
Analisadores de protocolo: comparação e uso
Analisadores de protocolo: comparação e usoAnalisadores de protocolo: comparação e uso
Analisadores de protocolo: comparação e uso
 
Protocolos
ProtocolosProtocolos
Protocolos
 
Protocolos
ProtocolosProtocolos
Protocolos
 
Sistemas embarcados
Sistemas embarcadosSistemas embarcados
Sistemas embarcados
 

Sistema Embarcado para Análise de Condução

  • 1. Um Sistema Embarcado para Análise e Classificação de Condução de Motoristas 1
  • 2.  Capítulo I: Introdução  Capítulo II: Fundamentação Teórica  Capítulo III: Captura de Dados no Barramento CAN  Capítulo IV: Processamento dos Dados  Capítulo V: Interface com Usuário  Capítulo VI: Trabalhos Futuros 2 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 3.  Redes Automotivas Como Área De Grande Interesse Na Computação:  Mercados de Carros Autônomos, Segurança e Aplicativos para Automóveis.  Barateamento e Aumento da Capacidade Computacional de Sistemas Embarcados.  Espaço para Aplicação com Algoritmos Complexos (Inteligência Artifical). 3 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 4. 4 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Source : Wired
  • 5.  CAN (Controller Area Network)  Protocolo de rede mais empregado nos véiculos atuais.  Utilizado para controlar ECUs (Eletronic Control Unit).  Controle de sistemas veiculares como Freios ABS e AirBag.  Podem conter mais de 50 ECUs conectadas entre si.  Alta quantidade de dados trafegando dentro do veículo. 5 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 6. 6 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Source : hollisbrothersauto.com
  • 7.  Embedded Systems (Sistemas Embarcados)  Sistemas eletrônicos com tamanho e e capacidade computacional reduzidos.  Sistemas com propósito específico.  Sua evolução tem possibilitado a criação de aplicações que demandam maior poder computacional, como aplicações com Inteligência Artificial. 7 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 8. 8 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Source : PixShark.com
  • 9.  Tecnologias Móveis e a Exigências Por Novos Serviços  A democratização das tecnologias móveis e o conceito de nuvem condicionando usuários a reinvidicar novos serviços disponíveis em todo lugar. 9 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 10. 10 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Source : eng-cs.syr.edu
  • 11. 11 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Observar Tráfego Intraveicular Processar Os Dados Classificar o Comportamento do Motorista Dados em Tempo Real na Web
  • 12. Um Sistema Embarcado para Análise e Classificação de Condução de Motoristas 12
  • 13.  Redes Automotivas  CAN – Controller Area Network  Mensagem CAN  Arbitração  Verificação de Erro  Inteligência Artificial  kNN – K Nearest Neighboor Algorithm 13 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 14.  Redes Automotivas  Carros estão se tornando cada vez mais eletrônicos com dispositivos conectados entre si para MONITORAR e CONTROLAR o estado do veículo.  Diversos tipos de redes intraveiculares, cada qual com suas particularidades:  Largura de Banda.  Custo.  Complexidade.  Exemplos de Redes Intraveiculares:  LIN (Local Interconnect Network).  FlexRay.  MOST (Media Oriented Systems Transport).  CAN (Controller Area Network). 14 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 15.  CAN – Controller Area Network  Protocolo desenvolvido pela BOSCH como solução para o ambiente intraveicular, robusta à interferência eletromagnética e de baixo custo de implementação.  Protocolo de comunicação BROADCAST, onde todos os nós conectados na rede têm acesso às mensagens trocadas. 15 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 16. 18 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Campos da mensagem do Standard CAN [3].  CAN – Controller Area Network  Mensagem CAN  O protocolo CAN possui duas variações de composição de campos de mensagem:  Standard CAN possui 11 bits de ID.  Extended CAN possui 29 bits de ID.  ID: Campo responsável por identificar e por definir a prioridade das mensagens.  IDE: Bit responsável por identificar o padrão utilizado (Standard ou Extended ).  DLC: Indica a quantidade de bytes de dados sendo transmitidos.  DATA: Composto pelos dados sendo transmitidos.
  • 17. 19 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista  CAN – Controller Area Network  Arbitração  A arbitração é uma característica fundamental do protocolo CAN que garante que mensagens com maior prioridade poderão trafegar no barramento sem colisões ou erros.  Se dois nós tentam ocupar o barramento no mesmo instante, o acesso ao barramento é implementado de maneira não destrutiva com uma arbitração bit a bit, garantindo o barramento para a mensagem com o menor valor de Identifier [3].  Para que a arbitração aconteça, cada nó segue verificando o barramento à medida que transmite, possibilitando uma comparação entre bit enviado e bit presente no barramento. Caso uma mensagem com maior prioridade esteja presente no barramento, o nó para imediatamente a sua transmissão.
  • 18. 20 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista  CAN – Controller Area Network  Arbitração Exemplo de arbitração no barramento CAN.
  • 19.  CAN – Controller Area Network  Verificação de Erro  A robustez do protocolo CAN pode ser atribuída em parte ao abundante procedimento de verificação de erros.  O protocolo CAN possui cinco diferente métodos de checagem de erro:  Três em nível de mensagem.  Dois em nível de bits.  Se a mensagem falhar em qualquer um deles, esta não é aceita pelo receptor e uma mensagem de erro é gerada no barramento, obrigando o emissor a reenviar a mensagem até que esta seja recebida corretamente.  Se um nó começar a enviar mensagens de erro continuamente no barramento, sua capacidade de transmissão é removida por seu controlador após atingir um limite máximo de mensagens [3]. 21 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 20.  Inteligência Artificial  Área da computação responsável por estudar e desenvolver algoritmos capazes de RECONHECER e CLASSIFICAR padrões, como por exemplo:  Reconhecimento de Fala.  Identificação Biométrica.  Existem diversos algoritmos de IA existentes na literatura:  Redes Neurais.  Árvores de Decisão.  kNN – K Nearest Neighboor Algorithm.  Utilizou-se IA neste projeto com o objetivo de classificar o comportamento do motorista de maneira AUTOMATIZADA ao término de um período de direção. 22 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 21.  Inteligência Artificial  kNN – K Nearest Neighboor  Algoritmo baseado em instância, por não precisar ‘ensinar’ a máquina previamente. Ou seja, todo o processamento é transferido para o processo de classificação, sendo o processo de aprendizagem apenas o armazenamento do conjunto de treinamento.  Conjunto de Treinamento: Grupo de objetos cujas características têm valores conhecidos, e suas classes definidas.  Objeto de Análise: Objeto cujas características têm valores conhecidos, e cuja classe se deseja descobrir baseado nas informações do Conjunto de Treinamento.  Vetor de Características: Sequência de características de um objeto dada por: 𝑎1 𝑥 , 𝑎2 𝑥 , … , 𝑎 𝑛 𝑥 (2.1) onde an(x) denota a r-ésima característica do elemento x. 23 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 22.  Inteligência Artificial  kNN – K Nearest Neighboor  Distância Euclidiana: A distância Euclidiana entre duas instâncias xi e xj é dada por d(xi,xj), onde: 𝑑 𝑥𝑖, 𝑥𝑗 = (𝑎 𝑟 𝑥𝑖 − 𝑎 𝑟(𝑥𝑗))2𝑛 𝑟=1 (2.2)  Calculadas as distâncias entre todos os elementos do Conjunto de Treinamento e o Elemento de Análise, escolhem-se os K elementos mais próximos. A classe com maior incidência dentre esses K elementos é então escolhida para classificar o elemento de análise. 24 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 23. Um Sistema Embarcado para Análise e Classificação de Condução de Motoristas 25
  • 24.  Introdução  Componentes Utilizados  Arduino Uno  CAN-Shield  Cabo OBD-II  Metodologia  Funcionamento 26 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 25.  Introdução  Etapa inicial do projeto cujo objetivo era ACESSAR o barramento CAN de um carro em funcionamento, e colher informações a respeito do status do veículo.  Construi-se um sniffer* para se conectar à entrada de diagnósticos automotivos conhecida como OBD-II para colher, em tempo real, informações como:  Velocidade Instantânea.  Rotações por Minuto.  Pressão exercida no pedal do acelerador.  Estes dados foram então salvos em arquivos de log pra serem utilizados na etapa descrita no próximo capítulo. 27 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista *Em redes de computadores, sniffer é o termo designado para uma ferramenta de hardware ou software capaz de se conectar a uma rede, interceptar e registrar o tráfego de dados. Esta ferramenta ainda é capaz de capturar cada pacote, decodificá-lo e analisar seu conteúdo [6].
  • 26.  Componentes Utilizados  Arduino Uno  O Arduino é a placa com microcontrolador baseada no ATmega328:  14 saídas/entradas digitais (das quais 6 podem ser utilizadas como saídas PWM (Pulse-Width Modulation).  6 saídas analógicas.  Um cristal de quartzo de 16MHz.  Uma conexão USB, uma entrada de energia, e um botão de reset. 28 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 27.  Componentes Utilizados  Arduino Uno 29 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Arduino Uno.
  • 28.  Componentes Utilizados  Arduino Uno 30 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Especificações técnicas do Arduino Uno
  • 29.  Componentes Utilizados  CAN-Shield  Esta foi a placa utilizada como interface entre o Arduino Uno e o barramento CAN do automóvel.  Integra o controlador CAN MCP2515 e o transceiver CAN MCP2551 através de uma interface SPI proporcionando ao Arduino a capacidade de executar ações que um nó CAN de um carro também possui.  A comunicação entre este dispositivo e o carro ocorre com o auxílio de um cabo OBD-II. 31 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 30.  Componentes Utilizados  CAN-Shield 32 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Seeed CAN Shield.
  • 31.  Componentes Utilizados  CAN-Shield 33 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Especificações técnicas do Seeed CAN Shield.
  • 32.  Componentes Utilizados  Cabo OBD-II  O padrão OBD-II é uma interface utilizada para diagnósticos em automóveis e está presente na maioria dos carros atualmente.  Um cabo OBD-II foi utilizado para possibilitar a conexão entre veículo e a porta serial da CAN- Shield.  Dentre os 16 pinos presentes no padrão OBD-II, os pinos 4 (GND), 6 (CANH), 14 (CANL) e 16 (12V) são aqueles utilizados especificamente para permitir o acesso ao barramento CAN do carro. 34 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 33.  Componentes Utilizados  Cabo OBD-II 35 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Cabo OBD-II.
  • 34.  Componentes Utilizados  Cabo OBD-II 36 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Configuração da pinagem do cabo OBD-II.
  • 35.  Metodologia  Vale lembrar que o objetivo final do projeto era classificar o comportamento do motorista baseado em suas FRENAGENS e TROCAS DE MARCHA.  O sniffer foi conectado à entrada OBD-II do automóvel Renault Sandero (2015) requisitando três informações distintas a respeito do estado interno do veículo a cada 0.6 segundos:  Velocidade instantânea: A velocidade é dada em Km/h sendo esta informação essencial para a análise da frenagem.  Rotações por minuto: O valor do RPM instantâneo é dado em valor absoluto, sendo essencial para a análise das trocas de marchas.  Pressão no pedal do acelerador: O valor retornado desta requisição está entre 0 e 100, e indica a posição relativa do pedal do acelerador no momento em que a requisição é atendida. 37 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 36.  Componentes Utilizados  Metodologia  A figura abaixo mostra a conexão do sniffer no carro através da ferramenta de diagnósticos OBD-II: 38 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 37.  Componentes Utilizados  Metodologia  A figura abaixo mostra a conexão do sniffer ao laptop para que os dados pudessem ser impressos no monitor serial: 39 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 38.  Componentes Utilizados  Funcionamento  Inicialmente, o desenvolvimento do sniffer dependeu da integração entre Arduino e o CAN- Shield, utilizando duas bibliotecas de terceiros:  SPI (Serial Peripheral Interface): Responsável por implementar funções de controle e comunicação entre microcontroladores que utilizam este tipo de interface para troca de dados, como o controlador e transceiver presentes no CAN-Shield;  mcp_can.h: Liberada pela própria Seeed, fabricante do CAN-Shield, disponibilizando funções com alto nível de abstração para o desenvolvedor. 40 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 39.  Componentes Utilizados  Funcionamento  Após desenvolvido e carregado na memória interna do Arduino, o código passa ser executado assim que a placa é energizada, neste caso, ao se conectar com o automóvel.  Quando conectada a um computador pessoal, o desenvolvedor tem a possibilidade de acompanhar os dados gerados no embarcado através de um monitor de saída serial do Arduino. 41 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 40.  Componentes Utilizados  Funcionamento  Exemplo de saída no monitor Serial do Arduino: 42 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Trecho dos dados impressos no monitor serial.
  • 41.  Componentes Utilizados  Funcionamento  Diagrama com o funcionamento do algoritmo implementado no sniffer: 43 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Setup Inicial do monitor serial e CAN- Shield Requisições no CAN Bus Impressões no serial monitor Arquivo de log
  • 42. Um Sistema Embarcado para Análise e Classificação de Condução de Motoristas 44
  • 43.  Introdução  A Intel Edison  Análises  Análise das Frenagens  Análise das Trocas de Marcha  Relatório do Percurso  Aplicação de IA  Criação do Banco de Dados  Classificação do Comportamento do Motorista 45 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 44.  Introdução  Esta etapa intermediária do trabalho consistiu em PROCESSAR os dados colhidos:  DETECTAR eventos de frenagem e troca de marcha;  CATEGORIZÁ-LOS em intervalos de acordo com o nível de ameaça à integridade do veículo;  GERAR dados estatísticos sobre esses eventos;  CLASSIFICAR o comportamento do motorista utilizando o algoritmo de Inteligência Artificial KNN.  Foi utilizada outra plataforma embarcada chamada Edison e fornecida pela empresa Intel. 46 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 45.  A Intel Edison  A placa Intel Edison é uma das melhores plataformas de prototipação de aplicações IoT (Internet of Things) existentes no mercado atualmente.  Esta placa roda uma versão diferenciada do Linux chamada Yocto, possibilitando um ambiente capaz de rodar linguagens como Python e Java em um ambiente embarcado.  Juntamente com o módulo Intel Edison, também foi utilizado o Arduino Breakout Board, cuja finalidade é destrinchar os 70 pinos da Edison em uma placa de prototipação semelhante a uma placa Arduino. 47 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 46.  A Intel Edison 48 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Intel Edison conectada à Arduino Breakout Board.Intel Edison.
  • 47.  A Intel Edison 49 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Processador Atom Dual-Core 500Mhz Memória RAM 1GB DDR3 Memória Flash 4GB WiFi 802.11 a/b/g/n Dual Band Bluetooth 4.0 I/O Pins Total de 40 Pinos SD Card UART (2) I2C (2) SPI ... Sistema Operacional Yocto Linux v1.6 Ambiente de Desenvolvimento Arduino IDE; Eclipse com suporte a C, C++ e Python; Intel XDK.
  • 48.  A Intel Edison  Por que não utilizar apenas UM embarcado? Inicialmente, foi projetado que a Intel Edison TAMBÉM se responsabilizaria pela etapa de Captura de Dados de um carro em funcionamento, criando um sistema completo que se comunicaria com o barramento CAN do veículo, processaria os dados e os enviaria a um servidor externo. Por não existirem bibliotecas disponíveis para o sistema da Edison que possibilitasse o uso do CAN- Shield, a alternativa de separar os sistemas surgiu como uma SOLUÇÃO. A unificação dos dois sistemas embarcados é mencionada como um possível trabalho futuro no Capítulo VI. 50 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 49.  Análises Até o momento os únicos dados disponíveis são valores de: Velocidade. Rotações por Minuto. Pressão no Pedal do Acelerador. Etapa responsável por encontrar PADRÕES que pudessem indicar eventos de TROCAS DE MARCHA e FRENAGENS. Escolha por transformar os dados disponíveis em GRÁFICOS. 51 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 50.  Análises Gráficos com Rotações por Minuto, Velocidade e Pressão no Pedal do Acelerador, respectivamente: 52 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Gráficos dos dados originais gerados.
  • 51.  Análises  Análise das Frenagens Utilizou- se os dados da VELOCIDADE INSTANTÂNEA. Sabendo o PERÍODO de amostragem do sniffer, um gráfico com a ACELERAÇÃO INSTANTÂNEA em 𝒎 𝒔 𝟐 foi gerado. Definiu-se que onde existisse ACELERAÇÃO NEGATIVA, teríamos um evento de FRENAGEM. Classificou-se esses eventos de frenagem entre três classes diferentes, de acordo com o nível de ameaça que esses eventos indicavam ao veículo. 53 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 52.  Análises  Análise das Frenagens 54 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Gráficos de velocidade e aceleração.
  • 53.  Análises  Análise das Frenagens 55 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Classificações dos eventos de frenagem. Classificação Intervalo Verde Entre 0 m/s2 e -1 m/s2 Amarelo Entre -1 m/s2 e -2 m/s2 Vermelho Entre -2 m/s2 e -10 m/s2
  • 54.  Análises  Análise das Trocas de Marcha Utilizou- se TODOS os dados disponíveis. Sabendo o PERÍODO de amostragem do sniffer, um gráfico com a VARIAÇÃO DE RPM em 𝑹𝑷𝑴 𝒔 foi gerado. Definiu-se que onde existisse PICOS DE RPM (derivada passando de positiva para negativa), teríamos um evento de TROCA DE MARCHA. Classificou-se esses eventos de troca de marcha entre três classes diferentes, de acordo com o nível de ameaça que esses eventos indicavam ao veículo, utilizando o valor do RPM INSTANTÂNEO como parâmetro. 56 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 55.  Análises  Análise das Trocas de Marcha 57 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Derivada do RPM.
  • 56.  Análises  Análise das Trocas de Marcha 58 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Classificações dos eventos de frenagem. Classificação Intervalo Verde Entre 0 a 1000 RPM. Amarelo Entre 1000 a 2000 RPM. Vermelho Entre 2000 a 7000 RPM
  • 57.  Relatório do Percurso Fase final da etapa de Processamento de Dados contendo os dados estatísticos. Consistiu em: Contabilizar os eventos de FRENAGEM e TROCA DE MARCHA. Calcular o PERCENTUAL de cada uma das classes. Disponibilizar esses dados de maneira formatada. 59 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Exemplo da saída do Relatório do Percurso.
  • 58.  Relatório do Percurso 60 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Gráfico de setores com estatísticas dos eventos.
  • 59.  Aplicação de Inteligência Artificial  Criação do Banco de Dados Necessidade de ter um conjunto de treinamento com características devidamente mensuradas e objetos classificados. Criação de 200 instâncias com valores aleatórios, mas obedecendo as restrições de um objeto real. Uma planilha foi disponbilizada na nuvem com esses dados para que colaboradores pudessem classificar os objetos manualmente. 61 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 60.  Aplicação de Inteligência Artificial  Criação do Banco de Dados 62 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista BD de treinamento.
  • 61.  Aplicação de Inteligência Artificial  Classificação do Comportamento do Motorista Utilizou-se o algoritmo KNN definido no Capítulo III. Definição do VETOR DE CARACTERÍSTICAS: Utilizou-se as SEIS saídas da etapa de RELATÓRIO DO PERCURSO. Definição das CLASSES dos objetos: Criou-se 5 classes, com valores de 1 a 5. Quanto menor o valor da classe, MENOS RISCO o motorista oferece à integridade do veículo. 63 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 62.  Aplicação de Inteligência Artificial  Classificação do Comportamento do Motorista 64 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Índice do Vetor Característica (%) a1 Frenagens GREEN a2 Frenagens YELLOW a3 Frenagens RED a4 Trocas de Marcha GREEN a5 Trocas de Marcha YELLOW a6 Trocas de Marcha RED Classe Descrição da Classe 1 Ótimo 2 Bom 3 Regular 4 Ruim 5 Péssimo Vetor de Características do Sistema. Classes do Knn.
  • 63. Um Sistema Embarcado para Análise e Classificação de Condução de Motoristas 65
  • 64. Disponibilização dos Dados Comunicação Intel Edison e Servidor Web Dados na Web Telas do Sistema Tela de Acompanhamento em Tempo Real Tela de Relatório de Percurso Tela de Classificação do Percurso 66 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 65. Disponibilização dos Dados Comunicação Intel Edison e Servidor Web Utilização do framework Django na linguagem Python para desenvolver o Servidor Web. Utilizou-se o módulo WiFi da Intel Edison para enviar os dados do percurso ao Servidor Web. 67 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista WiFi Broadcom* 43340 802.11 a/b/g/n; Dual-band (2.4 and 5 GHz) Onboard antenna Informações técnicas do módulo WiFi da Intel Edison.
  • 66. Disponibilização dos Dados Dados na Web Os dados recebidos pelo Servidor são guardados em sistema de arquivos e disponibilizados na web quando requisitados. Dados apagados dos arquivos no processo de leitura/requisição. 68 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 67. Disponibilização dos Dados Dados na Web 69 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Dados Processados e Formatados Escrita e Leitura dos Dados Formatados nos arquivos .txt Requisições por novos dados a cada período Envio de novos dados ou status de Finalização Diagrama de funcionamento do sistema de comunicação.
  • 68. Telas do Sistema Tela de Acompanhamento em Tempo Real 70 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Tela do Acompanhamento em Tempo Real.
  • 69. Telas do Sistema Tela de Relatório de Percurso 71 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Tela final com os dados estatísticos do percurso.
  • 70. Telas do Sistema Tela de Classificação do Percurso 72 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista Tela da classificação do motorista
  • 71. Um Sistema Embarcado para Análise e Classificação de Condução de Motoristas 73
  • 72. Unificação dos Sistemas Embarcados Unificar em apenas UM Sistema Embarcado a Captura e o Processamento de Dados. Detecção de Outros Eventos de Direção Lane-Drifting Velocidade em Curvas Necessidade de outros tipos de informações do barramento CAN que não são fornecidas publicamente pelas montadoras, como POSIÇÃO DO VOLANTE e ESTADO DAS SETAS. 74 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 73. Fornecimento de Dados a Empresas Esses dados a respeito do motorista poderiam ser fornecidos a empresas como SEGURADORAS e EMPRESAS DE LOGÍSTICA. Refinamento da Classificação de Frenagens e Trocas de Marcha Realizar um trabalho em conjunto com profissionais de Engenharia Mecânica para refinar a classificação dos eventos de direção como, por exemplo, FRENAGENS e TROCAS DE MARCHA. 75 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 74. 76 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 75.  MITCHELL, Tom. Machine Learning. McGraw-Hill, 1997.  DUDA, Richard O.; HART, Peter E.; STORK, David G. Pattern Classification. Second Edition. Wiley-Interscience, 2000.  CORRIGAN, Steve. Introduction to the Controller Area Network (CAN). Texas Instruments, 2008.  Wikipedia, (2016). OBD-II PIDs. [Online] Disponível em: https://en.wikipedia.org/wiki/OBD-II_PIDs [Acessado 17 Jan. 2016].  FIELDING, GETTYS, MOGUL; Hypertext Transfer Protocol -- HTTP/1.1. [Online] Disponível em: https://www.w3.org/Protocols/rfc2616/rfc2616.txt [Acessado 13 Jan. 2016].  Wikipedia, (2016). Packet Analyzer. [Online] Disponível em: https://en.wikipedia.org/wiki/Packet_analyzer [Acessado 13 Jan. 2016].  Arduino, (2016). Arduino Uno. [Online] Disponível em: https://www.arduino.cc/en/Main/ArduinoBoardUno [Acessado 14 Jan. 2016]. 77 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 76.  Seeed, (2016). CAN-Bus Shield. [Online] Disponível em: http://www.seeedstudio.com/wiki/CAN- BUS_Shield#Getting_Started [Acessado 14 Jan. 2016].  Intel, (2016). Intel Edison. [Online] Disponível em: http://download.intel.com/support/edison/sb/edison_pb_331179002.pdf [Acessado 14 Jan. 2016].  Django Project, (2016). Django. [Online] Disponível em: https://www.djangoproject.com/ [Acessado 17 Jan. 2016].  VALASEK, MILLER, (2014). Adventures in Automotive Networks and Control Units. [Online] Disponível em: http://www.ioactive.com/pdfs/IOActive_Adventures_in_Automotive_Networks_and_Control_Units.pdf [Acessado 25 Jan. 2016]. 78 Um Sistema Embarcado para Análise e Classificação de Condução de Motorista
  • 77. Um Sistema Embarcado para Análise e Classificação de Condução de Motoristas 79