Hallo zusammen,
ich möchte mehrere EV3 zusammenarbeiten lassen.
Wie geht das?
Wenn man die über WLAN/BT koppeln?
Und dann mit nur einem LabVIEW-Programm in einem Brick steuern?
Oder alle über ein externes Programm(Laptop) steuern?
Wie werden die dann angeschlossen?
Geht das nur mit LeJOS?
Welche Programmiersprachen gibt es dafür?
Grüße
Werner
Hallo zusammen,
ich mach' hier mal die Ingrid
Was ich inzwischen verstanden habe:
- Man kann bis zu vier EV3 koppeln, indem man sie über USB-Kabel
verbindet.
- einer davon ist der Master, nur in ihn wird ein Programm geladen
- leJOS ist ein BS für den EV3, das von einer SD-Card geladen wird
- Programmierung über Java unter Zuhilfenahme der leJOS-Bibliothek
(verfügbar z.b. über Roberta)
- Entwicklungsumgebung z.B. Eclispse
Soweit alles richtig?
Was ich nicht gefunden habe ist, ob leJOS auch die Kopplung der EV3 (daisy chainig) unterstützt, vermute aber ja, da Andreas Baumgart seinen Papercube so steuert.
Was mir dabei noch nicht klar ist: wie das Dashbord funktioniert, da müsste ja das Progamm auf dem Laptop/Raspberry Pi laufen?
Grüße
Werner
Hallo Werner,
da hast du dir sicher ein anspruchsvollen Projekt vorgenommen und es wird hier in diesem Formum wahrscheinlich nicht viele Leute geben, die dir da weiterhelfen können. Generell wirst du also in so einem komplexen Setup viel selbst ausprobieren müssen - und einiges wird wahrscheinlich auch nicht so funktionieren wie irgendwo versprochen...
Ich habe selbst meinen (einzigen) Mindstorm Brick (EV3) vor einiger Zeit auf leJOS umgerüstet, weil ich einfach mit grafischer Programmierung alla Labview nichts anfangen kann. Ich bin dabei nach der offiziellen Anleitung auf der leJOS Homepage vorgegangen und es hat soweit auch gut funktioniert. leJOS wird nicht auf auf eine SD Karte gespielt, sondern der interne Flash des Bricks wird überschrieben - man hat also keine originale Lego Software mehr drauf. Im Bedarfsfall soll es zwar möglich sein, den Originalzustand des Bricks wiederherzustellen, ausprobiert habe ich es aber nicht.
Wie du schon richtig angedeutet hast, ein unter leJOS laufender Brick wird in Java programmiert. Die gängigste Java-Entwicklungsumgebung ist Eclipse, die sehr mächtig und umsonst ist. Nahezu alle Beispiele / HowTos die ich gesehen habe gehen davon aus, das Eclipse benutzt wird, deshalb würde ich dir raten es auch zu tun.
Mit dem leJOS Plugin für Eclipse stehen dir dann für die verschiedenen Mindstorms-Komponenten Java-Klassen zur Verfügung. Der Programmcode wird im Eclipse kompiliert und dann über USB auf den Brick gespielt. Soweit hat es auch bei mir funktioniert. Da ich aber zur Zeit kein Mindstorms-Projekt mache, haben ich an dieser Stelle meine Experimente eingestellt.
Anstelle der USB-Verbing soll die Programmierung des leJOS Bricks auch über WLAN möglich sein. Dazu muss man ein WLAN-Modul in den SD-Card Slot des Bricks stecken. Ich habe mir zwar schon so ein Modul besorgt (ist gängig und kostet keine 10 EUR), es aber noch nicht ausprobiert. Ist natürlich praktisch, drahtlos die Software ändern zu können, wenn man den Brick fest verbaut hat.
Ich habe eben mal kurz die Daisy Chain Funktionalität (PAN genannt) von leJOS-Bricks quergelesen. Erst mal handelt es sich es um ein recht neues Feature, das erst ab Version 0.9.1 zur Verfügung steht. Wenn ich es richtig verstehe, bleibt jeder Brick für sich erst einmal eigenständig und hat muss auch sein eigenes Programm haben. PAN dient dazu, dass sich die einzelnen Bricks untereinander unterhalten können, und zwar via Bluetooth oder USB (kann sein das WLAN auch funktioniert, bin mir aber nicht sicher). Dazu wird ein Brick als Master (Access Point) definiert, die anderen als Client. Wenn ich es richtig verstanden habe, kann jeder Brick auf die freien Ressourcen eines anderen Bricks zugreifen - das geht sogar soweit, dass ein Brick auf einen anderen ein Programm laden und ausführen lassen kann. Grundsätzlich sah es recht einfach aus, wenn ich mir den Beispielcode anschaue.
Ich hoffe dir ein wenig damit geholfen zu haben.
Viele Grüsse
Lothar
Hallo Lothar,
vielen Dank für die ausführliche Antwort.
Einiges davon möchte ich doch nochmal hinterfragen:
naseneis hat geschrieben:
Hallo Werner,
ja, es gibt natürlich auch weitere textbasierte Programmierumgebungen als leJOS, soweit ich weiss wird das von dir genannte RobotC auch bei vielen offizielen Wettbewerben eingesetzt. Zum einen ist Java eine persönliche Präferenz (ich kann aber auch C, wäre daher kein Problem), zum anderen kostet RobotC Lizenzgebühr - und zwar pro Brick.
Mit der SD-Karte und dem USB Dongle könntest du recht haben, es ist schon eine Weile her, als ich das gemacht habe. Kann sein dass man nur Bricks ohne SD-Slot flashen muss. Ich bin auf jeden Fall nach dem Tutorial auf lejos.org vorgegangen, das ist die Homepage des Projekts.
Sobald du ein alternatives Betriebssystem installiert hast, ist es ganz uninteressant was Lego sagt. Weil dann ist der Mindstorm Brick nur noch die Hardware (vergleichbar mit einem Arduino), die Funktionalität wird von der neuen Umgebung bereitgestellt. Hier ist noch eine generelle Bemerkung zu alternativen Betriebssystemen angebracht: Es ist nicht gesagt, dass alle original Lego-Sensoren mit jedem alternativen Betriebssystem funktionieren, weil dazu immer erst Treiber für das jeweilige System geschrieben werden müssen. Das gilt erst recht für 3rd-Party Sensoren, wie die von HiTechnic! Das war für mich auch ein Grund pro leJOS - es ist weit verbreitet und wird auch aktiv gepflegt und entwickelt.
Zurück zum PAN: PAN funktioniert sowohl über als Kabel als auch über BT. Im Blog über dieses Thema findest du einen Performance Vergleich zwischen beiden Kopplungsarten. leJOS begrenzt PAN auch nicht auf 4 Bricks, warum auch? Java und Labview sind 2 vollkommen unterschiedliche Ansätze. Was genau geht und was nicht kann ich dir auch nicht sagen, ich habe auch keine 2 Bricks um es auszuprobieren.
Viele Grüsse
Lothar
Werner, noch eine Frage:
was für eine große Aufgabe hast du denn, dass du mehrere Mindstorms koppeln musst? Wenn du nur mehr Ports brauchst gibt es sicherlich auch Alternativen wie z.B. Porterweiterungen. leJOS unterstützt auch eine Zahl von IIC-Chips, damit kann man sicher auch was basteln.
Gruss
Lothar
Hallo Lothar,
naseneis hat geschrieben:
Hallo Lothar,
naseneis hat geschrieben:
Hallo Werner,
die leJOS homepage ist schon aktuell - die von dir gewünschte Anleitung gibt es in der Sektion EV3 -> Wiki -> Installing leJOS -> Windows Installation. Dort ist alles bebildert beschrieben. (FAT32 formatierte SD Karte, es gibt ein Utility, das dort die Oracle JRE und leJOS draufkopiert, dann ins Mindstorms und fertig)
Deine Aufgabe sollte damit lösbar sein, mehrdimensionale Arrays gibt es und auch die Motorports kannst du Remote ansprechen (siehe package lejos.remote.ev3 in der API Doku). Batterie wird kein Selbstläufer: Die Klasse RMIRemoteBattery stellt nur getVoltageMiliVolt() zur Verfügung, anhand dessen müsstest du die Restkapazität berechnen / abschätzen.
Auf jeden Fall eine interessante Aufgabe! Viel Spass damit!
Lothar
Hallo Lothar,
naseneis hat geschrieben:
Hallo zusammen,
hier ein kleiner Einblick ins Labor...
leJOS ist installiert, läuft und ist via WLAN (WiFi-Dongle im USB-Slot) mit der Entwicklungsumgebung Eclipse (hier:für Java) auf dem Rechner verbunden.
Mit einem Brick.
Die Original Mindstorms-FW auf dem Brick wird nicht verändert.
Mehrere (bis 16) werden unterstützt, das nennt sich PAN.
Die Seiten habe ich gelesen, aber keine Antwort auf meine zentrale Frage gefunden, vielleicht kann mir da jemand helfen.
Bei labVIEW ist es so, dass die vier Bricks via USB gekoppelt werden, aber das Programm läuft nur in einem Brick. Das wäre mir auch lieb.
Bei PAN handelt es sich vielleicht(?) um eine verteilte Anwendung, denn da steht immer, dass die Bricks untereinander kommunizieren.
Konkret: An Brick_A hängt ein Motor, an Brick_B ein Sensor dazu.
Wie spreche ich das an?
Und außerdem kann man wohl stattdessen die ominöse API nutzen, dann läuft das Programm nur auf dem PC, die Bricks senden und empfangen nur Kommandos und Zustände?
Ich habe keine Ahnung.
Grüße
Werner
Hallo Lothar,
naseneis hat geschrieben: