Was ist der günstigste Weg für zwei Geräte, die weniger als 10 Fuß voneinander entfernt sind, um drahtlos miteinander zu kommunizieren?

Ich baue ein Musikinstrument, das aus zwei separaten Geräten besteht ... ein Gerät ist der Master ... hat einen Beschleunigungsmesser und einen Lautsprecher. Das Buddy-Gerät des Masters hat auch einen Beschleunigungsmesser.

Wenn der Buddy kippt, interpretiert das Buddy-Gerät die Daten des Beschleunigungsmessers und sendet dann eine Nachricht an den Master. Der Master spielt die Note mit der Instrumentenstimme 1.

Der Master verarbeitet gleichzeitig seine eigenen Beschleunigungsmesserinformationen. Basierend auf Beschleunigungsmesserdaten spielt es andere Noten mit Instrumentenstimme 2.

Wenn der Benutzer Gerät eins und dann Gerät zwei auf spezielle Weise bewegt, wird ein Schnörkel abgespielt.

Meine Frage ist ... unter Berücksichtigung der Art / Menge der Daten, die ich sende ... im Wesentlichen kurze Steuerbytes, was wäre der billigste Weg für die beiden, drahtlos zu kommunizieren?

--ERKLÄRUNG-- Diese Geräte wären idealerweise drahtlos und nicht miteinander verbunden. Außerdem werden diese Geräte frei herumbewegt, sodass jede Sichtlinienmethode nicht ideal ist.

Der billigste Weg sind ein paar Drähte. Können Sie klarstellen, ob diese Kommunikation drahtlos sein soll?
Drei Drähte: Masse, Empfang und Übertragung, wobei UARTs an jedem Ende verwendet werden, ist die offensichtliche Antwort. Sie können einen der Drähte weglassen, wenn die Kommunikation nur in eine Richtung erfolgen muss. Nichts in Ihrer Spezifikation sagt, dass dies keine gültige Lösung ist.

Antworten (5)

Ich gehe davon aus, dass Sie dies drahtlos tun möchten, ansonsten ist die Lösung offensichtlich.

Ich würde Infrarot nehmen . Der Sender kann ein kleiner Mikrocontroller sein, der ein Bytepaar an ein IR-Empfängermodul sendet .

Diese Empfängermodule sind auf ein bestimmtes Protokoll abgestimmt. Sie können ein RC-5-Modul verwenden; RC-5 überträgt 14 Bit auf einmal unter Verwendung von Manchester-Codierung. Sie können einfach ein Paar Bits hinzufügen und Ihre eigenen Codes definieren.

Eine Reichweite von 3 m sollte kein Problem sein. Ich habe Vishay RC-5-Empfänger mit einer Reichweite von 15 m verwendet. Bei kürzeren Entfernungen müssen Sie wahrscheinlich nicht einmal die LED auf den Empfänger richten. In einem Raum normaler Größe wird das Signal von den Wänden reflektiert.

Eine günstige HF-Lösung ist der RFM70:

Geben Sie hier die Bildbeschreibung ein

Weniger als 5 Dollar bei Digikey. Das ist weit weniger als ein Xbee.

+1 für die Aufnahme eines billigen HF-Senders ... Wenn IR Sender und Empfänger richtig ausgerichtet werden müssen? Ich sollte klarstellen, dass sich die Geräte frei bewegen müssen, sodass ich mich nicht auf die Ausrichtung der Sichtlinie verlassen kann.
@milesmeow - Die HF funktioniert dann zuverlässiger, aber die IR muss nicht unbedingt ausgerichtet werden. Wie ich schon sagte, es prallt auch von den Wänden ab, aber für einige Winkel kann es sein, dass Sie einen Code verpassen. RF ist hier also wahrscheinlich am besten.

Am billigsten sind Drähte.

Das billigste WLAN ist wahrscheinlich Infrarot. Sie sagen nicht, wie groß die physische Entfernung ist, aber ungezieltes IR kann über 10 Fuß / sagen wir 10 Meter innerhalb eines Raums funktionieren, da IR glücklich von Oberflächen abprallt, die visuell nicht reflektierend sind. Dies kann unzuverlässig werden, und wenn eine geringere Reichweite und/oder ein gewisses Maß an grobem Zielen möglich ist, ist IR wahrscheinlich eine gute Wahl.

