Drahtlosverbindung zwischen zwei Arduinos

Hallo,

ich habe eine Frage zur drahtlosen Kommunikation zwischen zwei Arduinos. Meine Anforderungen:

  • stabile Kommunikation im Freien über Distanz > 400 m
  • Möglichst kurze Verzögerung und die exakte Erfassung der Verzögerung
  • gesetzeskonform
  • bezahlbar

Ich habe das Modul nRF24L01p+ von Nordic gefunden (http://www.nordicsemi.com/kor/nordic/download_resource/8765/2/31747005). Mit einer 2db Antenne sollen ca. 1000 m problemlos möglich sein, der große Vorteil im Vergleich zu z.B. XBee liegt im deutlich günstigeren Preis, nur habe ich dazu keine Angaben zur Sendeleistung gefunden oder ob es in DE zulässig ist.

Meine Frage zu diesem Modul bzw generell: Auf welche Stelle genau kann ich die Laufzeit ermitteln und wie lang ist diese ca.?

Problem ist folgendes: Zeitmessung an zwei verschiedenen Orten, wobei die Uhr an einem Arduino durch den zweiten ausgelöst wird, gestoppt wird sie durch den ersten Arduino.

Gruß, Golfer86

Anders gefragt wie genau muß die Zeitmessung denn sein?

hundetstel, tausendstel?

Am einfachsten sind 2 genau synchronlaufende Uhren und Du übermittelst nur die Startzeit. Ich kann Dir aber Lösung dieses Problems meines Vorrschlags geben.

Grüße Uwe

Nur mal so: zwei wirklich synchron laufende Uhren hinzubekommen ist gar nicht so leicht. Der wirklich gute DS3232 hat eine Abweichung von ~2ppm. Nach 10 00s (also weniger als 20 Minuten) sind die Uhren dann schon bis zu 4ms auseinander. Nach 10 000s (also weniger als 3h) sind die Uhren dann schon bis zu 40ms auseinander.

Wenn man sich auf die Quarze verlässt muß man mit bis 100ppm Abweichung leben. Das können nach 1000s (also weniger als 20 Minuten) dann schon 0,2 Sekunden sein. Wenn man nur einen Resonator hat (wie einige der neueren Arduinos) sieht es noch schlimmer aus.

Uhren mit DCF77 zu synchronisieren ist auch nicht trivial weil die billig verfügbaren Empfänger eine Bandbreite <300 Hz haben, oft deutlich weniger. Weiterhin ist das Signal oft verrauscht. Millisekundengenauigkeit ist zwar trotzdem machbar aber einfach ist anders.

GPS ist auch keine saubere Lösung, außer man nimmt “Timekeeping GPS”. Bei allen anderen hat man im Zweifelsfall Phasenjitter und unerwünschte Latenzen. Auf jeden Fall ist GPS teuer.

Sync per Funk ist auch nicht ohne weil man die Latenzen berücksichtigen muß. Speziell bei WLAN ist relativ schnell auch mal >100ms drin. XBee kenne ich mich nicht aus, aber ohne Messung würde ich mich auf sowas auch nicht verlassen. Interessant ist vor allem die Frage wie die Latenzen bei schwächeren Signalen aussehen (d.h. falls die Übertragungsraten abgesenkt werden müssen oder Fehlerkorrektur notwendig wird).

Um zu entscheiden welche Optionen geeignet sind müsste zuwerst der Anwendungsfall genau verstanden sein. Was soll gemessen werden und wie genau muß die Messung sein? Und wie sicher muß die “Auslösung” erkannt werden?

XBee haben 2 Ansteuerungsmöglichkeiten: Als serielle Verbindung: Da dort Fehlerkorrektur betrieben wird und Pakete wiederholt gesendet werden, ist die Latenzzeit unbestimmbar. Direkte Port Ansteuerung: hab ich noch nie gemacht. Aber ich gleube auch dort gibt es ein Übertragungsprotokoll mit Fehlerkorrektur.

Grüße Uwe

Ich hatte mir auch zwei syncrone Uhren überlegt, jedoch müssen die ja auch erst einmal synchronisiert werden, am besten anfangs durch eine direkte Kabelverbindung. Bei den DS3232 kann ich ja z.B. den Takt bis auf 32 kHz setzen und mir ausgeben lassen, die synchronisation erscheint mir aber ziemlich umständlich.

Deshalb hab ich mir überlegt es wäre einfacher die Laufzeit zu ermitteln (z.B. Ping, wobei ich jedoch ja dann Hin- und Rückweg habe). Dann bräuchte ich auch nur ein DS3232 Modul. Die Genauigkeit sollte bei ca. 1 ms liegen, wobei ein Zeitraum von 500 ms - 10 000 ms gemessen werden soll. Die Auslösung sollte möglichst zu 100 % erkannt werden, sofern dass nicht der Fall ist, sollte ein Fehlersignal kommen.

XBee sollte nur die letzte Lösung sein (Preis), danke schon einma für die velen Antworten.

Was hast du für eine Lösung @uwefed?

Ich habe keine konkrete Lösung. War ein bißchen Brainstorming. Am ehesten kann ich mit Funkmodule im 315/433/868 Band vorstellen. Amplitudenmoduliert. Grüße Uwe

433 bzw. 868 MHz Module habe ich bei Conrad beisielsweise gesehen, jedoch meist mit einer maximalen Reichweite von 200 m. Klar könnte man die sicher erhöhen mit geeigneten Antennen, jedoch wollte ich möglichst ein fertiges Modul haben. Außerdem habe ich noch kein Projekt gefunden, welches sich mit der Ansteuerung eines solchen Moduls beschäftigt - für XBee bzw. die Nordic Module gibt es sehr viele Informationen in Verbindung mit Arduino.

Das RFM12BP (z.B. http://www.pollin.de/shop/dt/NDg4OTgxOTk-/Bausaetze_Module/Module/Funkmodul_RFM12BP_433_Sende_Empfangsmodul.html) wäre noch eine Alternative, jedoch habe ich nichts über die Ansteuerung mit einem Arduino gefunden.

Mir ist klar, dass ich Einige Messreihen durchführen muss über die Latenzzeiten, aber es hätte ja sein können dass es noch weitere Ideen bzw. Projekte gibt, die sich damit schon einmal auseinandergesetzt haben. Wichtig wäre eine zumindest berechenbare Latenz.

Hast schon mal nach "virtual wire" gesucht?

Hallo, hab eine Idee , weiß aber nicht ob dir das etwas bringt: Wenn du dir Irgenwie einen Verstärker bastelst könntest du auch mit Infrarotdioden arbeite. Ich versuche derzeit eine Verbindung von einem Arduino und einer Fernbediung herzustellen. Vorteil ist natürlich der günstige Preis( > 3€ für Empfänger und Sendediode). Musst nur aufpassen nicht parallel zu senden, da sonst leicht störsignale entstehen können. Ohne Verstärker werden die 400m allerdings nicht klappen. Die passende Libary gibt es hier: https://github.com/shirriff/Arduino-IRremote

Addi

hi,

nur mal so dahergesagt: starke laserpointer (gibt’s bei uns beim chinesen, der im lokal auch die kopierten dvds verkauft). ich hab’ bei tageslicht in einer halle (viele oberlichter) auf 200m sehr deutlich einen kreis mit etwa 5-7cm durchmesser. wenn Du dann einen sensor nimmst, ist das sicher eindeutig.

gruß stefan

Infrarot bzw. Licht hatte ich mir auch schon überlegt, aber ich habe nicht immer eine Sichtverbindung... Außerdem soll das Gerät mobil sein, es müsste also jedes Mal ausgerichtet werden, was mir zu viel Aufwand ist.

Trotzdem, ist diese Reichweite ohne Laser günstig realisierbar? Ich denke mal wenn man nich zu stark bündelt wäre die Ausrichtung weniger tragisch.

Laser scheidet aus weil die Empfänger und Sender in sichtweite sein müssen und genau aufeinander ausgerichtet sein müssen. da ist nichts mit in der Hand halten oder auf dem Tisch stehen haben. Stative mit viel Gewicht und Umzäunung.
Infrarot: vergiß es, Da brauchst Du zuviel Sendeleistung. Bei einemit 38KHz getakteten Sender und einem Empfänger mit Demodulation weißt Du auch nicht die genaue Latenzzeit.
Grüße Uwe

hi,

keine sichtverbindung wußte ich nicht. ich dachte, es geht um eine messung auf der geraden (geschwindigkeit). das mit dem ausrichten seh' ich nicht so eng. bei 400m gibt das einen kreis von 20cm, wenn man einen weißen karton um den empfänger anbringt, kann man das vom laser aus machen. ein kleines tischstativ müßte reichen. vor allem gäbe es keine latenz...

gruß stefan

Ich würde gern vom Laser erstmal Abstand nehmen, da die ganze Sache nicht fest verankert ist kann ja bei kleinsten Windhauch der Empfang unterbrochen werden, wenn der Sender wackelt. Außerdem habe ich keinen direkten Sichtkontakt.

Gruß, Golfer86