leJOS

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

leJOS ist ein Java-Betriebssystem für die programmierbaren Lego-Steine Lego Mindstorms RCX (leJOS RCX), NXT (leJOS NXJ) und EV3 (leJOS EV3). Diese Software erlaubt es, die Steuerung von Lego-Konstruktionen in Java zu programmieren. Dazu wurde ein Teil der Java Virtual Machine auf den RCX/NXT portiert.

leJOS wird als freie Software unter den Bedingungen der Mozilla Public License 1.0 (MPL) verbreitet.

Geschichte[Bearbeiten]

leJOS wurde ursprünglich unter dem Namen TinyVM von José Solórzano im Jahre 1999 entwickelt. Es begann als Hobby-Open-Source-Projekt und wurde erst später zu leJOS. Viele Mitwirkende traten dem Projekt bei und entwickelten wichtige Erweiterungen. Unter den Mitwirkenden befanden sich auch Brian Bagnall, Jürgen Stuber und Paul Andrews, welche später das Projekt übernahmen, nachdem Solórzano sich davon zurückgezogen hatte.

Anwendung[Bearbeiten]

leJOS wird oft zu Schulungszwecken, oder in der Informatiker-Ausbildung eingesetzt, um die Grundlagen der Programmierung in Java zu lehren. Unter Verwendung von leJOS wurde 2001 im Rahmen eines Wettbewerbs der autonome Roboter Jitter entwickelt, der daraufhin zur Weltraumstation ISS transportiert wurde. Unter den Bedingungen der Schwerelosigkeit ist Jitter in der Lage, sich eigenständig und zielgerichtet zu bewegen und herumvagabundierende Teile einzusammeln.[1]

Seit 2006 wird von leJOS auch Lego Mindstorms NXT unterstützt. Neben vielen neuen Merkmalen wird nun auch Bluetooth unterstützt.

Seit Herbst 2013 befindet sich eine Portierung auf die im Sommer 2013 erschienene Hardware-Generation Lego Mindstorms EV3 in Arbeit. Obwohl noch im Alpha-Stadium werden neben der neuen Hardware (Motoren, Sensoren) auch Bluetooth und WiFi unterstützt.

Programmierung[Bearbeiten]

Die Programmierung mit leJOS basiert auf Java. Dafür wird der verwendete RCX- bzw. NXT-Baustein mit einer angepassten JVM (Java Virtual Machine) geflasht. Danach können Programme mit Hilfe der mitgelieferten Tools auf den LEGO-Baustein geladen werden.

Beispiel (Hello World)[Bearbeiten]

Der folgende Beispielscode demonstriert die Programmierung anhand eines Hallo-Welt-Programms:

  import lejos.nxt.*;
  public class HelloWorld {
    public static void main (String[] args) {
      System.out.println("Hello World");
      Button.waitForAnyPress();
    }
  }

Mehrwert gegenüber der Lego-Software[Bearbeiten]

  • ausgefeilte Parallelverarbeitung durch Multithreading inklusive aller Java-Bordmittel (synchronize, das Paket java.util.concurrent)
  • einfache Möglichkeit, den Source-Code mit Versionskontroll-Systemen zu versionieren
  • Robotik-API: behavior-based robotic, Steuerungsmodelle für Lenk- und Kettenantriebs-Roboter, abstrakte Navigations-Klassen

Während sich die Original-Software von Lego an den Bedürfnissen von technisch interessierten Kindern und Jugendlichen orientiert, richtet sich leJOS eher an erwachsene Hobbyisten.

leJOS EV3[Bearbeiten]

Mit der Generation EV3 wurde der Lego-Baustein deutlich erweitert und basiert nun auf einem Linux-System. Oracle selbst bietet eine auf ARM portierte Version der aktuellen Java-Runtime an, so dass keine spürbaren Einschränkungen gegenüber anderen Systemen die Entwicklung von eigenen Programmen beeinträchtigen. Mit dem SD-Slot des EV3 ist es auch nicht mehr nötig, die originale Firmware zu flashen - leJOS EV3 wird von einer bootbaren SD-Karte gestartet, ohne die auf dem Lego-Baustein gespeicherten Daten zu verändern. Ebenso werden WiFi-Dongles für den USB-Port unterstützt, so dass ohne Kabelverbindung eine Kommunikation (debuggen, Programme übertragen, selbst ein Login via SSH direkt auf den Lego-Baustein ist jederzeit möglich) möglich ist.

Namensgebung[Bearbeiten]

Der Name leJOS wurde von José Solórzano erdacht, basierend auf einem Akronym für Java Operating System (JOS, deutsch: Java-Betriebssystem) und dem spanischen Wort „lejos“, was so viel wie weit entfernt, oder einfach weit bedeutet.

Bibliographie[Bearbeiten]

  • Brian Bagnall: core LEGO Mindstorms Programming. Prentice Hall PTR, 2002, ISBN 0-13-009364-5 (englischsprachig)
  • Giulio Ferrari et al.: Programming LEGO Mindstorms with Java. Syngress, 2002, ISBN 1-928994-55-5 (englischsprachig)
  • Thorsten Leimbach et al.: Roberta – Programmieren mit Java. Fraunhofer IRB, 2009, ISBN 978-3-8167-8401-2 (deutschsprachig)

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. http://www.nasa.gov/mission_pages/station/research/experiments/Konstructor.html