Die IR-Übertragung kann digital oder analog erfolgen. Analoge Datenraten von einigen Kilobaud sind einfach genug [tm] mit verfügbaren TX/RX-Modulen, die mit einer Trägerfrequenz von etwa 30 kHz arbeiten, und höhere Raten sind möglich.

Ein Datenpaket mit beispielsweise 8 Datenbits und etwas Start + Stopp + Fehlerprüfung für insgesamt beispielsweise 20 Bits benötigt 20 ms zum Senden bei 1 kb / s (1000 Bit / Sekunde) und 2 ms bei 10 kb / s. Wird diese bei der ersten Übertragung korrekt empfangen, besteht eine "Latenz" von etwa der Paketübertragungszeit. Sie können beurteilen, ob dies schnell genug ist. Dies setzt voraus, dass die Datenverbindung synchronisiert ist und keine "Präambel" gesendet werden muss, um den Empfänger-Daten-Slicer davon zu überzeugen, die richtigen DC-Pegel des ankommenden Signals zu finden. Dies kann viel Zeit in Anspruch nehmen, wird aber überwunden, indem man leise zum anderen Ende murmelt, wenn es nichts Nützliches zu senden gibt (das System bleibt synchronisiert) oder indem man ein anderes System verwendet. Nicht schwer. Üblicherweise gemacht. Es gibt ICs, die die meiste Arbeit erledigen.

Es gibt sehr kostengünstige HF-TX- und HF-Module, die weit weniger kosten als XBEE und einfacher zu verwenden sind. Diesen fehlt die Adressierung und die allgemeine Sicherheitsausgereiftheit von XBEE, aber es ist wahrscheinlich, dass sie gut funktionieren. Die Kosten können etwa 5 US-Dollar pro Ende und vielleicht weniger betragen. Immer mehr, wenn Sie sich bereit erklären, es zu bezahlen.

Sie können auch die drahtlose 2,4-GHz-Technologie ausprobieren. Es ist ziemlich billig und wird eine ausgezeichnete Reichweite haben. Ich habe gerade ein Paar Transceiver für jeweils etwa 2,00 $ bei eBay gekauft .

Der NRF24L01 ist auch sehr beliebt, daher bin ich sicher, dass Sie einige wirklich großartige Tutorials finden werden, denen Sie folgen können.

Wenn Sie beispielsweise den Arduino verwenden, sehen Sie sich diesen Link an .

Wenn Sie einen MSP430 verwenden, ist github.com/spirilis/msprf24 eine großartige Bibliothek, die ich verwendet habe (in meinem Fall mit MSP430G2553s). Ich kann nicht für maximale Datenrate sprechen, aber in meinem Projekt habe ich 32 Bytes ungefähr 100 Mal pro Sekunde gesendet und es gab keine Probleme. Allerdings musste ich den Sendepuffer nach jedem Senden leeren (flush_tx())!

Der Xbee ist großartig, aber relativ teuer (30 $ pro Einheit?). Er ist auch ein Transceiver, was bedeutet, dass er sendet und empfängt. Es hört sich so an, als ob Sie nur ein Ende zum Senden und ein Ende zum Empfangen benötigen. Ich habe diese noch nie verwendet, aber ich habe ernsthaft darüber nachgedacht, sie für mehrere Projekte zu verwenden, da sie so einfach sind.

https://www.sparkfun.com/products/10534 https://www.sparkfun.com/products/10532

Ich verstehe, dass sie so funktionieren, dass jedes (digitale) Signal, das Sie in einen eingeben, auf dem anderen zu sehen ist. Sie sind also im Vergleich zum Xbee auch wirklich einfach.

Möchten Sie, dass es drahtlos ist? Wenn ja, würde ich nach einem Xbee suchen . Das ist ein Link zu Sparkfuns Einführungstutorial und Kaufanleitung dazu. Xbee bietet eine einfache Punkt-zu-Punkt-Konfiguration, die ideal für Ihre Anwendung erscheint.

Wenn es nicht drahtlos sein muss, verwenden Sie einfach eine Art serielles Protokoll. Einige der einfacheren mit reichlich Dokumentation im Netz sind UART, SPI und I2C. Wenn Sie einen dieser Begriffe in Kombination mit dem Mikrocontroller Ihrer Wahl googeln, finden Sie auf jeden Fall einen guten Ausgangspunkt.

Viel Glück.