CAN BUS: Red de Arduinos

He usado Saleae.

:wink:

Hola,

Esta tarde, el amigo Gixxer ha conseguido comunicarse con su Focus (año 2007) a través de OBD usando el brick CAN Bus + librería.
Depués de unos cuantos intentos (yo haciendo de asistencia como podía desde internet), tiene un sketch funcional recibiendo las rpm del coche cada 10 milisegundos!!

Ha prometido grabar un video!!!

Pronto más información en http://secuduino.blogspot.com/

:wink:

Enorabuena por haberlo conseguido.

Salu2

Gracias!! :wink:

Por otro lado, m.alverman tiene su montaje con dos bricks CAN conectados a un MEGA y un UNO funcionando a una distancia de 15 metros a 1 Mbps => http://arduino.cc/forum/index.php/topic,54838.0.html

Igor R. a que distancia como maximo se puede usar 1Mbps.

Saludos.2

Lo recomendado en ambiente industrial es:

Longitud Bit Rate
25 metros 1000 kbit/s
50 metros 800 kbit/s
100 metros 500 kbit/s
250 metros 250 kbit/s
500 metros 125 kbit/s
1000 metros 50 kbit/s
2500 metros 20 kbit/s

Pero ésto es lo recomendado para ambientes "hostiles", en teoría puedes hasta 40 metros a 1 Mbps.

:wink:

Gracias por la info.

enorabuena Igor R lo estas haciendo muy bien, y solo he leído el hilo, espera que lea el blog XD

Me estas poniendo los dientes largos, eres un provocador ejejejejje

A parte del bus CAN que todavía estoy buscando por mis neuronas en que proyecto usarlo, (a lo mejor un display de sensores para hacerme uno de código abierto para el kart), me ha picado el poder sacar telemétrica del coche.

boy a leer tu blog, pero así a bote pronto, ¿sabría como sacar el consumo de un Hyundai Elantra del 2004 ? :wink:

Hola,

La verdad que no lo sé... hay que hacer un poco de investigación por la red :wink:
Existen diferentes protocolos OBD (PWM, VPW,ISO 9141-2,KWP2000 y ISO 15765 CAN) y depende del año, modelo, fabricante,...

Como ya dije en post anteriores, aunque no tengas como protocolo de diagnosis el CAN, no significa que el coche no tenga CAN para comunicarse entre las centralitas, aunque pasa a ser menos "fácil" sacar información.

También puedes mirar si en el conector OBD:

Si tienes los pines 6 y 14 (la resistencia entre ellos si existen debería ser 60 ohm). Esto te indicaría que tienes CAN de diagnosis.

Saludos

Igor R.

Hola a todos,
Quería comentaros lo que he estado haciendo con CAN-BUS esta semana junto con la ayuda de Igor. Tras comprar uno de los bricks en http://secuduino.blogspot.com/ he conseguido
conectarme al OBD de mi Ford Focus 2007 1.8 tdi.

Estoy intentando montar una pequeña web para subir todos mis avances y descubrimientos pero aun no tiene un mínimo necesario para ser presentable, espero poder echarle
un par de horas y por lo menos meter la información básica hasta ahora así como algunas fotos y vídeos.
(Si alguien tiene conocimientos de creación de paginas web y tiene tiempo libre para ayudarme se lo agradecería ya que mis conocimientos se basan en html y php pero programación pura y dura, vamos que la web va a ser bastante poco atractiva a la vista. O me conformo con algún enlace a una plantilla atractiva pero sencilla que permita tener sección de fotos, blog, etc...)

Me gustaría agradecer a Igor su ayuda ya que sin su librería para el brick, todos los emails que me ha contestado y la colaboración cuando fui a conectarme por primera vez, no habría conseguido ni la mitad de lo realizado hasta ahora.

os dejo un par de fotos pero en cuestión de 1 o 2 días espero poder presentar una humilde web para tenerlo todo organizado.








un saludo

(Si alguien tiene conocimientos de creación de paginas web y tiene tiempo libre para ayudarme se lo agradecería ya que mis conocimientos se basan en html y php pero programación pura y dura, vamos que la web va a ser bastante poco atractiva a la vista. O me conformo con algún enlace a una plantilla atractiva pero sencilla que permita tener sección de fotos, blog, etc...)

Sergegsx, encantado de poder ayudarte con la pagina.

Salu2

bokeauss,

Mide a ver si tienes 60 ohm entre los pines del 6 y 14 del conector OBD de tu Fiesta.
Si en un Focus del 2007 tiene la diagnosis por CAN, apostaria que tambien lo tendras en tu coche....

A ver si tienes diagnosis por CAN y te animas a unirte a Sergegsx, que por cierto, va avanzando muy rapido ]:smiley:
Una vez con rpm, velocidad,aceleraciones y yaw..... se pueden empezar a hacer cosillas interesantes: calculo de ratios de marcha, aproximacion de potencia, aerodinamica, .....y mucho mas!!! :fearful:

Ya nos contaras!!!

:wink:

bokeauss el conector del obd esta debajo del volante en mi focus, supongo que el tuyo estara cerca, o debajo de los pies del conductor. pero vamos apostaria por que si que tienes conector, y siendo 1 año mas actual, seguro que es CAN asi que esto 99% seguro que puedes.

flico, en serio? es que soy un desastre diseñando y me esta quedando la web francamente chapuzas jajaja, si te parece bien meto unos contenidos basicos y te paso mi nombre de usuario y contraseña para el hosting y le echas un vistazo. no tiene que ser nada espectacular simplemente algo sencillo para poder meter los avances.
me gustaria incluir:

  • blog (o algo parecido para que cada dia que hago un avance puede añadir una entrada con texto, imagenes, y codigo)
  • rss para que la gente pueda suscribirse
  • menu superior, lateral donde sea con acceso a las distintas partes de la web.
    todo ello muy sencillito.
    a ver si puedo avanzar un poco con el contenido y os paso la direccion para que lo veais.

Igor, el calculo de relacion de marchas tambien lo tengo hecho :wink: me falta implementarlo en el arduino para que me lo muestre por lcd y por serial. siento la presentación pero voy corto de tiempo, prometo que lo trabajare un poco mas jeje

pequeño Quiz...a ver quien adivina porque hay esos picos en la grafica... :wink: venga que es muy facil.

mira...

Bokeauss como bien dice Sergio, en muchos coches el OBD está debajo del voltante.
Sin embargo, en otros lo he visto por ejemplo detrás del freno de mano debajo de un plasico que se puede quitar con unas pestañas.

Como puedes ver aquí

Aqui hablan como que el ford fiesta lo tiene debajo de la guantera, cerca de los pies del copiloto tambien debajo de un plastico, que normalmente están mecanizados y son muy fáciles de quitar con un destorinillador metiendolo por un lateral y haciendo palanca.....

OBD seguro que tienes, solo es cuestión de hechar un vistazo en los sitios típicos:
Debajo el volante
Debajo de la guantera
Cerca del freno de mano/cambio de marchas
En un lateral también lo he visto, en el salpicadero cerca de donde cierra la puerta.....

Sergio eres impresionante, sinceramente como me jode estas hasta el culo como estoy en el curro!!!Pero espero en unas semanas estara tope!!!!

pues hoy no creo que me de tiempo pero entre mañana y el lunes tendre la pagina donde podras ver las cosas que te pueden hacer falta.
pero vamos, basicamente puedes hacerlo funcionar con:
-arduino (yo tengo el UNO)

  • CAN brick (SECUduino: HARDWARE)
  • libreria para el brick (te lo pasara Igor cuando compres el CAN brick)
  • conector DB9 para conectarte al brick
  • cablecillos para puentear 3 pines del conector OBD y llevarlos al CAN brick DB9 (te recomiendo inviertas un poco de tiempo en hacer esto bien para evitar problemas de conexión y tenerlo mas aseado)
  • ordenador portatil para conectarte cuando estas en el coche.

con esto y con los ejemplos que voy a poner en mi web podras conectarte al coche en 5 minutos y empezar a recibir datos (yo tarde unas 3 horas jeje pero fue porque Igor y yo estabamos trasteando con los mensajes que nos llegaban...que no eran pocos....hasta que conseguimos depurar el codigo).

si tienes dudas, me avisas.

Sergegsx

flico, en serio?

Sin problemas, hago un poco de tiempo y te ayudo.

Xao

He subido las fotos que me mando Sergegsx asi como una pequeaña explicación del OBD a SECUduino: Comunicación OBD con Ford Focus 2007

]:smiley:

Igor R. los bytes que contienesn las rpm son 0x0D | 0x50.

Usando esta formula lo sacas, pero si quisiera hechar yo la cuenta que habria que hacer pasarlos a decimal?

rpm=((Byte3*256)+Byte4)/4= 852 rpm.

Salu2

0x0D=13d
0x50=80d
rpm=((13*256)+80)/4= 852 rpm.

Por cierto, para ver cómo se calcula la relación de marchas usando rpm y velocidad, hace bastante tiempo escribí esto: Tinkering with Electronics...: Cálculo de número de marcha con RPM y Velocidad

Un gráfico interesante, es eje X=velocidad y eje Y=rpm. A ver si Sergegsx se anima y nos lo pone (por cierto, para hacerlo intenta cambiar de marchas a las mismas revoluciones, ejemplo 4000 y la misma prueba unas cuantas veces para tener una buena "nube de puntos"). Tan solo con grabar lo que te envia tu Arduino usando un terminal de serie, preparar que los datos esten separados con punto y como para que Excel lo pueda abrir directo, y en 5 minutillos lo tienes!!!

Aunque todo ésto y mucho más se ira viendo con detalle en SECUduino.

]:smiley:

Hoy me he "enchufado" a la CAN confort de mi coche (grupo volkswagen). Es donde están las centralitas de cada puerta, clima, alarma, etc.

Esta bien para empezar, ya que no hay muchos mensajes, y asi ir calentando motores para la más interesante, CAN tracción. Iré ampliando información ahi acerca de los avances.

Salu2

]:smiley: