viernes, 9 de diciembre de 2011

Maqueta DiagnostiCAN

Ya queda poco, defiendo el proyecto en unos 10 días!!!!

Ahora estoy acabando una maqueta para presentar el módulo, simulando un pequeño entorno de automoción. Se trata de un vehículo en 2D al cual nos conectamos por medio de CANbus, solicitando 2 acciones distintas: limpiaparabrisas y faros delanteros. Es una maqueta simple pero que yo creo que permite al usuario ver las posibles aplicaciones de este módulo basado en el protocolo de comunicaciones CANbus.

En la parte delantera se situará el módulo conectándolo por medio de un cable DB9 al bus del coche.


En la parte trasera se encontrará el cableado de todos los sensores y actuadores, así como los nodos encargados de generar el bus del vehículo.


También he preparado unas hojas de presentación del producto, en el que se resume el proyecto y características generales.

Un saludo!!

jueves, 24 de noviembre de 2011

Proyecto documentado y depositado!!!

Ya esta entregado el proyecto!!!... y estoy ahora mismo preparando un powerpoint de cara a la exposición al jurado.


Bueno, con la librería básica acabada, a falta únicamente de implementar un par de funciones mas, estoy montando la que probablemente sea la ultima versión de las placas. Estas semanas pasadas he estado muy atareado escribiendo la documentación de mi proyecto, por lo que no he avanzado demasiado. A partir de ahora, en paralelo con prepararme la exposición, acabaré la librería, y realizaré las ultimas pruebas de los módulos, para comprobar su correcto funcionamiento.

Una vez tenga todo acabado, os resumiré los resultados finales de mi proyecto, y estudiaré posibles lineas futuras (mejoras en la librería, aplicaciones del CanBus en otros módulos....)


Esta blog únicamente ha intentado ayudar en cierta medida a gente con dudas sobre el CanBus, pero su principal función era la de llevar una documentación Online de mi Proyecto Final de Carrera. Tengo pensado en un futuro abrir una pagina web, en la que se trataran distintos temas de electrónica, o diversos proyectos que estoy llevando a cabo. Os animo a todos a seguir el blog, y en un futuro la página web.

Un saludo!!!

lunes, 24 de octubre de 2011

Datasheets: MCP2551, MCP2515 y ATmega1281

¡Hola!

Ya tengo implementada y funcionando una librería con las funciones básicas: inicialización, envío y recepción. Os dejo un poco información interesante para configurar los dispositivos para todos aquellos que estéis trabajando con ellos.


Lo primero de todo es el estudio de los propios datasheets proporcionados por el fabricante, ya que son muy utiles para la programacion de las distintas funciones (registros, flags....). Aquí os dejo cada uno de los integrados involucrados y alguna pauta sobre lo que podemos encontrar en ellos:

ATmega 1281:

De aquí podemos (buscando directamente en el apartado del SPI) las funciones básicas de envio/recepción e inicialización del SPI. En el encontraremos como interpretar o configurar los siguientes registros:

  • SDCR (Configuración SPI)
  • SPSR (Solo lectura, distintos flags de estado)
  • SPDR (Registro de datos)

Aparte de esto encontraremos algunos códigos de ejemplo que pueden ser muy útiles.


MCP 2551:

Es un dispositivo de alta velocidad que sirve como interfaz entre el bus físico y los controladores en un sistema con protocolo CAN. El dispositivo proporciona la capacidad de transmitir y recibir entre muchos nodos conectados a la misma red.


En su datasheet podemos encontrar información sobre parámetros eléctricos que nos pueden ser de cierta utilidad en cuanto a diseño de hardware. También información sobre el encapsulado (medidas..) para el diseño de la PCB.

MCP 2515:

Se trata de un controlador CAN autónomo. En la primera parte del datasheet podemos encontrar información general: diagramas de bloques, buffers, teoía básica del CAN-bus....
 
Pero la parte que realmente nos interesa es la del la zona centrar (desde la página 15 hasta mas o menos las 69). En ella podemos encontrar como configurar el integrado para distintas funciones disponibles. Numerosos registros y procedimientos que debereis analizar para poder crear vuestras funciones.

En las páginas de las 69 en adelante encontramos de nuevo información sobre el encapsulado y características eléctricas que tienen la misma utilidad que para el MCP 2551.


Espero que os sirva como una información muy sencilla y básica para comenzar. Pero delante de esto aun queda mucha investigación.

De hecho, partiendo de las funciones básicas que ya he implementado ahora me toca acabar la librería completándola con todas las funciones necesarias para mi aplicación.

Un saludo.

miércoles, 19 de octubre de 2011

Can-bus board V2.0, y sigo con la librería...

Ya esta diseñadas y mandadas a fabricar la que espero que sea el modelo final de la placa: "CAN-bus board V2.0".


En ella se corrigen algunos errores de ruteado, o algunas resistencias  para mejorar su funcionamiento.  También aprovechando he disminuido un poco el tamaño de la placa eliminando algunas partes del circuito a mi parecer no necesarias (reset...), aunque le he añadido otras (posibilidad de utilización de resistencia terminadora de 120R o no, por medio de un interruptor). Espero que funcionen sin problemas tras estas modificaciones, pero hasta dentro de unas semanas que vengan las placas no lo sabremos.

Con la libreria....pues nada mas que sigo dándole, implementando funciones y leyendo datasheet todo el rato para ver que registro o que debo configurar.....no veo el final xDD. Aunque espero esta semana antes de que acabe tener una librería con las funciones básicas y en toda la semana que viene dejarla bonita.

Ya queda poco para presentar el proyecto (mas o menos un mes) y debo dejar la librería mas o menos finiquitada para empezar con la documentación, que aunque tengo ya toda la información bien buscada, me va a costar lo suyo....

El viernes os cuento que tal la librería!!


Un saludo!!

jueves, 6 de octubre de 2011

Placas acabadas, montadas y funcionando....ahora a seguir programando


¡ Ya tengo la placa acabada!

Siento estas 3 semanas que no he posteado ningún avance, pero todo ha sido debido al diseño de las placas, su montaje y algunos problemas que han ido surgiendo. Tras el diseño de las placas, gracias a Eagle, las mande pedir pero su llegada se retraso, pasando semana y media hasta que las recibí. Mientras yo comencé un estudio de los datasheets de los componentes utilizados (mcp 2551 y mcp 2515), para ir familiarizándome con ellos para cuando me pusiera con la librería. 
En el tema de las placas, llegaron a las semana y media, y soldarlas también me llevo lo suyo (debido a los pequeños encapsulados de los componentes y mi no demasiada “maña” en la soldadura), y tras acabar un primer prototipo, realice algunas pruebas de funcionamiento....las cuales fueron negativas....
Con la ayuda del osciloscopio y tiempo revisando la placa, ayer conseguí encontrar algunos fallos y tras repararlos, comprobé su correcto funcionamiento.
Ahora me toca meterme con el software...y se me hecha un poco el tiempo encima, así que confiare en que no se me presenten muchos problemas. Retomare la lectura de los datasheets y comenzare a realizar una librería básica de can bus de acuerdo a las necesidades de mi proyecto. Espero que cuando acabe la semana del Pilar pueda postear de nuevo con algunos avances.

En cuanto a la placa definitiva, tengo pensado realizar una nueva versión corrigiendo las erratas de diseño y disminuyendo un poco mas su tamaño.
Un cordial saludo para todos!!

viernes, 16 de septiembre de 2011

¡Vuelvo manos a la obra!

Bueno, tras un parón en el que he estado estudiando , he acabado los exámenes de la carrera....(weeeeee!!!). POTENCIA....esa era la última asignatura que me quedaba tras 3 años de dolor y sufrimiento....:) Pero bueno todo ha ido bien y ya esta un poco olvidada.


No he avanzado demasiado en lo que es el proyecto, ya que he vuelto ha trabajar en él desde el lunes. Sin embargo, gracias a Eagle, simple y completo programa de diseño de circuitos y PCBs, he diseñado mi propia placa para trabajar con el can BUS.  Un diseño pequeño y enfocado a mi aplicación, basado en el MCP 2515 y MCP 2551, únicamente para mi propio uso dentro del proyecto.

