ECUino Diesel

Creo que el nombre lo dice todo.

Hace un año que quiero hacer una centralita electrónica para un vehículo diesel de inyección electrónica, y fijandome en ejemplos similares como la MegaSquirt (y otras muchas muchas que ya pondré) que es la que más información me ofrece para poder programarla a mi gusto, programar mi nueva Arduino Mega 2560 para conseguirlo. Programarla puede que sea lo facil, lo que puede ser un poco más complicado es actuar sobre cada tipo de inyección de gasoil (quiero que abarque todos los tipos de inyección posible) sobre la electrónica me refiero, que aunque no estoy del todo pez, tampoco soy un hacha. Como actuar sobre un servo, pero con milisegundos (o nanosegundos) de tiempo de inyección, con un Dwell variable a frecuencia tambien variable.

Las fórmulas para la combustión y demás serán las mismas que las de la MegaSquirt, y cito esta centralita porque hay muchiiisima informacion sobre ella, ya que te la montas tu mismo desde cero.

Quiero poner más información sobre cómo hacerla, sensores y actuadores que comandaría, etc etc etc etc, ya lo iré poniendo, hoy quería dejar la explicación antes de que lo siga dejando pasar, y quería que el nombre fuese propiedad intelectual mía, ¿a quién de la SGAE tengo que untar?? ]:D ]:D ]:D ]:D

Si alguien quiere echar una manita, por mí encantado, no puedo con todo!! ;) En programación en C y Java, estoy empezando, pero trankilos, estoy estudiando mecánica, asi que por ahí espero no tener problemas, y los que salgan irlos solventando.

Ya iré colgando cosas sobre todo esto, para ir compartiendolo, y por si alguien quiere echar una mano.

Por una Arduino libre!!

También en mente está hacer un futuro ESPino (que ya incluye el ABSino, para no ser cansino!!)

Hola,

Bonito proyecto! Tampoco el más sencillo para empezar.... :D

Deberías pensar si te conviene usar otro micro más potente. Para hacerlo en C (olvidate de lenguaje Arduino), a priori, vas a necesitas tener un nivel muy alto para currarte código muy eficiente y controlar todos los trucos de gcc y avrlibc, y probablemente tienes que bajar a ensamblador para muchas rutinas... Bueno, ensamblador seguro que necesitas saber también para ver el código que te genera el compilador de C cuando te toque depurar para mejorar tiempos de las rutinas...

Tampoco usaría un micro que no tiene integrado bus CAN.

También pensaría antes cómo voy hacer algo "tuneable" a tiempo real, cosa imprescendible en tu proyecto, para eligir la plataforma (como se guardarán las diferentes tablas de inyección, avance, de compensación según temperatura de agua, tabla corrección según presión, linealización sensores y ceros de los mismos, etc.). Me refiero, será una memoria externa? a lo mejor un segundo micro dedicado para las comunicaciones con el PC que comparte una memoria externa con el micro principal encargado del control? cómo tienes pensado hacerlo?

Me refiero, que por un precio parecido, puedes elegir un micro más potente... no? Lo digo por ponertelo fácil a ti mismo... (a parte que no tengo claro que puedas hacer el control de un diesel con un micro de 8 bits, pero tampoco soy un experto). La nueva versión de MegaSquirt usa un micro de 16 bits, y el Sequenzer usa 2 micros, CPLD,etc. ¿qué tipo de control has pensado hacer? ¿habrá que controlar los inyectores independientemente ? Mira que ponen: "b. Will you be controlling ignition timing?

If NO, then MegaSquirt-I™ will most likely suffice. If YES, then an MS-II® or MicroSquirt® (or MS-II Sequencer®) is your best option for controlling spark advance. MicroSquirt® or MegaSquirt-II™ can control up to two ignition outputs, meaning either can do a 4-cylinder engine with 'wasted spark' ignition. [u]For full sequential fuel injection with up to 8 ignition outputs (up to 8 cylinders), the upcoming Sequencer controller is your best bet.[/u]

d. What size injectors will you be running?

If you are running large injectors for your displacement (typical of high output engines - turbocharged engines, race engines, etc.), you will likely need MS-II®, MicroSquirt®, or MS-II Sequencer™, as these have 100 times better pulse width resolution than MS-I™, which really helps when trying to set the idle and cruise pulse widths."

En un diesel tendrás que hacer algo parecido aunque regulando cuando inyectar (en vez de encendido)... no?? Lo digo para que veas las características técnicas del Sequencer y las compares con tu Arduino Mega. ;)

Ánimo!

