PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wer hat Erfahrung mit XBee Modulen für Arduino?



HaWe
20.08.2015, 19:04
hallo,
was ich vorhabe:

ich suche für 2 Arduinos (1x DUE, 1x MEGA) XBee-Module, um eine Echtzeit-Fernsteuerung samt Daten-Rücksendung zu bauen.
Es muss also in 2 Richtungen (im Handshake) gesendet und empfangen werden können.
Die Datenübetragung soll in Byte-Arrays von jeweils 64 (oder evtl sogar 128 ) Bytes Bandbreite komplett quasi als Datensatz erfolgen.
Benutzt werden sollen in beiden Fällen Hardware-UART2 (RX2/TX2) mit ganz simplen Serial() Kommandos.

Nach Möglichkeit sollten es keine Shields sein, da diese oft die Pinheader komplett abdecken und feste Pins vorbelegen,
sondern besser Module mit Pinheadern, die ich in Breadboards stecken oder per Jumperkabel verkabeln kann .

Am besten wären vorkonfigurierte Module, die
- bereits auf einander fertig gepairt sind,
- und auch sonst so weit vorkonfiguriert, dass man sie nur verkabeln muss,
- Sketch mit lib #includen,
- und dann sofort per Serial von einem zum anderen Arduino (und dann wieder zurück) Daten versenden kann, so, als wären beide mit einem seriellen Kabel über RX2/TX2 verbunden.

Wer hat Erfahrung mit solchen Modulen, die vorab möglichst wenig Programmieraufwand erfordern (keine AT-Befehle, keine Hardware-programmiersoftware wie Digi XCTU etc.) ?

Mcgrizzly123
20.08.2015, 19:38
Hi

es muss nicht immer Xbee sein diese Module (http://planner.ardupilot.com/wiki/other-project-and-common-topics/common-optional-hardware/common-telemetry-landingpage/common-3dr-radio-version-2/#overview) sind den Xbee weit überlegen (besonders im Preis/Leistungsverhältnis).

Pairing passiert quasi automatisch, beide Module mit Strom versorgen, ein paar Sekunden warten, die grünen Leds leuchten dauerhaft -> Fertig.

Funktionieren wie ein Kabel: Tx vom DUE -> Rx Modul 1 --- Funk --- Modul 2 Tx -> Rx Mega und umgekehrt.

Es gibt zwei Varianten einmal Single (Halb-Duplex) d.h nur einer kann gleichzeitig senden oder Dual (Voll-Duplex) d.h beiden können gleichzeitig senden.
Datenrate: "Air data rates up to 250kbps"
Sehr hohe Reichweite, nutze die Module in meinem Quadrocopter für Steuerbefehl und zum Telemetrie DownLink.

Bekommt man günstig bei Ebay (http://www.ebay.de/itm/3DR-Radio-Telemetrie-Kit-433Mhz-Modul-Quadcopter-Multirotor-APM-2-5-2-5-2-DE-/181737330398?hash=item2a506396de). Sollte es auch einzeln oder zweimal ohne USB-Wandler geben.

HaWe
20.08.2015, 19:50
sieht wirklich sehr interessant aus, auch das Pairen und Verkabeln scheint ja sehr simpel zu sein... und wenn es sogar für einen Quadrocopter funktioniert - das wäre dann ja sogar für mein übernächstes Projekt geeignet! :)
Nur über die genaue Arduino-Anbindung habe ich jetzt noch nichts gefunden, mal gucken!
Danke aber auf jeden Fall schon mal!

( Auf den Quadrocopter komme ich noch mal zurück ! 8) )

ps,
für Voll-Duplex...: braucht man dann 2x RX/TX auf beiden Seiten?

pps
welches wäre hiervon deiner Meinung nach das geeignetste für Voll Duplex und für 2 Arduinos?
http://www.ebay.de/sch/i.html?_odkw=3DR+Radio+full&_osacat=0&_from=R40&_trksid=p2045573.m570.l1313.TR0.TRC0.H0.X3DR+Radio +-half.TRS0&_nkw=3DR+Radio+-half&_sacat=0

