Fakultät für Informatik, Institut für Robotik Laborpraktikum I Legorobotik in JAVA



Ähnliche Dokumente
Fakultät für Informatik, Institut für Robotik Laborpraktikum I Legorobotik in JAVA EV3

Fakultät für Informatik, Institut für Robotik Lego Mindstorms NXT - Programmierung mit JAVA Einführung

Fakultät für Informatik, Institut für Robotik. Legorobotik Graphische Programmierung Vorstellung des EV3 Systems und der Programmierumgebung.

Fakultät für Informatik, Institut für Robotik EV3 - Laborpraktikum I Einführung in die Programmierung mit JAVA

Lego Roboter mit NXT-G programmieren. Hochschule Mannheim

Fakultät für Informatik, Institut für Robotik Laborpraktikum I Legorobotik graphische Programmierung

Programmierung des Lego NXT in C. Hochschule Mannheim Fakultät für Informatik

Fakultät für Informatik, Institut für Robotik Laborpraktikum I - Medizinarena Legorobotik in C EV3

Fakultät für Informatik, Institut für Robotik Laborpraktikum I - Medizinarena Legorobotik in JAVA EV3

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Fakultät für Informatik, Institut für Robotik EV3 - Laborpraktikum II Programmierung mit JAVA

Beim ROBORACE werden jedes Jahr Schüler und Studierende mit einer neuen Aufgabe aus dem Bereich der Technischen Kybernetik herausgefordert.

[ Experiment- und Datenprotokollierung. mit der EV3 Software]

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Starten der Software unter Windows 7

Java: Vererbung. Teil 3: super()

Vorkurs Informatik WiSe 15/16

System Design Projekt Einführung in NXC

LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java-

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

Starten der Software unter Windows XP

Basisanforderungen: EVA-Prinzips. Erweiterte Anforderungen: wirtschaftlichen und privaten Alltag.

Handbuch B4000+ Preset Manager

Internet Explorer Version 6

Eigenes Projekt Ideen

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Installation OMNIKEY 3121 USB

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

Programmierkurs Java

Bedienungsanleitung Version 1.0

TeamSpeak3 Einrichten

GeoPilot (Android) die App

Programmierung mit NQC: Kommunikation zwischen zwei RCX

Roberta - Tutorial Unterschiede EV3/NXT. Fraunhofer IAIS. v0.1_ TL, BJ

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

ARAkoll 2013 Dokumentation. Datum:

Installation und Inbetriebnahme von Microsoft Visual C Express

Programmierung Weichenmodul S/D Tafel 1

Einführung in Eclipse und Java

Software-Engineering Grundlagen des Software-Engineering

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Kurzeinführung Excel2App. Version 1.0.0

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Robot Karol für Delphi

Sophos Anti-Virus. ITSC Handbuch. Version Datum Status... ( ) In Arbeit ( ) Bereit zum Review (x) Freigegeben ( ) Abgenommen

Startseite von Prinect Remote Access

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Datenaustausch mit dem ClassPad II. CASIO Educational Projects

Informatik 1 Tutorial

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Die USB-Modem-Stick Software (Windows) verwenden. Doppelklicken Sie das Symbol auf dem Desktop, um die Software zu starten. Die Hauptseite erscheint:

Um die Installation zu starten, klicken Sie auf den Downloadlink in Ihrer (Zugangsdaten für Ihre Bestellung vom...)

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

FLASH USB Einführung DEUTSCH

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

GSM Scanner Bedienungsanleitung

KONFIGURATION TECHNICOLOR TC7200

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Programmieren in Java

Live Online Training der Bremer Akademie für berufliche Weiterbildung. Hinweise für den Verbindungaufbau zu den Systemen der Bremer Akademie

iphone-kontakte zu Exchange übertragen

Java Projekt: Tic Tac Toe + GUI

PC-Umzug: So ziehen Sie Ihre Daten von Windows XP nach Windows 8 um

UP4DAR HOWTO: Firmware-Update via RS232- Schnittstelle

SICHERN DER FAVORITEN

Anleitung für Vorlesungsaufzeichnungen mit Lecturnity. (im ZHG und diversen anderen Räumen der Universität Göttingen)

Objektorientierte Programmierung

Bedienungs- & Installationsanleitung COMMPACT / COMMPACT Audio V2.0

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule

Behaglichkeitsmessung mit neuem Messgerät 435 von testo AG

Installation von MailON2!

In der agree ebanking Private und agree ebanking Business Edition ist die Verwendung der USB- und Bluetooth-Funktion aktuell nicht möglich.

Programmiervorkurs SS 2011 Technische Universität Darmstadt Jan Hendrik Burdinski, Felix Kerger

Empfehlungen zur Nutzung der CD zum Buch: Klee & Wiemann: Beweglichkeit und Dehnfähigkeit. Schorndorf: Hofmann,

Funktionsbeschreibung Datenlogger DL28W

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2)

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Konfiguration von Outlook 2007

Programmierung der Lego Mindstorms NXT- Roboter mit lejos!

Grundlagen von Python

Ein + vor dem Ordnernamen zeigt an, dass der Ordner weitere Unterordner enthält. Diese lassen sich mit einem Klick (linke Maustaste) anzeigen.

Druck von bzw. Scan auf USB-Stick

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Visual Basic Express Debugging

Folgeanleitung für Klassenlehrer

Kara-Programmierung AUFGABENSTELLUNG LERNPARCOURS. Abb. 1: Programmfenster. Welt neu erstellen; öffnen; erneut öffnen; speichern; speichern unter

Local Control Network

CALCOO Lite. Inhalt. 1. Projekt anlegen / öffnen. 2. Projekt von CALCOO App importieren

GSM Scanner Bedienungsanleitung. GSM - Scanner. Bedienungsanleitung. Seite 1 von 10

YouTube: Video-Untertitel übersetzen

Bedienungsanleitung für das Tektronix Oszilloskop TDS 2002B

Anleitung zur Nutzung des SharePort Utility

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

TREIBER INSTALLATIONSPROZESS WINDOWS 8 (32 oder 64 BIT)

Transkript:

Fakultät für Informatik, Institut für Robotik Laborpraktikum I Legorobotik in JAVA Ute Ihme Hochschule Mannheim Ute Ihme

DAS LEGO MINDSTORMS System Die Bausysteme source: Lego via Cnet 1999: RCX 2007: NXT 2013: EV3 Hochschule Mannheim Ute Ihme März 2013 2

DAS LEGO MINDSTORMS System Das NXT System Prinzip von LEGO MINDSTORMS Roboter wird gebaut mit programmierbarem LEGO Stein bis zu 3 Motoren oder Lampen bis zu 4 Sensoren LEGO TECHNIC Teile Erstellung eines Steuerprogramms am Computer Übertragen des Programms auf den Roboter Testen des Programms Hochschule Mannheim Ute Ihme März 2013 3

DAS LEGO MINDSTORMS System Programmiersprachen für das NXT System Graphische Programmiersprachen NXT-G LabView Robolab 2.9 Text-basierte Programmiersprachen NXC, C (GNU C/C++) Java task main() { for (int i = 1; i <= 4; i++) { OnFwd(OUT_AC,75); Wait(2000); Off(OUT_AC); OnFwd(OUT_A,75); Wait(800); Off(OUT_A); } } Quellcodebeispiel: Im Viereck fahren in NXT-G und in NXC Hochschule Mannheim Ute Ihme März 2013 4

DAS LEGO MINDSTORMS System Der NXT Stein Technische Daten 32-bit ARM7 Microcontroller 256 kbytes FLASH, 64 Kbytes RAM 8-bit AVR Microcontroller 4 Kbytes FLASH, 512 Byte RAM Bluetooth Kommunikation (drahtlos) USB Anschluss (12 Mbit/s) 4 Eingänge 3 Ausgänge Es können bis zu 3 Steine miteinander verbunden werden (Kommunikation ist nur mit einem Stein möglich) 100 x 64 Pixel LCD Display (graphisch) Lautsprecher Hochschule Mannheim Ute Ihme März 2013 5

DAS LEGO MINDSTORMS System Standardsensoren Berührungssensor Tastsenor Ultraschallsensor Lichtsensor Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 6

DAS SPIELFELD EXPLORE MARS Allgemeiner Aufbau Mannheim University of Applied Sciences Ute Ihme March 4, 2013 7

Start der Entwicklungsumgebung Starten von Eclipse 1. Starten der 32-bit Version von Eclipse (Eclipse Luna) 2. Auswahl des Arbeitsbereiches Standardeinstellungen übernehmen auf OK-Button drücken Hochschule Mannheim Ute Ihme März 2013 8

Start der Entwicklungsumgebung Starten von Eclipse 3. Programmierumgebung Eclipse wird gestartet Navigationsleiste Dateinavigator Feld für Programmentwicklung Informationsfeld Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 9

Start der Entwicklungsumgebung Starten von Eclipse 3. Programmierung vorbereiten Datei wählen Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 10

Start der Entwicklungsumgebung Starten von Eclipse 3. Programmierung vorbereiten - Neu und - Projekt auswählen - LeJOS NXT Projekt wählen - auf Weiter> drücken Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 11

Start der Entwicklungsumgebung Starten von Eclipse 3. Programmierung vorbereiten Projektname eingeben Fertigstellen drücken Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 12

JAVA Code JAVA Basics I Jedes JAVA Programm besteht aus Klassen. public class Berechnung { // hier wird der Programmcode eingefügt } Eine der Klassen muss eine main Methode besitzen. public class Berechnung { public static void main(string[] args) { // hier wird der Programmcode eingefügt } } Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 13

Start der Entwicklungsumgebung Starten von Eclipse 3. Programmierung vorbereiten - Datei - neu - Klasse wählen Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 14

Start der Entwicklungsumgebung Starten von Eclipse 3. Programmierung vorbereiten 1. Klassennamen eingeben 2. Hier zusätzlich public static void main ankreuzen, wenn Klasse main Methode enthalten soll. 3. Fertigstellen drücken Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 15

Start der Entwicklungsumgebung Starten von Eclipse 3. Programmierung vorbereiten Nun kann das Programmieren beginnen! Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 16

JAVA Code Realisierung eines Pausenbefehls 1. Warten darauf, dass ein Knopf des NXT Steins gedrückt wird Button.waitForAnyPress(); 2. Nutzung eines lejos Befehls Delay.msDelay(2000); Hochschule Mannheim Ute Ihme März 2013 17

JAVA Code Displayanzeige Syntax: 1. Nutzung des Standard JAVA Befehls System.out.println("Hello World!") 2. Nutzung des lejos Befehls a) für Strings LCD.drawString("Hello World 1", 0, 2); b) Für Zahlen LCD.drawInt(7, 0, 4); 3. Löschen des Displays LCD.clear(); Hochschule Mannheim Ute Ihme März 2013 18

JAVA Code Das erste Programm: Bildschirmanzeige / Hello World // Importieren von LejosBibliotheken import lejos.nxt.*; import lejos.util.*; public class HelloWorld { public static void main(string[] args) { // TODO Automatisch generierter Methodenstub // Nutzung der JAVA Syntax für die Ausgabe eines Strings System.out.println("Hello World!"); Button.waitForAnyPress(); // Bildschirmlöschen LCD.clear(); Hochschule Mannheim Ute Ihme März 2013 19

JAVA Code Das erste Programm: Bildschirmanzeige / Hello World // Ausgabe eines Strings mit dem LejosBefehl LCD.drawString("Hello World 1", 0, 2); // Warten für 2000ms Delay.msDelay(2000); // Ausgabe einer Zahl mit dem LejosBefehl LCD.drawInt(7, 0, 4); Delay.msDelay(2000); } } Hochschule Mannheim Ute Ihme März 2013 20

JAVA Code Das erste Programm: Bildschirmanzeige / Hello World Datei speichern bzw. alle Dateien speichern drücken Hochschule Mannheim Ute Ihme März 2013 21

JAVA Code Das erste Programm: Bildschirmanzeige / Hello World 1. 2. 3. Ausführen als LeJOS NXT Programm wählen, zuvor NXT Stein einschalten (oranger Knopf) Programm startet selbstständig, kann aber erneut über das Menü auf dem NXT erneut gestartet werden. Hochschule Mannheim Ute Ihme März 2013 22

DAS SPIELFELD EXPLORE MARS Mission 0: Displayanzeige Erstellen Sie ein erstes Programm, dass Ausgaben auf dem Display des NXT realisiert. Programmieren Sie dazu zunächst, dass Beispiel der vorherigen Folien selbstständig nach! Realisieren Sie danach eigene Ausgaben! Hochschule Mannheim Ute Ihme März 2013 23

DAS LEGO MINDSTORMS System Motoren Servomotor Verfügt über integrierten Rotationssensor misst Geschwindigkeit und Abstand Leitet Ergebnisse an NXT Stein weiter Motor kann auf einen Grad genau gesteuert werden Kombinationen mehrerer Motoren möglich arbeiten ggf. mit gleicher Geschwindigkeit Hochschule Mannheim Ute Ihme März 2013 24

JAVA Code Die Klasse Motor Klasse enthält Objekte eigenen Typs, die direkt mit Motor.A, Motor.B und Motor.C referenziert werden können. Wichtige Methoden der Klasse Motor Vorwärtsfahren: Motor.A.forward(); Rückwärtsfahren: Motor.A.backward(); Anhalten: Motor.B.stop(); Kurve Motor.B.forward(); Motor.C.backward(); oder Motor.C.forward(); Motor.B.backward(); Hochschule Mannheim Ute Ihme März 2013 25

JAVA Code Motorensteuerung I - zeitgesteuert - Syntax: Vorwärtsfahren: Motor.A.forward(); Rückwärtsfahren: Motor.A.backward(); Anhalten: Motor.B.stop(); Kurve Motor.B.forward(); Motor.C.backward(); oder Motor.C.forward(); Motor.B.backward(); Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 26

JAVA Code Motorensteuerung I - zeitgesteuert - Programmbeispiel: import lejos.nxt.*; import lejos.util.*; public class Motoren { public static void main(string[] args) { // Vorwärtsfahren Motor.B.forward(); Motor.C.forward(); Delay.msDelay(2000); Motor.B.stop(); Motor.C.stop(); Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 27

JAVA Code Motorensteuerung I - zeitgesteuert - Programmbeispiel: // Rückwärtsfahren Motor.B.backward(); Motor.C.backward(); Delay.msDelay(2000); Motor.B.stop(); Motor.C.stop(); } } Hochschule Mannheim Ute Ihme Mannheim University of Applied Sciences Ute Ihme // Kurve mit einem Motor Motor.B.forward(); Delay.msDelay(2000); Motor.B.stop(); //Kurve mit 2 Motoren Motor.B.forward(); Motor.C.backward(); Delay.msDelay(2000); Motor.B.stop(); Motor.C.stop(); March März 4,. 2013 28

JAVA Code Die Klasse Motor Weitere Funktionen der Klasse Motor void setspeed(int speed) setzt die Motorgeschwindigkeit Parameter speed wird in Grad pro Sekunde angegeben (max. 900) void reversedirection() dreht die aktuelle Drehrichtung um void flt() stopt die Motordrehung, lässt die Motoren dabei aber auslaufen Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 29

JAVA Code Die Klasse Motor Weitere Funktionen der Klasse Motor void rotate(int angle) lässt Motor um den angebenen Winkel drehen void rotateto(int limitangle) lässt den Motor zu dem angebenden Winkel drehen int gettachocount() gibt den Drehwinkel seit dem letzten Aufruf von resettachocount() void resettachocount() setzt den Drehwinkel auf 0 void lock(int power) falls das Anhalten eines Motors mit stop nicht reicht, z.b. Roboterarm Verstärkung der Haltekraft zwischen 1 und 100 Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 30

Motorensteuerung II /- rotationsgesteuert - import lejos.nxt.*; import lejos.util.*; public class MotorKlasse { // Motorenkann man auch als Variablen deklarien // Instanziierung zweier Motoren static NXTRegulatedMotor leftmotor = Motor.B; static NXTRegulatedMotor rightmotor = Motor.C; } public static void main(string[] args) { //Setzen der Geschwindigkeit leftmotor.setspeed(500); rightmotor.setspeed(500); //Vorwärtsfahren bis Drehwinkel von 300 erreicht ist leftmotor.rotate(300,true); rightmotor.rotate(300); } Mannheim University of Applied Sciences Ute Ihme Hochschule Mannheim Ute Ihme March März 4,. 2013 31

DAS SPIELFELD EXPLORE MARS Mission 1 Schieben der Trägerrakete in Startposition Start und Ende: Base 1 Die Langstreckenrakete soll von der Ausgangsstellung zur Startrampe geschoben werden. Video: https://services.informatik.hsmannheim.de/~ihme/version01/deutsch/mission1.html Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 32

DAS SPIELFELD EXPLORE MARS Mission 2: Starten der Langstreckenrakete mit dem Satelliten Start: Base 1 Ende: Base 2 Der Roboter soll der Straße folgen und die Langstreckenrakete aufrichten Video: https://services.informatik.hsmannheim.de/~ihme/version01/deutsch/mission2.html Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 33

DAS LEGO MINDSTORMS System Berührungssensor / Tastsensor Abfrage, ob Sensor gedrückt Werte des Sensors 0: Sensor nicht gedrückt 1: Sensor gedrückt Hochschule Mannheim Ute Ihme März 2013 34

JAVA Code Berührungssensor / Tastsensor Initialisierung: public static TouchSensor touchsensor = new TouchSensor(SensorPort.S1); Hinweis: S1 wird verwendet, wenn der Tastsensor am Port S1 angeschlosssen ist. Wird der Sensor an einem anderen Port angeschlossen, so ist entsprechend S2, S3 oder S4 zu verwenden. Abfrage: boolean sensorpressed = false; sensorpressed = touchsensor.ispressed(); Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 35

JAVA Code Berührungssensor / Tastsensor Programmbeispiel: import lejos.nxt.*; public class Tastsensor { //Initialisierung des Tastsenors am Port 1 public static TouchSensor touchsensor = new TouchSensor(SensorPort.S1); public static void main(string[] args) { //Festlegung einer booleschen Variablen für den Tastsensor boolean sensorpressed = false; Mannheim University of Applied Sciences Ute Ihme March März 4,. 2013 36

JAVA Code Berührungssensor / Tastsensor Programmbeispiel: } //Geradausfahren bis Tastsensor gedrückt wird Motor.B.backward(); Motor.C.backward(); while(sensorpressed==false){ //Auslesen des Zustandes des Tastsensor sensorpressed = touchsensor.ispressed(); } Motor.B.stop(); Motor.C.stop(); } Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 37

DAS SPIELFELD EXPLORE MARS Mission 3: Einschalten des Kontrollzentrums Start und Ende: Base 2 Der blaue Knopf am Kontrollzentrum soll betätigt werden. Der Roboter soll mit Hilfe eines Berührungssensors feststellen, wenn der blaue Knopf gedrückt ist. Wird der Berührungssensor ausgelöst, so soll Hinweis: der Roboter anhalten und eine Lampe Lampen werden an die Ausgänge A, B oder C für 30 s einschalten. angeschlossen und wie Motoren behandelt. Video: https://services.informatik.hsmannheim.de/~ihme/version01/deutsch/mission3.html Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 38

DAS LEGO MINDSTORMS System Ultraschallsensor Sensor sendet Ultraschall aus Schall wird von Hindernis reflektiert Reflektierter Schall wird vom Empfänger registriert Aus Laufzeit des Schalls kann auf die Entfernung geschlussfolgert werden Hochschule Mannheim Ute Ihme März 2013 39

JAVA Code Ultraschallsensor Initialisierung für Port 2: public static UltrasonicSensor sonicsensor = new UltrasonicSensor(SensorPort.S2); Wichtig Methode: int getdistance() Gibt die Entfernung zwischen Sensor und Hindernis in cm an. Maximalwert 255 Hochschule Mannheim Ute Ihme März 2013 40

JAVA Code Ultraschallsensor Programmbeispiel: import lejos.nxt.*; public class Ultraschall { //Initialsierung Ultraschallsensor an Port 2 public static UltrasonicSensor sonicsensor = new UltrasonicSensor(SensorPort.S2); public static void main(string[] args) { int distance=255; Motor.B.forward(); Motor.C.forward(); Hochschule Mannheim Ute Ihme März 2013 41

JAVA Code Ultraschallsensor Programmbeispiel: } } while(distance>=10){ //Auslesen des Zustandes des Ultraschallsensor distance = sonicsensor.getdistance(); } Motor.B.stop(); Motor.C.stop(); Hochschule Mannheim Ute Ihme März 2013 42

DAS SPIELFELD EXPLORE MARS Mission 4: Abholen der Astronauten Start: Base 2 Ende: an Shuttle Sensor: Ultraschallsensor Der Roboter soll die Astronauten abholen. Dazu soll er zur Raumfähre fahren und ca. 5 cm vor der Wand stehen bleiben die Astronauten können dann per Hand in den Roboter gesetzt werden. Video: https://services.informatik.hs-mannheim.de/ ~ihme/version01/deutsch/mission4.html Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 43 43

DAS LEGO MINDSTORMS System Lichtsensor Messung der Helligkeit mittels Fotodiode Helle Fläche reflektiert mehr Licht als dunkle Messbereich: 0: dunkel 100: hell Zur Ausleuchtung kann eine LED eingeschaltet werden Hochschule Mannheim Ute Ihme März 2013 44

JAVA Code Lichtsensor Initialisierung: public static LightSensor lightsensor = new LightSensor(SensorPort.S3); Wichtige Methoden: int getlightvalue() gibt den aktuellen Sensorwert zurück in % (0-100%) void setfloodlight(boolean floodlight) Ein- und Ausschalten der aktiven Beleuchtung Hochschule Mannheim Ute Ihme März 2013 45

JAVA Code Lichtsensor import lejos.nxt.*; public class Lichtsensor { public static LightSensor lightsensor = new LightSensor(SensorPort.S3); public static void main(string[] args) { int licht = 100; } } Motor.B.forward(); Motor.C.forward(); while(licht>=40){ //Auslesen des Zustandes des //Lichtsensor licht = lightsensor.getlightvalue(); } Motor.B.stop(); Motor.C.stop(); Hochschule Mannheim Ute Ihme März 2013 46

DAS SPIELFELD EXPLORE MARS Mission 5: Start: Shuttle Astronauten zurückbringen Ende: Base 2 Video: https://services.informatik.hs-mannheim.de/ ~ihme/version01/deutsch/mission5.html Mannheim University of Applied Sciences Ute Ihme Sensor: Lichtsensor Führen Sie das Programm von Mission 4 fort! Der Roboter soll langsam mit den Astronauten zur Base zurückfahren. Gestartet wird der Roboter mittels Tastsensor oder einer NXT Taste. Mittels Lichtsensor, soll er automatisch erkennen, wenn er sich in der Base befindet. Dazu soll die schwarze Line in Norden der Base erkannt werden. March 4,. 2013 47

DAS SPIELFELD EXPLORE MARS Mission 6: Zusatzaufgabe Zum Mars fliegen Video: https://services.informatik.hs-mannheim.de/ ~ihme/version01/deutsch/mission6.html Start: Base2 Ende: Mars Landeplattform Mittels zweier Lichtsensoren soll der Roboter auf der Flugbahn (Line) zum Marsfliegen. Benutze einen zusätzlichen Sensor, um den Linienfolger abzubrechen. Mannheim University of Applied Sciences Ute Ihme March 4,. 2013 48