Gracias! Puff! todo lo que has dicho de programación, de momento tengo pensado hacerlo en Arduino, si no es bastante potente ya me tendré que ir a otro tipo de micro y de programación, un Cortex por ejemplo, pero de momento empiezo con ardu, que estoy empezando! He visto ejemplos en paginas y en youtube de arduinos controlando la inyeccion de coches, pero claro, siempre en gasolina. En gasoil quiero empezar por una bomba de inyección como la que lleva mi coche, una VP30 de Bosch, inyeccion directa a medias entre inyeccion mecanica y electronica, no va calada con la distribución, y es una sola electroválvula si no me equivoco la que abre para cada inyector segun gira la bomba (como las de inyeccion mecanica)

Ahí es donde tengo que ponerme las pilas, el cómo activar esa electroválvula (o los inyectores independientemente si son electromagnéticos o piezoeléctricos) con tiempos tan pequeños de inyección ampliando la Ardu con electrónica, como cuando controlas un servo, un motor, pero en este caso un pulso de un tiempo determinado.

Si te digo la verdad, el CAN bus mi intención es eliminarlo por completo si es posible, no solo para mi actual coche, que por can solo puedes acceder al abs y al airbag (lo demás por la linea k, y segun que cosas), sino en el caso de un futuro coche (lo de tener una red informatica que controla mi coche no me gusta mucho. estudio para mecánico y tendré acceso a todas las maquinitas del mundo, pero donde esté cortar y empalmar…) Sobretodo me interesa controlar la centralita, ya que muchas entran en estrategia por tonterías, y la cosa es que tengas el poder de decision de que es importante y que no, y de saber que sensor falla directamente en tu cuadro de mandos.

Mi intención es que sea totalmente autónoma, que se puedan cambiar parámetros desde la propia centralita, mediante una pantalla y unos botones, sin necesidad de un pc externo. Una shield con una tarjeta de memoria y otra con pantalla para eso vendrá muy bien, aparte de guardar mapeados, opciones, y demás cosas, como unidades a mostrar, sensores que quieres ver en pantalla, etc etc etc, tengo que ir haciendo una lista de todo lo que quiero tener en cuenta, como sensores, relojes, datos de interés y etc.

Si el coche tiene inyectores de activación independiente, sean electromagneticos, piezoelectricos, o del tipo que sean (que algun otro tipo sacarán) sí hay que controlarlos independientemente, como si controlases cada bujía de manera independiente (ahí entra en juego la electrónica, ya tengo varias centralitas para desmontar, y algunas otras que quiero comprar) SI tienes una bomba como la mía, una VP30 , 36, o 40, hay que controlar la apertura de la electrovalvula en el momento justo de la inyeccion. En mi caso, tengo una centralita Bosch EDC-15M, esta centralita calcula CUANDO hay que inyectar, basandose en parametros como las revoluciones de la rueda fonica, carga del motor, solicitud al acelerador, etc etc, y ajustandolo segun otros parámetros, hace un precálculo aproximado del la cantidad de combustible a inyectar, y por ultimo, le pasa esta información a la centralita de la propia bomba de inyección, que con los valores de temperatura del combustible, y otros que toma esa pequeña centralita (quiero que todos estos valores los recoja la Mega2560 para que todos los procesos se hagan en una sola placa) determina CUANTO inyectar en total en ultima instancia.

Ahi es donde entra en juego la electronica, lo de recoger señales por parte de la Mega2560 si no me equivoco es sencillo, entradas digitales para los sensores, lo dificil es eso, que no se que tipo de componentes electronicos tengo que usar para conseguir la activacion tan rápida de milisegundos para la bomba de inyección (tampoco se cuanto necesita, a lo mejor no es tan dificil como creo, igual con transistores va que chuta, mi centralita tiene 11 años, y las hay mucho mas antiguas) y en el caso de inyectores electromagneticos o piezoléctricos, si que necesito conseguir una activación de nanosegundos, manteniendo por ejemplo en el caso de los electromagneticos la bobina ya cargada para que abra con rapidez (que es como se hace en los sistemas actuales)

Ya iré poniendo info de lo que quiero hacer, de como hacerlo y demás, hice varios cursos de cada tipo de inyección, de como se activan, con las señales para ver como tiene que ser la activación, la info de la megasquirt, como debe funcionar, las formulas, los sensores que le quiero conectar, valores a controlar, esquemas de como funciona cada inyeccion electronica, y todas las ideas posibles, y se irá haciendo lo que se pueda, no creo que esté listo en 1 mes, o en 3, pero tarde o temprano estará lista :wink:

