Günstiges kabelgebundenes Multipoint-Mesh-Netzwerk

11

Ich möchte ein 15 x 15-Raster aus Lastsensoren und RGB-LEDs für eine interaktive Tanzfläche erstellen. Jeder Knoten wird von einem Arduino gesteuert und die gesamte Etage wird von einem RaspberryPi verwaltet. Ich versuche herauszufinden, wie die Knoten am besten mit dem Pi kommunizieren können. Idealerweise hätte das Netzwerk folgende Eigenschaften:

  • Niedrige Kosten pro Knoten
  • Raspberry Pi als Master, Arduino-Knoten als Slaves
  • Fähigkeit zu wissen, wo sich jeder Knoten im Raster befindet
  • Heilung: Wenn ein Knoten ausfällt, werden nicht alle anderen Knoten entfernt.
  • Kann leicht defekte Knoten ersetzen
  • Die Elektronik für jeden Knoten ist ca. 30 cm voneinander entfernt
  • Der Master ist 5 bis 10 Fuß von der Matrix entfernt.

Bisher habe ich mich über ein paar Ideen Gedanken gemacht.

I2C Dies würde es jedem Knoten ermöglichen, adressierbar zu sein. Es scheint jedoch, dass Arduino nur bis zu 127 Adressen zulässt und diese Matrix mindestens 225 Knoten hat.

SPI Wenn Daisy verkettet wäre, wäre es leicht zu wissen, wo sich jeder Knoten in der Matrix befindet. Wenn jedoch ein Knoten alle Knoten unterbrechen würde, nachdem er nicht mehr kommuniziert. (richtig?) Ich könnte jedes Reihen-Gänseblümchen separat verketten lassen. Wenn also eines nach unten geht, wirkt sich dies nur auf diese Reihe aus.

1-Draht 1-Draht sieht ebenfalls vielversprechend aus. Ich müsste meine eigene Methode zur Bestimmung der Knotenplatzierung herausfinden, die auf verschiedene Weise erreicht werden kann.

Benutzerdefinierte serielle Knoten Jeder Knoten verfügt über eine serielle Verbindung (rx / tx) für jede seiner vier Seiten. Dies würde es ihm ermöglichen, direkt mit jedem seiner Nachbarn zu kommunizieren und Nachrichten weiterzuleiten, die nicht an ihn gerichtet sind. Wenn ein Knoten ausfällt, wird die Nachricht automatisch um den defekten Knoten herum geleitet, da es zu jedem Ziel mehrere Pfade gibt. Diese Option ist ein bisschen verrückt und ich würde es vorziehen, etwas zu vermeiden, das so individuell und verworren ist.

USB Dies würde einen USB-Hub in jedem Knoten erfordern.

XBee Zu teuer.

Andere Gedanken oder Optionen?

Jeremy Gillick
quelle
Da Sie XBee erwähnt haben, sind nRF24-Knoten lächerlich billig und können vernetzt vernetzt werden.
Würden sie auf engstem Raum auf ein System von mehr als 225 Knoten skalieren?
Jeremy Gillick
Ich verstehe nicht warum nicht, jedes Radio kann 6 andere Radios gleichzeitig hören.
Mir scheint, dass ein Arduino pro Knoten kein billiger Weg ist. Das sind ziemlich teure Allzweckgeräte. Warum nicht ein einfacheres Custom Board bauen, das auf einem der AVR-Chips basiert, wie ein ATiny? Wenn Sie 225 Knoten bauen, werden 30 US-Dollar pro Knoten sehr teuer.
Duncan C
Letztendlich ist es geplant, einen benutzerdefinierten AVR pro Knoten durchzuführen. Ich werde es zuerst mit Arduino prototypisieren. Jeder Knoten muss nicht einmal intelligent sein, daher wäre es noch besser, wenn ich einen einfachen Weg finden könnte, die Ein- / Ausgabe von jedem Panel ohne Mikrocontroller zu muxen / demuxen.
Jeremy Gillick

Antworten:

1

Für I2C können Sie http://www.linear.com/product/LTC4312 ausprobieren

Auf diese Weise können Sie zwei I2C-Netzwerke erstellen, um alle Knoten zu adressieren.

Die Verkabelung für I2C ist zwar ein Albtraum, kann jedoch erforderlich sein, wenn die Knoten unabhängig sein sollen.

Baumregel14
quelle
0

Ich denke, ich würde RS-485 verwenden.

Mit diesem Standard können Sie Ihr eigenes Kommunikationsprotokoll schreiben und mit Arduino ist es einfach mit der Serial-Klasse zu verwenden. Als Erweiterung für das Arduino verwenden Sie nur den MAX485, da er den UART-cip des Arduino verwendet.

Ich habe absolut keine Erfahrung mit dem Rasperypi, aber ich denke, es hat auch einen UART-Cip, was bedeuten würde, dass Sie auch den MAX485 anschließen können.

Jonas Peter
quelle