Os dejo un link de Sparkfun, en el que hay varios tutoriales de Eagle, para aquel que no sepa mucho del diseño de placas con este tipo de programas:

Y por si alguien se lo quiere descargar, aquí un link, aunque no es dificil de encontrar ya que tiene una licencia gratuita para uso no comercial:


En cosa de una semana llegaran las placas, y tras su montaje me pondré a probar mi librería básica del SPI (espero tenerla ya acabada). Espero tener buenos avances que contaros!!!

Un saludo!!!

jueves, 1 de septiembre de 2011

Ya acabo con el Mazda 3!!

Hola de nuevo a todos!!

Ya para acabar os adjunto una tabla de los PIDs de la wikipedia, los cuales he probado todos en el Mazda.


En ella indico si he obtenido respuesta o no. Los que pone el "NO (id diferente)" es que si que he detectado mensajes del bus con ese PID pero con la ID diferente a la de petición respondida (0x7E8).

Si alguien mas ha probado PIDs en otros vehículos, que comente con sus avances y así podemos recopilar aquí información de varias marcas y coches.

Con esto ya voy a dejar las pruebas con el Mazda a un lado, ya que lo he exprimido bastante. Ahora me voy a poner con la creación de librerías, ya que voy a necesitar una para poder trabajar con el can bus enfocándolo a mi proyecto. Os mantendré al tanto de mis avances.

Un cordial saludo!!

viernes, 19 de agosto de 2011

MAZDA 3 2007

Bueno os dejo unas fotos del coche como es por fuera, ya que su dueño se ha quejado de las fotos que he subido de su exterior un poco sucio.
Aprovecho para agradecer a Archival que me haya dejado su coche para realizar todas las pruebas que necesite.

Espero que os guste!!

....y mas del MAZDA 3

Hola de nuevo!!!!!

Aquí "peleándome" con el Mazda 3....

He seguido probando codigos y distintas PIDs en el coche, y he avanzado un poquito.

Ya se porque, como os comente en el anterior post, el coche se volvía "loco", y era porque el programa que hice de lectura lo configure el bus a 1 Mbps, y debí haberlo configurado a 500 Kbps, ya que es a lo que trabaja el bus CAN del OBD.  Pero tras solucionar esta duda, me ha surgido una nueva.....yo creía que el protocolo del OBD por medio de bus CAN era un protocolo de petición-respuesta, pero si leo el bus leo continuamente datos sin que mande una solicitud....¿que son esos datos? ¿acaso el bus no solo es de petición-respuesta sino que esta mandando datos continuamente?... es algo que tengo que mirar en las próximas semanas y mirar si puedo descifrar por ingeniería inversa alguno de esos datos....aunque es una tarea mas que sumar al carro de cosas por hacer....
Aparte de esto, he realizado una lista con todos los PIDs que he probado y los que he obtenido una respuesta correcta, aunque desconozco el porque algunos si me han funcionado y otros no, ¿puede que el vehículo no este dotado de los sensores necesarios?

También intente realizar un código que detectara la marcha en la que estamos siguiendo la información que encontré en una página muy interesante:



Aunque no he conseguido que funcione correctamente, ya que tengo que mandar 2 peticiones, tanto velocidad como rpm, y no consigo obtener los datos correctamente (solo consigo uno de los 2), si alguien supiera o tuviera algún código de ejemplo para sacar las marchas, estaría muy agradecido por su ayuda.

Bueno ahora voy a seguir probando mas códigos, para exprimir al máximo posible el coche mientras pueda acceder a él, así que os mantendré informados de los avances.

Un saludo!!



jueves, 11 de agosto de 2011

Mazda 3, pruebas de diagnosis OBD


