LEGO Mindstorms

Definition

Unter anderem ein Beispiel für visuelle und haptische Programmierung ist Lego Mindstorms. Dies ist der Name einer Produktserie der LEGO Company, die einen programmierbaren Legostein (RCX genannt), sowie Elektromotoren, Sensoren und LEGO Technik-Teile (Zahnräder, Achsen, Lochbalken, Pneumatik Teile usw.) enthält, um Roboter und andere autonome und interaktive Systeme zu konstruieren und zu programmieren.

Für die Entwicklung von Embedded Systems, werden hohe Programmierkenntnisse vorausgesetzt. Dem gegenüber stehen hohe Entwicklungskosten. Die Hauptproblematik besteht in der Vermittlung von Expertise in der Entwicklung von Embedded Systems, beginnend im Kindesalter.

Obwohl es ein technisches Spielzeug ist, kann es auch (wie von LEGO und MIT ursprünglich auch geplant) als Lehrmittel eingesetzt werden; es dient als gutes Beispiel für ein Embedded System, mit computergesteuerten elektromechanischen Teilen. Beinahe alle Arten von Embedded Systems, vom Aufzug bis hin zu Industrierobotern, können mit Mindstorms nachgebaut werden.

Der programmierbare Legostein RCX besitzt einen Renesas H8/300 Microcontroller als CPU. Er wird programmiert, indem ein in einer der diversen Programmiersprachen geschriebenes Programm, vom PC zur CPU des RCX mit Hilfe einer IR Schnittstelle übertragen wird. Nachdem sich das Programm auf der CPU befindet, kann der mit einem RCX gebauten Mindstormsroboter völlig autonom handeln und auf äußere und innere Ereignisse reagieren, entsprechend den Programmieranweisungen. Des Weiteren können zwei oder mehr RCX miteinander über die IR Schnittstelle kommunizieren, was Wettbewerbe und Kooperationen ermöglicht. Zusätzlich besitzt der RCX noch drei Motorausgänge sowie drei Sensoreingänge.

Konsequenz

Didagtisches Lehrmittel
Geringe Programmiererfahrung
Schnelle Entwicklung von Artefakten
geringe Kosten

Ähnliche Pattern

Verwendete Programiersprachen
  • Von LEGO erstellte (beide grafisch):
    o RCX Code
    o ROBOLAB (basiert auf LabView, siehe auch Visual Programming)
  • Drittanbieter (alle Textorientiert):
    o Java mit leJOS
    o NQC ("Not Quite C" Nicht ganz C)
    o C und C++ mit BrickOS (ehemals LegOS )
    o Interactive C (Auf C basierend und leicht abgewandelte Programmiersprache, wird u.a. auch für das Handyboard verwendet.)
    o pbFORTH (Erweiterung zur Forth-Programmiersprache)
    o Visual Basic
  • LEGO stellt das MindStorms SDK zur Verfügung, das Beispiele in Visual Basic und C++ zeigt

Beispiel der Programmierung

Es gibt viele Arten von Robotern. "Gehirne" für zwei einfache Roboter sind das Handyboard und der RCX. Das Handyboard ist schlicht ein kompakter Haufen Computerchips, konstruiert, um Befehle entgegenzunehmen. Der RCX ist eine Erfindung von LEGO, der es erlaubt mit Hilfe von verschiedenen C ähnlichen Programmiersprachen zu programmieren. Die Programme können sehr einfach und kurz sein. Wenn man einen Roboter baut, sollte man Servomotoren benutzen, die gut mit dem RCX zu kontrollieren sind. Ein simples Programm für den RCX könnte so aussehen:

void main ()
{
motor(1,100);
sleep(2.0);
ao();
}

Jedes Programm dieser Programmiersprache sollte mit void main beginnen. motor (1,100) bedeutet, dass der Motor 1 sich mit 100 % Geschwindigkeit dreht. Eine Anweisung wird mit einem Semikolon beendet. Steht eine sleep-Anweisung, bedeutet das lediglich, dass das Programm den vorherigen Befehl für die Zeit in den Klammern ausführt und danach erst fortfährt. In diesem Beispiel dreht sich der Motor 1 mit 100 % für 2 Sekunden und wird dann mit dem Befehl ao, für Alles aus, angehalten. Das Programm endet und beginnt mit den geschweiften Klammern.
Topic revision: r4 - 27 Feb 2007, MarkusHofmann
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback