32
Anhang A Anhang Experimente, L ¨ osungen, Tricks A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs vorge- stellten Aufgaben und Experimenten dargelegt. Experiment 1: Motor und Getriebe im Zusammenspiel Bei einer Stromversorgung von 7.2V durch typische NiMH-Akkus schafft der NXT- Motor ohne angeh¨ angte Last zehn Umdrehungen in ungef¨ ahr 6s. Wird das beschrie- bene Getriebe angebaut, so ben¨ otigt das große Zahnrad circa 15s ur zehn Umdre- hungen. Da das kleine Zahnrad, das ja direkt auf der Motorwelle sitzt, sechs Sekun- den f¨ ur zehn Umdrehungen ben ¨ otigt, gilt f ¨ ur die Dauer von 15 Sekunden: (10U /6s) · 15s = 25U (A.1) Das Ergebnis stimmt also mit den Berechnungen in Aufgabe 5 ¨ uberein. Es kann bei diesem Versuch je nach Spannungsversorgung zu k¨ urzeren oder l¨ angeren Zeit- dauern kommen, allerdings sollte die Zahl der Umdrehungen bei allen Versuchen identisch sein. Experiment 2: Fahren einer definierten Strecke Aufgrund der hohen ¨ Ubersetzung aus Sicht des Rades l¨ asst sich der Motor und so- mit der Rotationssensor nur schwer bewegen und das Rad kann ¨ uber den Boden rutschen. Die Strecke l¨ asst sich daher am besten messen, indem man die Achse, auf der das große Zahnrad montiert ist, so lang w¨ ahlt, dass man beidseitig jeweils ein Rad aufsetzen kann. Damit die Zahnr¨ ader nicht so schnell durchrutschen, k¨ onnen diese noch ¨ uber eine L-f¨ ormige Strebe gegeneinander fixiert werden, die auf den beiden Achsen montiert wird. 203 K. Berns, D. Schmidt, Programmierung mit LEGO R MINDSTORMS R NXT, eXamen.press, DOI 10.1007/978-3-642-05470-9, c The LEGO Group 2010

Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

Anhang AAnhang

Experimente, Losungen, Tricks

A.1 Aufgaben und Experimente mit dem NXT

Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs vorge-stellten Aufgaben und Experimenten dargelegt.

Experiment 1: Motor und Getriebe im Zusammenspiel

Bei einer Stromversorgung von 7.2V durch typische NiMH-Akkus schafft der NXT-Motor ohne angehangte Last zehn Umdrehungen in ungefahr 6s. Wird das beschrie-bene Getriebe angebaut, so benotigt das große Zahnrad circa 15s fur zehn Umdre-hungen. Da das kleine Zahnrad, das ja direkt auf der Motorwelle sitzt, sechs Sekun-den fur zehn Umdrehungen benotigt, gilt fur die Dauer von 15 Sekunden:

(10U/6s) ·15s = 25U (A.1)

Das Ergebnis stimmt also mit den Berechnungen in Aufgabe 5 uberein. Es kannbei diesem Versuch je nach Spannungsversorgung zu kurzeren oder langeren Zeit-dauern kommen, allerdings sollte die Zahl der Umdrehungen bei allen Versuchenidentisch sein.

Experiment 2: Fahren einer definierten Strecke

Aufgrund der hohen Ubersetzung aus Sicht des Rades lasst sich der Motor und so-mit der Rotationssensor nur schwer bewegen und das Rad kann uber den Bodenrutschen. Die Strecke lasst sich daher am besten messen, indem man die Achse, aufder das große Zahnrad montiert ist, so lang wahlt, dass man beidseitig jeweils einRad aufsetzen kann. Damit die Zahnrader nicht so schnell durchrutschen, konnendiese noch uber eine L-formige Strebe gegeneinander fixiert werden, die auf denbeiden Achsen montiert wird.

203K. Berns, D. Schmidt, Programmierung mit LEGO©R MINDSTORMS©R NXT, eXamen.press,

DOI 10.1007/978-3-642-05470-9, c© The LEGO Group 2010

Page 2: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

204 A Anhang

Fuhrt man nun das Experiment durch, so fallt auf, dass die gemessene Umdre-hungszahl kleiner als die erwartete ist und moglicherweise nur bei rund 4750◦ undsomit knapp uber 13 Umdrehungen liegt. Dies liegt an aufgetretenem Radschlupf so-wie Ungenauigkeiten in der mechanischen Konstruktion, so dass die Zahnrader nichtoptimal ineinander greifen und Spiel zueinander haben. Uber ein NXT-G-Programmkann der NXT-Motor so eingestellt werden, dass er die geforderten 14.25 Motorum-drehungen (5130◦) ausfuhrt. Die so zuruckgelegte Strecke sollte ziemlich genau dengeforderten 100cm entsprechen.

Experiment 3: Offnender Tastsensor

Solange der Tastsensor gedruckt ist, drehen sich die angeschlossenen Motoren. So-bald der Tastsensor losgelassen oder das Sensorkabel gezogen wird, stoppen dieMotoren.

Uber eine entsprechende mechanische Konstruktion konnte man diesen Tastsen-sor nun so einsetzen, dass dieser losgelassen wird, sobald er ein Hindernis beruhrt.Auf diese Weise konnen – wie bereits erwahnt – Sensordefekte oder Kabelwacklerzur Programmlaufzeit erkannt werden.

Experiment 4: Maximale Reichweite und kleinste messbare Entfernung

Die maximale Sensorreichweite von uber zweieinhalb Metern kann erreicht werden,indem man ein relativ glattes Hindernis auswahlt, das den Schall gut zuruckwirft(z.B. glatte Zimmerdecke oder Fensterscheibe). Bei weicheren Objekten fallt diemaximale Reichweite stark ab, da das Echo zu schwach ist und nicht mehr empfan-gen werden kann. Die experimentell ermittelte Maximalentfernung liegt bei 254cm,wobei der Sensor sehr exakt ausgerichtet werden muss. Die geringste Entfernungliegt bei gemessenen 5cm, darunter schwanken die Werte aufgrund von Reflektio-nen stark. Messfehler bei geringen Entfernungen liegen unter anderem an dem miteinzuberechnenden Abstand zwischen Sender und Empfanger sowie an Schallechos,die mehrfach zwischen Objekt und Sensor hin- und hergeworfen werden, bevor sieam Empfanger eintreffen.

Wird der Sensor auf ein”weiches“ Objekt wie ein Sofa oder einen Vorhang ge-

richtet, wird ein Großteil des Schalls von diesem Objekt geschluckt. Das zuruckge-worfene Echo ist daher deutlich schwacher als beispielsweise bei einer Glasscheibe.So sind maximal messbare Entfernungswerte von nur 70cm keine Seltenheit, wennder zuruckgeworfene Schall durch eine Polsterung abgeschwacht wird.

Experiment 5: Was kann die Ultraschallmessungen storen oder beeinflussen?

Zunachst misst der Ultraschallsensor die eingestellten 20cm. Dreht man nun das Ob-jekt, werden die Messwerte in der Regel einige Zentimeter kleiner, da eine Seite des

Page 3: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

A.1 Aufgaben und Experimente mit dem NXT 205

Objektes naher an den Sensor herankommt. Abhangig von der Oberflachenrauigkeitdes Objektes konnen ab einem Winkel von ca. 30◦ erste Fehlmessungen auftreten.Dabei zeigt der NXT entweder sechs Fragezeichen (

”??????“) an oder einen Wert,

der großer als 20cm ist. Dies ist abhangig davon, ob es in der Nahe des Objektes einzweites Hindernis gibt, von dem der Schall zuruckgeworfen wird oder nicht.

Experiment 6: Helligkeiten verschiedener Farben

Im Reflected Light-Modus und bei einem Abstand von 0.5cm kann man beobachten,dass die Farben gut unterscheidbare Helligkeitswerte liefern. Besonders hohe Wertemisst der Sensor bei den Farben Weiß (72%), Gelb (72%) und bei Rottonen (Rot:61%). Die Farben Schwarz (30%), Blau (44%), Grun (46%) hingegen liefern ge-ringere Werte. Die angegebenen Werte konnen abhangig von dem genauen Farbtonund der Reflektivitat gegenuber den eigenen Experimenten abweichen. So kann ei-ne hellgrune Flache durchaus einen Wert von uber 60% liefern, wahrend dieser beiDunkelgrun auch unter 40% fallen kann. Den hochsten Wert von uber 80% erreichtman, wenn man den Sensor an einen Spiegel halt.

Insgesamt lasst sich beobachten, dass sich die Messwerte der Umgebungshellig-keit bzw. dem von externer Quelle einfallenden Licht annahern, je weiter der Sen-sor von der Oberflache entfernt ist. Bei normaler Raumbeleuchtung werden dunkelerkannte Flachen also mit zunehmendem Abstand heller, helle Flachen hingegendunkler wahrgenommen. Im Ambient Light-Modus wird die reine Helligkeit derFlache ohne Bevorzugung von Rottonen gemessen, durch Schattenwurf oder exter-nen Lichtquellen sind die Messwerte aber bei weitem nicht so eindeutig.

Experiment 7: Farberkennung

Der Farbsensor aus dem NXT-2.0-Set kann die sechs Farben Gelb, Rot, Grun, Blausowie Schwarz und Weiß unterscheiden. Mischfarben werden der am nachsten lie-genden Farbe zugeordnet. Je nach Farbton wird bei einer lilafarbenen Flache ent-weder die Farbe Rot oder die Farbe Blau erkannt. Auch bei Orange variiert dergemessene Wert je nach Helligkeit der Flache zwischen Gelb und Rot.

Etwas umfangreicher sind die Messwerte des HiTechnic-Sensors. Dieser liefertje nach Untergrund die Zahlenwerte 0 (Schwarz), 1 (Dunkelblau) bis 10 (Lila),11 (Hellblau) bis 16 (Helllila) und 17 fur Weiß (siehe die dem Sensor beiliegen-de Farbtabelle). Auffallig ist, dass es aufgrund der feineren Abstufung (18 statt 6unterschiedenen Farben) haufiger zu Fehlmessungen bzw. nicht exakten Zuordnun-gen kommen kann. Uber einen NXT-G-Baustein ist man allerdings in der Lage, diedrei ⇁RGB-Farbwerte einzeln auszulesen, um selbst eine Farbklassifikation durch-zufuhren.

Page 4: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

206 A Anhang

Experiment 8: Empfangsbereich des Gerauschsensors

Der Sensor liefert bei normalen Hintergrundgerauschen Messwerte von etwa 2−4%.Beim Reden, Klatschen und Pfeifen hingegen schwankt er je nach Intensitat zwi-schen 20 und 100%. Die Entfernung spielt dabei eine entscheidende Rolle, da dieLautstarke quadratisch zur Entfernung abnimmt. Ist also die Gerauschquelle doppeltso weit weg, so betragt die Lautstarke am Sensor nur noch ein Viertel der ursprung-lichen Lautstarke.

Experiment 9: Moglichkeiten der Beschleunigungsmessung

Da der Sensor drei Messrichtungen besitzt, mit dem integrierten NXT-Programmaber nur ein Wert ausgegeben werden kann, bleiben zwei Messwerte ungenutzt. DasKippen des Sensors nach vorne und hinten verursacht Anderungen in der Anzeige.Eine Drehung um die anderen beiden Achsen kann nicht angezeigt wird. Diese kannnur mit einem eigenen Programm (z.B. mittels NXT-G) abgefragt und angezeigtwerden.

Experiment 10: Empfindlichkeit des Kompasses

Ist der Kompass nach Norden gerichtet, so wird auf dem Display der Wert 0 bzw.

”??????“ angezeigt. Ansonsten entspricht der angezeigte Wert im Wesentlichen dem

erwarteten Ergebnis, so lange sich keine metallischen Gegenstande oder Magnete innachster Nahe befinden.

Wird der Kompasssensor direkt an den NXT gebaut, so fuhrt das ausgestrahlteMagnetfeld dazu, dass die Werte beispielsweise nur zwischen 114 und 134 variierenund somit zur Richtungsfindung unbrauchbar sind (genauso sieht es bei metallischenTeilen aus). Aus diesem Grund sollte der Sensor immer in großerem Abstand zuelektronischen Bauteilen montiert werden.

Ahnlich verhalt es sich mit einem Magneten, den man direkt uber den Kompass-sensor halt. Dreht man den Magnet, so verandert sich der Messwert entsprechend.Bei korrekter Ausrichtung des Magneten kann man auf diese Weise sogar testen, wosich dessen Plus- und Minuspol befindet.

Experiment 11: Empfindlichkeit des Gyroskops

Solange sich der Sensor in Ruhe befindet, liefert er einen Messwert von ungefahr40%. Dreht man den Gyroskopsensor im Uhrzeigersinn um seine vertikale Achse,so sinkt der Messwert (minimal auf 0%). Wird er hingegen linksherum gedreht, sosteigt der Wert uber 40% auf maximal 100%. Durch ein sehr langsames Rotieren istes moglich, den Sensor

”auszutricksen“, so dass er die Drehung nicht messen kann.

Nicht messbar sind außerdem Drehungen um die anderen beiden Raumachsen.

Page 5: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

A.2 Allgemeine Tipps und Tricks zu LeJOS 207

Experiment 12: Reichweite und Storeinflusse fur RFIDs

Die Reichweite des Sensors entspricht den Herstellerangaben von 3cm. Legt man ei-ne Schicht Alufolie zwischen RFID-Sensor und -Marke, so verkurzt sich die Reich-weite auf etwa einen halben Zentimenter. Den Einfluss von Alufolie kann man sichaber auch zunutze machen, indem man eine Art Richtantenne baut, so dass Foli-enstucke parallel zum elektromagnetischen Feld der Antenne angebracht werden.Die Reichweite kann so auf uber 5cm verstarkt werden. Die Auslesefahigkeit wirddurch Magnete, Motoren etc. nur minimal beeinflusst.

A.2 Allgemeine Tipps und Tricks zu LeJOS

In diesem Abschnitt werden einige grundlegende Tipps und Tricks zu LeJOS-Programmen gegeben, die beispielsweise das gezielte Beenden eines Programmeserlauben oder die Fehlersuche erleichtern.

Beenden von Programmen

Um ein Programm jederzeit beenden zu konnen, sollte jede main-Methode den inQuelltext 31 gezeigten Code enthalten. Ansonsten lauft das Programm entweder im-mer bis zu seinem Ende durch oder, falls das Programm von sich aus nicht terminiert,unendlich weiter. Besonders im letzten Fall mochte man den NXT stoppen konnen,ohne den Strom zu kappen oder den Reset-Knopf zu drucken, da beide Moglich-keiten oft baulich bedingt schwer zuganglich sind. Also fugt man dem Programmdiesen Abschnitt hinzu, welcher bewirkt, dass ein Listener sozusagen parallel zumeigentlichen Programmablauf immer wieder uberpruft, ob der dunkelgraue Knopfauf dem NXT gedruckt wurde. Geschieht dies, wird das Programm beendet, egal anwelcher Stelle sich der Programmablauf befindet.

Quelltext 31: Listener, um das Programm zu jeder Zeit zu stoppen (FirstRobot.java)

28 // Hauptmethode29 public static void main(String[] args) {30

31 // Listener, um das Programm zu jeder Zeit zu stoppen32 // (sollte in jedem LeJos-Programm vorhanden sein)33 Button.ESCAPE.addButtonListener(new ButtonListener() {34 public void buttonPressed(Button b) {35 LCD.drawString("Program stop", 0, 3);36 }37

38 public void buttonReleased(Button b) {39 System.exit(0);40 }41 });80 }

Page 6: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

208 A Anhang

Die Zeile Button.ENTER.waitForPressAndRelease(); innerhalb ei-nes Programms garantiert außerdem, dass das Programm erst nach der Quittierungdurch den Benutzer mit dem orangefarbenen Knopf weiterlauft. Dies ist nutzlich,falls Benutzereingriffe geplant sind, kann aber auch zur Fehlersuche mitverwen-det werden, um ein Programm abschnittsweise auszufuhren. Mehr zu Fehlersucheenthalt der nachste Abschnitt.

Fehlersuche bei NXT-Programmen

Manchmal passiert es, dass man ein Programm implementiert und sich eigentlichsicher ist, dass es die angedachte Funktion erfullen musste. Beim Testen stellt mandann aber fest, dass nicht alles so lauft wie geplant. Was folgt ist das sogenannte⇁Debugging. Darunter versteht man das systematische Suchen nach Problemen,die sowohl aufgrund fehlerhafter Syntax als auch durch semantische Fehler entste-hen konnen. Bei großeren Softwaresystemen setzt man Softwarewerkzeuge ein, diebeim Entdecken von Syntax- oder Speicherzugriffsfehlern helfen. Semantische Feh-ler sind mit derartigen Programmen allerdings kaum zu losen, da dafur dem Werk-zeug ja bekannt sein musste, was im korrekten Fall in dem jeweiligen Programmab-schnitt passieren musste. Deshalb empfiehlt es sich, sogenannte Debug-Nachrichtenim Programmablauf einzufugen, um den Fortschritt und die Werte wichtiger Varia-blen zur Laufzeit anzuzeigen. Anhand dieser Nachrichten lasst sich die Fehlerquelledann leichter finden. Fur den Anfang bietet sich die Ausgabe auf dem LC-Displaydes NXT an (siehe Kapitel 6.1.13). Spater, bei großeren Programmen, kann man ei-ne Protokollierung der Nachrichten in eine Log-Datei oder das Senden der Nachrich-ten via Bluetooth an den PC in Erwagung ziehen. Voraussetzung ist dann naturlichdie Sicherstellung, dass die Bluetooth-Kommunikation respektive das Dateischrei-ben selbst fehlerfrei funktioniert.

Das folgende Beispiel zeigt, wie eine Debug-Nachricht auf dem NXT aussehenkonnte. Dabei wurde darauf geachtet, immer den Ursprung der Werte durch dieAngabe des Methodennamens und der Variablenbenennung anzugeben. Auf dieseWeise bekommt man automatisch einen besseren Uberblick uber den Programmab-lauf und kann die ausgegebenen Werte auch immer eindeutig zuordnen. Manchmalist es auch hilfreich, reine Textnachrichten zu nutzen, um, zum Beispiel, nur denProgrammablauf gerade bei Verzweigungen verfolgen zu konnen. Ganz am Randezeigt das Beispiel ubrigens, wie man Fließkommazahlen vom Typ double in eineZeichenkette umwandelt (siehe Zeile 6).

1 // Ausgabe des Methodennamens2 LCD.drawString("driveDistance()", 0, 4);3 // Ausgabe des Variablennamens4 LCD.drawString("distance=", 2, 5);5 // Umwandlung und Ausgabe der Variablen6 LCD.drawString(Double.toString(distance), 12, 5);

Page 7: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

A.3 Aufgabenlosungen und Losungshinweise zu LeJOS 209

Zur Ausgabe der Nachrichten auf dem PC kann man mit der statischen Klas-se RConsole eine Verbindung (sowohl uber Bluetooth als auch uber USB) mitdem NXJ Console Viewer auf dem PC herstellen. Mit Hilfe der beiden BefehleRConsole.print(String s); und RConsole.println(String s);konnen Nachrichten auf dieser Konsole angezeigt werden. Der folgende BefehlRConsole.openBluetooth(int timeout); dient zum Herstellen einerBluetooth-Verbindung und muss zu Beginn des Programms aufgerufen werden. Al-ternativ dazu kann man mit RConsole.openUSB(int timeout); eine USB-Verbindung einrichten. Auf dem PC offnet man dann uber Start → Ausfuhren... dasProgramm nxjconsoleviewer oder nxjcontrol und stellt die Verbindungher. Kommt keine Verbindung zustande, werden alle Nachrichten, die im Quelltexteingefugt wurden, ignoriert. Wichtig bei der Verwendung von Bluetooth ist es, zuwissen, dass das Generieren und Senden der Nachrichten-Pakete relativ langsam ge-schieht. Dies fuhrt dazu, dass zum einen der Ablauf des Programms durch diesezusatzliche Aufgabe verlangsamt wird und des Weiteren die Nachrichten nicht inEchtzeit angezeigt werden.

A.3 Aufgabenlosungen und Losungshinweise zu LeJOS

Die Losungen der jeweiligen Aufgaben befinden sich auf dem Extras-Server59, wes-halb hier lediglich Losungsskizzen und Hilfen gegeben werden.

Aufgabe 46: Fahren bis der Taster auslost

Zunachst mussen ein Tastsensor- und ein OwnPilot-Objekt instanziiert werden. Dader Roboter immer wieder den Zustand des Tasters uberpruft und solange diesernicht gedruckt ist, geradeaus fahrt, eignet sich hier eine Schleife mit dem Tastersta-tus als Eingangs- oder Abbruchbedingung. Darauf folgen die weiteren Fahraktionen,die dann entsprechend der Aufgabenstellung bei Beenden der Schleife abgearbeitetwerden, wenn also der Taster gedruckt wurde. Da das Programm danach beendetund der Roboter stehen bleiben wurde, muss der vorgestellte Programmteil nochin eine Endlosschleife gepackt werden. Das Beenden des Programms erfolgt dannbeispielsweise durch den auf Seite 207 vorgestellten Button-Listener.

Die in Quelltext 32 dargestellte Losung entspricht ziemlich genau der Losungs-skizze und enthalt keine weiteren Besonderheiten. Die Werte fur die Fahrbefehlesind empirisch ermittelt. Ist die Lineargeschwindigkeit negativ (Zeile 24) so zeigtdies an, dass ruckwarts gefahren werden soll. Die Winkelgeschwindigkeit von 0.5fuhrt dabei zu einer leichten Kurvenfahrt wahrend des Zurucksetzens. Das Vorzei-chen der Winkelgeschwindigkeit ist frei wahlbar und entscheidet daruber, ob eineleichte Links- oder Rechtskurve gefahren wird.

59 http://extras.springer.com/

Page 8: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

210 A Anhang

Quelltext 32: Losung der Tastsensoraufgabe (FirstRobot.java)60

6 import lejos.nxt.Motor;7 import lejos.nxt.SensorPort;8 import lejos.nxt.TouchSensor;

