Estou procurando fazer uma grade de 15 x 15 de sensores de carga e LEDs RGB para uma pista de dança interativa. Cada nó será conduzido por um arduino e o andar inteiro será gerenciado por um RaspberryPi. Estou tentando descobrir a melhor maneira de fazer com que os nós se comuniquem com o Pi. Idealmente, a rede teria essas características:
- Baixo custo por nó
- Raspberry Pi como mestre, nós do arduino como escravos
- Capacidade de saber onde cada nó está na grade
- Cura: se um nó desce, ele não remove todos os outros.
- Pode substituir facilmente nós quebrados
- Os componentes eletrônicos de cada nó serão separados por ~ 12 polegadas
- O mestre estará a 5 - 10 pés de distância da matriz.
Até agora, tenho trabalhado mais alguns ides.
I2C Isso permitiria que cada nó fosse endereçável; no entanto, parece que o Arduino permitirá apenas 127 endereços e essa matriz terá pelo menos 225 nós.
SPI Se encadeado em série, seria fácil saber onde cada nó está na matriz. Mas se um nó quebrar todos os nós depois de parar de se comunicar. (certo?) Eu poderia ter cada linha margarida encadeada separadamente; portanto, se uma delas cair, ela afeta apenas essa linha.
1-fio 1-fio também parece promissor. Eu teria que descobrir minha própria maneira de determinar a localização do nó, o que poderia ser alcançado de várias maneiras.
Serial personalizado Cada nó tem uma conexão serial (rx / tx) para cada um dos quatro lados. Isso permitiria a comunicação direta com cada um de seus vizinhos e a transmissão de mensagens que não são endereçadas a ele. Se um nó fosse desativado, a mensagem seria roteada automaticamente em torno do nó quebrado, pois existem vários caminhos para cada destino. Essa opção é um pouco louca e eu preferiria evitar algo tão personalizado e complicado.
USB Isso exigiria um hub USB em cada nó.
XBee Muito caro.
Outros pensamentos ou opções?
fonte
Respostas:
Para o I2C, você pode tentar http://www.linear.com/product/LTC4312
Isso permitirá que você faça duas redes I2C para endereçar todos os nós.
No entanto, a fiação do I2C será um pesadelo, mas pode ser necessário se você desejar que os nós sejam independentes.
fonte
Eu acho que usaria o RS-485.
Com esse padrão, você pode escrever seu próprio protocolo de comunicação e, com o arduino, é fácil de usar com a classe Serial. Como extensões para o Arduino, você usa apenas o MAX485 porque ele usa o UART-cip do Arduino.
Não tenho absolutamente nenhuma experiência com o rasperypi, mas acho que ele também possui um UART-Cip, o que significa que você também pode conectar o MAX485.
fonte