Mcgrizzly123
21.08.2015, 08:57
pps
welches wäre hiervon deiner Meinung nach das geeignetste für Voll Duplex und für 2 Arduinos?
http://www.ebay.de/sch/i.html?_odkw=...-half&_sacat=0

Ich konnte jetzt bei denen keins finden, wo Voll-Duplex dabei steht. Bei den meisten steht "Das Radio ist ein 2-Wege-Halbduplex-Funkkommunikationssystem" in Deutsch oder Englisch dabei oder eben garnichts darüber.


Ich hab mal nach Voll-Duplex gesucht und das hier (https://store.3drobotics.com/products/3dr-radio-set) gefunden, aber da steht "2-way full-duplex communication through adaptive TDM",
was ich glaube so viel bedeutet wie, dass Voll-Duplex über eine Halb-Duplex Verbindung Simuliert wird d.h. halbe Datenrate.

Die Frage ist ob man für das Projekt wirklich Voll-Duplex braucht oder ob es nicht reicht, dass nach jedem Steuerkommando quasi als Bestätigung ein Datenpakte mit den aktuellen Sensordaten zurückgeschickt wird.
Falls wirklich Voll-Duplex benötigt wird könnte man vielleicht (bin kein Funkexperte) zwei Module auf jeder Seite nehmen und sie auf einen anderen Frequenzbereich einstellen.
Dies ließe sich via AT Kommando bewerkstelligen:

Das sind die Konfigurationsparameter (für ein 915Mhz Modul):

S0: FORMAT=22
S1: SERIAL_SPEED=57
S2: AIR_SPEED=64
S3: NETID=25
S4: TXPOWER=20
S5: ECC=1
S6: MAVLINK=1
S7: OPPRESEND=1
S8: MIN_FREQ=915000
S9: MAX_FREQ=928000
S10: NUM_CHANNELS=50
S11: DUTY_CYCLE=100
S12: LBT_RSSI=0
S13: MANCHESTER=0
S14: RTSCTS=0
S15: MAX_WINDOW=131

Dann würde die Steuerseite z.B. den unteren Frequenzbereich bekommen und die Daten den oberen.

HaWe
21.08.2015, 09:56
es kann ruhig abwechselnd erfolgen, aber ich muss wenigstens abwechselnd erst Steuerbefehle von RC-> Robi senden und dan Daten von Robi->RC zurückerhalten, die dann auf der RC auf Display angezeigt werden (RC==Fernbedienung). Insgesamt muss dies ca. alle 50ms möglich sein.
kA ob man dazu halb- oder voll-duplex braucht.

mit dem Konfigurieren etc. kenne ich mich nicht aus, deshalb schrieb ich ja:

Am besten wären vorkonfigurierte Module, die
- bereits auf einander fertig gepairt sind,
- und auch sonst so weit vorkonfiguriert, dass man sie nur verkabeln muss,
- Sketch mit lib #includen,
- und dann sofort per Serial von einem zum anderen Arduino (und dann wieder zurück) Daten versenden kann, so, als wären beide mit einem seriellen Kabel über RX2/TX2 verbunden.

plug-and-play eben.

Mcgrizzly123
21.08.2015, 13:19
es kann ruhig abwechselnd erfolgen, aber ich muss wenigstens abwechselnd erst Steuerbefehle von RC-> Robi senden und dan Daten von Robi->RC zurückerhalten, die dann auf der RC auf Display angezeigt werden (RC==Fernbedienung). Insgesamt muss dies ca. alle 50ms möglich sein.

Ich würde sagen das sollte möglich sein(Also Halb-Duplex). Aber ob es jetzt 5 50 oder 200ms kann ich nicht sagen.

HaWe
21.08.2015, 14:21
200ms wäre deutlich zu langsam, aber 100$ für ein Paar sind ja auch nicht wirklich billig
https://store.3drobotics.com/products/3dr-radio-set

- sagtest du nicht, bei Ebay gibt's die billig?
Oder welcher deutsche Lieferant hat die billiger?
Die 3DR-Modul-Paare bei Ebay (meist aber 1x USB dabei, was ich nicht brauchen kann) kosten ja nur um die 20 EUR.
Und wie gesagt, fertig vorkonfugiert ist wichtig. ohne diese komischen AT-Dinger.

Mcgrizzly123
21.08.2015, 15:09
http://www.ebay.de/itm/433MHz-Telemetry-Air-Module-for-2-Way-Half-Duplex-Telemetry-System-3DR-Radio-ge-/281573567006?hash=item418f17aa1e

Wäre einzeln, kommt aber aus China (dauert ein 2-5 Wochen).

Hab aus China auch ein Voll_Duplex Modul (http://www.ebay.de/itm/V2-Dual-TTL-3DRobotics-433Mhz-3DR-Radio-433-Telemetry-Kit-for-Pixhawk-APM-/141694294945?hash=item20fda35ba1) gefunden (Version 2, da wäre der Vorteil wie man hier (http://planner.ardupilot.com/wiki/other-project-and-common-topics/common-optional-hardware/common-telemetry-landingpage/common-3dr-radio-version-2/#connecting_the_radios) sieht, dass beide Module sowohl USB als auch UART haben.

Und zu den AT Kommandos:
Es ist sehr einfach:
1. Einfach "AT" an das Modul senden (Antwortet mit "OK")
2. Dann das Kommando z.B. "ATI3" senden -> zeigt die Frequenz des Moduls an, in dem Fall 433Mhz
3. Um wieder in den normalen Modus zu kommen einfach "ATO" senden und fertig

HaWe
21.08.2015, 15:31
danke, scheint ja 1 Paar zu sein, allerdings die Kabel machen mir Sorgen (ich brauche ja nur Jumper-Kabel als Verbinder, es ist aber wieder USB dabei):


Package list:

- Module X 2pcs
- Antenna X 2pcs
- cables x 1 set
- plastic shell x 1set

aber
- was ist "Version 2" ?
- wie "sende ich AT an das Modul" ?
- und wo steht "voll duplex" ?

Mcgrizzly123
21.08.2015, 18:15
- was ist "Version 2" ?

Diese Version hat auf beiden Seiten sowohl USB als auch UART. D.h. Beide kann man direkt am Arduino anschließen.


wie "sende ich AT an das Modul" ?
Über UART, genauso wie man Daten sendet über Tx, Rx.


und wo steht "voll duplex" ?
Dual - Voll-Duplex , Singel - Halb-Duplex

HaWe
21.08.2015, 18:37
aaaha.
und du meinst, das klappt 100%ig?
bisher habe ich noch nie - aber wirklich: noch nie! - Hardware auf Arduinos zum Laufen gekriegt (schon gar nicht mit dem 3.3V/5V Signal-Level-problem von AVR und DUE), wenn es nicht von vornherein fix und fertig vorkonfiguriert war und sofort auch die passenden libs mitgeliefert wurden. Weder Displays, noch die Pixy Cam, noch den MPU-6050, noch Bluetooth, noch WiFi. Zum low level Hardware programmieren bin ich wirklich nicht in der Lage.
Daher sollte eigentlich auch diesmal alles alles fix und fertig sein, und daher will ich auch keine AT Befehle verwenden müssen.
Einstecken, ein paar Kabel stecken, libs #includen, Serial-Befehle versenden so wie hier, nur dann automatisch eben kabellos per XBee oder 3d-Radio:


void setup()
{
// start serial port at 9600 bps:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}

pinMode(2, INPUT); // digital sensor is on digital pin 2
establishContact(); // send a byte to establish contact until receiver responds
}

void loop()
{
// if we get a valid byte, read analog ins:
if (Serial.available() > 0) {
// get incoming byte:
inByte = Serial.read();
// read first analog input, divide by 4 to make the range 0-255:
firstSensor = analogRead(A0) / 4;
// delay 10ms to let the ADC recover:
delay(10);
// read second analog input, divide by 4 to make the range 0-255:
secondSensor = analogRead(1) / 4;
// read switch, map it to 0 or 255L
thirdSensor = map(digitalRead(2), 0, 1, 0, 255);
// send sensor values:
Serial.write(firstSensor);
Serial.write(secondSensor);
Serial.write(thirdSensor);
}
}

void establishContact() {
while (Serial.available() <= 0) {
Serial.print('A'); // send a capital A
delay(300);
}
}

Mcgrizzly123
21.08.2015, 20:18
aaaha.
und du meinst, das klappt 100%ig?

Ich kann nur sagen wenn die Module ankommen, einfach anschließen und was man an einem Ende sendet kommt am Anderen aus. Zu Verzögerungen und Sonstigem kann ich keine Werte nennen und will mich auch nicht festlegen. Keine AT Konfiguration nötig. Baud ist glaub ich 57600.

HaWe
22.08.2015, 13:11
Ich kann nur sagen wenn die Module ankommen, einfach anschließen und was man an einem Ende sendet kommt am Anderen aus... Keine AT Konfiguration nötig. Baud ist glaub ich 57600.
das klingt doch schon mal sehr gut.
Ich hab den Anbieter des Pärchens mal angeschrieben, wenn ich ein 2. UART Kabel zusätzlich bekommen kann, bestelle ich's (hoffemtlich klappt das mit den 5V beim mega und den 3.3V beim Due...) :)

HaWe
23.08.2015, 16:42
nee, machen sie nicht mit dem 2. UART Kabel, und wegen der ungekläreten 3.3V / 5V-pegel-Sache konnten sie mir auch nicht helfen. Dann fällt die Sache leider ins Wasser.

HaWe
24.08.2015, 13:45
vllt kennt sonst jemand Xbee oder 3DR Module, die 100% für Arduino-Gebrauch (3.3V + 5V level kompatibel) vorgesehen sind?

HaWe
03.09.2015, 13:57
habe jetzt dies hier entdeckt und soeben bestellt - bin ja sehr gespannt!

http://www.ebay.de/itm/281508397832

HaWe
28.09.2015, 08:30
update:
bestellt, geliefert, angeschlossen, Test-Sketch hochgeladen, funktioniert nicht.
noch mal Testcode per direkter serieller Kabel-Verbindung übeprüft: ok
dann wieder and die Module angeschlossen, richtige Verkabelung und baud-Rate übeprüft: nix.
Händler konnte auch nicht weiterhelfen.
Rückabwicklung, Geld zurück. :(

Mist mal wieder, wirklich nix funktioniert mit dem Arduino-China-Zubehör auf Anhieb.
Gäbs doch nur mal endlich was übeprüft+ getestetes auch von einem deutschen Händler (oder wenigstens EU), dann zahl ich gerne auch ein paar euros mehr.

HaWe
30.09.2015, 18:54
kennt hier tatsächlich NIEMAND ein tatsächlich verfügbares Produkt, das (falls überhaupt nötig) auch libs für Arduino Sketch mitliefert?
XBee oder 3DR Radio, egal, oder eben was anderes.
Haupsache, es funktioniert auch mit Standard UART (Serial()), indem man einfach die RxTx Kabel auf jeder Arduino-Seite damit verbindet.
Fertig.
Abwechselndes Senden und Empfangen auf jeder Seite (half-duplex). Mindestens 38400 baud, besser mehr.
Kurze Umschaltzeiten < 50ms.

Damit es eben genau so funktioniert wie Kabel-UART per Arduino Serial.

Kann doch nicht sein, dass ich der erste bin, der sowas sucht und es noch niemand vor mir gefunden haben sollte - im größten Roboterforum Deutschlands... :-/

Rabenauge
01.10.2015, 11:11
Es gibt keine Module, die ihren benötigten Code selber schreiben, fürchte ich....

HaWe
01.10.2015, 15:36
was bitte?? Module, die selber schreiben??

morob
01.10.2015, 15:54
welche reichweite wird benötigt?

HaWe
01.10.2015, 19:44
für den Augenblick nur bis etwa 20m, letztendlich aber auch für Flugmodell-Fernsteuerung, also ein paar hundert Meter.
Und wie gesagt, das Serial-Übertragungsprotokoll funktioniert per RxTx-Kabel, sogar mit Absicherung Übertragungsfehler und -Unterbrechung.
Statt der Kabel soll jetzt die Wireless-Einheit dazwischen.

morob
02.10.2015, 07:52
dann schau dir mal das hier an
http://www.rev-ed.co.uk/docs/RFA021.pdf
kann man in uk beziehen.

HaWe
02.10.2015, 12:25
danke für den Tipp!

2x ERF wäre dann wohl, was ich bräuchte?
oder eher 2x XRF ?

morob
02.10.2015, 12:36
aus dem bauch heraus wurde ich sagen erf, es sei denn du hast schon eine xbee schnittstelle irgendwo.

HaWe
02.10.2015, 14:37
danke, dann werde ich mal anfangen, Händler zu suchen!

- - - Aktualisiert - - -

gerade fündig geworden bei Ebay:
http://www.ebay.de/itm/ERF-0-1-pin-spaced-radio-module-by-Ciseco-/221888905910?hash=item33a99c02b6
davon dann 2 Stück.

jetzt nur noch 1 Frage, bevor ich später nicht weiß wie's weitergeht...

wie werden die 2 ERF Module miteinander gepairt? Darüber habe ich noch nichts gefunden...

HaWe
05.10.2015, 15:07
auch der Lieferant schweigt sich darüber aus. Scheint also auch eher ein Teil für Freaks zu sein, nicht für Endverbraucher, genau wie mit den 3DR-Modulen. Ärgerlich, dass es da nichts wirklich fertiges gibt, das nach Einstecken auch gleich funktioniert.

Unregistriert
06.10.2015, 06:57
Guten Morgen, ich war ein paar Tage an der Ostsee für das andere Hobby :D
Ich besuche die Frage die Woche zu klären.

Gruß
Morob

WL
06.10.2015, 11:19
.......
2x ERF wäre dann wohl, was ich bräuchte?
oder eher 2x XRF ?

Ich habe seit über 1 Jahr 2 XRF-Module im Einsatz.
Auspacken, einstecken, ...läuft!:)

morob
06.10.2015, 11:43
wenn er einen xbee steckplatz hat, ansonsten erf.

HaWe
06.10.2015, 14:52
@WL:
ok, was mit XBee habe ich nicht.

Aber wenn man nur auspacken + einschalten muss: wie erkennen sich die Teile dann?
Woher weiß der Empfänger, dass die Signale vom "richtigen" Sender kommen - und nicht etwa von der Fernsteuerung des Nachbarn?
Mit vorherigem Pairen würde ich das verstehen - aber ohne das ist mir die Sache spätestens bei Flugmodellen etwas heikel!
Oder wie läuft das hier genau?

Und die nächste Frage: Funktioniert auch hin- und her senden wie per Serial (half-duplex, abwechselnd: Fernsteuersignale in die eine Richtung, dann Telemetriedaten wieder zurück) ?

WL
06.10.2015, 15:55
@WL:
ok, was mit XBee habe ich nicht.

Aber wenn man nur auspacken + einschalten muss: wie erkennen sich die Teile dann?
Woher weiß der Empfänger, dass die Signale vom "richtigen" Sender kommen - und nicht etwa von der Fernsteuerung des Nachbarn?
Mit vorherigem Pairen würde ich das verstehen - aber ohne das ist mir die Sache spätestens bei Flugmodellen etwas heikel!
Oder wie läuft das hier genau?

Und die nächste Frage: Funktioniert auch hin- und her senden wie per Serial (half-duplex, abwechselnd: Fernsteuersignale in die eine Richtung, dann Telemetriedaten wieder zurück) ?

Ich benutze die Teile auch bidirektional. Das ganze erscheint wie eine normale serielle (Kabel)-Verbindung.
Ob sich die Teile mit Fernsteuerungen nicht vertragen kann ich nicht sagen.

Du kannst bestimmt besser Englisch als ich......
Schau mal hier:

http://www.exp-tech.de/xrf-wireless-rf-radio-uart-rs232-serial-data-module-xbee-shape


(http://www.exp-tech.de/xrf-wireless-rf-radio-uart-rs232-serial-data-module-xbee-shape)

HaWe
06.10.2015, 16:41
mit "Fernsteuerung" meinte ich genau diese Teile, wenn mein(e) Nachbar(n) die gleichen benutz(t/en).
Oder wenn ich selber mit 2x2 Paaren 2 verschiedene Modelle mit ganz verschiedenen Funktionen steuern will.
Mir fehlt das Verständnis, wie ich meinen beiden klar machen soll, dass sie ausschließlich aufeinander hören sollen, wenn sie nicht gepairt werden können.
Aus dem Link werde ich auch nicht schlauer, ich bin kein Techniker und Technik-Deutsch verstehe ich schon schlecht, und Technik-Englisch noch schlechter ;)

morob
07.10.2015, 08:22
http://www.kriwanek.de/homeautomation/ciseco-funkmodule/ciseco-xrf/477-ciseco-xrf-fuer-die-homeautomation-2-0-konfigurieren.html
guck dir das mal an.

HaWe
07.10.2015, 12:36
ogottogottogott...
was ist denn daran "auspacken und anschließen und loslegen" ...? ;)

morob
07.10.2015, 12:46
du kannst auch einfach auspacken und loslegen wie es aussieht, aber man kann mit hilfe der software alles einstellen so das sich auch noch andere paare finden :D

HaWe
07.10.2015, 14:59
verstehe ich nicht - ich will doch nichts anderes finden, im Gegenteil! ich will genau 2 miteinander pairen, sodass nur sie zusammen funktionieren und kein anderer dazwischenfunken kann.

Darüberhinaus muss ich aber tatsächlich auf eine andere Baudrate einstellen (38400 oder 115200, mal sehen) - wenn ich mir aber dieses "Tool" anschaue, werde ich völlig konfus.

Warum kann man das baudrate-setzen nicht einfach von der Arduino-IDE aus machen?
Konfigurationsmodus einschalten (irgendeinen pin auf High oder low) und dann sowas wie
"Serial.setBaudrate(115200);"
Aber ich fang doch nicht erst an mit irgendwelchen XBeeshield-Sockeln die ich dazukaufen muss und Hilfsprogrammen !
ogottogottogott...

morob
07.10.2015, 15:16
http://openmicros.org/index.php/articles/88-ciseco-product-documentation/260-srf-configuration
die seite versuche ich gerade zu verstehen :D

... XBeeshield ... brauchst du nicht die xbee teile sind genausso wie die erf

WL
07.10.2015, 15:54
Aber ich fang doch nicht erst an mit irgendwelchen XBeeshield-Sockeln die ich dazukaufen muss und Hilfsprogrammen !
ogottogottogott...

Ich möchte gern Auto fahren.............
...........aber den Führerschein mache ich nicht!

Mein Ratschlag:
Vergiß die Sache. Das Leben ist auch ohne Technik schön.............;)

HaWe
07.10.2015, 19:17
ich sehe Programmieren allgemein durchaus wie Schachspielen.
Ich kann einigermaßen schachspielen, und sogar auch ein Schachprogramm schreiben, aber ich kann kein Schachbrett herstellen, und keine Figuren schnitzen, und auch keine Schachuhr bauen.

Auch das Auto ist ein gutes Beispiel:
Ich kann ja durchaus in Standard (ANSI) C programmieren, das ist mein "Standard-PKW-Führerschein".
Auch zum Autofahren muss ich aber nicht die Sicherheitsgurte einbauen und die Autoelektrik zusammenbauen und auch nicht die Autoelektronik samt Zündung, Radio und ABS programmieren, bevor ich losfahren kann.

Daher muss ich erwarten können, daß ich mit einem gekauften Schachspiel auch sofort spielen kann ohne erst noch die Figuren zurechtzuschnitzen und die Quadrate auf dem Brett verlegen und alles noch bemalen zu müssen - und wenn ich ein neues Auto kaufe, muss ich mich auch reinsetzen und losfahren können, wenn ich es beim Händler abhole. So einfach ist das.

Und genau deshalb habe ich nach einem Teil gesucht, dass man nur auspacken und anschließen muss, um dann sofort loszulegen. Aber nicht solche beknackten Tools noch brauche, die erst noch ein halbes Jahr Vorarbeiten in Anspruch nehmen.