19 public class FirstRobot_touch {20

21 // Roboterkonfiguration22 public static OwnPilot pilot = new OwnPilot(Motor.B, Motor.A, 5.6,

11.2);23 public static TouchSensor touchSensor = new TouchSensor(SensorPort

.S1);28 public static void main(String[] args) {42 // Programm startet hier43 while (true) {44 while (!touchSensor.isPressed()) {45 pilot.drive(0.2, 0);46 }47 pilot.stop();48 pilot.driveDistance(-0.1, 0.5, 10, true);49 }50 }51 }

Aufgabe 47: Nutzung des Ultraschallsensors zur Kollisionsvermeidung

Zur Losung kann der Quelltext aus Aufgabe 46 einfach erweitert werden. Zum Ab-brechen der Geradeausfahrt mussen nun beide Bedingungen uberpruft werden. Da-nach kann mit einer Verzweigung auf den auslosenden Sensor entsprechend reagiertwerden. Um dazu jedoch nicht zweimal den Sensorwert zu lesen, sollte man Varia-blen fur die Sensorzustande einfuhren und deren Zuweisung innerhalb der Schleifevornehmen.

Quelltext 33: Kombination von Ultraschall- und Tastsensor zu Kollisionsvermeidung(FirstRobot.java)

9 import lejos.nxt.UltrasonicSensor;16 public class FirstRobot {25 public static UltrasonicSensor sonicSensor =26 new UltrasonicSensor( SensorPort.S2);27

28 // Hauptmethode29 public static void main(String[] args) {43 // Programm startet hier44 sonicSensor.continuous();45

46 // Variable fuer Status des Tasters47 boolean sensorPressed = false;48 // Auslesen des Tasterzustandes49 sensorPressed = touchSensor.isPressed();51 // Variable fuer Status des Ultraschallsensors52 boolean minDistReached = false;

60 Der Quelltext dieser Losung liegt nicht auf dem Extra-Server bereit, da er in der Aufgabe 47erweitert wird. Nur diese erweiterte Version ist auf dem Extra-Server verfugbar.

Page 9: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

A.3 Aufgabenlosungen und Losungshinweise zu LeJOS 211

54 final int MINDISTANCE = 40;55

56 while (true) {57 // Wiederholen, solange Taster nicht gedrueckt58 // und Mindestentfernung nicht erreicht ist59 while (!sensorPressed && !minDistReached) {60 // Auslesen des Tasterzustandes61 sensorPressed = touchSensor.isPressed();62 minDistReached = sonicSensor.getDistance() <= MINDISTANCE;63 // Aufrufen der Piloten-Methode fuers Fahren64 pilot.drive(0.2, 0);65 }66 // Stoppen der Vorwaertsfahrt67 pilot.stop();68 // wenn Mindestentfernung erreicht: wegdrehen69 if (minDistReached) {70 pilot.driveDistance(0, 0.5, 12, true);71 }72 // ansonsten (Kollision): zurueckfahren73 else {74 // 10cm Rueckwaertsfahren75 pilot.driveDistance(-0.1, 0.5, 10, true);76 }77 sensorPressed = false;78 minDistReached = false;79 }80 }81 }

Aufgabe 49: Verwendung des Schallsensors und des Listener-Musters zumAuffinden einer Gerauschquelle

Uber die erwahnte Funktion ordnet man dem Sensorport, an dem der Schallsensorangeschlossen ist, einen neuen Listener zu. Dieser kann anonym instanziiert werden,da kein weitere Zugriff darauf benotigt wird. Die Methode stateChanged(...),die bei einem Sensorereignis ausgefuhrt werden soll, muss dann noch implementiertwerden. Um die Sensordatenvorverarbeitung der Klasse SoundSensor zu nutzen,fragt man per readValue() den aktuellen Wert des Schallsensors ab. Die Rich-tungssuche kann folgendermaßen gelost werden: Der Roboter dreht sich auf der Stel-le. Solange das Gerausch lauter wird, dreht er weiter, wird es wieder leiser, dreht erwieder ein Stuck zuruck und fahrt in diese Richtung. Wahrend der Geradeausfahrtwird dann mit Hilfe des Listeners uberpruft, ob der Lautstarkewert wieder geringerwird. In diesem Fall wird die Suche wiederholt. Ist der Wert uber einer gewissenGrenze, gilt die Gerauschquelle als gefunden.

Quelltext 34: Auffinden einer Gerauschquelle mit Hilfe des Schallsensors und Listener(NoiseFinder.java)

7 import lejos.nxt.SensorPort;8 import lejos.nxt.SensorPortListener;9 import lejos.nxt.SoundSensor;

17 public class NoiseFinder {18

Page 10: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

212 A Anhang

19 // Konfiguration des Piloten20 public static OwnPilot pilot = new OwnPilot(Motor.B, Motor.A, 5.6,

11.2);21 // Anlegen eines Tasters an Port 122 public static TouchSensor touchSensor = new TouchSensor(SensorPort

.S1);23 // Anlegen eines Ultraschallsensors an Port 224 public static UltrasonicSensor sonicSensor = new UltrasonicSensor(25 SensorPort.S2);26 // Anlegen eines Geraeuschsensors an Port 327 public static SoundSensor soundSensor = new SoundSensor(SensorPort

.S3, true);28 // Grenze wann eine Geraeuschquelle gefunden ist29 public final static int MAXLOUDNESS = 95;30 // lautester gemessener Wert31 public static int highestLoudness = 0;32 // Orientierung, an der dieser Wert gemessen wurde33 public static double highestLoudnessOrientation = 0.0;34

35 // Hauptmethode36 public static void main(String[] args) {50 // Anlegen eines Listeners fuer Sensorport 351 SensorPort.S3.addSensorPortListener(new SensorPortListener() {52 public void stateChanged(SensorPort source, int oldValue,53 int newValue) {54 // hier folgt die Reaktion auf Aenderungen55 System.out.println(newValue);56 if (soundSensor.readValue() < highestLoudness) {57 pilot.stop();58 highestLoudness = 0;59 // suche Richtung mit hoechster Lautstaerke60 for (int i = 1; i < 12; i++) {61 pilot.turn(0.5, i * 30, false);62 int _loudness = soundSensor.readValue();63 if (_loudness > highestLoudness) {64 highestLoudness = _loudness;65 highestLoudnessOrientation = (i * 30) % 360;66 }67 pilot.turn(0.5, highestLoudnessOrientation, false);68 }69 } else {70 highestLoudness = soundSensor.readValue();71

72 System.out.println("HL:" + highestLoudness);73

74 if (highestLoudness >= MAXLOUDNESS) {75 pilot.stop();76 LCD.clear();77 LCD.drawString("Ziel gefunden !!!", 0, 5);78 try {79 Thread.sleep(10000);80 } catch (InterruptedException e) {81

82 }83 System.exit(0);84 }85 }86 }87 });88

89 // Programm startet hier90 sonicSensor.continuous();

125 }126 }

Page 11: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

A.3 Aufgabenlosungen und Losungshinweise zu LeJOS 213

Aufgabe 50: Erweiterung des Piloten zur Punktanfahrt

Zunachst ist es sinnvoll, den Vektor vom Start- zum Zielpunkt in ⇁Polarkoordi-natendarstellung zu berechnen. Mit den gegebenen kartesischen Koordinaten derbeiden Punkte lasst sich der lineare Versatz in beide Raumachsen Δx und Δy errech-nen. Daraus kann wiederum mit dem Satz des Pythagoras die Lange des Vektorsund uber die ⇁Atan2-Funktion der zugehorige Winkel in Richtung des Zielpunktesermittelt werden. Die einfachste Moglichkeit, die Fahrt durchzufuhren ist es, sie indrei Abschnitte zu unterteilen:

1. Drehen von aktueller Orientierung zur Orientierung des Fahrtvektors, so dassder Zielpunkt vor dem Roboter liegt. Dazu kann die in Quelltext 35 angegebe-ne Methode getMinimalAngleDiff(...) genutzt werden, die die Winkel-differenz zweier Winkel berechnet und daruber hinaus uber das Vorzeichen desRuckgabewertes angibt, ob eine Links- oder eine Rechtsdrehung kurzer ist.

2. Fahren der errechneten Strecke, bis der Zielpunkt erreicht ist.3. Drehen des Roboters in die gewunschte Zielorientierung.

Geschmeidigere Trajektorien bekommt man, indem man die Drehungen”kombi-

niert“ und den Roboter eine geschwungene S-formige Kurve fahren lasst. Dies erfor-dert jedoch auch eine aufwandigere Berechnung und einige theoretische Grundlagenzu speziellen Polynomfunktionen, sogenannten Splines61.

Alternativ konnen die drei Schritte aber auch leicht”uberlappend“ programmiert

werden. Dazu dreht sich der Roboter zunachst auf der Stelle, bis er beispielswei-se weniger als 60◦ vom Zielkurs abweicht. Ist diese maximale Abweichung unter-schritten, beginnt er zusatzlich (langsam) mit der Vorwartsfahrt, so dass er uber eineKurve in Richtung Ziel gesteuert wird.

Quelltext 35: Methode zur Berechnung der Winkeldifferenz (OwnPilot.java)

402 /**403 * Berechnet die minimale Differenz zwischen zwei Winkeln im

Bogenmass404 * @param angle1 Winkel 1 im Bogenmass405 * @param angle2 Winkel 2 im Bogenmass406 * @return minimaler Winkeldifferenz zwischen den Eingabewinkeln,407 * Vorzeichen entsprechend der mathematischen Drehrichtung408 */409 public double getMinimalAngleDiff(double angle1, double angle2) {410 double _error = angle2 - angle1;411

412 if (Math.abs(_error) > Math.PI) {413 _error = -1 * Math.signum(_error)414 * (2 * Math.PI - Math.abs(_error));415 }416 return _error;417 }

61 http://de.wikipedia.org/wiki/Spline

Page 12: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

214 A Anhang

A.4 Bezugsquellen und Firmenkontakte

Durch die Vielzahl an Erweiterungen fur LEGO MINDSTORMS gibt es auch ei-ne Fulle an unterschiedlichen Drittanbietern, deren Komponenten zum Teil auch indiesem Buch vorgestellt werden. Hier eine Liste der bekanntesten Hersteller und Be-zugsquellen fur Zusatzsensorik, Motoren, Software und sonstigen Erweiterungen.

[a] Codatex Hainzlmaier GmbH & Co. KGEin auf RFID-Technik spezialisiertes Unternehmen, das auch den LEGO-RFID-Sensor nebst zugehoriger Marken herstellt.Ischlerbahnstraße 15, 5020 Salzburg, Osterreichhttp://www.codatex.com/

[b] HiTechnic, Dataport Systems, Inc.Anbieter von vielen fertigen LEGO-NXT-Sensoren, aber auch von Experimen-tierplatinen zum Selberbauen.PO Box 321, Holland Patent, NY 13354, USAhttp://www.hitechnic.com/

[c] LEGO GmbHOriginale LEGO MINDSTORMS-Teile und weiteres Zubehor aus der gesamtenProduktpalette der LEGO GmbH.Technopark II, Werner-von-Siemens-Ring 14, 85630 Grasbrunn, Deutschlandhttp://www.lego.de/

[d] LPE Technische Medien GmbHVertreiber von Material und Unterlagen fur naturwissenschaftlich-technischenUnterricht. Dazu gehoren neben LEGO MINDSTORMS auch Softwarelizensenoder LEGO-Ersatzteile.Schwanheimer Straße 27, 69412 Eberbach, Deutschlandhttp://www.technik-lpe.eu/

[e] MindsensorsAnbieter fur Zusatzelektronik, der sowohl einfache Sensoren als auch Kamerasund Schnittstellen fur das Anbinden von NXT an Spielekonsolen bereitstellt.8609 Mayland Drive, Richmond, VA 23294, USAhttp://www.mindsensors.com/

[f] Vernier Software & TechnologySensorhersteller, der neben industriell eingesetzten Sensoren auch einen NXT-Adapter anbietet. Mit diesem kann der NXT um uber 30 Vernier-Sensoren erwei-tert werden.13979 SW Millikan Way, Beaverton, OR 97005-2886, USAhttp://www.vernier.com/nxt/

Page 13: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

A.5 Weitere Programmiersprachen fur den NXT 215

A.5 Weitere Programmiersprachen fur den NXT

Es gibt viele Moglichkeiten, die LEGO MINDSTORMS NXT-Systeme zu program-mieren. Neben den beiden vorgestellten Sprachen gibt es noch eine Vielzahl weitererSprachen, die zur Ansteuerung des NXT verwendet werden konnen:

[a] LabVIEW ToolkitDas LabVIEW Toolkit ist eine von National Instruments herausgebrachte visu-elle Programmierumgebung, die auf kommerzielle Software zur Messwertverar-beitung aufsetzt. Ahnlich wie bei NXT-G bestehen die Programme aus einzelnenIcons, die auf dem Bildschirm positioniert und verbunden werden.http://www.ni.com/academic/mindstorms/

[b] Microsoft Robotics Developer StudioMRDS ist eine vielseitige Entwicklungsumgebung zum Ansteuern und Simulie-ren von Robotern. Neben LEGO MINDSTORMS konnen auch andere Systememit Hilfe von ⇁.NET oder der Microsoft Visual Programming Language (VPL)programmiert werden.http://msdn.microsoft.com/de-de/robotics

[c] MindSquallsEine fur .NET entworfene ⇁Open-Source-Bibliothek, mit der Programme fureinen per Bluetooth ferngesteuerten NXT entworfen werden konnen. Mind-Squalls ist in C# geschrieben und kann auch auf einem ⇁PDA ausgefuhrt wer-den. In neueren Versionen werden auch NXT-Zusatzsensoren unterstutzt.http://www.mindsqualls.net/

[d] NXC/NBCNXC steht fur

”Not eXactly C“ und ist eine fur LEGO MINDSTORMS entwi-

ckelte Programmiersprache mit einer C-ahnlichen Syntax. Sie verwendet als Zwi-schensprache NBC (Next Byte Code) mit einer Assembler-ahnlichen Syntax undist fur diverse Betriebssysteme erhaltlich.http://bricxcc.sourceforge.net/nbc/

[e] pbLuaEine auf der textuellen Sprache

”Lua“ aufgesetzte NXT-Programmierung, die

mitterweile auch Bluetooth und Gleitkommazahlen unterstutzt. Mit pbLua kon-nen zwei NXTs uber einen Sensorport direkt miteinander kommunizieren.http://www.hempeldesigngroup.com/lego/pbLua/

[f] RobotCLEGO Education bietet mit der Software ROBOT-C eine textbasierte Program-miersprache an. Die Sprache basiert auf C und kann sowohl fur die alten RCXals auch fur die neuen NXT-Systeme verwendet werden.http://www.robotc.net/

[g] RWTH MINDSTORMS NXT ToolboxDiese an der RWTH Aachen entwickelte Toolbox unterstutzt die Anbindung desNXT uber Bluetooth an die Software MATLAB, die weltweit zur Losung mathe-matischer Probleme und grafischen Darstellung eingesetzt wird.http://www.mindstorms.rwth-aachen.de/

Page 14: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs
Page 15: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

Glossar

Dieses Glossar dient als Hilfe und Nachschlagewerk fur viele Begriffe und Defini-tionen aus dem Bereich der Informationstechnik. Ein Teil der Definitionen stammtin Auszugen aus dem Lexikon der Informatik [11].

.NET Eine von der Firma Microsoft heraus-gegebene Software-Plattform, die eine ⇁Lauf-zeitumgebung, zugehorige ⇁Bibliotheken so-wie ⇁Dienste zusammenfasst und der Softwa-reentwicklung zur Verfugung stellt.

Abstraktion Reduktion eines Systems oder ei-ner Beschreibung auf relevante Aspekte. Un-wichtige Details werden dabei weggelassen.

Agent Ein Computerprogramm, das in gewis-ser Weise zu einem eigenstandigen Verhaltenfahig ist. Man unterscheidet reaktive und kogni-tive Agenten. Letztere verfugen im Gegensatzzu reaktiven Agenten uber eigenes Wissen undreagieren nicht nur auf aktuelle Eingaben.

Agentensystem Ein Softwaresystem, das ausmehreren eigenstandigen Elementen – den so-genannten ⇁Agenten – besteht.

Algebra Teilgebiet der Mathematik, das sichmit Strukturen, Mengen und Relationen befasst.Dazu gehoren unter anderem elementare Re-chenregeln und lineare Gleichungssysteme.

Algorithmus Beschreibung eines Verfahrens,das aufgrund seiner formalen Spezifikation ma-schinell ausfuhrbar ist.

Algorithmentheorie Die Algorithmentheoriebefasst sich als Teilgebiet der Informatik mit derLos- und Berechenbarkeit von ⇁Algorithmen.Auch die Komplexitat, d.h. die Ausfuhrge-

schwindigkeit, von Algorithmen wird hier un-tersucht.

Analog Ein stetiges Signal, dass sich propor-tional zu einer kontinuierlich erfassten Mess-große verhalt. Analoge Signale haben inner-halb bedingter Grenzen theoretisch eine unend-lich hohe Auflosung, aufgrund von Messrasternwird dieser Bereich ⇁diskretisiert.

Android Spezielle Form eines ⇁humanoidenRoboters, der einem Menschen tauschend ahn-lich sieht und dessen physiognomischen Merk-malen entspricht.

API Application Programming Interface – ei-ne Schnittstelle zur Anwendungsprogrammie-rung, die anderen Programmen zur Anbindungan das eigene System zur Verfugung gestelltwird. Umgangssprachlich haufig auch die dazu-gehorige Dokumentation (Referenz, Spezifikati-on).

ASCII American Standard Code for Informati-on Interchange – 1967 veroffentlicher Standardfur eine Zeichenkodierung mit sieben ⇁Bit.Der Zeichensatz besteht aus 95 druckbaren Zei-chen (Buchstaben, Ziffern und Sonderzeichen)und 33 Steuerzeichen wie Tabulator oder Leer-zeichen.

Assembler Programm zur Ubersetzung vonAssembler- in ⇁Maschinenbefehle. Die Assem-blersprache ist eine maschinennahe Sprache

217

Page 16: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

218 Glossar

und steht damit zwischen den hoheren Program-miersprachen und den Maschinenbefehlen.

Asynchron Zeitlich versetzte Datenverarbei-tung oder -ubertragung, ohne Blockierung derbeteiligten Elemente oder Prozesse durch feh-lende Daten.

Atan2 Die atan2-Funktion ist eine Erweite-rung des Arkustangens auf zwei Argumente, umbei der Umrechnung von kartesischen in Polar-koordinaten den Winkel im korrekten Quadran-ten zu ermitteln.

Aussagenlogik Ausgehend von logischen Ele-mentaraussagen (wahr oder falsch) befasst sichdie Aussagenlogik mit logischem Schließen.Dabei konnen die einzelnen Aussagen uber Ver-knupfungen wie

”und“ /

”oder“ in Relation ste-

hen.

Autark Sich selbst versorgende Systeme. BeiRobotern verwendet man den Begriff der Ener-gieautarkie, wenn sie eine eigene Energieversor-gung mitfuhren.

Autonom Roboter sind autonom, wenn sieihre vorgesehene Aufgaben ohne menschli-ches Eingreifen einige Zeit, also selbststandig,ausfuhren konnen.

Betriebssystem Software, die zum Betrieb desComputers notwendig ist und die Systemkom-ponenten wie ⇁RAM und ⇁CPU verwaltetund Anwendungsprogramme ausfuhrt.

Bluetooth Funktechnologie fur die drahtloseKommunikation ohne Sichtkontakt. Die Daten-rate betragt 1Mbit/s bei einer Reichweite von10m. Zur Funkubertragung wird eine Frequenzvon 2,4GHz im sogenannten ⇁ISM-Band ge-nutzt.

Bibliothek Sammlung haufig genutzter Routi-nen, die wahrend der Programmlaufzeit oderwahrend des Ubersetzens eingebunden wird.

Bildverarbeitung Die Bildverarbeitung ist einTeilgebiet der Informatik und beschaftigt sichmit Prozeduren zur Extraktion und Weiterver-arbeitung von Information aus Ursprungsdaten.Dies kann beispielsweise die Rekonstruktionund Darstellung von dreidimensionalen Model-len der Umwelt sein.

Binar Zweistufiges ⇁diskretes Wertesystemmit den Zustanden 0 und 1. Durch Kombinati-

on von mehreren Binarwerten (⇁Bits) konnenbinare Muster erstellt werden (z.B. ⇁Bytes).

BIOS Basic Input Output System – Bei demBIOS handelt es sich um die ⇁Firmware eineshandelsublichen ⇁Mainboards. Es wird direktnach dem Anschalten des Rechners ausgefuhrt.Seine Aufgabe ist es, alle benotigten Kompo-nenten wie Festplatten oder Grafikkarte zu ak-tivieren und dann das ⇁Betriebssystem zu star-ten.

Bit Binary Digit – kleinste Informationsein-heit in elektronischen Systemen (0/1, aus/an,tief/hoch). Acht Bits bilden ein ⇁Byte.

Bug Programmfehler durch einen vom Softwa-reentwickler nicht berucksichtigten Programm-zustand oder einen Laufzeitfehler.

Bumper Stoßleisten, die mit Tastsensoren aus-gerustet sind, um Beruhrungen zu erkennen.

Bus siehe ⇁Bussystem

Bussystem Sammelleitung zur Ubertragungvon Daten und Steuerinformationen zwischenunterschiedlichen Komponenten. Grundlage istein einheitliches ⇁Protokoll, so dass alle Betei-ligten kommunizieren konnen (z.B. ⇁USB).

Byte Datenformat, das acht ⇁Bits enthalt undin den meisten Computern ein Zeichen reprasen-tiert. Steigerungsstufen:1 KiloByte [KB] = 1024 Byte [B]1 MegaByte [MB] = 1024 KB1 GigaByte [GB] = 1024 MB1 TeraByte [TB] = 1024 GB

Cache Zwischenspeicher fur Daten, die voneinem langsameren Speichermedium gelesenwurden und dort fur einen erneuten schnellenZugriff bereitgehalten werden.

CAD Computer Aided Design – rechnerge-stutztes Erstellen von mechanischen, elek-trischen oder elektronischen Konstruktionen.Hauptsachlich bekannt durch den Entwurf vondreidimensionalen Modellen am Computer.

Chipsatz Der sogenannte Chipsatz besteht ausmehreren ⇁Microcontrollern, die auf einem⇁Mainboard integriert und fur die Kommu-nikation der verschiedenen Bauteile zustandigsind.

Page 17: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

Glossar 219

Code Interpretierbares Programm in Form vonQuelltext einer Programmiersprache, aber auch⇁Assembler- oder ⇁Maschinenbefehle.

Compiler Spezielles Programm, das den Texteiner Quellsprache (z.B. Java) in eine Folge von⇁Maschinenbefehlen einer Zielsprache uber-setzt.

Computer Ein Computer ist ein universellerDatenverarbeitungsautomat. Der Begriff wirdoft synonym fur Recheneinheit verwendet. ImAlltagsgebrauch bezeichnet ein Computer meistdas gesamte Rechnersystem als bauliche Ein-heit inklusive Speicher, Zusatzkomponentenund Ein-Ausgabe-Geraten.

Computergrafik Ein Teilgebiet der Informa-tik, das sich mit der Erzeugung und Bear-beitung von computergenerierten Bildern zur⇁Visualisierung befasst.

Computervirus Computerprogramm, das sichselbst in andere Programme einschleust und zuunkontrollierbaren Schaden am System fuhrenkann.

CPU Central Processing Unit – siehe ⇁Pro-zessor

Datenbanksystem System zur Speicherungvon elektronischen Daten, das große Datenmen-gen effizient verwalten und bereitstellen kann.

Datenstruktur Datenobjekt zur Speicherungvon Informationen, das aus unterschiedlichenElementen bestehen kann.

Debugging Prozess des Suchens und Behe-bens von Programmierfehlern (⇁Bugs). Dieskann durch die manuelle Ausgabe von Pro-grammzustanden und -parametern oder auchdurch spezielle Werkzeuge – sogenannte

”De-

bugger“ – erfolgen.

Dezibel Eine logarithmische Hilfseinheit zurKennzeichnung von Pegeln und Maßen. Dezi-bel (dB) ist vor allem bekannt aus der Akustikund gibt den Schalldruckpegel an.

Dienst Sammlung von Funktionen, die vomSystem bereitgestellt werden. Bei Betriebssys-temen ein im Hintergrund arbeitender Prozess.

Digital Diskretisierung mit zwei Zustanden.Digitale Signale reduzieren Fehlinformationen(Rauschen) und konnen von Automaten gut ver-arbeitet werden.

Diskret Im Gegensatz zu ⇁analog eine stu-fenweise Wertigkeit mit festem Raster (bei-spielsweise die Reihe der naturlichen Zahlen ge-genuber den reellen Zahlen).

Dispatcher Der Dispatcher ist als Teil des⇁Betriebssystems dafur zustandig, einem Pro-zess die ⇁CPU zu entziehen und einem ande-ren Prozess zuzuteilen.

DMI Direct Media Interface – eine Erwei-terung der ⇁PCI-Express-Schnittstelle inner-halb eines Intel-⇁Chipsatzes, die ⇁North- und⇁Southbridge verbindet.

Drag & Drop (Ziehen & Loslassen) – Eine ty-pische Eingabeoperation, bei der mit der Mausauf ein Objekt auf dem Bildschirm geklickt, die-ses dann an eine andere Stelle verschoben undder Mausknopf dort losgelassen wird.

Drehmoment Physikalische Große, die beiBeschleunigung eines drehbaren Korpers wirkt.Es ergibt sich aus dem Produkt von Kraft F undLange l des Kraftarms (z.B. Durchmesser vonAntriebsrad) und wird in Newton-Meter gemes-sen: M = F · lDynamik Die Dynamik befasst sich mit demWirken von Kraften. Dies ist beispielsweise beiRoboterarmen wichtig, wenn sie Lasten aufneh-men und bewegen mussen.

Echtzeit Computersysteme sind echtzeitfahig,wenn sie garantiert innerhalb eines bestimm-ten Zeitrahmens reagieren. Dies ist insbeson-dere fur sicherheitskritische Komponenten wiebespielsweise das Antiblockiersystem im Autowichtig.

Eingebettetes System Ein oder mehrere ver-netzte elektronische Recheneinheiten, die in eintechnisches System eingebunden sind und die-ses regeln, steuern oder uberwachen (z.B. Elek-tronik im Kfz).

Elektromotor Elektromechanischer Wandler,der elektrische Energie in mechanische Energietransformiert. Dabei wird uber einen Strom einMagnetfeld induziert, das mit einem Permanent-magneten reagiert und eine Drehung veranlasst.

Encoder Sensoren zur Messung von Motor-oder Radumdrehungen. Diese werden unter an-derem auch im Auto zur Antriebs-Schlupf-Regelung eingesetzt.

Page 18: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

220 Glossar

Fehlertoleranz Ein Computersystem ist feh-lertolerant, wenn es seine Funktionsweise auchbei auftretenden Fehlern oder unvorhergesehe-nen Eingaben aufrechterhalten kann.

Firewire ⇁Serielle Schnittstelle gemaß derNorm ⇁IEEE 1394 zur Anbindung von ⇁Peri-pheriegeraten auch untereinander (im Gegen-satz zu ⇁USB). Die Datenrate betragt bis zu400Mbit/s bei maximal 63 angeschlossenenGeraten.

Firmware Software, die mittels ⇁Flashspei-cher in ⇁Microcontroller integriert ist. DieFirmware enthalt meist elementare Funktionenzur Verwendung des elektronischen Gerates.

Flashspeicher Ein Speicherbaustein, der Da-ten auch ohne angelegte Spannung halt, alsonicht-fluchtig ist.

Fotodiode Elektrisches Bauteil, das (sichtba-res) Licht durch den inneren Fotoeffekt in elek-trischen Strom umwandelt. Anwendungsgebie-te sind Digitalkameras, Rauchmelder oder dieDatenubertragung mittels Glasfaserkabel.

FSB Front Side Bus – Schnittstelle zwischen⇁CPU und dem ⇁Chipsatz (⇁Northbridge),die den Takt fur alle angeschlossenen Kompo-nenten vorgibt.

Getriebe Getriebe dienen zur Ubertragungund Umformung (Ubersetzung) von Bewegun-gen, Energie und/oder Kraften.

GND Ground – Erdung bzw. Masse vonSchaltkreisen oder Leitungen.

GPS Global Positioning System – WeltweitesFunksystem zur Positionsbestimmung mittelsSatelliten. Bei handelsublichen Geraten liegtdie Genauigkeit bei etwa 10m.

Gyroskop Sensor zur Lagebestimmung, derals Navigationsinstrument in Flug- und Raum-fahrtzeugen, mittlerweile auch haufig im Au-to eingesetzt wird. Dieses Kreiselinstrument er-laubt es, Positions- und Lageanderungen zu er-kennen und somit eine Lokalisierung durch-zufuhren.

Hauptspeicher (⇁RAM) Ein Computerspei-cher, der die vom Prozessor benotigten Pro-gramme und Nutzdaten speichert. Im Gegensatzzu Festplatten verliert der Hauptspeicher seineDaten bei einer Stromunterbrechung.

Hash-Funktion Die sogenannte Hash-Funkti-on bildet mogliche Elemente einer Menge aufeine feste Anzahl von Adressen ab. Sie berech-net anhand eines Schlussels den Speicherplatz,an dem das Element mit diesem Schlussel liegt.Neben der Verwendung zur effektiven Speiche-rung von Werten in Tabellen findet sie Anwen-dung in der Kryptographie oder als Prufsum-menfunktion.

Hash-Tabelle Eine spezielle Indexstruktur be-ziehungsweise Liste, die hauptsachlich zumSpeichern und schnellen Auffinden von großenDatenmengen verwendet wird.

Heuristisch Heuristische Methoden werden inder Informatik bei komplexen Aufgaben ver-wendet, um einen Kompromiss zwischen Lauf-zeit und Gute der Losung einzugehen. Dabeiwird versucht, beispielsweise durch Schatzun-gen zu einem hinreichend guten, aber nicht op-timalen Ergebnis zu kommen.

Hochsprache Sammelbegriff fur prozedura-le und

”menschenverstandliche“ Programmier-

sprachen wie Java oder C++.

Humanoid Ein Roboter nach menschlichemVorbild, der aber auch nur in Teilen men-schenahnlich sein kann. Oft genugen bereitszwei Beine, um von einem humanoiden Robo-ter zu sprechen.

I2C Inter-Integrated Circuit – ein zweiadri-ger ⇁Bus fur die ⇁serielle Kommunikationzwischen bis zu 1024 Knoten bei maximal425KB/s ⇁Ubertragungsrate.

IDE Integrated Device Electronics – Schnitt-stelle zum Anschluss von Festplatten und CD-Rom-Laufwerken.

IEEE Institute of Electrical and ElectronicsEngineers – 1884 gegrundete weltweite Verei-nigung von Elektroingenieuren. Unter anderemfur die Festlegung von international geltendenNormen zustandig (

”I triple E“).

Industrieroboter Eine programmierbare Ma-schine zur Handhabung oder Bearbeitung vonWerkstucken, die in industriellem Umfeld ein-gesetzt wird.

Informationssystem Gesamtheit der Softwa-rekomponenten, Datenbanken und der benotig-ten Hardware zur rechnergestutzten Erfassung,

Page 19: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

Glossar 221

Speicherung, Verarbeitung und Darstellung vonInformationen.

Infrarot Langwelliges Licht jenseits des furden Menschen sichtbaren Bereiches. InfrarotesLicht wird haufig fur technische Anwendun-gen wie Sensoren oder Sender eingesetzt, da⇁Fotodioden und -transistoren hier ihre hochs-te Empfindlichkeit haben.

Instanz Ein Objekt, das wahrend der Ausfuh-rung eines Programms aus einer ⇁Klasse er-zeugt wird.

Interpreter Ein Ubersetzer, der das Quellpro-gramm beim Ablauf Anweisung fur Anweisunginterpretiert.

ISM-Band Industrial, Scientific and Medical –Frequenzband fur kostenlose Funkubertragung(im Gegensatz zu beispielsweise UMTS) in dendrei Bereichen 900MHz, 2,4GHz und 5,8GHz.Wird unter anderem fur WLAN und Bluetoothverwendet.

Java Von Sun Microsystems entwickelte und1995 erstmals vorgestellte textuelle Program-miersprache. Im Zentrum steht die Idee einerplattformubergreifenden Programmierung, diedurch das zweistufige System in Form eines⇁Compilers in die Zwischensprache

”Byteco-

de“ und der Interpretation durch die ⇁Java Vir-tual Machine umgesetzt wird.

Java Runtime Environment (JRE) ⇁Lauf-zeitumgebung von Sun Microsystems, die un-ter anderem die zur Ausfuhrung von ⇁Java-Programmen benotigte ⇁Java Virtual Machinesowie wichtige Java⇁Bibliotheken enthalt.

Java Virtual Machine (JVM) ⇁Interpreterdes ⇁Java-Bytecodes. Mit diesem sind Java-programme auf jeder unterstutzten Plattform(z.B. Windows, Linux, Unix, Mac) ausfuhrbar.

Kalibrierung Einstellen von Sensoren bzw.deren Verarbeitungssoftware auf aktuelle Gege-benheiten, um Messfehler zu verringern oderbauartbedingte Fehler (wie z.B. Verzerrungenbei Kameras) auszugleichen.

Kardanisch Eine kardanische Aufhangung er-laubt es, Objekte in allen Raumachsen frei dreh-bar aufzuhangen. Dies wird uber mehrere inein-ander gelagerte Ringe umgesetzt, deren Achsenjeweils um 90◦ gedreht sind.

Kinematik Generell ist die Kinematik die Leh-re der Bewegung im Raum. In der Robotik be-schreibt die Kinematik beispielsweise die Wir-kung von Einzelraddrehungen auf die Bewe-gung des Fahrzeugs.

Klasse Ein abstraktes Software-Modell, dasals Bauplan fur mehrere gleichartige Objektedient und deren Eigenschaften und Verhaltens-weisen beschreibt.

Kommunikationsnetzwerk Infrastruktur zurUbermittlung von Daten zwischen verschiede-nen Recheneinheiten.

Komplexitatstheorie Als Teilgebiet der Infor-matik befasst sich die Komplexitatstheorie mitder Komplexitat – also dem Aufwand – von al-gorithmischen Problemen. Sie zahlt somit zumBereich der ⇁Algorithmentheorie.

Koordinate Lage- bzw. Positionangabe einesPunktes bezogen auf einen bestimmten Ur-sprung (Koordinatensystem).

