Réseau maillé multipoint filaire bon marché

11

Je cherche à créer une grille de 15 x 15 capteurs de charge et LED RGB pour une piste de danse interactive. Chaque nœud sera piloté par un arduino et tout l'étage sera géré par un RaspberryPi. J'essaie de trouver la meilleure façon de faire communiquer les nœuds avec le Pi. Idéalement, le réseau aurait ces caractéristiques:

  • Faible coût par nœud
  • Raspberry Pi comme maître, nœuds Arduino comme esclaves
  • Capacité de savoir où se trouve chaque nœud dans la grille
  • Guérison: si un nœud tombe en panne, il n'enlève pas tous les autres.
  • Peut facilement remplacer les nœuds cassés
  • L'électronique de chaque nœud sera distante d'environ 12 pouces
  • Le maître sera à 5 - 10 pieds de la matrice.

Jusqu'à présent, j'ai travaillé sur quelques ides.

I2C Cela permettrait à chaque nœud d'être adressable, cependant, il semble que Arduino n'autorisera que 127 adresses et cette matrice aura au moins 225 nœuds.

SPI Si connecté en guirlande, il serait facile de savoir où se trouve chaque nœud dans la matrice. Mais si un nœud venait à casser tous les nœuds après qu'il cesserait de communiquer. (à droite?) Je pourrais avoir chaque marguerite chaînée séparément, donc si on descend, cela n'affecte que cette rangée.

1 fil 1 fil semble également prometteur. Je devrais trouver ma propre façon de déterminer l'emplacement des nœuds, ce qui pourrait être réalisé de différentes manières.

Série personnalisée Chaque nœud possède une connexion série (rx / tx) pour chacun de ses quatre côtés. Cela lui permettrait de communiquer directement avec chacun de ses voisins et de transmettre des messages qui ne lui sont pas adressés. Si un nœud devait tomber, le message serait automatiquement acheminé autour du nœud rompu car il existe plusieurs chemins vers chaque destination. Cette option est un peu folle et je préfère éviter quelque chose de si personnalisé et alambiqué.

USB Cela nécessiterait un concentrateur USB dans chaque nœud.

XBee Trop cher.

D'autres pensées ou options?

Jeremy Gillick
la source
Puisque vous avez mentionné XBee, les nœuds nRF24 sont ridiculement bon marché et peuvent être maillés en réseau.
Pourraient-ils évoluer vers un système de plus de 225 nœuds dans un espace proche?
Jeremy Gillick
Je ne vois pas pourquoi, chaque radio peut écouter 6 autres radios à la fois.
Il me semble qu'un Arduino par nœud n'est pas une solution bon marché. Ce sont des appareils à usage général assez chers. Pourquoi ne pas construire une carte personnalisée plus simple basée sur l'une des puces AVR comme un ATiny? Si vous construisez 225 nœuds, 30 $ / nœud deviennent très chers.
Duncan C
En fin de compte, faire un AVR personnalisé par nœud est le plan. Je vais juste le prototyper avec Arduino en premier. Chaque nœud n'a même pas besoin d'être intelligent, donc ce serait encore mieux si je pouvais trouver un moyen simple de multiplexer / démultiplexer les entrées / sorties de chaque panneau sans microcontrôleur.
Jeremy Gillick

Réponses:

1

Pour I2C, vous pouvez essayer http://www.linear.com/product/LTC4312

Cela vous permettra de créer deux réseaux I2C pour adresser tous les nœuds.

Cependant, le câblage pour I2C sera un cauchemar, mais il peut être nécessaire si vous souhaitez que les nœuds soient indépendants.

Treesrule14
la source
0

Je pense que j'utiliserais RS-485.

Avec cette norme, vous pouvez écrire votre propre protocole de communication et avec arduino, il est facile à utiliser avec la classe Serial. En tant qu'extensions pour l'Arduino, vous n'utilisez que le MAX485 car il utilise le UART-cip de l'Arduino.

Je n'ai absolument aucune expérience avec le rasperypi mais je pense qu'il a aussi un UART-Cip ce qui voudrait dire que vous pouvez également connecter le MAX485.

Jonas Peter
la source