Go Down

Topic: CAN BUS: Red de Arduinos (Read 41251 times) previous topic - next topic

yOPERO


Ey!! veo algun "quemao" de F1 por el foro.....ja,ja,ja
Si, SECU viene de Standard ECU que es como se llama a la centralita unica en F1.... (algo mas potente que un atmega168 de 8 bits...  :D)

No me esperaba que la gente lo supiera lo de SECU....  XD   Eso esta muy bien!!!

Habia que ponerle un nombre!!!



;)
Engineering is the art of
making what you want from
things you can get.

     

[SOLUCIONADO]

Igor R

ahhh!!! pues si que estaba explicado!! ja,ja,ja

Sergegsx

Que pasada Igor ! enhorabuena a Igor y a Aritz por el trabajo!

entonces dejame preguntarte, la placa elijes como la quieres?? y vosotros la enviais montada o desmontada con esos componentes?
Si la quieres completa, se transiciona de un modo a otro por software o hay que puentear aqui o allí?

Espero con ganas esos ejemplos de CANBUS + memoria ya que la unica vez que he usado memoria SD tardaba mucho en escribir por lo que era inviable para datalogging. supongo que aquí tienes que usar el chip select para cambiar de canbus a SD,no? en el caso de la memoria interna tambien?

bueno suficientes preguntas por ahora, luego mas jeje, ya puedes abrir un FAQ con estas jeje

Igor R

#198
Oct 21, 2011, 02:37 pm Last Edit: Oct 21, 2011, 02:52 pm by Igor R Reason: 1
Hola Sergio,

Eso es, tanto el controlador CAN como la memoria van por SPI. Se hace uso del CS para seleccionar el dispositivo. Se hace por soft (controlando el pin correspondiente).
Las placas se envian montadas. Tenemos ya unas cuantas sólo CAN listas para vender (testeadas) y alguna FULL para ir haciendo pruebas y documentando.
La memoria flash de 2 megas utilizada en el brick dispone de librería para Arduino. Así que no debería haber muchos problemas.

Vamos un poco apretados de tiempo, entonces no prometo cuando estará todo documentado.  Si alguien se anima a ir probándola por su cuenta y compartiendo sus experiencias, le hacemos un precio especial.... ;)  (me refiero a la SD, memoria flash, rs485 y rs232... la parte del bus CAN está testeada y funciona 100% junto a nuestra librería).



]:D

fm

Hola, sun que ando un poco liado, si queries yo os puedo probar la flash o sd. Entiendo que también habría que leer para recuperar los datos y escribir + una librería para extraer y consultar la información?
   

Igor R

La memoria es una AT45DB161D, la cual existe librerías/info para Arduino (http://blog.blockos.org/?p=27). Estaría bien poder probar leer cosas del bus CAN y grabarlo en la memoria, y viceversa. Vamos, poner todo en conjunto! Y lo mismo para la SD.
Pero vaya.... lo más importante.... documentarlo!!!


]:D



Sergegsx

#201
Oct 21, 2011, 03:54 pm Last Edit: Oct 21, 2011, 03:56 pm by Sergegsx Reason: 1
Igor yo tengo "algún" hueco por ahora, no se si puedo ayudarte en algo. dimelo.

canbus ira por SPI asi como la memoria de 2mb, luego la SD entiendo que tambien sera SPI,no? por lo que habran 3 chipselect.
el rs232 y 485 tambien por SPI?
es decir 5 chipselects??? wow

Igor R

#202
Oct 21, 2011, 04:35 pm Last Edit: Oct 21, 2011, 04:50 pm by Igor R Reason: 1
El rs232 y rs485 no van por SPI. Son transceiver que conectas a la UART (o a pines digitales si usas comunicación serie por soft).

De todas formas, la placa tiene muchas opciones, pero no me creo una aplicación que uses todas a la vez!!! ja,ja,ja
Ya que diseñábamos una placa, le hemos añadido cosas que pueden resultar de interés. Normalmente, si vas a usar la memoria externa de 2Mb, no vas a utilizar la SD y viceversa.... por lo que normalmente tendrás 2 dispositivos por spi (2 CS). Es similar a si usas la shield ethernet + SD, que ambos van por SPI.
Como habia espacio, le añadimos todo esto para ser más flexible. Casa usuario decide lo que prefiere para su aplicación.

La memoria, es también la utilizada en el proyecto uLog (http://www.sparkfun.com/products/9228). Es decir, hay suficiente información en la red para que no sea un problema empezar....  :D



;)

fm

Documentación es una de las tareas que tengo pendiente de alguno de mis proyectos. Cuando me vaya quitando ese bloque de encima si queréis os puedo ayudar incluso a hacer una lectura cruzada.
   

flico

Acabo de terminar con la parte fácil de mi casa domotica que es meter los tubos corrugados ahora tengo que ponerme a preparar todo lo que voy a poner incluido el CAN.
P.D Excelente trabajo a los dos Igor y Aritz
Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Igor R