Kunstliche Intelligenz Teilbereich der Infor-matik, der sich mit der Automatisierung intelli-genter Leistungen und Handlungen befasst. Imallgemeinen Gebrauch wird die KI als techni-sche Umsetzung menschlicher Intelligenz ver-standen.

Laserscanner Planarer Distanzsensor, der dieUmgebung mittels Laserlicht bis auf wenigeMillimeter genau vermisst. Die vermesseneFlache weist haufig Offnungswinkel von 180◦bis hin zu 240◦ auf.

Laufzeitumgebung Softwareschicht, die An-wendungsprogramme plattformunabhangig ab-laufen lassen kann (wie z.B. ⇁Java RuntimeEnvironment). Auf diese Weise kann dasselbeProgramm auf unterschiedlicher Hardware undBetriebssystemen ausgefuhrt werden.

LCD Liquid Crystal Display – Flussigkristall-anzeige, die unter anderem bei Taschenrechnernund Automaten eingesetzt wird.

LED Light Emitting Diode – Eine Leuchtdi-ode ist ein elektrisches Bauteil, das bei anliegen-dem Strom Licht aussendet.

LeJOS Ein Betriebssystem fur LEGO Mind-storms, das die vorhandene ⇁Firmware durcheine verkleinerte Version der ⇁Java Virtu-al Machine ersetzt. Mit ihm konnen ⇁Java-

Page 20: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

222 Glossar

Programme fur den NXT entworfen und aus-gefuhrt werden.

Linker Programm, das einzelne Programmtei-le wie Bibliotheken zu einem ausfuhrbaren Pro-gramm verbindet.

Linux Kostenloses ⇁Betriebssystem, das ur-sprunglich von Linus Torvalds entwickelt wur-de und mittlerweile in vielen verschiedenen Ver-sionen, sogenannten Distributionen, verfugbarist.

Listener Prozess oder Programmteil, der aufEreignisse oder Informationen eines Eingabe-stroms wartet und auf diese in Form einer Wei-terverarbeitung reagiert.

Lokalisierung Feststellung der aktuellen (Ro-boter-)Position und Orientierung im Raumdurch Aktualisierungen der Pose wahrend derFortbewegung (lokal) oder durch Finden von si-gnifikanten Merkmalen in der Umgebung (glo-bal).

Max OS X Modernes ⇁Betriebssystem derFirma Apple fur die selbst entwickelten und ver-triebenen Computer.

Mainboard Zentrale Platine eines Computers,auf der die einzelnen Bauteile montiert werden.

Maschinenbefehl Elementare Instruktion auseinem systemspezifischen Befehlssatz. Ein Ma-schinenbefehl kann beispielsweise Daten bewe-gen, berechnen oder Vergleiche durchfuhren.

Mensch-Maschine-Interaktion Eine Teildis-ziplin der Informatik, die sich mit der Schnitt-stelle zwischen Mensch und Maschine befasst.Ziel ist es, dass Computer, Roboter oder anderetechnische Gerate naturliche Befehle des Men-schen verstehen und die Kommunikation bei-spielsweise uber Sprache oder Gestik und Mi-mik ablauft.

Microcontroller Ein Mikro-Computersystemmit ⇁CPU, Speicher, ⇁Peripheriekomponen-ten und weiteren Elementen, das vollstandigauf einem Chip integriert ist. Microcontrollerubernehmen Steuerungsfunktionen in den unter-schiedlichsten Bereichen.

Microsoft Windows Grafisches ⇁Betriebs-system der Firma Microsoft, das weltweit amweitesten verbreitet ist.

Modellierung Entwicklung eines abstraktenAbbilds (Modell) eines Systems. Dies kann zumeinen zur Analyse eines vorhandenen, aber auchals Grundlage fur die reale Umsetzung einesneuen Systems verwendet werden.

MS-DOS Microsoft Disk Operating System –Das erste ⇁Betriebssystem der Firma Micro-soft, erschienen 1981 auf dem ersten IBM⇁PC.

Multiplexer Selektionsschaltung, mit der auseiner Menge von Eingangssignalen ein ein-zelnes mittels Steuersignal ausgewahlt werdenkann. Die Umkehrung erfolgt durch einen De-multiplexer.

Multitasking Fahigkeit eines ⇁Betriebssys-tems, mehrere Prozesse scheinbar gleichzeitigauszufuhren. Diese ⇁Nebenlaufigkeit entstehtdurch schnelle Wechsel zwischen rechnendenund wartenden Prozessen.

Naturanaloge Verfahren Mit Hilfe von natur-analogen Verfahren werden Mechanismen ausder Biologie in die Welt der algorithmischenProblemlosung ubertragen. Dies konnen bei-spielsweise kunstliche neuronale Netze oderselbstoptimierende (genetische) ⇁Algorithmensein.

Nebenlaufigkeit Pseudogleichzeitige Bearbei-tung mehrerer Prozesse. Im Gegensatz zur⇁parallelen Abarbeitung werden diese Pro-zesse stuckweise ⇁synchron und auf einem⇁Prozessor ausgefuhrt.

Northbridge Ein spezieller ⇁Microcontrollerauf einem Computer⇁mainboard, der fur dieKommunikation zwischen der ⇁CPU, dem⇁Hauptspeicher und dem restlichen Systemvia ⇁Southbridge zustandig ist.

Oberklasse (auch: Superklasse) Dabei han-delt es sich um eine ⇁Klasse in der objektorien-tierten Programmierung, die ihre Attribute undMethoden an ⇁Unterklassen vererbt.

Observer Ein bestimmtes Programmteil (Be-obachter), welches den Zustand eines anderenProgrammteils oder Prozesses (Subjekt) erfragtund gegebenenfalls auf dessen Daten arbeitet.Das Subjekt selbst wird nicht verandert (sieheauch ⇁Listener).

Odometrie Eine Methode zur Positionsbe-stimmung von Fahrzeugen uber die Bewegun-

Page 21: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

Glossar 223

gen der Rader; von griech. hodos,”Weg“ und

metron,”Maß“.

Open Source (Offene Quelle) – Freie Softwa-relizenzen, deren Quelltext offen liegt und vonBenutzern weiterentwickelt, verbessert oder ein-fach nur genutzt werden.

Parallel Gleichzeitige Abarbeitung von Be-fehlen auf mehreren ⇁Prozessoren. Bei derKommunikation zeitgleiches Senden mehrerer⇁Bits auf einer mehradrigen Leitung.

PC Personal Computer – Ein auf eine speziel-le Anwendung am Arbeitsplatz zugeschnittenes⇁Computersystem.

PDA Personal Digital Assistant – Kleiner trag-barer Computer, der meist fur Kalender- undAdressverwaltung genutzt wird. Heutzutage oftauch mit Buroanwendungen und Internetzu-gang ausgestattet.

Peripherie Unter Peripherie-Geraten verstehtman alle Gerate, die an einen Rechner ange-schlossen und von diesem gesteuert oder ausge-lesen werden (bei ⇁PCs z.B. Tastatur, Mouse,Modem, Drucker).

Personlicher Roboter Universeller Assistenz-roboter der hochsten Entwicklungsstufe, derden Menschen in Zukunft bei alltaglichen Ar-beiten unterstutzt.

Piezo-Effekt Bei Verformung bestimmter Ma-terialien treten elektrische Ladungen auf wiez.B. bei Piezo-Feuerzeugen. Durch Druck ent-steht hier ein Zundfunke.

Pixel Picture Element – Kleinstes Darstel-lungselement (Bildpunkt) auf Bildschirm oderPapier.

Playback (Wiedergabe) – Programmierverfah-ren fur Roboter, bei dem die vom Benutzer vor-gegebenen Bewegungen vom Roboter wieder-gegeben wird.

Plugin Software-Element, das in eine beste-hende Software integriert werden kann und de-ren Funktionalitat erweitert.

Polarkoordinatensystem Ein zweidimensio-nales Koordinatensystem, in dem jeder Punktauf einer Ebene durch einen Winkel und einenAbstand definiert werden kann.

Port Zugriffspunkt sowohl fur die Datenein-als auch fur die -ausgabe. Ein Port kann sowohl

ein physikalischer Anschluss als auch eine logi-sche Schnittstelle zur Datenubertragung sein.

Pose Kombination aus Position und Orientie-rung (Lage) eines Objektes.

Programmiersprache Notation fur Compu-terprogramme, die von einem entsprechenden⇁Compiler in eine maschinenverstandlicheSprache ubersetzt werden kann.

Protokoll Ubereinkunft bezuglich Rahmenbe-dingungen und Datenformat – aber nicht der In-halte selbst – fur die Kommunikation zwischenzwei oder mehr Geraten.

Prozessor Zentrale Recheneinheit in einemComputer, die arithmetische und logische Ope-rationen sowie Ein- und Ausgaben durchfuhrt.

Pulsweitenmodulation Elektrische Modulati-onsart, bei der eine technische Große zwischenzwei Werten wechselt. Das Tastverhaltnis hatdabei eine feste Frequenz.

PWM siehe ⇁Pulsweitenmodulation

RAM Random Access Memory – siehe dazu⇁Hauptspeicher

Rechnerarchitektur Als Teilgebiet der Infor-matik befasst sich die Rechnerarchitektur mitdem Aufbau und der Organisation von Rech-nern.

Regelung Vorgang, bei dem eine Regelgroßefortlaufend erfasst und mit einer Fuhrungsgroßeverglichen wird. Abhangig vom Ergebnis desVergleichs wird die Regelgroße beeinflusst, umdiese anzugleichen. Der entstehende Wirkkreis-lauf stellt den geschlossenen Regelkreis dar.

Regler Elektronisches bzw. informationstech-nisches Element, das aufgrund der Unterschiedezwischen Soll- und Istgroßen eine ⇁Regelungdurchfuhrt, um diese Werte anzugleichen.

RFID Radio Frequency Identification – Iden-tifikation mittels hochfrequenten Funksignalen,haufig zur Diebstahlsicherung und im industriel-len Umfeld zur Produktverfolgung verwendet.

RGB Red Green Blue – Spezifikation fur einenadditiven Farbraum, in dem die Farben aus denEinzelanteilen fur Rot, Grun und Blau gemischtwerden. Dieses Prinzip der Farbmischung ver-wenden unter anderem Bildschirme oder auchFarbsensoren.

Page 22: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

224 Glossar

Rotationsmatrix Eine Matrix, die eine Dre-hung im euklidischen Raum beschreibt und ent-weder eine ⇁Koordinate oder auch ein Objektbezuglich eines Koordinatensystems oder dasKoordinatensystem selbst dreht.

RS 485 ⇁Serielle Schnittstellennorm fur biszu 32 Sender und Empfanger und 10Mbit/s⇁Ubertragungsrate.

SATA Serial Advanced Technology Attach-ment – Moderner Daten⇁Bus fur den Transferzwischen Festplatten und Laufwerken und der⇁CPU.

SCARA Selective Compliance Assembly Ro-bot Arm – Industrieroboterarm, dessen erste bei-den Gelenke eine Bewegung in der Ebene undweitere Gelenke den Hub und die Rotation desWerkzeuges erlauben.

Schutz Der Schutz (engl: security) vor Ma-nipulation oder unbefugtem Eindringen ist ne-ben der ⇁Sicherheit eine der wichtigsten Eigen-schaften von technischen Systemen.

Semantik Bedeutungsinhalt von Programmco-de, also die inhaltliche Bedeutung der dort ver-wendeten Begriffe (vgl. mit ⇁Syntax).

