udev

Buenas,

Hoy vengo con un problema que no se si me lo podreis resolver. El tema es que quiero conectar 2 arduinos o mas por serial usb, pero necesito que linux me los detecte siempre con su letra a cada uno. He estado mirando y parece que eso se hace con udev, el problema es que todos mis arduinos nano tienen el mismo id product, fabricante y demas. Conoceis alguna otra forma de hacerlo o como cambiar esos valores a los arduinos? O si directamente hay algun atributo como un serial largo que los distinga a todos.

Un saludo

el_pedriyo: El tema es que quiero conectar 2 arduinos o mas por serial usb

¿Por qué así en vez de interconectarlos entre sí?

Te refieres a interconectarlos en modo árbol no?
El modo árbol está muy bien para pequeños proyectos en los que no hay sistemas críticos funcionando ni nada, pero por ejemplo para el proyecto que estoy llevando a cabo con más de 20 arduinos, en el momento en que se rompa alguno o directamente el que va conectado a la raspberry podría tener problemas.
Por eso mismo estaba mirando de hacerlo de esa forma

Un saludo

Arduinos conectados por serial se puede pero no como creo que lo estas intentando. Usando los pines TX y RX disponibles no es posible conectar mas que 2, un enlace entre dos arduinos.

Conectar 3 o mas requiere de una interfaz que se llama RS485 o sus variante bidireccional RS422. Eso si puedes usar con Raspi y hasta 127 nodos o con algunas variates del chip RS485 hasta 256 nodos (nodos mas o menos).

Nono, si yo no estoy intentando conectarlo por los ppines TX y RX, lo estoy haciendo por serial, es decir, USB. Pero en principio como ya digo es conectar mas de 1 por USB a la raspberry, que en principio deberia de poderse, no veo por que no. El problema con el que me he topado es con el de que linux asigne los nombres TTYUSBX a los arduinos, por si alguien que supiera de este problema pudiera orientarme.

Un saludo

el_pedriyo: El problema con el que me he topado es con el de que linux asigne los nombres TTYUSBX a los arduinos, por si alguien que supiera de este problema pudiera orientarme.

¿El problema es que las asignaciones cambien o qué? Recuerda que ttyusbx es la contraparte de COMx; es como un identificador del puerto serial.

Supongo que usas un hub porque hasta donde sé, un RPi tiene máximo 4 puertos USB.

Por el momento no usaba un hub por que ando montando primero la infraestructura y comprobando que como lo estoy planteando todo funcionara. Pero si, pondre varios hubs usb, por que esto no se extiende a un proyecto de solamente 20 arduinos, en un futuro puede que incluso instale 100 y necesito checkear que todo funcionara. Por suerte he conseguido lo que queria con udev, el cual no conseguia que funcionara ayer, pero hoy ya si. He conseguido asignar a cada puerto especifico 1 arduino especifico, con lo que ya puedo seguir.

Muchas gracias de todas formas :)

100 arduinos conectados por USB? Leo bien?

Que problema hay? usb = 2 cables de datos, que problema hay que sean 10 que sean 100? basicamente es una raspberry pi la que tiene que gestionar los datos, ademas, 1 cable usb2.0 es capaz de transportar unos 60 Megabytes, si cada arduino le esta mandando 100kilobytes, en realidad son 10megabytes dividido por 4 puertos que tiene la raspberry, aunque se estuviera usando bajo el mismo bus los 4 puertos, seguiria habiendo 50megabytes de transferencia libre, con lo que no le veo ningun problema. Se que 100 arduinos pueden ser muchos, pero que mejor conexion le ves tu?

Un saludo

Otra forma que podria pensar seria tambien poniendole a cada arduino un ethernet shield y luego montar un switch bastante grande para comunicarlos con la raspberry pi, pero vamos que en principio estaba pensando en los usb

Bueno... un host USB soporta hasta 127 dispositivos. El RPi debe tener suficiente memoria RAM para poder administrar tantos puertos seriales, los hubs deben ser energizados porque un puerto 2.0 máximo entrega 500 mA (cifra que fácilmente se alcanza con 127 Arduinos). USB 2.0 tiene un ancho de banda de 480 Mbps; aún 127 Arduinos con los puertos a 115200 bps no debería ser un problema.

Como bien dices en la mayoria de las cosas da de sobra para conectar 100 arduinos, menos en el tema de la energia, pero si coges y no alimentas los arduinos por usb por que cortas los cables de alimentacion y los alimentas de forma externa en principio todo deberia de estar solucionado

Doy por finalizado entonces este hilo