Tabla de contenido:

Hackeo de Seeed Studio CAN-BUS V2.0 - Primeros pasos: 5 pasos
Hackeo de Seeed Studio CAN-BUS V2.0 - Primeros pasos: 5 pasos

Video: Hackeo de Seeed Studio CAN-BUS V2.0 - Primeros pasos: 5 pasos

Video: Hackeo de Seeed Studio CAN-BUS V2.0 - Primeros pasos: 5 pasos
Video: Arduino CAN Bus Tutorial | Interfacing MCP2515 CAN Module with Arduino 2024, Mes de julio
Anonim
Hacking de Seeed Studio CAN-BUS V2.0 - Primeros pasos
Hacking de Seeed Studio CAN-BUS V2.0 - Primeros pasos
Hacking de Seeed Studio CAN-BUS V2.0 - Primeros pasos
Hacking de Seeed Studio CAN-BUS V2.0 - Primeros pasos
Hacking de Seeed Studio CAN-BUS V2.0 - Primeros pasos
Hacking de Seeed Studio CAN-BUS V2.0 - Primeros pasos
Hacking de Seeed Studio CAN-BUS V2.0 - Primeros pasos
Hacking de Seeed Studio CAN-BUS V2.0 - Primeros pasos

Este instructivo está destinado a principiantes que ya conocen Arduino. El conocimiento inicial de cómo ponerse en marcha siempre es una molestia y requiere mucho tiempo en cualquier proyecto. Pero hasta que no sepa su camino, casi siempre deseará tener a alguien que le muestre los conceptos básicos.

En este instructivo, devolveremos algunos datos CAN-BUS de su vehículo.

¡Y no se preocupe! Iré directo al grano sin divagar y usar palabras de moda para hacerme sonar como un hacker inteligente:-)

Yo personalmente recomiendo los blindajes CAN-BUS de Seeed Studio. Realmente no puedo hablar por ninguna de las otras marcas, pero el escudo CAN-BUS de SeeedStudio me ha servido muy bien.

Nota importante: El blindaje can-bus es obligatorio. Tomé esta nota porque a menudo la gente pregunta si debe usar un escudo CAN-BUS. El escudo tiene un MCP2515 (Controlador CAN) y MCP2551 (Transceptor) que procesarán los datos CAN-BUS al puerto serie de su Arduino.

El hardware requerido 1. Arduino UNO: cualquier arduino compatible será suficiente. Usé este

2. Escudo CAN-BUS de SeeedStudio. Lo obtuve directamente de SeeedStudio aquí está el enlace

3. Algunos cables para conectar al CAN-BUS

4. un vehículo del que puede recuperar datos

El software requerido 1. Arduino IDE, ¡duh! Obviamente:-)

2. Biblioteca CAN-BUS de SeeedStudio. Descargable desde GIT Hub

Alguna información vital adicional si tiene ganas de leer más sobre el escudo CAN-BUS de SeeedStudio.

¡Empecemos!

Paso 1: Configuración y conexión del hardware

Image
Image
Configuración y conexión de hardware
Configuración y conexión de hardware
Configuración y conexión de hardware
Configuración y conexión de hardware
Configuración y conexión de hardware
Configuración y conexión de hardware

Empecemos por la parte más difícil. Tenemos que encontrar un lugar en su vehículo donde podamos acceder al CAN-BUS. No hay mucho que pueda hacer por ti aquí, tienes que resolver esto por ti mismo. En mi caso, conecté el CAN-BUS a través de la radio. ¡Sí! la radio. Los vehículos con sistema de audio para automóvil integrado generalmente configuran la iluminación de la pantalla del estéreo del automóvil en función de la configuración de los faros delanteros del vehículo cuando se conduce de noche. Esto generalmente se hace a través del CAN-BUS Interior.

Usé un cable extensor USB que tiene un extremo USB macho y uno hembra. Así que simplemente lo corté por la mitad y luego soldé el lado hembra al conector de la radio. Es posible que desee comprar un conector macho hembra para su tipo de radio, de esa manera no tiene que empalmar el cableado de su vehículo y anular su garantía o potencialmente causar un riesgo de incendio.

Y luego la parte macho que conecté al blindaje CAN-BUS de SeeedStudio como se muestra en la imagen. De esta manera puedo conectarme / desconectarme cuando sea necesario.

Consejo: use cable rojo para CAN-H y negro para CAN-L

Paso 2: Instale el software en Arduino

Instale el software en el Arduino
Instale el software en el Arduino
Instale el software en el Arduino
Instale el software en el Arduino
Instale el software en el Arduino
Instale el software en el Arduino

Descargue la biblioteca SeeedStudio de la wiki CAN-BUS de SeeedStudio.

github.com/Seeed-Studio/CAN_BUS_Shield

Instale la biblioteca como se muestra en las imágenes.

Desde el IDE de Arduino, seleccione Sketch Include Library - Add.zip Library.

Después de agregar la biblioteca, cierre el IDE de Arduino y vuelva a abrirlo. Ahora podrá cargar algunos de los ejemplos del menú Archivo Ejemplos de archivo Escudo CAN-BUS Comprobación de recepción

Para este tutorial, cargue el ejemplo de verificación de recepción.

¡Importante!

Lo siguiente requerirá un poco de prueba y error.

Usé mi Jeep JK 2010 Rubicon para recuperar datos y su bus interior funciona a 125 Kbs.

En la sección de configuración donde se lee

mientras (CAN_OK! = CAN.begin (CAN_500KBPS)) tuve que cambiarlo a

mientras (CAN_OK! = CAN.begin (CAN_125KBPS))

Si se equivoca, no podrá recuperar datos legibles. En la mayoría de los casos, incluido el mío, su vehículo se volverá loco. Es decir, el grupo se iluminará como un árbol de Navidad y los limpiaparabrisas comenzarán a moverse. porque el escudo del bus CAN está corrompiendo el bus.

Paso 3: conéctelo y comience a recuperar datos

Conéctelo y comience a recuperar datos
Conéctelo y comience a recuperar datos
Conéctelo y comience a recuperar datos
Conéctelo y comience a recuperar datos
Conéctelo y comience a recuperar datos
Conéctelo y comience a recuperar datos

Antes de conectarse, compruebe la cordura antes de conectarlo a su vehículo. Lo último que desea hacer es enviar energía a su CAN-BUS que podría dañar la ECU de su vehículo.

No hice una verificación de cordura y solo después de darme cuenta de que no obtengo datos, vi que conecté el USB de la computadora portátil directamente a la alimentación USB de Arduino. Por suerte no pasó nada.

En las imágenes de este paso utilicé mi computadora portátil Lenovo cargada con Linux Mint. De forma aproximada, puede usar cualquier sistema operativo para conectarse al puerto serie de su Arduino, 1. Instale la computadora portátil en su vehículo y encienda el blindaje CAN-BUS de Arduino con un cable USB.

2. Inicie Putty o el monitor serial Arduino (prefiero Putty). Cuando esté conectado, debería ver un mensaje en la consola serial que le dice que logró inicializar el escudo Can-Bus.

3. Encienda el vehículo. No es necesario que se inicie mientras la llave esté en la posición de encendido.

4. Conecte el Arduino al CAN-BUS. En el momento en que se conecte, los datos comenzarán a transmitirse a la consola.

Paso 4: Los datos y su significado

Los datos y su significado
Los datos y su significado
Los datos y su significado
Los datos y su significado

Cuando se recuperen los datos, los volcará en el siguiente formato HEX.

ID, BIT1, BIT2, BIT3, BIT4, BIT5, BIT6, BIT7, BIT8

La identificación generalmente representa un nodo dentro de su vehículo.

Hagamos un ejemplo sencillo. (Lo siguiente es inventado y no real, solo un ejemplo)

ID de nodo de aire acondicionado = 0x402 APAGAR EL AIRE ACONDICIONADO = 13 ENCENDER EL AIRE ACONDICIONADO = 14 CONFIGURAR EL SOPLADOR DE AIRE ACONDICIONADO A BAJO = 7C CONFIGURAR EL SOPLADOR DE AIRE ACONDICIONADO A 8C MEDIO CONFIGURAR EL SOPLADOR DE AIRE ACONDICIONADO A 9C ALTO