Seriell Aufgereihte Abarbeitung von Befehlen,z.B. Datenkommunikation auf einer zweiadri-gen Leitung ⇁Bit fur Bit (im Gegensatz zur⇁parallelen Kommunikation).

Serviceroboter Roboter, die Dienstleistungenfur einen Menschen erbringen. Dies konnen so-wohl Weltraumsonden als auch Staubsaugerro-boter im hauslichen oder Aufklarungsdrohnenim militarischen Umfeld sein.

Sicherheit Beschreibt die Betriebssicherheit(engl: safety) eines technischen Systems. Diesestellt zusammen mit dem ⇁Schutz eine wichti-ge Eigenschaft dar.

Simulation Bei der Simulation wird ein realesSystem durch ein Modell ersetzt und analysiert.Dies erlaubt es, Probleme und Eigenschaften imVorfeld zu erkennen (z.B. Windkanalsimulati-on), Kosten zu sparen oder Gefahren zu vermei-den (Beispiel Flugsimulator).

Skalierung Großenanderung bzw. Anpassungvon Werten an eine bestimmte Skala.

SLAM Simultaneous Localization and Map-ping – Ein klassisches Problem der mobilen Ro-

botik, bei dem ein Roboter eine Karte seinerUmgebung erstellen soll, gleichzeitig aber sei-ne ⇁Pose anhand der Karte schatzen muss.

Software Engineering Teilgebiet der Informa-tik, das sich mit der ingenieurmaßigen Entwick-lung und Anwendung von Softwaresystemenbeschaftigt. Dazu gehoren neben der Planungund Analyse im Vorfeld auch der Entwurf unddie Programmierung, letztendlich aber auch die⇁Validierung und ⇁Verifikation der fertigenSoftware.

Southbridge Ein ⇁Microcontroller auf dem⇁Mainboard eines Computers, der die gesamteKommunikation mit internen Hardwarekompo-nenten und der ⇁Peripherie ubernimmt (sieheauch ⇁Northbridge).

Synchron Eine koordinierte Datenubertra-gung oder -berechnung, bei der sich die be-teiligten Elemente beispielsweise uber einengemeinsamen Takt abstimmen im Gegensatz zu⇁asynchroner Kommunikation.

Syntax Struktureller Aufbau einer Program-miersprache (vgl. mit ⇁Semantik).

Systemsoftware Die Gesamtheit aller Pro-gramme, die den Ablauf eines Computers steu-ern und unterstutzen. Dazu gehoren neben dem⇁Betriebssystem auch Treiber und ⇁Dienste.

TCP Tool Center Point – Definiert den Ur-sprung des Werkzeugkoordinatensystems undAbschluss der kinematischen Kette eines Robo-terarms.

Teach-In (Einlernen) – Programmierverfah-ren, bei dem einem Roboter mittels eines Steu-ergerats Zielpunkte vorgegeben werden.

Trajektorie Bewegungsbahn, entlang der sichein Korper mit einer bestimmten Geschwindig-keit bewegt.

Ubertragungsrate Maß fur den Datentrans-fer, haufig in ⇁Bit pro Sekunde (bit/s oderbps). Oft nur ein theoretischer Maximalwert,der aufgrund von Ubertragungsstorungen nichterreicht werden kann.

UML Unified Modeling Language – Grafi-sche Beschreibungssprache, die zur Software-⇁Modellierung wahrend der Entwurfsphaseeingesetzt wird und Merkmale und Zusam-menhange von Objekten beschreibt.

Page 23: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

Glossar 225

Unterklasse (auch: Subklasse) Eine ⇁Klasse,die Attribute und Methoden einer ⇁Oberklassedurch Vererbung ubernimmt.

USB Universal Serial Bus – Schnittstelle fur⇁serielle Kommunikation von ⇁Peripherie-Geraten. Bei USB 2.0 betragt die Datenrate480Mbit/s.

Validierung Prufung der Eignung einer Soft-ware hinsichtlich des zuvor aufgestellten Anfor-derungsprofils (vgl. ⇁Verifikation).

VDD Voltage Drain Drain – positive Versor-gungsspannung von Schaltkreisen.

Verifikation Prufung, ob eine Software seinerformalen Spezifikation entspricht. Eine verifi-zierte Software muss nicht ⇁validiert sein.

Verteiltes System Unter einem Verteilten Sys-tem versteht man den Zusammenschluss meh-rerer unabhangiger (verteilter) Recheneinheiten,die uber ein ⇁Kommunikationsnetzwerk Nach-richten austauschen und ihre Berechnungen ko-ordinieren.

Virus siehe ⇁Computervirus

Visualisierung Darstellung von abstrakten Da-ten und Zusammenhangen in einer grafischenForm, mit der sich die ⇁Computergrafik be-fasst.

Winkelgeschwindigkeit Physikalisches Maßfur den uberschrittenen Winkel pro Zeit bei ei-ner Kreisbewegung. Sie ist dabei proportionalzur Drehzahl, aber unabhangig vom Kreisradi-us.

Wort Grunddatenelement mit dem ein Com-puter arbeitet, dessen ⇁Wortbreite (Anzahl der⇁Bits) mit dem System variieren kann.

Wortbreite Große eines ⇁Wortes in Bit. Aufeinem aktuellen 64bit-Rechner also genau 64⇁Bit bzw. acht ⇁Byte.

Zuverlassigkeit Neben den beiden wichtigenEigenschaften ⇁Schutz und ⇁Sicherheit einweiterer Aspekt von technischen Systemen. DieZuverlassigkeit beschreibt, wie verlasslich einSystem seine Funktion in einem Zeitintervallerfullt.

Page 24: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs
Page 25: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

Literatur

Literaturverzeichnis

[1] Asimov, I.: Alle Roboter-Geschichten. Bastei Lubbe (2007)[2] Bagnall, B.: Maximum Lego NXT – Building Robots with Java Brains. Variant

Press (2006)[3] BITKOM, Bundesverband Informationswirtschaft, Telekommunikation und

neue Medien e.V.: Zukunft digitale Wirtschaft (2007)[4] Braitenberg, V.: Vehicles – Experiments in Synthetic Psychologie. MIT Press

(1984)[5] Burnette, E.: Eclipse IDE – kurz & gut. O’Reilly (2006)[6] Capek, K.: Two Plays By Karel Capek: R.U.R. (Rossum’s Universal Robots)

and The Robber. Brisbane, Booksplendour Publishing (2008)[7] Christaller, T., Decker, M., Gilsbach, J., Hirzinger, G., Schweighofer, E., Lau-

terbach, K., Schweitzer, G., Sturma, D.: Robotik: Perspektiven fur menschli-ches Handeln in der zukunftigen Gesellschaft. Springer Verlag (2001)

[8] Diehl, B., Erb, R., Hesse, H.: Physik Oberstufe – Gesamtband. CornelsenVerlag (2008)

[9] Dorn, F., Bader, F.: Physik 12/13 – Gymnasium Sek II. Schroedel Verlag(2006)

[10] Ferrari, M., Ferrari, G., Astolfo, D.: Building Robots with Lego MindstormsNXT. Syngress Media (2007)

[11] Fischer, P., Hofers, P.: Lexikon der Informatik, 14. Auflage. Springer Verlag(2007)

[12] Frischknecht, C., Other, T.: Lego Mindstorms NXT – Next Generation. SwissFederal Institute of Technology (ETH) Zurich (2006)

[13] Gesellschaft fur Informatik e.V. (GI): Memorandum – Digitale Spaltung ver-hindern, Schulinformatik starken! (2000)

[14] Gesellschaft fur Informatik e.V. (GI): Was ist Informatik? (2006)[15] Henning, P.A., Vogelsang, H.: Taschenbuch Programmiersprachen, 2. Auflage.

Hanser Fachbuch (2007)

227

Page 26: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

228 Literatur

[16] Ichbiah, D.: Roboter – Geschichte, Technik, Entwicklung, 1. Auflage. Knese-beck GmbH und Co Verlags KG (2005)

[17] International Federation of Robotics (IFR) Statistical Department: World Ro-botics 2008. VDMA Verlag (2008)

[18] Lang, H.W.: Algorithmen in Java. Oldenbourg Wissenschaftsverlag (2006)[19] LEGO Group: Lego Mindstorms NXT – Bedienungsanleitung. LEGO Group

(2006)[20] Ministerium fur Bildung, Wissenschaft, Jugend und Kultur: Lehrplanentwurf

fur das Wahlfach und das Wahlpflichtfach Informatik an Gymnasien und Inte-grierten Gesamtschulen – Sekundarstufe I. Rheinland-Pfalz (2008)

[21] Ministerium fur Bildung, Wissenschaft, Jugend und Kultur: LehrplanentwurfInformatik – Grund- und Leistungsfach – Einfuhrungsphase und Qualifikati-onsphase der gymnasialen Oberstufe. Rheinland-Pfalz (2008)

[22] Morik, K., Klingspor, V.: Informatik kompakt. Springer Verlag (2006)[23] Schneider, U., Werner, D.: Taschenbuch der Informatik. Hanser Fachbuchver-

lag (2007)[24] Schoning, U.: Ideen der Informatik – Grundlegende Modelle und Konzepte

der Theoretischen Informatik. Oldenbourg Wissenschaftsverlag (2008)[25] Schraft, R.D., Hagele, M., Wegener, K.: Service – Roboter – Visionen. Hanser

Fachbuchverlag (2004)

Internetseiten

Es gibt im Internet eine Vielzahl von Fan-Seiten oder Auftritten von Clubs, Schulenund Hochschulen, die alle das Thema LEGO Mindstorms behandeln. Diese Listestellt eine Auswahl der interessantesten Seiten vor, die kostenlose Informationen,Aufgaben, Ideen und Bauanleitungen zur Verfugung stellen. Bei einigen davon han-delt es sich um Seiten auf Englisch, was aber besonders bei den Bauanleitungen undModellen keine große Hurde darstellen sollte.

Bauanleitungen und NXT-Modelle

[a] Deutsche Seite mit einer Vielzahl von Robotermodellen sowie weiteren Informa-tionen zu Veranstaltungen rund um LEGO Mindstorms. Außerdem gibt MatthiasScholz einen guten Uberblick uber weiterfuhrende Internetseiten und Werkzeugezum Programmieren und Konstruieren von LEGO Mindstorms:http://mynxt.matthiaspaulscholz.eu/de/

[b] Englische Seite mit Bauanleitungen fur ein herkommliches Mindstorms-NXT-Set bzw. fur ein neues 2.0-Set. Fur jedes Modell gibt es dabei eine Skala fur denSchwierigkeitsgrad von Konstruktion und Programmierung:http://www.nxtprograms.com/

Page 27: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

Literaturverzeichnis 229

[c] Bilder und Beschreibungen von Projekten auf der offiziellen LEGO-Seite, dievon NXT-Benutzern erstellt wurden:http://mindstorms.lego.com/nxtlog/ProjectList.aspx

[d] Inhalte aus dem englischen Buch Extreme NXT – Extending the LEGO Mind-storms NXT to the Next Level von Michael Gasperi, Philippe Hurbain und IsabelleHurbain. Darunter finden sich interessante NXT-Modelle inklusive Anleitungenund Programme:http://www.philohome.com/nxt.htm

[e] Inhalte aus dem englischen Buch Creating Cool Mindstorms NXT Robots vonDaniele Benedettelli, der einige interessante NXT-Modelle vorstellt:http://robotics.benedettelli.com/NXTrobots.htm

[f] Zwei algorithmisch komplexe NXT-Modelle mit Bauanleitungen von Hans An-dersson: Ein Roboter zum Losen eines magischen Wurfels sowie ein NXT-Modell, das ein Sudoku losen kann:http://www.tiltedtwister.com/

NXT-G

[g] Private Seite eines Lehrers mit einer guten Einfuhrung in die grafische Program-mierung mit NXT-G sowie weiteren Informationen zu NXC:http://www.debacher.de/wiki/Lego Mindstorms

[h] Informationen rund um NXT-G, aber auch Tipps und Tricks zu Getrieben undneuen NXT-G-Blocken in englischer Sprache:http://www.teamhassenplug.org/NXT/

[i] Programme, Modelle und Informationen von der Tufts University aus Medford(USA). Interessant sind insbesondere die Einfuhrung und Programmiertipps furNXT-G:http://legoengineering.com/

Java und LeJOS

[j] Einsteiger-Buch Programmieren in Java: Einfuhrung von dem deutschen AutorBoris Schaling:http://www.highscore.de/java/einfuehrung/

[k] Das sehr ausfuhrliche Buch Java ist auch eine Insel von Christian Ullenboommit uber 1.400 Seiten Java-Wissen:http://openbook.galileocomputing.de/javainsel8/

[l] Handbuch der Java-Programmierung von Guido Kruger und Thomas Stark, dasin den ersten Auflagen unter dem Namen Go To Java 2 bekannt geworden ist:http://www.javabuch.de/download.html

[m] Englische Dokumentation (API) aller LeJOS-Klassen, die fur den NXT zurVerfugung stehen:http://lejos.sourceforge.net/nxt/nxj/api/index.html

Page 28: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

230 Literatur

Sonstiges

[n] Linksammlung zu LEGO Mindstorms mit Bezugsquellen von NXT-Hardware,Software und vielen Anregungen und Informationen fur den Schulunterricht:http://www.lehrer-online.de/499378.php

[o] Ein umfangreiches Forum zu LEGO Mindstorms, in dem viele verschiedene The-men rund um den NXT und dessen Programmierung behandelt werden:http://www.mindstormsforum.de/

[p] Seite der RWTH-Aachen Matlab Toolbox fur LEGO Mindstorms, so dass derNXT uber ein Matlab-Programm gesteuert werden kann:http://www.mindstorms.rwth-aachen.de/

[q] Informationen zu einem Fußball-Wettbewerb der FH Offenburg aus dem Jahr2007:http://mv-sirius.m.fh-offenburg.de/Robotik/SW07Wettbewerb.htm

[r] First Lego League: Ein jahrlich stattfindender internationaler Wettbewerb furSchuler, der wechselnde Themen und Aufgaben behandelt:http://www.hands-on-technology.de/firstlegoleague

[s] IGS-Robotik-Cup: Ein seit 2004 stattfindender Robotik-Wettbewerb an der IGSRockenhausen:http://www.robotik-ag.eu/index.php?nav=168

[t] Schuler-Wettbewerb rund um LEGO-NXT-Roboter an der TU Kaiserslautern,bei dem ein Labyrinth erkundet werden musste:http://agrosy.informatik.uni-kl.de/schuelerkurse/wettbewerb

Page 29: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

Sachverzeichnis

A*-Algorithmus, 190Abstraktion, 19, 217Agent, 217Agentensystem, 13, 217Aktuatorik, 45Algebra, 26, 217Algorithmentheorie, 13, 217Algorithmus, 94, 144, 217

Dijkstra, 187Fluten, 183Pledge, 94

Analog, 43, 217Android, 8, 217API, 36, 106, 126, 143, 217Arbeitsspeicher, 38, 43ASCII, 23, 217Assembler, 217Asynchron, 218Atan2, 164, 213, 218Aussagenlogik, 26, 218Autark, 218Autonom, 218

Beschleunigungssensor, 56Betriebssystem, 35, 218Bibliothek, 106, 218Bildverarbeitung, 13, 218Binar, 32, 180, 218BIOS, 35, 218Bit, 23, 42, 218Bluetooth, 42, 65, 135, 218Bug, 218Bumper, 50, 218Bus, 218Bussystem, 37, 43, 218Byte, 59, 218

Cache, 38, 218CAD, 12, 218Chipsatz, 38, 218Code, 43, 218Compiler, 18, 32, 65, 124, 136, 219Computer, 219Computergrafik, 219Computervirus, 37, 219CPU, 38, 219

Datenbanksystem, 14, 219Datenstruktur, 14, 219Debugging, 208, 219Dezibel, 25, 55, 219Dienst, 219Digital, 43, 219Dijkstra-Algorithmus, 187Diskret, 219Dispatcher, 36, 219DMI, 39, 219.NET, 215, 217Drag & Drop, 65, 219Drehmoment, 46, 58, 219Dynamik, 12, 219

Echtzeit, 13, 219Eingebettetes System, 13, 38, 219Elektromotor, 45, 219Encoder, 46, 58, 219

Farbsensor, 54Fehlertoleranz, 13, 219Firewire, 39, 43, 220Firmware, 64, 131, 132, 220Flashspeicher, 38, 43, 220Fotodiode, 53, 220FSB, 38, 220

231

Page 30: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

232 Sachverzeichnis

Geometrische Karten, 170Gerauschsensor, 55Getriebe, 46, 220GND, 43, 220GPS, 61, 131, 156, 220GUI, 130Gyroskop, 58, 220

Hash-Funktion, 171, 220Hash-Tabelle, 220Hashtabelle, 171Hauptspeicher, 39, 220Heuristisch, 170, 200, 220Hochsprache, 3, 220Humanoid, 8, 220

I2C, 43, 220IDE, 39, 220IEEE, 220Industrieroboter, 7, 220Informatik, 12

Definition, 14Informationssystem, 14, 220Infrarot, 60, 221Instanz, 141, 221Integrated Development Environment, 136Interpreter, 34, 221Isaac Asimov, 6ISM-Band, 221

Java, 2, 105, 221Java Runtime Environment, 132, 221Java Virtual Machine, 105, 131, 221Joystick, 98

Kunstliche Intelligenz, 13, 221Kalibrierung, 57, 59, 70, 88, 221Kardanisch, 58, 221Karel Capek, 6Kartenerstellung, 169Kinematik, 12, 78, 221Klasse, 141, 221Kommunikationsnetzwerk, 13, 221Kompass-Sensor, 57Komplexitatstheorie, 13, 221Koordinate, 156, 221Koordinatentransformation, 173Kreiselsensor, 58

LabVIEW Toolkit, 215Laserscanner, 221Laufzeitumgebung, 221LCD, 42, 221LED, 53, 221

LeJOS, 4, 47, 105, 131, 221Lichtsensor, 53Linker, 33, 222Linux, 37, 222Listener, 31, 222Lokalisierung, 155, 170, 222

Mac OS X, 37Mainboard, 38, 222Maschinenbefehl, 21, 32, 222Maschinencode, 17Maschinensprache, 18Master-Slave, 43Max OS X, 222Mensch-Maschine-Interaktion, 13, 222Microcontroller, 19, 32, 42, 131, 222Microsoft Robotics Developer Studio, 215Microsoft Windows, 37, 222MindSqualls, 215Mindstorms, 41MINT, 3Modellierung, 13, 18, 21, 222Motor, 41MS-DOS, 37, 222Multiplexer, 42, 60, 222Multitasking, 36, 222

Naturanaloge Verfahren, 13, 222Navigation, 183NBC, 215Nebenlaufigkeit, 66, 83, 222Northbridge, 38, 222NXC, 215NXT, 41NXT-G, 63, 64, 68

Anzeige, 70Aufnehmen-Abspielen, 69Bereich, 74Beschleunigungssensor, 71Bewegen, 69Bluetooth-Verbindung, 75Datei, 75Drehsensor, 71Empfange Nachicht, 71Farblampe, 70Farbsensor, 71Gerauschsensor, 70Kalibrierung, 75Klang, 69Kompass, 72Konstante, 74Konvertieren, 74Kreiselsensor, 72Lebenserhaltung, 74

Page 31: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

Sachverzeichnis 233

Lichtsensor, 70Logik, 74Mathe, 74Motor, 69Motor-Reset, 75NXT-Tasten, 71RFID-Sensor, 72Schalter, 73Schleife, 73Sende Nachicht, 70Stop, 73Tastsensor, 70Text, 74Timer, 71Ultraschallsensor, 71Variable, 74Vergleichen, 74Warten, 72Zufall, 74

Oberklasse, 21, 222Observer, 31, 222Odometrie, 155–157, 169, 222Open Source, 107, 215, 223

Parallel, 223PbLua, 215PC, 12, 17, 43, 44, 223PCI, 39PDA, 215, 223Peripherie, 223Personlicher Roboter, 8, 223Pfadplanung, 183Piezo-Effekt, 56, 223Pixel, 38, 42, 223Playback, 11, 223Pledge-Algorithmus, 94Plugin, 132, 136, 223Polarkoordinatensystem, 164, 213, 223Port, 42, 69, 223Pose, 156, 158, 159, 169, 223Programmblocke, 68Programmierbefehl

case, 29, 122do, 30, 120else, 29, 121for, 30, 119if, 28, 121switch, 29, 122while, 30, 120

Programmiersprache, 14, 223Programmierung, 44, 63Protokoll, 223Prozessor, 41, 223

Pulsweitenmodulation, 43, 223PWM, 46, 47, 223

RAM, 39, 223Rasterkarten, 170

Erstellung, 171Pfadplanung, 183

Rechnerarchitektur, 14, 223Regelung, 47, 95, 99, 223Regler, 47, 99, 223RFID, 59, 156, 179, 223RFID-Sensor, 59RGB, 22, 205, 223RobotC, 215Roboter

Definition, 6Klassifikation, 7

Roboterprogrammierung, 11CAD, 12grafisch, 12, 63offline, 12online, 11Playback, 11Teach-In, 11textuell, 12visuell, 12

Robotic Invention System, 41Rotationsmatrix, 174, 224RS 485, 44, 224RWTH MINDSTORMS NXT Toolbox, 215

SATA, 39, 224SCARA, 194, 224Schnittstelle, 43Schutz, 224Semantik, 32, 224Sensor, 41Seriell, 224Serviceroboter, 7, 224Sicherheit, 13, 224Simulation, 13, 224Skalierung, 89, 224SLAM, 170, 224Software Engineering, 14, 224Southbridge, 38, 224Stewart-Platform, 101Synchron, 224Syntax, 32, 106, 137, 224Systemsoftware, 14, 224

Taktfrequenz, 38, 43Tastsensor, 50TCP, 224Teach-In, 11, 224

Page 32: Experimente, Losungen, Tricks¨ - Springer978-3-642-05470-9/1.pdf · A.1 Aufgaben und Experimente mit dem NXT Hier sind einige Ergebnisse und Bemerkungen zu den im Verlauf des Buchs

234 Sachverzeichnis

Topologische Karten, 170Erstellung, 180Pfadplanung, 187

Trajektorie, 11, 224

Ubertragungsrate, 43, 224Ultraschallsensor, 51UML, 20, 224Unterklasse, 21, 22, 225USB, 39, 42, 65, 225

Validierung, 225

VDD, 43, 225Verifikation, 225Verteiltes System, 13, 225Virus, 225Visualisierung, 13, 225

Wegplanung, 183Winkelgeschwindigkeit, 144, 225Wort, 225Wortbreite, 38, 43, 225

Zuverlassigkeit, 13, 225