Estoy buscando hacer una cuadrícula de sensores de carga de 15 x 15 y LED RGB para una pista de baile interactiva. Cada nodo será conducido por un arduino y todo el piso será manejado por un RaspberryPi. Estoy tratando de descubrir la mejor manera de que los nodos se comuniquen con el Pi. Idealmente, la red tendría estas características:
- Bajo costo por nodo
- Raspberry Pi como el maestro, arduino nodos como esclavos
- Capacidad para saber dónde está cada nodo en la cuadrícula
- Curación: si un nodo cae, no elimina a todos los demás.
- Puede reemplazar fácilmente los nodos rotos
- La electrónica para cada nodo estará a ~ 12 pulgadas de distancia
- El maestro estará a 5 - 10 pies de distancia de la matriz.
Hasta ahora he estado trabajando en algunas ideas.
I2C Esto permitiría que cada nodo sea direccionable, sin embargo, parece que Arduino solo permitirá hasta 127 direcciones y esta matriz tendrá al menos 225 nodos.
SPI Si se conecta en cadena, sería fácil saber dónde está cada nodo en la matriz. Pero si un nodo rompiera todos los nodos después, dejaría de comunicarse. (¿verdad?) Podría hacer que cada fila se encadenara por separado, por lo que si una baja, solo afectará a esa fila.
1-Wire 1-wire también parece prometedor. Tendría que descubrir mi propia forma de determinar la ubicación de los nodos, que podría lograrse de varias maneras.
Serie personalizada Cada nodo tiene una conexión en serie (rx / tx) para cada uno de sus cuatro lados. Esto le permitiría comunicarse con cada uno de sus vecinos directamente y transmitir mensajes que no están dirigidos a él. Si un nodo cayera, el mensaje se enrutaría automáticamente alrededor del nodo roto ya que hay varias rutas a cada destino. Esta opción es un poco loca y preferiría evitar algo tan personalizado y complicado.
USB Esto requeriría un concentrador USB en cada nodo.
XBee Demasiado caro.
¿Otros pensamientos u opciones?
fuente
Respuestas:
Para I2C puede probar http://www.linear.com/product/LTC4312
Esto le permitirá crear dos redes I2C para direccionar todos los nodos.
Sin embargo, el cableado para I2C será una pesadilla, pero podría ser necesario si desea que los nodos sean independientes.
fuente
Creo que usaría RS-485.
Con este estándar, puede escribir su propio protocolo de comunicación y con arduino es fácil de usar con la clase Serial. Como extensiones para el Arduino, solo usa el MAX485 porque usa el UART-cip del Arduino.
No tengo absolutamente ninguna experiencia con el rasperypi, pero creo que también tiene un UART-Cip, lo que significaría que también puede conectar el MAX485.
fuente