Ich entwerfe ein Pub-Quiz-Projekt, bei dem der Schiedsrichter ein Signal gibt und mehrere Spieler ihre Knöpfe drücken. Der erste, der pusht, gewinnt das Recht, eine Antwort zu geben.
Ich möchte, dass alle Tasten (Schiedsrichter + X-Spieler) drahtlos sind. Da die besten Quizspieler innerhalb von 10 ms um das Signal auf eine Schaltfläche klicken können, ist es sehr wichtig, dass der Ping zwischen verschiedenen Schaltflächen sehr, sehr wenig variiert. Ich kann keine Spieler haben, die rufen "Mein Knopf ist verzögert!" Andererseits möchte ich keine teurere / komplexere Technologie als nötig einsetzen.
Also, was wäre die optimale drahtlose Technologie? Bitte teilen Sie Ihre Erfahrungen aus ähnlichen Projekten (oder nur theoretischen Kenntnissen :) mit. Folgendes habe ich bisher recherchiert (korrigieren Sie mich, wenn ich falsch liege):
Bluetooth 4 LE (wie in RFduino) Vorteile: 3-6 ms Latenz (angekündigt), niedrige Energie Nachteile: Kosten, nicht mehr als 7 Tasten am Gerät
Wi-Fi-Vorteile: 2 ms Latenz (ich habe gerade meinen Wi-Fi-Router gepingt), Dutzende von Tasten, wenn nötig Nachteile: Kosten, Stromhunger
RF-Datentranceiver Vorteile: Keine Ahnung, die Kosten scheinen etwas geringer zu sein. Nachteile: Mehrere Tasten mit derselben Frequenz verursachen wahrscheinlich viel Rauschen
Einfachste "Funkfernbedienung" Vorteile: Keine Verzögerung, da alles elektromechanisch ist, keine Daten Nachteile: Mehrere Tasten mit derselben Frequenz funktionieren nicht
Habe ich etwas verpasst? Ich freue mich über jede Anleitung.
Antworten:
Ich habe zuvor
NRF24L01+
mit Arduino drahtlose 2,4-GHz-Chipsatzmodule mit Arduino verwendet und fand sie großartig und supergünstig (~ 10 US-Dollar für 10 davon bei ebay!). Sie haben 3 Übertragungsmodi: 250 kbps, 1 Mbit / s und 2 Mbit / s. Der Bereich verringert sich entsprechend mit höherer Bitrate, aber auch die Zeit, die für das Senden einer Nachricht aufgewendet wird. Es gibt mehrere Arduino-Bibliotheken (z. B. RF24, Mirf, RadioHead) und Tutorials zur Verwendung der Module (siehe http://playground.arduino.cc/InterfacingWithHardware/Nrf24L01 ). Sie verfügen außerdem über integrierte Mesh-Netzwerkmodi, die möglicherweise von Nutzen sind oder nicht.Versionen mit einem RP-SMA-Antennenanschluss und einer angegebenen Reichweite von bis zu 1000 m sind ebenfalls für jeweils etwa 5 USD erhältlich. Ich würde empfehlen, mindestens eine davon für die Schaltfläche des Schiedsrichters zu verwenden, abhängig von der Reichweite, die Sie benötigen.
Laut Charles Hallard von hallard.me können die nicht verstärkten Chips im 250-kbit / s-Modus eine Sichtweite von 30 m erreichen , und ich habe dies in meinen eigenen Tests überprüft.
Nach Benutzer auf sporadischen diychristmas.org , nimmt 1432μs eine 32 - Byte - Nutzlast in 250 kbps - Modus das Senden von dem Beginn der Tx - Modus auf dem Sender zum Empfangen der vollständigen Nachricht auf Empfänger. Dies verringert sich im 1- Mbit / s-Modus auf 444 µs und im 2- Mbit / s-Modus auf 283 µs .
Angesichts dieser Statistiken liegen sie innerhalb einer Latenzzeit von 2 ms für das Auslösen, die für Ihre Anwendung geeignet ist, und sie verbrauchen sehr wenig Strom. Es liegt an Ihnen, das beste Gleichgewicht zwischen Latenz, Reichweite und Kosten zu finden.
quelle
Haben Sie darüber nachgedacht, Echtzeituhren zu verwenden? Sie können sie alle im Voraus synchronisieren und dann ein beliebiges drahtloses Protokoll verwenden. Sobald eine Taste gedrückt wird, suchen Sie nach dem Gerät, das den frühesten Zeitstempel meldet, und lassen nach Ablauf eines Fensters von einigen Sekunden wissen, dass es gewonnen hat. Ich würde in Betracht ziehen, WIFI (802.11) mit ESP8266s, RTCs zu verwenden und einen drahtlosen Zugangspunkt mitzunehmen.
Dies ist keine Antwort auf drahtlose Verbindungen mit geringer Verzögerung, macht sie jedoch überflüssig.
quelle
millis() - offset
für alle beteiligten Arduinos das gleiche Ergebnis (+/- etwas Drift) erzielt wird. Diesoffset
ist der Wert von local,millis()
wenn ein Arduino das Sync-Signal vom Master-Arduino empfängt. Für ein Spiel, das ein oder zwei Stunden dauert, reicht es aus.Meiner bescheidenen Meinung nach ist es möglicherweise sogar billiger, wenn Sie IR oder eine andere Art von Licht verwenden, vorausgesetzt, Sie können die Sichtlinie sicherstellen. Sie können verschiedene Wellenlängen verwenden, um die Trennung der Signale sicherzustellen.
quelle
Low-Low-Tech-Lösung.
Der Sender sendet auf Befehl sein Taktsignal aus.
Der Empfänger muss nur erkennen, ob dieses Signal vorhanden ist.
Das Ganze kann auf HF oder Licht basieren - zum Beispiel kann eine der LED-Leuchten als Sender konfiguriert werden.
Alles sollte innerhalb von 1 ms gut sein.
quelle