Pues como ya veis el título no acompaña mucho a la transmisión inalámbrica de las señales del can bus, que es con lo que os dije que iba a continuar en mi anterior post y esto es porque hace como 1 semana que tengo acceso a un Mazda 3 del año 2007 con terminal de diagnosis OBD por medio de can BUS (justo ahora que llevaba 2 meses buscando algún coche de estas características y había desistido de seguir buscando...). 
Con esto se me ha presentado una nueva vía para conocer mejor el bus CAN, sus mensajes y su funcionamiento, así que he decidido dejar un poco de lado el tema de la transmisión inalámbrica (ya que además me esta causando innumerables problemas el intentar adaptar la librería de SECUduino a el hardware que estoy utilizando para la transmisión, lo que supongo que me llevará a realizar otro intensivo estudio de la librería, el MCP2551 y el MCP2515....para intentar adaptarla...ya que me encuentro algo perdido ante la compresión de la librería...), y ponerme manos a la obra a intentar sacar parámetros del coche por medio del terminal de OBD.
Lo primero de todo que hice fue comprobar que funcionaba por CAN BUS, para ellos comprobé que entre los pines 6 y 14 del conector había una resistencia de 60 Ω....y ¡allí estaban!.
Para el análisis del bus, dispongo de un Arduino Uno que ya adquirí hace un tiempo, junto al shield y la librería de SECUduino. Únicamente he tenido que adquirir un conector de OBD a db9 para así "engancharme" al coche. En esta pagina podéis adquirirlo:
http://www.cooking-hacks.com/


Tras esto gracias (de nuevo xD) a SECUduino, utilice el código usado en uno de los proyectos que se encuentran en su pagina, para poder intentar sacar las rpm del coche, y así comprobar que el vehículo responde a los PID estantar que podemos encontrar en la wikipedia.


Y funcionó perfectamente, aquí os dejo con algunas imágenes y un vídeo del programa sacando los valores de las rpm:

Tras esto me puse a realizar mas códigos para leer otros valores. 

Primero hice un sencillo programa en el que simplemente leía lo que recibía del terminal OBD, según tengo entendido trabaja de manera pedido-respuesta, por lo que no detectaba ningún mensaje, aunque comento esto porque nada mas cargar el programa, el coche (encendido) realizo un anómalo aumento de las revoluciones y dejo de responder a cualquier tipo de orden que realizara externamente (pisar el acelerador para aumentar las revoluciones...). No se cual puede ser la razón, pero me ha parecido como si el coche se quejara porque lo estoy intentando analizar.....:)

A parte de esto, he probado varios códigos (sacando los PID de la wikipedia) y algunos de ellos, los de los primeros PID que encontramos en la tabla de la wikipedia como 0C-0D-11 han funcionado perfectamente (velocidad, posición del acelerador, rpm ) mientras que otros con PID como 45-46-51-5B-67 (tipo de combustible, temperatura ambiente, temperatura refrigerante...), no funcionaban o recibían mensajes con los 2 últimos bytes del mensaje como […..FF-64] en intervalos de tiempos largos y no iguales. Ahora voy a intentar analizar la causa de que algunos PIDs funcionen y otros no, intentando modificar el mensaje para ver todos los mensajes que manda el coche tras la petición y probando otros PIDs nuevos. Os mantendré informados por si saco alguna conclusión relevante de los PIDs.
De aquí en adelante seguiré intentando conseguir el máximo numero de parámetros del Mazda y comenzare con la librería, haber si puedo hacer algo...


Un saludo!!!

miércoles, 3 de agosto de 2011

Bus CAN y el shield de SECUduino


Buenas a tod@s!!

Bueno ya he probado los Arduinos que tengo con los shield de SECUduino y funcionan a la perfección. He probado a realizar los tutoriales de la pagina web de SECUduino:


Me ha servido de mucha ayuda para comprender el funcionamiento del bus CAN y como una primera toca de contacto. A todos los que queráis empezar un proyecto relacionado con el bus CAN, empezar por esta pagina tanto tutoriales, noticias, y sobre todo el FAQ, que contiene la información necesaria para comprender el bus.



Os dejo con unos vídeos de los tutoriales que he realizando siguiendo los pasos del grupo SECUduino, perdonar si están mal grabados pero entre que la cámara no es muy buena y no tengo demasiado pulso ….

- Transmisión del estado de unos leds:


- Alarma:


- Potenciómetro+servo:


Siguiente paso, meterme con la transmisión inalámbrica del bus CAN.......

viernes, 29 de julio de 2011

Arduino+SECUduino!!

 ARDUINO..... que gran recurso!!

Pues si, gracias a esta plataforma de hardware libre, voy a poder o eso espero trabajar con el can BUS. Os aconsejo su uso a todos los que queráis realizar proyectos electrónicos pequeños y medianos, ya que por su sencillez, bajo precio y versatilidad, ha conseguido mucha popularidad entre la comunidad electrónica.

Yo he comenzado, como con todo, mirando tutoriales sencillos, paginas de información sobre arduino y como no nuestra querida wikipedia, así que os adjunto unos links interesantes a investigar si quieres aprender un poquito sobre arduino:






Yo ya he adquirido 2 arduinos uno para comenzar la semana que viene ha realizar pruebas con ellos. También he adquirido 2 shield CAN BUS del grupo SECUduino a los que tengo que dar las gracias, tanto por sus shields, como por toda la ayuda que me han prestado todos sus miembros.



El montaje y soldadura de los 2 shield es bastante sencillo así que no hubo demasiados problemas.



En cuanto a Arduino, he probado todos los ejemplos de las paginas que os he linkeado, y no he tenido problemas en ellos, son bastante sencillos e intuitivos. Os dejo un vídeo sin importancia de uno de los programas que probé de un servomotor, tan sencillo como cargar el código y el sencillo montaje electrónico.
 

Os animo a todos a compraros un arduino y poneros a probar cosas, es muy interesante y entretenido.

jueves, 21 de julio de 2011

Estudio del estado del arte


Hola de nuevo!!!

Como ya os comente esto sigue hacia delante, y ya podría decirse que entiendo lo básico del bus CAN y todo lo relacionado con él.

Para todo aquel que quiera comenzar una investigación alguno de estos temas le animo a que busque en google con palabras como: CAN BUS, OBD II, OBD, diagnosis...., ya que encontrara mucha información y con cierta facilidad.

Si alguno no tiene muchas ganas de buscar, aquí os dejo una selección de paginas web interesantes ordenadas por temas de las cuales yo he podido sacar conclusiones interesantes:

CAN BUS:





OBD+Diagnosis:




 
Proyectos Automóviles CANBUS/OBD:



Bueno igual son muchas, pero por si alguien las necesita ahí las tiene. 

Gracias ha eso he focalizado la temática de mi proyecto ya a la transmisión de mensajes del can bus, mas que a la diagnosis de un vehículo por el terminal OBD. A partir de ahora intentaré ya centrarme más en este tema y ver las distintas opciones que puedo investigar.


Un saludo!!!!

lunes, 11 de julio de 2011

Comenzando con mi proyecto

Hola gente,

¿Que tal estamos? Bueno primero de todo presentarme, soy Luis y he abierto este blog para mostraros a todos los que estéis interesados los avances y la información que voy a ir recopilando en el tema del bus CAN, el terminal OBD y la diagnosis en tiempo real de un vehículo.
Soy estudiante de Ing. Técnica Industrial con especialidad electrónica, y ya que me queda poquito para acabar (o eso espero jejeje) y por eso he comenzado este verano a realizar mi proyecto final de carrera. Y el tema , aun no es seguro pero vendra relacionados con el bus CAN, terminal OBD y diagnosis de un vehículo como he comentado anteriormente, ya que es un tema interesante que investigar y desarrollar ya que en muchos foros y webs he podido ver proyectos parecidos que me han parecido muy interesantes. Empecé con el proyecto hace unas semanas comenzando con un estudio total del tema, y en ellas he obtenido mucha y diversa información del tema del proyecto, la cual me ha sido fundamental, ya que no tenía ni idea, podría decirse que partía desde cero.

De toda esta información tengo que decidir si el proyecto va a ser viable, si se va a poder conseguir, o si de lo contrario, debo cambiar la temática por la inaccesibilidad del tema.

En próximos comentarios, pondré un resumen de estos días de investigación y los conceptos principales que he creído mas relevantes, y también si he escogido una temática mas centrada.


Un saludo para tod@s!!!