
O objetivo deste artigo é falar sobre minha experiência com modificações de carros e experimentos com o barramento CAN.
Como tudo começou
Primeiro, decidi adicionar uma câmera frontal ao meu Chevrolet Cruze 2017. Como o carro já possui uma câmera de visão traseira de fábrica, em um nível alto, foi necessário descobrir duas coisas:
- A maneira de transferir vídeo da câmera frontal, que adicionarei.
- Um método para exibir fotos de uma câmera de visão traseira a qualquer momento.
A parte do vídeo foi simples. Por experiência anterior, eu sabia que você pode fazer um mixer de vídeo em um relé.
A partida na tela acabou sendo mais complicada e, após alguma investigação, cheguei à conclusão de que o carro deveria enviar um sinal da câmera de visão traseira para a tela através de algum tipo de barramento de dados.
Barramento CAN
A Chevrolet tem dois barramentos de dados diferentes. O primeiro é o CAN padrão, rápido (500 Kbps) e confiável, usado para dados críticos. O segundo é o que a GM chama de LAN (GMLAN), um barramento mais antigo e mais lento (33,3 Kbps) usado para dados que não são de segurança.
Eu precisava de uma maneira de ouvir o tráfego no CAN, ou seja, um sniffer. O dispositivo PCAN é incrivelmente útil para esse fim.
Pico podeO Peak Can (PCAN) é um dispositivo USB capaz de interceptar e transmitir mensagens. Graças ao software Pcan View, você pode começar sem muito treinamento.
Como a câmera de visão traseira é menos importante para a segurança do que outros componentes, sugeri que os dados que você está procurando provavelmente estejam no barramento GMLAN.
O ponto de acesso mais fácil é o conector OBD2. Conectei o Peak Can ao barramento GMLAN, iniciei o software e imediatamente ouvi o tráfego.
Integração
O objetivo era fazer a engenharia reversa da chamada da câmera de visão traseira. Para fazer isso, com o farejador ligado, inverti o carro para que ele ligasse a tela e tentei estacionar várias vezes. Durante todo esse processo, notei um único ID com mensagens que imitavam sequencialmente minhas ações.
Depois estacionei e, através do Pcan View, tentei transmitir a mesma mensagem que vi quando a tela foi ligada e desligada. Em um piscar de olhos, eu já estava interagindo com o ônibus.
Passagem de mensagem PCANNo entanto, eu não planejava viajar constantemente com um laptop. O que era necessário era uma maneira de automatizar essas funções - e aqui o Arduino foi útil. A capacidade de receber diretamente 12V de energia em combinação com um grande número de recursos e suporte na Internet tornou essa escolha óbvia.
Além do Arduino, eu precisava de dois componentes para concluir o projeto: o módulo CAN e o módulo de relé. Em essência, o Arduino é o cérebro que executa e executa código. O módulo CAN oferece a capacidade de interagir com o barramento de dados, e o relé fornece energia à câmera frontal e também atua como um mixer de vídeo entre ela e a câmera de visão traseira.
Módulo Mcp2515 (superior), Arduino Uno (central), módulo de relé (inferior)Depois de adicionar e configurar as bibliotecas apropriadas, o Arduino fez uma conexão com o carro.
Ouvindo o tráfego através do ArduinoComo eu já sabia que poderia iniciar a exibição, comecei a pensar em COMO fazer isso. A idéia inicial era instalar um botão de chamada instantânea especial no painel, mas comecei a pensar: "O que mais posso usar na rede como gatilho?"
Durante os experimentos, descobri que as mensagens com o ID correspondente ao botão "Cancelar controle de cruzeiro" também são transmitidas pelo barramento GMLAN. Isso foi ideal porque o controle de cruzeiro é ativado a velocidades acima de 65 km / h quando uso a câmera frontal e a velocidades abaixo de 15 km / h a câmera de visão traseira liga para ajudar no estacionamento, para que nunca sobrepor. Depois de escrever um código, consegui que o Arduino reconhecesse quando o botão Cancelar controle de cruzeiro é pressionado.
Reconhecimento de clique únicoNo entanto, não queria que a câmera fosse ativada toda vez que cancelasse o controle de cruzeiro, então decidi que a melhor abordagem é transformá-lo (de fato) em um botão multifuncional. A câmera é ativada apenas se o botão for "pressionado duas vezes".
Após um longo fim de semana explorando a função millis e depurando o código, programei com êxito o reconhecimento de toque duplo.
Reconhecimento de toque duploE quando vinculei às minhas equipes o controle da exibição, obtive uma utilidade bastante interessante.
Toque duas vezes + comandosFuncionalidade
Agora tive a oportunidade de ligar e desligar a tela, mas havia um problema - e a câmera de visão traseira? Eu precisava que eles trabalhassem em conjunto com a câmera frontal, como se tivessem sido montadas assim na fábrica.
No fluxograma, descrevi como o represento.

Eu rapidamente percebi que, para um sistema assim, você precisa conhecer o estado de três variáveis a qualquer momento:
- Módulo da câmera frontal: o motorista ligou ou desligou?
- Visor da câmera: a imagem está ligada ou desligada?
- Reverso: carro em ré ou não?
Sem experiência em programação, era muito difícil, e todo o meu tempo livre eu pensava em diferentes abordagens.
No final, eu consegui!
Monitoramento ativoAgora eu era capaz de implementar a lógica operacional que controla o relé.
Controle de reléDurante todo o processo, aprendi mais sobre o Arduino e notei que a versão Nano é capaz de fazer tudo o que você precisa, embora tenha um tamanho menor e preço mais baixo. É ideal para instalação permanente em um carro. Desenvolvi um modelo e imprimi um estojo em uma impressora 3D para colocar os componentes como uma unidade compacta para instalação.
Caso 3DTodos juntos
Finalmente chegou o dia em que vi os resultados. Embora você ainda precise mexer no tempo, foi bom ver que o módulo funciona corretamente.
Ligar / desligar o modo de estacionamento, ligar / desligar a câmera frontal, alternar automaticamente para a câmera de visão traseira e voltar automaticamenteEm geral, essa experiência me ensinou muito e abriu meus olhos para a possibilidade de integração direta com o barramento CAN. É bastante surpreendente o que pode ser alcançado conectando-se em dois fios.
No futuro
No futuro, pretendo escrever um tutorial detalhado sobre como adicionar funcionalidades adicionais aos botões existentes no seu carro usando componentes e software gratuitos.