#205
Oct 22, 2011, 01:12 pm Last Edit: Oct 22, 2011, 01:15 pm by Igor R Reason: 1
Por no repetir post, he creado un programa sencillo de ejemplo para usar filtros HW con nuestra librería, recogiendo una ID concreta y también como mostrar datos en un lcd.
Para ello he usado la librería que hice recientemente de máquina de estados (FSM).
http://arduino.cc/forum/index.php/topic,75826.15.html


;)

Igor R

#206
Oct 23, 2011, 08:00 pm Last Edit: Oct 23, 2011, 08:02 pm by Igor R Reason: 1
Pues ya lo he probado en el coche. He pulido una cosilla, así que he cambiado un poco el código (he añadido un estado más).

El video prometido, aunque de 0 a 30kph, porque no es cuestión de ir a la carcel haciendo el cabra de 0 a 100 kph...je,je,je

http://www.youtube.com/watch?v=T1Ea1tnn8b8


Info => http://secuduino.blogspot.com/2011/10/chrono-0-to-100-kph.html

Sergegsx

jajaja haces bien porque yo la primera vez lo configure de 0 a 100 y en 2 veces que salí con el coche no tuve ocasión de hacerlo de forma segura por lo que no pude probarlo.
ahora quiero hacer 2 timers, 1 que haga de 0 a 100 y el otro de 0 a 50.
luego quiero calcular aceleraciones con un poco de física del colegio .

por cierto, tu código no detecta una deceleración a mitad,no?

Igor R

#208
Oct 24, 2011, 08:38 am Last Edit: Oct 24, 2011, 03:41 pm by Igor R Reason: 1
El 0 a 100 kph, necesitas tener mucho espacio y es un poco "peligroso".... Otra manera que se podía hacer, es calcular con la velocidad el espacio, y cambiar el programa para que te calcule el espacio recorrido en tiempos fijos, por ejemplo, 2s y 4s. Así podrías decir, he hecho 4m/2s y 30 m/4s  (por poner números).

Quote
por cierto, tu código no detecta una deceleración a mitad,no?

No entiendo bien a lo que re refieres. Cuando empiezas a cronometrar (velocidad >0), si te vuelves a parar aunque no has llegado a 100 kph(o velocidad objetivo), se vuelve a "armar" para empezar de nuevo.
Sólo habría que poner algún estado más intermedio para que te haga "todo-en-uno". Es decir, se podría ampliar para que te vaya cronometrando por etapas (0-25, 0-50 y 0-100). Es ir recogiendo en diferentes variable el tiempo al llegar a dichas velocidades con millis().

El principal objetivo era enseñar el uso básico de filtros HW del controlador CAN y un ejemplo práctico de la librería FSM. Puedes ver que le velocidad la lee perfecta (sin parones y rápido, es más, tendría que bajarle el refresco de actualización por pantalla porque "tiemblan" demasiado los números), y en el bus confort de VW habrá fácilmente 40 mensajes más.


Algo que podrías hacer, es el cálculo de la potencia (y más cosillas), lo suyo es ponerse un acelerómetro (dos ejes mejor, para futuras cosillas.... :smiley-yell:), y te calculas la potencia: F=m*a, dónde tus fuerzas son : aerodinámica, rolling de neumáticos, si estas en desnivel y la fuerza proveniente del motor.
Puedes despreciar el desnivel, suponiendo que haces las pruebas en recta,
-Motor= P/v
-Rolling=m*g*Cr
-Aero=0.5*densidad*m*Cx*A*v²   (si le pones un sensor de temp, te sacas la densidad calculada y si no,  pues se la pones cte).
-Gradiente=m*g*sen(a)   --> suponemos que no hay desnivel, despreciamos este término.

Fuerza motor-Fuerza Aero-F rolling- F gradiente= m*a

El Cx, puedes hacer una prueba de "coast down". Te pones a cierta velocidad, pones punto muerto, y grabas los datos. Como la potencia es cero, suponemos no estás en desnivel, tu única incognita es Cx.
El Cr, coeficiente de rolling aprox. de un neumático de calle es de 0.015 a 0.02
El área, te sacas una foto del coche frontal, y si manejas algún programa de diseño, pues lo haces rápido (por ejemplo, tomando las medidas de la matrícula para  poder escalar la foto).

Aunque suena a que ni de coña lo sacas, los resultados son bastante aceptables.
Un link que está bien sobre física orientada a automoción/competición es  http://phors.locost7.info/contents.htm


A ver si saco tiempo ampliar el programa de las arrancadas, pero grabando datos con la nueva placa SECUduino. Así se podrían comparar adquisiciones!!  ]:D

Sergegsx

muy buena explicación Igor. el acelerometro ya lo tengo en casa pero como funciona por SPI me ha dado pereza ponerme con ello ya que tendria que analizar muy bien el tema del chipselect. tendria que haber comprado uno analogico y punto pero bueno.
de todas formas tambien se puede calcular la aceleración con el cambio de velocidad en el tiempo, la idea es hacerlo de las dos formas con el incremento de V y el acelerometro.

lo de la deceleracion que te comentaba, si miras mi código, yo detecto si la velocidad actual es inferior a la anterior, por lo que en lugar de quedarse sumando tiempo hasta que llegas a cero velocidad, en mi caso si detecta una deceleración se interrumpe el test.

Go Up