No cojo una megasquirt porque habría que modificar la electronica, y se programa a traves del pc con un programa hecho por ellos mismos, y sería incontrolable, o mejor usar la propia electronica de la megasquirty, aprovechando la señal para cada inyector y capando las bujias, pero de momento no me voy a gastar 200 pavos, asi que mejor partir de cero, y que se pueda cambiar todo desde la pantalla de la centralita y me quito de programas intermediarios. De momento con ir consiguiendo solo con la mega2560 controlar la bomba de inyeccion, me doy con un canto en los dientes, con eso ya tendría una centralita totalmente funcional, lo demás son opciones para hacerlo más universal y que la pueda usar el que quiera independientemente de su coche.

Muchas gracias por el interes, y si necesito ayuda ya te ire preguntando, que veo que tu tambien controlas un pokillo!

Ante un proyecto de tal magnitud te recomiendo simular las señales que envias al arduino, y simules tambien los actuadores, y una vez finalizado el desarrollo del mismo le metas caña a acondicionar las señales de salida a los actuadores.

hace años diseñamos con PIC en al universidad algo parecido, tiene su complicacion y más ahora como van los coches actualmente.

la inyeccion depende de cada marca ... por ejemplo sé que en Fiat y Alfa en motores multijet tienen hasta 5 inyecciones por ciclo, una de ellas por extraño que parezca en el tiempo de escape.

Dependerá mucho tambien si lo que quieres controlar es diesel o gasolina, comon rail, multipunto o no ...

vamos .. trabajo de chinos :D

un saludo y suerte

A ver.... hoy en dia hablar de solo mecanica o solo electronica.... no tiene sentido!!

Bueno, no es tan raro tener post-inyeccion, para controlar la velocidad del turbo y/o para aumentar la temperatura de escape para que "funcione" el filtro de particulas en los diesel.

Podria darte mil razones por las que creo que un micro de 8 bits no te sirve, pero a lo mejor es mejor que lo descubras por ti mismo... ;) Lo de usar lenguaje wiring (arduino)... eso si que olvidate.

Mira, lo que dice SrDonGato si que es algo realizable con tu Arduino....je,je,je. A parte de ser imprescindible para tu proyecto. Una caja de simulacion de senyales. Tu Arduino se configura el numero de dientes ciguenyal y del arbol de levas, el desfase, un poti regula la velocidad, y generas ambas senyales. Para los sensores analogicos, puedes usar potenciometros. Esto es una caja "minima", aunque mas que suficiente. Todas las senyales, a parte de salir por el conector hacia tu centralita, tambien tienen que tener una bornera para poder conectar el osciloscopio.

Poder "tunear" los parametros mientras el motor estar andando, es otro requisito casi imprescindible. No vas a parar para compilar, cambiar un parametro y programar el micro de nuevo..... :fearful: Es algo a pensar como solucionarlo.

Todas las senyales de control tienen que tener mecanismos de fallo, por ejemplo, si tu presion de admision falla o tu senyal de acelerador, que pasara? No puedes permitir que al quedarse en circuito abierto el acelerador, pongas el motor al maximo!!! Es decir, tienes bastantes procesos que hacer antes de decir, esto es mi posicion de acelerador (por poner ejemplo).

Tampoco me enrollo... Lo suyo es saber cual sera el algoritmo de control, y luego elegir el hardware mas adecuado. Por que te crees que todos los DIY nunca tienen sensor de picado? Por ejemplo: - Mi motor sera con turbo de geometria variable? - Tendre filtro de particulas? - Tendre senyal de velocidad de turbo? Hare un control basado en presion para controlar la posición de las levas del turbo? Sera un PID? - Que tiempos minimos necesito cubrir para mi motor? - Estudio de los componentes hardware a controlar. - etc.

Salu2

;)

Nota- Ni acentos ni enyes.

jeje, sí, es un trabajo complicado. lo tengo en mente desde hace tiempo, de momento me conformaré con ir sacando la programación, que tampoco va a ser facil, y más porque empiezo casi de cero, pero me viene bien ir empezando poquito a poquito, y segun vaya aprendiendo y descubriendo cosas nuevas, las ire aplicando a la arduino para ir haciendolo en mis ratos libres, de momento estoy más centrado en los estudios asi que no me corre prisa, pero tampoco quiero dejarlo mucho tiempo que luego se enfría ;)

Gracias por lo de la caja de señales, miraré a ver como va, es una buena idea.

Segun vaya avanzando en la programación del sketche iré colgando cosas, algo que quiero colgar son todas las marcas que hay de centralitas diy, por si a alguna más se le despierta la imaginacion y se anima a hacer la suya, asi tendré compañia.

ya os iré comentando! ;)