Lego Mindstorms NXT unter Linux graphisch programmieren

Hallo Liste!

Wir haben noch eine Anzahl Lego Mindstorms NXT rumliegen, die seit unserem Umstieg auf All-Linux nur noch rumliegen. Hat jemand Erfahrungen, Ideen und Hinweise auf den möglichen Einsatz unter Linux der Dinger?

  • Ich habe unter Lego Mindstorm EV3 unter Linux / Wine / Leoclient ?!? gesehen, dass es grundsätzlich mit einer VM geht.

  • Ich habe tuxminds gefunden, aber es kompiliert unter 16.04 oder 18.04 nicht mehr und die Debs sind uralt und nur 32bit. Ansonsten wäre das genau das, was ich suche.

-LeJOS habe ich auch gesehen, ich will aber etwas graphisches.

-Irgendwie geht es auch mit Scratch (2??), aber scratch geht ja unter Linux kaum noch.

Kennt jemand noch etwas? Nutzt jemand noch etwas? Je einfacher für die SuS, um so besser.

Gruß
Frithjof

Hallo Frithjof,

schau Dir mal Open Roberta an, das läuft im Browser. Man muss für die EV3s einen USB-Treiber installieren, den gibt es aber für Linux.

Beste Grüße

Jörg

Hallo Jörg!

Danke, das kannte ich noch nicht. Ich hatte immer übersehen, dass OpenRoberta auch mit NXT reden kann.

Hallo,
wir verwenden auch Open Roberta für die NXTs. Ich habe es im Netzwerk unter Linux mit unserem alten System aber nicht zum Laufen bekommen, will es nächste Woche dann auch mit Linuxmuster probieren.

Das Problem:

  • Open Roberta braucht Zugriff aufs Internet, man kann aber keinen Proxy-Server einstellen
  • die Linux-Installationsroutine legt eine Gruppe „lego“ an und fürgt den NUtzer, der das Skript aufgerufen hat, zur Gruppe lego und zur Gruppe dialout hinzu

Letzteres nützt einem nichts, wenn man in einem Netzwerk ist, man möchte ja nicht händisch jeden Nutzer zu diesen Gruppen hinzufügen.

Hat jemand eine Idee, wie man (möglichst einfach und effektiv) alle Nutzer zu diesen Gruppen hinzufügt? (Wir nutzen Version 7 von Linuxmuster)

Vom didaktischen her finde ich Open Roberta super. Die Verwendung mit dem USB Treiber ist aber, auch unter Windows, immer etwas frickelig.

Hallo,

auf dem Client kann in der /etc/security/groups festgelegt werden, in welchen Gruppen die Netzwerkuser landen. In der ersten Zeile muss dann eben noch dialout und lego hinzugefügt werden.

VG

Das ist sehr hilfreich, danke!

Auf meinem System gibt es allerdings diese Datei nicht. Ist das ein Fehler in meiner Installation? Sollte da nicht wenigstens „users“ drinstehen? Könntest Du bitte nochmal schauen, ob die Datei wirklich exakt so heißt?

Dank + Gruß, Andreas

Edit: Ich verwende Linuxmuster 7, vielleicht liegt es daran?

Hallo Frithjof,

mit „irgendwie mit Scratch“ meinst Du vermutlich Enchanting. Dafür gibt es ein deb, welches ich in meinem KDE Neon 5.16.4 (auf der Basis von Ubuntu 18.04) gerade ohne Probleme installieren konnte.
http://enchanting.robotclub.ab.ca/tiki-index.php
Scratch 1.4 und OpenJDK waren bei mir allerdings bereits vorher installiert.

Im Moment habe ich leider keinen NXT zur Hand, um die aktuelle Installation zu testen, kann Dir aber versichern, das Enchanting mit HULC funktioniert hat :wink:
https://wiki.linuxmuster.net/community/anwenderwiki:linuxclient:kubuntu

In Windows 10 läuft es jedenfalls problemlos und das Flashen des NXT wird dort sogar automatisch vorgeschlagen, wenn Du einen NXT anschließt.

give it a try?

Gruß Jürgen

Ich habe zwei Jahre Robotik mit Enchanting gemacht. Ich finde den Ansatz gut, aber Enchanting (das ja nicht mehr weiterentwickelt wird) hat leider viele Bugs.

Man merkt das schon daran, dass der Roboter unter Enchanting viel träger reagiert als unter Roberta.

Ein weiterer Nachteil ist das Flashen. Zu oft darf man das nicht machen, sonst geht das Flash-Rom kaputt.

Ein deutlicher Vorteil von Enchanting ist die USB-Verbindung, die viel weniger stressig ist als bei Roberta.

Ich bekomme gerade Roberta unter Linux gar nicht mehr zum Laufen. Früher (Version 0.9 oder so) war bei Roberta eine eigene Java-Umgebung dabei, mit der es funktionierte. JEtzt steht da nur der lapidare Hinweis, man solle ein 32 bit Java nehmen. Bei mir wird der nxt-usb-Treiber nicht geladen. Wenn jemand eine Idee hat (ich habe es auch auf einem Lokalen Ubuntu ohne Proxy probiert, daran liegt es nicht), wäre ich dankbar.

Hallo Andreas,

ich habe Roberta zwar noch nie benutzt, bin aber durch die Diskussion hier darauf aufmerksam geworden.

Beim weiteren recherchieren, habe ich diese Online-Version gefunden. Vielleicht ist das ja was für Dich?!
https://lab.open-roberta.org/

Gruß
Stefan

Hallo Stefan,
die online-Version alleine reicht nicht, man muss zusätzlich ein Programm installieren, das die usb-Verbindung herstellt, und das funktioniert unter Ubuntu 18.04 nicht. Das ist das Problem.

Hallo!
Ich habe viel probiert: Tuxminds, auch deren Boot-CD, lejos…
nichts hat funktioniert, Problem war am Ende immer die USB-Verbindung.
Ich hatte mit dem Tuxminds-Entwickler gemailt, auch bei lejos war ich in Kontakt, der letzte Tipp war dann: Einen anderen PC verwenden, weil zu neue PCs wohl USB-Probleme machen.

Ich verwende also (immer noch) die XP-VM mit dem originalen Mindstorms drauf. Ich finde die Programmierumgebung sehr unschön und unübersichtlich, trotzdem kann man damit programmmieren und die NXTs sind halt da, warum sollte ich die wegschmeißen?

LG
Max

Hallo zusammen

unter der 6.2 und Ubuntu 16.04 lief OpenRoberta einwandfrei. Vorher hatten wir mit dem usb-Anschluss unter lejos auch nur Schwierigkeiten.

In der letzten Ferienwoche werden wir auch testen wie das mit der V7 und Ubu 18.04 läuft.

Didaktisch ist OpenRoberta genial. Die SuS können auch zu Hause daran arbeiten und man erhält einen ersten Einblick in den Quellcode. Und man kann mit einer Oberfläche gemischte Hardware einsetzen.

Evtl ist ein Bluetooth-Dongle als Alternative zum USB-Kabel eine Option?

Grüße Rainer

Ich habe jetzt rausgefunden, warum es mit einem (aktuellen) Ubuntu 18.04 nicht geht.
Erstens ist die Doku veraltet, aber zweitens funktioniert der nxt nicht mit Kerneln neuer als 4.15 . Der 4.15 war bei der ersten 18.04 Release dabei, wurde aber später geupdatet.

Details hier:


(der letzte Post enthält eine Lösung).

Wenn es erst mal läuft ist m.E. von den grafischen Sachen Roberta am besten. Enchanting ist von der Progrmamoberfläche genauso gut, aber der Roboter wird nicht so gut angesteuert.

Für Fortgeschrittene ist das textuelle Programmieren der Roboter natürlich schön, da gibt es (auch für Linux) diverse nxc-Implementationen.

Also werde ich nun wohl extra für die Roboter noch ein eigenes Linux-Image mit einem alten Kernel basteln, seufz …

Immerhin fällt mir dann eigentlich nichts mehr ein, wofür wir Windows brauchen, ich hoffe, meine Kollegen sehen das auch so!

Ich habe jetzt OpenRoberta unter LinuxMint Tina 19.2 zum Laufen gebracht. Notwendig war die hier https://github.com/OpenRoberta/robertalab-usbprogram-nxt/issues/4 beschriebene Lösung: Letztlich eine neue Version des Programms.
Das Install-script ist jedoch sehr kreativ programmiert, man muss es aus dem Verzeichnis starten, in das die Programminstallation erfolgen soll, etwa von /opt.
Zusätzlich musste ich die Gruppe lego in die /etc/security/group.conf eintragen.

Vielen Dank allen hier Beteiligten, eure Hilfe hat die Roboter vor dem Elektroschrott bewahrt.

1 Like

Hallo frithjof,

was mich interessieren würde: Läuft das Programm bei Dir auch mit Netzwerknutzern?

Ich habe das Skript so geändert, dass in den udev-rules die „users“ gruppe die Rechte bekommt, da sind alle user drin. Aber zusätzlich müssen die Nutzer ja noch in die „dialout“ gruppe. Das Skript macht das ja nur für den Nutzer, der es aufruft. Hast Du das irgendwie hinbekommen, dass da auch die Netzwerknutzer drin sind?

Bei uns läuft Lego jetzt mit einem lokalen Nutzer und einer lokalen Roberta-Installation (letzteres, weil wir Robertalab hinter dem Proxy nicht erreichen), aber immerhin: Es läuft. Das Problem beschäftigt mich insgesamt nun schon seit 3 Jahren, seinerzeit hatten wir Robotik dann entnervt mit Windows gemacht. Issue 4 ist ja von mir, aber die Entwickler haben überhaupt nur reagiert, weil ich eine (recht verzweifelte) Mail ans Fraunhofer-Institut geschrieben habe, dass niemand sich auf Github rührt, und die haben dann wohl die Entwickler angestupst.

Ich habe es mit meinem Account, also als ldap-user der Gruppe teachers ausprobiert. Das hat funktioniert. Ist das deine Frage?

Ich nehme an, du meinst das Installscript. Meiner Meinung nach müssten zwei Wege funktionieren:
1.) Du baust die udev-Regeln des Installscripts so um, dass es eine Gruppe nutzt, in der alle Schülern und Lehrer sind.
2.) Du lässt die udev-Regeln wie sie sind und fügst die notwendigen Gruppen in /etc/security/group.conf auf dem Client ein.
Ich bin den zweiten Weg gegangen. Dort steht - ich glaube für die Arduino-IDE - auch die Dialout-Gruppe

Wenn ich das Installscipt anschaue, bestätigt das meine Meinung, dass die Fraunhofer-Institute auch gerne nur mit Wasser kochen. Am liebsten auch nur mit lauwarmen. Das was ich dort damals als stud. Mitarbeiter gesehen und auch selbst fabriziert habe, könnte jedenfalls wie dieses Installscript aussehen. :slight_smile:

Bist Du unter V6.2 oder V7 unterwegs? Ich bin mir nicht sicher, ob das mit /etc/security/group.conf bei dem V7 Client auch so ist, aber das wäre dann ja sehr einfach, Danke.

noch unter v6.2

Hallo Frithjof,

„Zusätzlich musste ich die Gruppe lego in die /etc/security/group.conf eintragen.“

könntest du die Syntax für diesen Eintrag hier mal posten … bei mit ist die Datei mit „#“ am Zeilenanfang völlig inaktiviert.

Grüße Rainer

hier: https://pastebin.com/YGaUu6EN
Ich musste Pastebin nehmen, weil die * weginterpretiert.

Gruß
Frithjof