Entonces, si encendemos el aire acondicionado y lo configuramos en medio, el mensaje se verá así: 0x402, 13, 8C

lo mismo ocurre con otros nodos, por ejemplo Bloqueo central ID de bloqueo central = 0x503 BLOQUEO todas las puertas = 14

Entonces, si presiona el botón para bloquear todas las puertas, el mensaje se verá así

0x502, 14

Algunas notas extra.

Algunos mensajes son impulsados por el estado y algunos o momentáneamente.

Ejemplo 1. Faros delanteros impulsados por el estado. Cuando coloca un interruptor en el vehículo en una posición específica, el nodo seguirá transmitiendo el mensaje una y otra vez. Si tuvo que interferir con el CAN-BUS, envíe un mensaje para apagar los faros. Se apagará brevemente y luego se encenderá nuevamente porque el nodo donde el interruptor está configurado para encender los faros enviará nuevamente un mensaje para encenderlo.

Ejemplo 2. Omitir pistas en la unidad principal de su radio. cuando presionas un botón y es un botón momentáneo que hará e inmediatamente romperá el circuito cuando lo dejes, te enviará un mensaje para saltarte la pista y nunca más hasta que pidas presionar el botón nuevamente.

Por lo general, los botones momentáneos son los más útiles porque puede controlar las funciones de su vehículo enviando un solo comando sin tener que preocuparse de que su comando se sobrescriba. Donde las características impulsadas por el estado se sobrescribirán indefinidamente.

Algunos consejos e ideas

Al ver que ahora puede volcar los datos, puede usarlos para construir sus propios circuitos Arduino que reaccionarán en función de los mensajes que se ven en el CAN-BUS. para un ejemplo. Digamos que instalas después de los focos del mercado. Sin tener que excavar en su cableado existente, puede instalar sus faros delanteros de forma independiente y solo encenderlos cuando su Arduino detecta un mensaje en el CAN-BUS.

Envío de datos al CAN-BUS

Si siguió las instrucciones al principio de este instructivo, habrá instalado las bibliotecas SEEEDStudio. En el IDE de Arduino hay algunos ejemplos que puede probar.

Conocer el ID y el mensaje CAN0-BUS del nodo con el que se quiere interactuar.

Desafortunadamente, esta no es una tarea fácil. Pero aquí tienes una idea. Utilice la función de registro de Putty y descargue todos los datos de la sesión en el archivo. Deje que el Arduino controle el bus de lata durante unos 5 minutos y luego guarde el registro en el camino.

Luego, inicie una nueva sesión y comience a descargar los datos. Pero esta vez, mientras descarga los datos, presione un botón. No presione más de un botón. Presione el botón un par de veces para garantizar que capturó la presión del botón.

Luego, use algún tipo de herramienta de comparación y compare el archivo para detectar las diferencias. Excel funciona muy bien para esto.

Algunos códigos que puedes probar

Si tiene el mismo modelo Jeep 2010 Rubicon que yo (estoy seguro de que lo siguiente también funcionará para los modelos '07, '08', 09)

Puede probar los siguientes mensajes. Cargue los ejemplos de envío desde el menú de ejemplos de Arduino y los cambios fueron relevantes.

Activar casillero trasero.: CAN.sendMsgBuf (0x2B0, 0, 4, stmp);

Intermitente izquierdo encendido: CAN.sendMsgBuf (0x2A8, 0, 6, stmp);

Intermitente derecho encendido: CAN.sendMsgBuf (0x2A8, 0, 6, stmp);

ESP activado / desactivado: CAN.sendMsgBuf (0x2B0, 0, 4, stmp);

En mi próximo instructable, enviaré algunos datos al CAN-BUS de mi Jeep para demostrar cómo puede interferir con él.

¡Buena suerte!

Paso 5: mira el video

¡Vea el video para más bondad CAN-BUS!

Recomendado: