Der RCX

Lego Mindstorms ist aus dem „ programmable brick“ Projekt hervorgegangen (siehe auch Seymour Papert bzw. Interview), welches 1987 von der Learning Group des MIT Media Laboratory begonnen wurde. Der RCX verfügt über
- Hitachi H8 Microcontroller mit 16 MHZ
- 16 kb ROM
- 32 kb RAM
- internen Zeitgeber
- 10 bit A/D Wandler
- LC Display
- IR Sender / Empfänger
- 3 Eingänge
- 3 Ausgange
Durch den 10 bit A/D Wandler werden max. 1024 Stufen erfasst, die Daten werden dann passend zum benutzten Sensor gewandelt. Die Erfassung von Sensordaten erfolgt alle 100 ms. Für die 3 Ausgänge stehen Motoren und Lampen zur Verfügung.
An die 3 Eingänge können LEGO Sensoren
- Temperatursensor (von -20 bis +50 °C)
- Tastsensor (wird vom RCX als wahr oder falsch interpretiert)
- Lichtsensor (von 0,6 bis 760 Lux wird vom RCX auf 0-100 % skaliert )
- Rotationssensor (liest 16 schritte pro Umdrehung (alle 22,5°), max. 500 RPM)
angeschlossen werden.

Die LEGO Firmware unterstützt

- 5 Programmspeicher mit je 10 Tasks und 8 Unterprogrammen
- 32 globalen Variablen
- 16 lokale Variablen je Task
- 4 Systemzeitgeber
- 3 Eingänge
- 3 Ausgänge
- 1 Tonausgabe
- 1 LC Display

Die Verbindung des RCX mit dem Computer erfolgt über eine IR-Verbindung.
Sie dient zum
- laden von Programmen
- direkter Steuerung des RCX
- laden der Firmware


   Die Sensoren

Ein Roboter braucht Sensoren damit er seine Umgebung erforschen kann. Sehen und fühlen sind zwei ganz wichtige Sinne, darum sind im Robotic Invention System 2.0 zwei verschiedene Sensoren enthalten: ein Lichtsensor (das primitive Auge des Roboters) und Kontaktsensoren (der Tastsinn des Roboters).

     
  Der Lichtsensor besteht aus einer roten Leuchtdiode (LED) und einem Fototransistor, der auf einfallendes Licht reagiert. Um richtig arbeiten zu können braucht der Lichtsensor Spannung vom RCX. Der Lichtsensor reagiert prinzipiell auf hell und dunkel; kann aber auch Helligkeitsänderungen messen. Da der Lichtsensor seine eigene Lichtquelle (LED besitzt, kann er das von einer nahe gelegenen Oberfläche reflektierte Licht messen, sodass er sich nicht auf dieBeleuchtungsbedingungen des Raumes verlassen muss. Die besten Ergebnisse erzielt man dabei, wenn der Lichtsensor so nahe wie möglich über der Zieloberfläche plaziert wird.   Der Drucksensor besteht aus einer kleinen Taste auf einer Seite eines LEGO-Steins.Über die elektrischen Kontakte wird der Drucksensor (Berührungssensor) über ein Verbindungskabel mit einem der drei Eingänge des RCX-Bausteins verbunden.
An einem Eingang des RCX können parallel mehrere Drucksensoren angeschlossen werden. Der RCX erkennt dabei, wenn einer der Sensoren gedrückt wurde, aber nicht welcher!
 

Es gibt aber auch noch eine ganze Reihe anderer Sensoren (wie z.B. : Temperatursensoren und Rotationssensoren) die man entweder kaufen oder selbst bauen kann. Bei der Benutzung der Sensoren muss der Typ:

und der Modus festgelegt werden.


   Der Motor

Der Power Motor ist im Moment der stärkste von allen LEGO Motoren. Er eignet sich deshalb sehr gut z.B. für den Antrieb eines mobilen Roboters. Er hat ein Getriebe eingebaut, welches den Motor kräftiger macht.

   Zusammenbau des Robots

Die unten angegebenen Videos demonstrieren den Zusammenbau dieses Roboters.

Kleinere Version des Videos (8MB) in neuen Fenster betrachten.

   Programmieren des RCX mit NQC und Bricx als IDE

Es werden verschiedene kommerzielle und nicht kommerzielle Programmiersprachen für den RCX angeboten
LEGO Mindstorm Programmierumgebungen (entnommen aus: Roboter im Informatikunterricht)

NQC ist eine an die Syntax von C angelehnte Programmiersprache speziell für LegoMindstorm Robotersysteme. Sie wurde von Dave Baum, dem Mitentwickler der Mindstorm-Technologie vom MIT entwickelt und steht als Freeware zur Verfügung (allgemeiner Überblick).
NQC läßt sich sehr bequem mit dem ebenfalls freien Programm "Bricx Command Center" nutzen.
 

Erstellen der Programme in NQC / BricxCC
Im Falle der Skript-Sprache NQC werden die Programme wie in C erfasst und strukturiert. Die Programme müssen in einen Byte-Code für den RCX übersetzt, sprich compiliert werden. Hierbei werden Programmierfehler erkannt und im Falle des BricxCC auch in der IDE angezeigt. Ist dieser fehlerfrei compiliert muss das Programm an den Roboter (den RCX) übertragen werden.
Übertragen der Programme mit dem IR-Sender (IR-Tower)
Bereits beim Start von BricxCC wird in einem Dialogfeld die Schnittstelle abgefragt, an welcher der IR-Sender angeschlossen ist. Erfahrungsgemäss muss hier darauf geachtet werden, dass die benutzten Schnittstellen am Rechner auch wirklich im Bios aktiviert, auf die richtige Schnittstelle zugegriffen wird ... . Noch eine beliebte Fehlerquelle ist der IR-Sender selbst. An ihm kann man/frau unterschiedliche Sendeweiten einstellen. Wenn dieser auf hohe Sendeleistung eingestellt ist, er reicht dann mehrere Meter weit, werden die Programme evtl. auch auf andere Roboter übertragen, die Folgen im Unterricht mit mehreren Gruppen kann sich jeder selber überlegen ...

Ein sehr einfaches Programm in NQC mit dem Bricx Command Center:

Sämtlich Befehle von NQC stehen als Vorlagen (Templates) zur Verfügung und es können eigene hinzugefügt werden.


   NQC-Beispiele


10.......
20.......
30.......
40.......
50.......
60.......

// Einfaches Beispiel - Drehen bis Knopf gedrückt wird -
task main() {
  SetSensor( "SENSOR_1", SENSOR_TOUCH);
  ON(OUT_A);                                                     
  until ( SENSOR_1 == 1 );                                
  Off(OUT_A);
}


10.......
20.......
30.......
40.......
50.......
60......
70.......
80.......
90.......
110.....
120.....
130.....
140.....
150......
160.....
170.....
180.....
190.....
200.....
210 .....

// Verwendung mehrere Task - Töne spielen -
task main( ) {
  start fast_beep;
  start slow_beep;
  Wait(1000);
  stop slow_beep;
}

task fast_beep( ) {
  while(true) {
    PlayTone(440, 10);
    Wait(50);
  }
}
task slow_beep( ) {
  while(true) {
    PlayTone(880, 10);
    Wait(100);
  }
}

Ausführliche Anleitungen sowohl zu NQC als Sprache und zu NQC mit Bricx finden Sie unter den angegebenen Links:

  1. Tutorial zu NQC mit Bricx im neuen Fenster betrachten
  2. NQC-Anleitung im neuen Fenster betrachten.
  3. Referenz der NQC-Befehleim neuen Fenster betrachten.
   Die Aufgaben

  1. Installieren Sie das Bricx Command Center auf Ihren PC
  2. Übertragen Sie die Firmware auf den RCX (ein evt. Fehler am Ende der Übertragung spielt keine Rolle).
  3. Kopieren Sie das Töne spielende Programm in die Bricx-Oberfläche, compilieren und übertragen Sie es
    auf einen der 5 zur Verfügung stehenden Programmspreicherplätze ihres RCX.
    Starten Sie das Programm und lauschen Sie der schönen Musik.

    Für die folgenden Aufgaben benötigen Sie das Tutorial zu NQC.
  4. Schreiben Sie ein NQC-Programm, das den Robot ein Quadrat fahren lässt. Anschließend soll
    er einen Ton als Erfolgsmedung spielen. Tipp!

  5. Nun müssen Sie einen Lichtsensor verwenden! Bild:Lichtsensor
    1. Der Robot soll auf einem schwarzen Streifen stehen bleiben. Tipp!
    2. Nun soll er zwischen zwei scharzen Streifen insgesamt 3 mal hin und her fahren.
      Sie brauchen Variablen (siehe Abschnitt Variablen).
    3. Jetzt soll er zusätzlich auch beim Erreichen des Streifens einen Ton spielen. Dies soll er mit einer Funktion/Unterprogramm realisieren Tipp!

  6. Schreiben Sie ein Programm, welches das Fahrzeug mit Hilfe des Lichtsensors entlang einem unbekannten schwarzen Pfad auf weißem Grund steuert. Haben Sie eine Idee? Tipp!

  7. Bauen Sie zwei Tastsensoren (siehe Anleitung) an das Modell.
    Wenn der Tastsensor an der linken Seite gedrückt wird, so soll der Robot kurz zurückfahren und dann zur rechten Seite ausweichen.
    Entsprechend soll er beim Drücken des rechten Tastsensors reagieren.

    Weiterführende Seiten im Internet
  1. Roboter im Informatikunterricht, Auf dieser Seite finden Sie die PDF Version und Material meiner Studienarbeit zum Thema
    "Roboter im Informatikunterricht".
  2. Lego Mindstorm bei Google
  3. SENSOREN, Warum viel Geld für Sensoren zahlen, wenn man sie um wenig Geld selber machen kann?
  4. LEGO Education, der pädagogische Bereich der LEGO Company
  5. robats - robots-at-school, eine Plattform für Infos, Tipps und Austausch über Roboter in der Schule.
  6. Roboter planen, bauen und programmieren