EV3 Betriebsystem leJOS

Hier zeige ich euch, wie ihr ein Image auf einer SDCard erzeugt, damit der EV3-Brick das neue Betriebsystem leJOS startet.

Um den Lego-EV3-Brick mit Java programmieren zu können, benötigt der Brick ein neues Betriebssystem und einer passenden Java-Runtime-Unterstützung.

Damit der Lego-Brick ein neues Betriebssystem startet, muss ein passendes Betriebssystem auf eine handelsübliche micro SDCard kopiert und in den dafür vorgesehenen Slot des Bricks gesteckt werden. Nach dem Einschalten startet der Brick nun, anstatt des Lego-Betriebsystems das Betriebsystem auf der eingesteckten SDCard.

Ein Betriebssystem für den EV3 mit Java-Unterstützung ist z.B. leJOS:

  • leJOS basiert auf Linux
  • Unterstützt eine spezielle JAVA-Runtime von Oracle
  • Enthält Application-Interface (API) in Form von Java-Klassen in einem JAR-Package
  • Funktionen können direkt per Remote-Call aufgerufen werden
  • Es gibt weitere Tools, wie z.B. eine Roboter-Simulation oder erweiterte Klassen

Erzeugen des SDCard-Images

Als erstes solltet ihr euch das Image mit dem neuen Betriebsystem für den EV3 auf einer SDCard erzeugen. Von dieser SDCard startet dann der EV3 das neue Betriebsystem zur JAVA-Programmierung.

Dazu benötigt ihr zuerst die aktuelle Version von leJOS, die ihr euch hier herunterladen könnt: Betriebssystem leJOS (beim Erstellen dieses Beitrags war das die Version 0.9.1 beta).

Die heruntergeladene Datei (leJOS_EV3_0.9.1-beta.tar.gz) müsst ihr in ein beliebiges Verzeichnis entpacken.

Inhalt des leJOS-Archivs

leJOS-Archiv entpackt

Im Verzeichnis ist unter anderem folgendes zu finden:

  • samples.zip: Beispiele für die Programmierung in JAVA mir der API
  • docs: Verzeichnis mit der Dokumentation der leJOS JAVA-API
  • lib: Verzeichnis mit den Java-Klassen-Binaries und Quell-Texten
  • sd500.zip: Image mit einer leeren FAT32-Partition
  • lejosimage.zip: Archiv mit den Dateien zum Erzeugen der SDCard

Als nächstes solltet ihr eure SDCard vorbereiten. Falls die SD Karte noch nicht im Format FAT32 vorliegt, müsst ihr sie mit einem passenden Tool im Format FAT32 formatieren.  Auf meinem iMAC habe ich als Tool dazu den SDFormater für OS/X verwendet: SDCard-Formatter

Alternativ, könnt ihr mit einem Image-Writer auch die im leJOS-Archiv enthaltene IMG-Datei sd500.zip auf die SDKarte schreiben. Dieses Image enthält eine leere Partition im FAT32-Format. Unter OS/X auf meinem iMAC habe ich dafür den ApplePi-Baker verwendet: ApplePi-Baker

Das Archiv lejosimage.zip enthält alle benötigten Daten, zum Erstellen einer bootfähigen SDCard. Dieses Archiv müsst ihr wieder in ein beliebiges Verzeichnis entpacken und dann in das Root-Verzeichnis der frisch formatierten SDCard kopieren. Das Root-Verzeichnis der SDCard sollte danach diese Dateien und Verzeichnisse enthalten:

SDCard-Root-Verzeichnis

Root-Verzeichnis der SDCard

Zu guter Letzt benötigt ihr noch das von leJOS benötigte spezielle Java JDK. leJOS in der Version 0.9.1 benötigt eine JAVA 7 – Version. Mit JAVA 8 funktioniert diese Version noch nicht. Die passende Java-Version könnt ihr euch von der Oracle-Hompage herunterladen: JAVA SE Embedded.

Die heruntergeladene JAVA-Version kopiert ihr einfach ebenfalls in das Root-Verzeichnis der SDCard. Dann sollte euer Root-Verzeichnis so oder so ähnlich anschauen:

Root-Verzeichnis der SDCard mit JAVA

SDCard mit JAVA

Jetzt könnt ihr die fertige SDCard in den Slot des EV3-Bricks stecken und den EV3 einschalten. Ist alles ok, startet der EV3-Brick nicht mehr das Lego-Betriebssystem, sondern das neue leJOS.

SDCard-Slot am EV3-Brick

SDCard-Slot des EV3

Beim ersten Start, konfiguriert und partitioniert leJOS die SDCard automatisch im richtigen, für Linux benötigten Format und konfiguriert das Betriebsystem. Die verschiedenen Schritte werden im Display des EV3-Bricks  ausgegeben. Der erste Start, kann zwischen 10 – 20 min dauern, je nachdem wie schnell eure SDCard ist.

Der Installations-Schritt Installing root fs hat bei mir am längsten gedauert. Der kleine Balken links, sollte sich dabei ab und zu bewegen. Die weiteren Starts sind danach natürlich wesentlich schneller.

Also nicht ungeduldig werden.

Installation von leJOS beim ersten Start

Erster Start von leJOS

Alternatives Image für leJOS

Auf der Seite von Dr. Aegidius Pluess (www.aplu.ch) gibt es viele coole Java – Projekte u.a. auch für Lego Mindstorm. Hier findet ihr auch das Projekt EV3JLIB. Bei diesem Projekt handelt es sich um zusätzliche Bibliotheken mit Java-Klassen, basierend auf leJOS.

Die in der Erweiterung EV3JLIB enthaltenen Klassen vereinfachen die Steuerung des EV3-Roboters noch mal und ermöglichen sowohl autonome EV3-Programme (laufen autark auf dem EV3 ohne Hostrechner) als auch eine direkte Steuerung der EV3-Programme über einen TCP-Socket-Listener.

Auf diese Erweiterung gehe ich später noch genauer ein. Zusätzlich gibt es auf dieser Seite jedoch auch ein komplettes SDCard-Image mit leJOS 0.9.1, JAVA-Runtime, den erweiterten Bibliotheken EV3JLIB und dem TCP-Socket-Listener zur Remote-Steuerung des EV3.

Wie Ihr eine SD-Karte mit dem Image erstellen könnt, beschreibt diese Seite sehr gut: Dieses Image könnt ihr euch hier runter laden (SD-Card erstellen). Das ZIP-File könnt ihr direkt mit einem SDCard-Tool auf eine SDCard schreiben. Eventuell müsst ihr das ZIP-File vorher entpacken (unter OS/X mit dem PiBaker-Tool war das nicht notwendig).

EV3SDCARD mit leJOS auf SDCard schreiben

EV3SDCARD.ZIP – Image

Nachdem ihr das Image auf die SDCard geschrieben habt, sollte wieder eine ähnliche Struktur wie bei der Verwendung der leJOS-Dateien vorhanden sein.

Datei-Struktur des ev3sdcard-Image nach dem Schreiben

Datei-Struktur des ev3sdcard-Image

Danach könnt ihr die SDCard in den Slot vom EV3-Brick schieben und es kann los gehen. Auch hier dauert der erste Start wieder etwas länger, da das Filesystem und Betriebsystem wieder konfiguriert werden müssen.

Weiter geht es mit der Installation und Konfiguration der Entwicklungsumgebung Eclipse.