1.37 Gyro1 Quadrat fahren Gyro2 Rampe Mehrere Sensoren1 Tischkante Mehrere Sensoren2 Hindernissen ausweichen...

Größe: px
Ab Seite anzeigen:

Download "1.37 Gyro1 Quadrat fahren Gyro2 Rampe Mehrere Sensoren1 Tischkante Mehrere Sensoren2 Hindernissen ausweichen..."

Transkript

1 Inhaltsverzeichnis Aufgabenstellungen Display1 Augen verdrehen Display2 Herzschlag Fahren1 Vor und zurück Fahren2 Links und Rechts Fahren3 ZickZack Fahren4 Töne machen Fahren5 Fahren mit Musik Fahren6 Staendig wiederholen Fahren7 Mehrfach wiederholen Fahren8 Schnell und langsam Berührung1 Tanzen Berührung2 Tanzen mit Musik Berührung3 Bei Berührung anhalten Berührung4 Bei Berührung zurück Berührung5 Schieben Berührung6 Hindernis ausweichen Berührung7 Hindernis ausweichen mit Musik Berührung8 Nicht vom Tisch fallen Licht1 Eingesperrt Licht2 Eingesperrt mit Musik Licht3 Aufräumen Licht4 Linie folgen mit einem Lichtsensor Licht5 Linie folgen mit zwei Lichtsensoren Licht6 Lichtquelle suchen Licht7 Farben und Töne Timer Zeit anzeigen Kommunikation1 Mache Musik Kommunikation2 Auftrag ausführen Kommunikation3 Cheerleader Kommunikation4 Wer macht alles nach? Geräusch1 Laut und leise Geräusch2 Klatschen Geräusch3 Schnell im Kreis Ultraschall1 Komm komm Ultraschall2 Hindernissen ausweichen Ultraschall3 Nicht vom Tisch fallen

2 1.37 Gyro1 Quadrat fahren Gyro2 Rampe Mehrere Sensoren1 Tischkante Mehrere Sensoren2 Hindernissen ausweichen Arbeitsblätter Display1 Augen verdrehen Display2 Herzschlag Fahren1 Vor und zurueck Fahren2 Links und Rechts Fahren3 ZickZack Fahren4 Toene machen Fahren5 Fahren mit Musik Fahren6 Staendig wiederholen Fahren7 Mehrfach wiederholen Fahren8 Schnell und langsam Berührung1 Tanzen Berührung2 Tanzen mit Musik Berührung3 Bei Beruehrung anhalten Berührung4 Bei Beruehrung zurueck Berührung5 Schieben Berührung6 Hindernis ausweichen Berührung7 Hindernis ausweichen mit Musik Berührung8 Nicht vom Tisch fallen Licht1 Eingesperrt Licht2 Eingesperrt mit Musik Licht3 Aufraeumen Licht4 Linie folgen mit einem Lichtsensor Licht5 Linie folgen mit zwei Lichtsensoren Licht6 Lichtquelle suchen Licht7 Farben und Toene Timer Zeit anzeigen Kommunikation1 Mache Musik Kommunikation2 Auftrag ausfuehren Kommunikation3 Cheerleader Kommunikation4 Wer macht alles nach Geräusch1 Laut und leise Geräusch2 Klatschen Geräusch3 Schnell im Kreis Ultraschall1 Komm komm Ultraschall2 Hindernissen ausweichen Ultraschall3 Nicht vom Tisch fallen Gyro1 Quadrat fahren Gyro2 Rampe Mehrere Sensoren1 Tischkante Mehrere Sensoren2 Hindernissen ausweichen

3 Augen verdrehen Aufgabenstellung Display1 Auf dem Display sollen: sich Augen hin und her bewegen Lernziel Erstes Kennenlernen der Displayausgabe. Wichtig ist eine genügend lange Wartezeit zwischen den einzelnen Bildern. Voraussetzung keine Basisroboter (ohne Sensoren) EV3-G : Display1 NXT-G : Display1

4 Herzschlag Aufgabenstellung Display2 Auf dem Display soll: ein Herzschlag/Sanduhr simuliert werden Lernziel Erstes Kennenlernen der Displayausgabe. Wichtig ist eine genügend lange Wartezeit zwischen den einzelnen Bildern. Voraussetzung keine Basisroboter (ohne Sensoren) EV3-G : Display2 NXT-G : Display2

5 Vor und zurück Aufgabenstellung Fahren1 Der Basisroboter soll: geradeaus fahren (5 Sekunden) rückwärts fahren (3 Sekunden) stehen bleiben Lernziel Kennenlernen der ierumgebung Übertragen des s auf den Roboter Ausprobieren der Steuerung des Roboters Es gibt zwei Möglichkeiten den Roboter zu stoppen: Auslaufen lassen und bremsen. Die Lösungen unterscheiden sich durch eine Auswahl im Baustein Bewegung. Wenn die Motoren gebremst werden, bleiben sie sofort stehen, ansonsten läuft der Roboter im Leerlauf aus. Voraussetzung Konstruktion Basisroboter (ohne Sensoren) EV3-G : Fahren1 NXT-G : Fahren1

6 NXC : Fahren1 1 // Der Roboter 2 // fährt geradeaus 5 Sekunden, danach rückwärts 3 Sekunden 3 // und stoppt die Motoren 4 5 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 6 7 task main() 8 { 9 OnFwd(OUT_BC,30); 10 // 5 Sekunden warten 11 Wait(5000); 12 OnRev(OUT_BC,30); 13 Wait(3000); 14 // Motoren stoppen (bremsen) 15 Off(OUT_BC); 16 }

7 Links und Rechts Aufgabenstellung Fahren2 Der Basisroboter soll: geradeaus fahren (2 Sekunden) nach links fahren (2 Sekunden) wieder vorwärts fahren (1 Sekunden) rechts herum fahren (1 Sekunde) rückwärts fahren (3 Sekunden) anhalten Lernziel Kennenlernen der ierumgebung Übertragen des s auf den Roboter Ausprobieren der Steuerung des Roboters Voraussetzung Konstruktion Basisroboter (ohne Sensoren) EV3-G : Fahren2 NXT-G : Fahren2

8 NXC : Fahren2 1 // Der Roboter 2 // fährt gradeaus 2 sekunden, danach links 2 sekunden, vorwärts 1 sekunde, 3 // rechts 1 sekunde, rückwärts 3 sekunden 4 5 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 6 7 task main() 8 { 9 OnFwd(OUT_BC,30); 10 Wait(2000); 11 OnRev(OUT_B,30); 12 Wait(2000); 13 OnFwd(OUT_BC,30); 14 Wait(1000); 15 OnRev(OUT_C,30); 16 Wait(1000); 17 OnRev(OUT_BC,30); 18 Wait(3000); 19 Off(OUT_BC); 20 }

9 ZickZack Aufgabenstellung Fahren3 Der Basisroboter soll: vorwärts fahren (1 Sekunde) eine Linkskehre machen (5 Sekunden) rückwärts fahren (2 Sekunden) rsich im»zickzack«vorwärts bewegen (10 Mal) Lernziel Nutzung von eigenen Blöcken (NXC: Variablen/Funktionen) Wiederholungen Voraussetzung Konstruktion Verwendung der Motoren Basisroboter (ohne Sensoren) EV3-G : Fahren3 NXT-G : Fahren3

10 NXC : Fahren3 1 // Der Roboter soll 2 // - vorwärts fahren (1 Sekunde) 3 // - eine Linkskehre machen (5 Sekunden) 4 // - rückwärts fahren (2 Sekunden) 5 // - sich im»zickzack«vorwärts bewegen (10 Mal) 6 7 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 8 #define SPEED task main() 11 { 12 OnFwd(OUT_BC,SPEED); 13 Wait(1000); 14 // Linkskehre 15 OnRev(OUT_B,SPEED); 16 Wait(5000); 17 // rückwärts 18 OnRev(OUT_BC,SPEED); 19 Wait(2000); 20 Off(OUT_BC); // zehnmal wiederholen und dadurch ZickZack fahren 23 repeat(10) 24 { 25 OnFwd(OUT_B,SPEED); 26 Wait(500); 27 Off(OUT_B); 28 OnFwd(OUT_C,SPEED); 29 Wait(500); 30 Off(OUT_C); 31 } 32 Off(OUT_BC); 33 }

11 Töne machen Aufgabenstellung Fahren4 Der Basisroboter soll: vorwärts und rückwärts fahren sich mal nach rechts mal nach links wenden und dabei jede Aktion mit einem unterschiedlichen Ton beenden zum Schluss sollen die Motoren gestoppt werden. Lernziel Verwendung des Klang-Blocks (NXC: PlayTone) Voraussetzung Konstruktion Verwendung der Motoren Basisroboter (ohne Sensoren) EV3-G : Fahren4 NXT-G : Fahren4 NXC : Fahren4 1 // Der Roboter soll 2 // - vorwärts 3 // - und rückwärts fahren 4 // - sich mal nach rechts 5 // - mal nach links wenden 6 // - und dabei jede Aktion mit einem unterschiedlichen Ton beenden 7 // - zum Schluss sollen die Motoren gestoppt werden

12 8 9 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt #define SPEED #define DURATION_S task main () 15 { 16 OnFwd(OUT_BC,SPEED); 17 Wait(2000); 18 PlayTone(262,DURATION_S); 19 OnRev(OUT_BC,SPEED); 20 Wait(2000); 21 PlayTone(294,DURATION_S); 22 // rückwärts 23 OnRev(OUT_BC,SPEED); 24 Wait(2000); 25 // links 26 Off(OUT_C); 27 OnFwd(OUT_B,SPEED); 28 Wait(2000); 29 PlayTone(330,DURATION_S); 30 // rechts 31 Off(OUT_B); 32 OnFwd(OUT_C,SPEED); 33 Wait(2000); 34 PlayTone(349,DURATION_S); 35 // stopp 36 Off(OUT_BC); 37 }

13 Fahren mit Musik Aufgabenstellung Fahren5 Der Basisroboter soll: vorwärts und rückwärts fahren sich mal nach links mal nach rechts wenden und anschließend eine Melodie spielen zum Schluss sollen die Motoren gestoppt werden. Lernziel Verwendung des Klang-Blocks (NXC: PlayTone) Voraussetzung Konstruktion Verwendung der Motoren Basisroboter (ohne Sensoren) EV3-G : Fahren5 NXT-G : Fahren5 NXC : Fahren5 1 // Der Roboter soll 2 // - vorwärts 3 // - und rückwärts fahren 4 // - sich mal nach links 5 // - mal nach rechts wenden 6 // - und anschließend eine Melodie spielen 7 // - zum Schluss bleibt der Roboter stehen

14 8 9 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt #define SPEED #define NOTETIME #define WAITTIME task main () 16 { 17 // vorwaerts 18 OnFwd (OUT_BC,SPEED); 19 Wait(1000); 20 // rückwaerts 21 OnRev (OUT_BC,SPEED); 22 Wait(1000); 23 // links 24 Off (OUT_B); 25 OnFwd (OUT_C,SPEED); 26 Wait(1000); 27 // rechts 28 Off (OUT_C); 29 OnFwd (OUT_B,SPEED); 30 Wait(1000); 31 Off (OUT_BC); 32 PlayTone(196,4 * NOTETIME); Wait(4 * WAITTIME); 33 PlayTone(220,4 * NOTETIME); Wait(4 * WAITTIME); 34 PlayTone(247,4 * NOTETIME); Wait(4 * WAITTIME); 35 PlayTone(262,4 * NOTETIME); Wait(4 * WAITTIME); 36 PlayTone(294,4 * NOTETIME); Wait(4 * WAITTIME); 37 PlayTone(262,4 * NOTETIME); Wait(4 * WAITTIME); 38 PlayTone(247,4 * NOTETIME); Wait(4 * WAITTIME); 39 PlayTone(330,4 * NOTETIME); Wait(4 * WAITTIME); 40 PlayTone(349,4 * NOTETIME); Wait(4 * WAITTIME); 41 PlayTone(392,4 * NOTETIME); Wait(4 * WAITTIME); 42 PlayTone(349,4 * NOTETIME); Wait(4 * WAITTIME); 43 PlayTone(330,4 * NOTETIME); Wait(4 * WAITTIME); 44 PlayTone(294,4 * NOTETIME); Wait(4 * WAITTIME); 45 PlayTone(262,4 * NOTETIME); Wait(4 * WAITTIME); 46 }

15 Staendig wiederholen Aufgabenstellung Fahren6 Der Basisroboter soll: vorwärts und rückwärts fahren sich mal nach rechts mal nach links wenden, anschließend eine Melodie spielen und dies immer wiederholen. Lernziel Verwendung von Schleifen Voraussetzung Konstruktion Verwendung der Motoren Basisroboter (ohne Sensoren) EV3-G : Fahren6 NXT-G : Fahren6

16 NXC : Fahren6 1 // Der Roboter soll 2 // - vorwärts 3 // - und rückwärts fahren 4 // - sich mal nach rechts 5 // - mal nach links wenden 6 // - eine Melodie spielen 7 // - und dies immer wiederholen 8 9 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt #define SPEED #define NOTETIME #define WAITTIME task main () 16 { 17 while (true) 18 { 19 OnFwd (OUT_BC,SPEED); 20 Wait(1000); 21 OnRev (OUT_BC,SPEED); 22 Wait(1000); 23 Off (OUT_B); 24 OnFwd (OUT_C,SPEED); 25 Wait(1000); 26 Off(OUT_C); 27 OnFwd (OUT_B,SPEED); 28 Wait(1000); 29 Off (OUT_BC); 30 PlayTone(196,4*NOTETIME); Wait(4*WAITTIME); 31 PlayTone(220,4*NOTETIME); Wait(4*WAITTIME); 32 PlayTone(247,4*NOTETIME); Wait(4*WAITTIME); 33 PlayTone(262,4*NOTETIME); Wait(4*WAITTIME); 34 PlayTone(294,4*NOTETIME); Wait(4*WAITTIME); 35 PlayTone(262,4*NOTETIME); Wait(4*WAITTIME); 36 PlayTone(247,4*NOTETIME); Wait(4*WAITTIME); 37 PlayTone(330,4*NOTETIME); Wait(4*WAITTIME); 38 PlayTone(349,4*NOTETIME); Wait(4*WAITTIME); 39 PlayTone(392,4*NOTETIME); Wait(4*WAITTIME); 40 PlayTone(349,4*NOTETIME); Wait(4*WAITTIME); 41 PlayTone(330,4*NOTETIME); Wait(4*WAITTIME); 42 PlayTone(294,4*NOTETIME); Wait(4*WAITTIME); 43 PlayTone(262,4*NOTETIME); Wait(4*WAITTIME); 44 } 45 }

17 Mehrfach wiederholen Aufgabenstellung Fahren7 Der Basisroboter soll: vorwärts und rückwärts fahren sich mal nach links mal nach rechts wenden dies 4 mal wiederholen und anschließend eine Melodie spielen. Lernziel Verwendung von Schleifen (Zählschleife) NXC: repeat Voraussetzung Konstruktion Verwendung der Motoren Basisroboter (ohne Sensoren) EV3-G : Fahren7 NXT-G : Fahren7

18 NXC : Fahren7 1 // Der Roboter soll 2 // - vorwärts 3 // - und rückwärts fahren 4 // - sich mal nach links 5 // - mal nach rechts wenden 6 // - dies 4 mal wiederholen 7 // - und anschließend eine Melodie spielen 8 9 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt #define SPEED #define NOTETIME #define WAITTIME task main () 16 { 17 // Wiederholung 18 repeat (4) 19 { 20 // vorwaerts 21 OnFwd (OUT_BC,SPEED); 22 Wait(1000); 23 // rueckwaerts 24 OnRev (OUT_BC,SPEED); 25 Wait(1000); 26 // links 27 Off (OUT_B); 28 OnFwd (OUT_C,SPEED); 29 Wait(1000); 30 // rechts 31 Off (OUT_C); 32 OnFwd (OUT_B,SPEED); 33 Wait(1000); 34 } 35 Off (OUT_BC); 36 PlayTone(196,4*NOTETIME); Wait(4*WAITTIME); 37 PlayTone(220,4*NOTETIME); Wait(4*WAITTIME); 38 PlayTone(247,4*NOTETIME); Wait(4*WAITTIME); 39 PlayTone(262,4*NOTETIME); Wait(4*WAITTIME); 40 PlayTone(294,4*NOTETIME); Wait(4*WAITTIME); 41 PlayTone(262,4*NOTETIME); Wait(4*WAITTIME); 42 PlayTone(247,4*NOTETIME); Wait(4*WAITTIME); 43 PlayTone(330,4*NOTETIME); Wait(4*WAITTIME); 44 PlayTone(349,4*NOTETIME); Wait(4*WAITTIME); 45 PlayTone(392,4*NOTETIME); Wait(4*WAITTIME); 46 PlayTone(349,4*NOTETIME); Wait(4*WAITTIME); 47 PlayTone(330,4*NOTETIME); Wait(4*WAITTIME); 48 PlayTone(294,4*NOTETIME); Wait(4*WAITTIME); 49 PlayTone(262,4*NOTETIME); Wait(4*WAITTIME); 50 }

19 Schnell und langsam Aufgabenstellung Fahren8 Der Basisroboter soll: 2 Sekunden auf voller Leistung fahren (100 2 Sekunden auf geringer Leistung fahren (ca Sekunde rückwärts fahren (Richtung der Motoren ändern) stoppen Lernziel Austesten der Einstellungen im Bewegungsblock: Richtung und Leistung einstellen NXC: Variieren der Geschwindigkeit Voraussetzung Konstruktion Verwendung der Motoren Basisroboter (ohne Sensoren) EV3-G : Fahren8 NXT-G : Fahren8 NXC : Fahren8 1 // Der Roboter soll 2 // - Motoren B und C anschalten 3 // - 2 Sekunden auf voller Leistung fahren 4 // - 2 Sekunden auf geringer Leistung fahren 5 // - 1 Sekunde rückwärts fahren (Richtung der Motoren ändern) 6 // - stoppen 7

20 8 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 9 10 #define SPEED #define MAX_SPEED #define MIN_SPEED task main () 15 { 16 OnFwd(OUT_BC,MAX_SPEED); 17 Wait(2000); 18 OnFwd(OUT_BC,MIN_SPEED); 19 Wait(2000); 20 OnRev(OUT_BC,SPEED); 21 Wait(1000); 22 Off(OUT_BC); 23 }

21 Tanzen Aufgabenstellung Berührung1 Der Basisroboter soll tanzen, sobald der Berührungssensor berührt wird. Lernziel Erstes Ausprobieren des Berührungssensors Voraussetzung Übungen zur Motorensteuerung Konstruktion Basisroboter mit einem Berührungssensor EV3-G : Beruehrung1 NXT-G : Beruehrung1 NXC : Berührung1 1 // Der Roboter soll 2 // tanzen, sobald der 3 // Berührungssensor berührt wird 4 5 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 6 7 #define SPEED task main () 10 { 11 SetSensorType(IN_1, SENSOR_TYPE_TOUCH); 12 SetSensorMode(IN_1, SENSOR_MODE_PULSE); 13 ClearSensor(IN_1); 14 while (true) 15 { 16 // prüft ob der Sensor gedrückt wurde 17 if (SENSOR_1 == 1)

22 18 { 19 // tanzen zwei mal wiederholen 20 repeat (2) 21 { 22 OnFwd (OUT_BC,SPEED); 23 Wait (1000); 24 OnRev (OUT_BC,SPEED); 25 Wait (1000); 26 Off (OUT_B); 27 OnFwd (OUT_C,SPEED); 28 Wait (1000); 29 Off (OUT_C); 30 OnFwd (OUT_B,SPEED); 31 Wait (1000); 32 } 33 Off (OUT_BC); 34 // Ende if 35 } 36 // Ende while 37 } 38 }

23 Tanzen mit Musik Aufgabenstellung Berührung2 Der Basisroboter soll: eine Melodie spielen tanzen, wenn der Berührungssensor berührt wird Lernziel Erstes verwenden einen parallelen Ablaufstangs Voraussetzung Übungen zur Motorensteuerung Konstruktion Basisroboter mit einem Berührungssensor EV3-G : Beruehrung2 NXT-G : Beruehrung2 NXC : Berührung2 1 // Der Roboter soll 2 // - eine Melodie spielen 3 // - tanzen, wenn der Berührungssensor berührt wird 4 5 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 6 7 #define SPEED 60 8

24 9 task sensor_test() 10 { 11 while (true) 12 { 13 // fragt ob Sensor gedrückt 14 if (SENSOR_1 == 1 ) 15 { 16 repeat (2) // tanzen 17 { 18 OnFwd (OUT_BC,SPEED); 19 Wait (1000); 20 OnRev (OUT_BC,SPEED); 21 Wait (1000); 22 Off (OUT_B); 23 OnFwd (OUT_C,SPEED); 24 Wait (1000); 25 Off (OUT_C); 26 OnFwd (OUT_B,SPEED); 27 Wait (1000); 28 } 29 Off (OUT_BC); 30 // Ende if 31 } 32 // Ende while 33 } 34 } task musik () 37 { 38 #define NOTETIME #define WAITTIME PlayTone(247,4* NOTETIME); Wait(4* WAITTIME); 42 PlayTone(262,4* NOTETIME); Wait(4* WAITTIME); 43 PlayTone(294,4* NOTETIME); Wait(4* WAITTIME); 44 PlayTone(330,4* NOTETIME); Wait(4* WAITTIME); 45 PlayTone(349,4* NOTETIME); Wait(4* WAITTIME); 46 PlayTone(440,4* NOTETIME); Wait(4* WAITTIME); 47 PlayTone(494,4* NOTETIME); Wait(4* WAITTIME); 48 PlayTone(523,4* NOTETIME); Wait(4* WAITTIME); 49 PlayTone(587,4* NOTETIME); Wait(4* WAITTIME); 50 PlayTone(440,4* NOTETIME); Wait(4* WAITTIME); 51 PlayTone(392,4* NOTETIME); Wait(4* WAITTIME); 52 PlayTone(349,4* NOTETIME); Wait(4* WAITTIME); 53 PlayTone(330,4* NOTETIME); Wait(4* WAITTIME); 54 PlayTone(294,4* NOTETIME); Wait(4* WAITTIME); 55 PlayTone(220,4* NOTETIME); Wait(4* WAITTIME); 56 PlayTone(220,4* NOTETIME); Wait(4* WAITTIME); 57 } task main () 60 { 61 SetSensorType (IN_1, SENSOR_TYPE_TOUCH); 62 SetSensorMode(IN_1, SENSOR_MODE_PULSE); 63 ClearSensor(IN_1);

25 64 Precedes(sensor_test,musik); 65 }

26 Bei Berührung anhalten Aufgabenstellung Berührung3 Der Basisroboter soll: beliebig durch die Gegend fahren und anhalten, sobald der Berührungssensor berührt wird Lernziel Bedingte Wiederholung / If-Abfrage Voraussetzung Übungen zur Motorensteuerung Konstruktion erste Übungen mit dem Berührungssensor Basisroboter mit einem Berührungssensor EV3-G : Beruehrung3 NXT-G : Beruehrung3

27 NXC : Berührung3 1 // Der Roboter soll 2 // - beliebig durch die Gegend fahren 3 // - und anhalten, sobald der Berührungssensor berührt wird 4 5 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 6 7 #define SPEED #define SPEED task main () 11 { 12 SetSensorType(IN_1, SENSOR_TYPE_TOUCH); 13 SetSensorMode(IN_1, SENSOR_MODE_PULSE); 14 ClearSensor(IN_1); // führt die Schleife solange aus, bis der Sensor berührt wird 17 while (SENSOR_1 == 0) 18 { 19 OnFwd (OUT_BC,SPEED1); 20 Wait(500); 21 Off(OUT_B); 22 OnFwd (OUT_C,SPEED2); 23 Wait(500); 24 } // Ende while 25 Off(OUT_BC); 26 }

28 Bei Berührung zurück Aufgabenstellung Berührung4 Der Basisroboter soll: vorwärts fahren, bis eine Wand/ein Hindernis berührt wird und danach 2 Sekunden rückwärts fahren Lernziel Warten bis ein Sensor berührt wird / If-Abfrage Voraussetzung Übungen zur Motorensteuerung Konstruktion erste Übungen mit dem Berührungssensor Basisroboter mit einem Berührungssensor EV3-G : Beruehrung4 NXT-G : Beruehrung4 NXC : Berührung4 1 // Der Roboter soll 2 // - vorwärts fahren, bis eine Wand/ein Hindernis berührt wird 3 // - und danach 2 Sekunden rückwärts fahren 4 5 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 6 7 #define SPEED task main () 10 { 11 SetSensorType(IN_1, SENSOR_TYPE_TOUCH);

29 12 SetSensorMode(IN_1, SENSOR_MODE_PULSE); OnFwd (OUT_BC,SPEED); 15 // prüft ob Sensor gedrückt wurde 16 until (SENSOR_1 == 1) 17 OnRev(OUT_BC,SPEED); 18 Off(OUT_BC); 19 }

30 Schieben Aufgabenstellung Berührung5 Der Basisroboter soll: warten, bis ein Gegenstand z.b. ein Karton vor ihn gestellt wird (der Berührungssensor wird berührt) losfahren und den Gegenstand vor sich herschieben stehen bleiben, wenn der Gegenstand entfernt wurde. Lernziel Warten bis ein Sensor berührt wird. Wiederholen solange ein Sensor berührt wird. NXC: Until Voraussetzung Übungen zur Motorensteuerung Konstruktion erste Übungen mit dem Berührungssensor Basisroboter mit einem Berührungssensor EV3-G : Beruehrung5 NXT-G : Beruehrung5 NXC : Berührung5 1 // Der Roboter soll 2 // - warten, bis ein Gegenstand z.b. der weiße Karton 3 // vor ihn gestellt wird (der Berührungssensor wird berührt) 4 // - losfahren und den Gegenstand vor sich herschieben 5 // - stehen bleiben, wenn der Gegenstand entfernt wurde

31 6 7 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 8 9 #define SPEED task main () 12 { 13 SetSensor(IN_1, SENSOR_TOUCH); // warte auf den Gegenstand/Berührung des Sensors 16 until (SENSOR_1 == 1); 17 // fahre los 18 OnFwd(OUT_BC,SPEED); 19 // warte bis der Gegenstand entfernt wurde 20 until (SENSOR_1 == 0); 21 Off(OUT_BC); 22 }

32 NXT-G : Hindernis1 NXT-G : Hindernis2 NXT-G : Hindernis3 NXC : Hindernis B1 1 // Dieses lässt den Roboter mittels Berührungssensor Hindernisse erkennen, 2 // denen er dann ausweicht. 3 // In diesem Fall ist der Sensor auf der Rückseite vom Basisroboter angebaut, wie 4 // in der Bauanleitung. 5

33 6 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 7 8 task main() 9 { 10 SetSensorTouch (IN_1); while(true) 13 { 14 OnRev(OUT_BC, 40); 15 // prüfen ob der Sensor gedrückt wird 16 if (SENSOR_1 == 1) 17 { 18 // rückwertsfahren und sich drehen 19 OnFwd(OUT_BC, 40); 20 Wait(500); 21 Off(OUT_C); 22 OnFwd(OUT_B, 40); 23 Wait(1000); 24 } 25 } 26 } NXC : Hindernis B2 1 // Dieses lässt den Roboter mittels Berührungssensoren Hindernisse erkennen, 2 // denen er dann ausweicht. Dabei reagiert der Roboter auf 2 verschiedene Signale, da er 2 3 // Berührungssensoren hat, und die Berührungen unterscheiden kann. 4 5 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 6 7 #define SPEED task main() 10 { 11 SetSensorTouch(IN_1); 12 SetSensorTouch(IN_3); while(true) 15 { 16 // prüfen ob Sensor 1 gedrückt ist 17 if (SENSOR_1 == 1) 18 { 19 // zurücksetzen 20 OnRev(OUT_BC, SPEED); 21 Wait(500); 22 Off(OUT_C); 23 // drehen 24 OnRev(OUT_B, SPEED); 25 Wait(500);

34 26 } 27 // prüfen ob Sensor 2 gedrückt ist 28 else if (SENSOR_3 == 1) 29 { 30 // zurücksetzen 31 OnRev(OUT_BC, SPEED); 32 Wait(500); 33 Off(OUT_B); 34 // drehen 35 OnRev (OUT_C, SPEED); 36 Wait(500); 37 } 38 else 39 OnFwd(OUT_BC, SPEED); 40 // Ende while 41 } 42 } NXC : Hindernis U 1 // Dieses lässt den Roboter Hindernissen ausweichen und sich drehen, wenn 2 // der Roboeter eine Entfernung kleiner als 27 cm misst.*/ 3 4 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 5 6 #define NEAR 27 // Abstand in cm 7 #define SPEED task main () 10 { 11 SetSensorLowspeed(IN_4); while (true) 14 { 15 OnFwd(OUT_BC, SPEED); 16 // solange die Entfernung < 27 cm 17 while(sensorus(in_4) < NEAR) 18 { 19 OnRev(OUT_BC, SPEED); 20 Wait(500); 21 Off(OUT_B); 22 OnFwd(OUT_C, SPEED); 23 Wait(500); 24 } 25 } 26 }

35 Hindernis ausweichen Berührung6 Der Basisroboter soll: beliebig vorwärts fahren (z.b.»zickzack«), bis eine Wand/ein Hindernis berührt wird nach Berührung 1 Sekunde rückwärts setzen anschließend soll er die Richtung ändern: wurde der linke Sensor berührt, nach rechts drehen, dann wieder vorwärts fahren wurde der rechte Sensor berührt, nach links drehen, dann wieder vorwärts fahren Lernziel Verwendung von mehreren Sensoren. Voraussetzung Übungen zur Motorensteuerung Konstruktion Verwendung von Schaltern/If-Abfragen Basisroboter mit zwei Berührungssensoren

36 EV3-G : Beruehrung6 NXT-G : Beruehrung6

37 NXC : Berührung6 1 // Der Roboter soll 2 // - beliebig vorwärts fahren (z.b.»zickzack«), bis 3 // eine Wand/ein Hindernis berührt wird 4 // - nach Berührung 1 Sekunde rückwärts setzten 5 // - anschließend soll er die Richtung ändern: 6 // - wurde der linke Sensor berührt, nach rechts drehen, dann wieder vorwärts fahren 7 // - wurde der rechte Sensor berührt, nach links drehen, dann wieder vorwärts fahren 8 9 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt #define SPEED task main() 14 { 15 SetSensorTouch(IN_1); 16 SetSensorTouch(IN_3); while(true) 19 { 20 // Abfrage des linken Sensor 21 if(sensor_1 == 1) 22 { 23 OnRev(OUT_BC,SPEED); 24 Wait(1000); 25 OnFwd(OUT_B,SPEED); 26 Wait(1000); 27 } 28 // Abfrage des rechten Sensor 29 else if(sensor_3 == 1) 30 { 31 OnRev(OUT_BC,SPEED); 32 Wait(1000); 33 OnFwd(OUT_C,SPEED); 34 Wait(800); 35 } 36 // Wenn kein Sensor gedrückt ist, fahre gerade aus 37 else OnFwd(OUT_BC,SPEED); 38 } 39 }

38 Hindernis ausweichen mit Musik Aufgabenstellung Berührung7 Der Basisroboter soll: beliebig vorwärts fahren (z.b.»zickzack«), bis eine Wand/ein Hindernis berührt wird nach Berührung 1 Sekunde rückwärts setzen anschließend soll er die Richtung ändern: wurde der linke Sensor berührt, nach rechts drehen, dann wieder vorwärts fahren wurde der rechte Sensor berührt, nach links drehen, dann wieder vorwärts fahren bei jeder Betätigung des linken Sensors soll der Ton tiefer werden bei jeder Berührung des rechten Sensors soll der Ton höher werden Lernziel Verwendung von mehreren Sensoren. Verschachtelte Abfragen. Verwendung einer Variablen. Voraussetzung Übungen zur Motorensteuerung Konstruktion Verwendung von Schaltern/If-Abfragen Basisroboter mit zwei Berührungssensoren

39 EV3-G : Beruehrung7 NXT-G : Beruehrung7 NXC : Berührung7 1 // Der Roboter soll 2 // - beliebig vorwärts fahren (z.b.»zickzack«), bis eine Wand/ein Hindernis berührt wird 3 // - nach Berührung 1 Sekunde rückwärts setzten 4 // - anschließend er die Richtung ändern: 5 // - wurde der linke Sensor berührt, nach rechts drehen, dann wieder vorwärts fahren 6 // - wurde der rechte Sensor berührt, nach links drehen, dann wieder vorwärts fahren

40 7 // - dann vorwärts fahren 8 // - bei jeder Berührung einen Ton spielen: 9 // - bei jeder Betätigung des linken Sensors soll der Ton tiefer werden 10 // - bei jeder Berührung des rechten Sensors soll der Ton höher werden //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt #define SPEED #define NOTETIME #define WAITTIME #define VOL task main() 21 { 22 SetSensorTouch(IN_1); 23 SetSensorTouch(IN_3); int ton = 330; 26 OnFwd(OUT_BC,SPEED); while(true) 29 { 30 // Abfrage des linken Sensor 31 if(sensor_1 == 1) 32 { 33 OnRev(OUT_BC,SPEED); 34 Wait(1000); 35 OnFwd(OUT_B,SPEED); 36 Wait(1000); 37 OnFwd(OUT_BC,SPEED); 38 // Varialbe ton tiefer setzen 39 ton = ton - 50; 40 PlayTone(ton,4 * NOTETIME); 41 Wait(4 * WAITTIME); 42 } 43 // Abfrage des rechten Sensor 44 else if(sensor_3 == 1) 45 { 46 OnRev(OUT_BC,SPEED); 47 Wait(1000); 48 OnFwd(OUT_C,SPEED); 49 Wait(800); 50 OnFwd(OUT_BC,SPEED); 51 // Varialbe ton höher setzen 52 ton = ton + 50; 53 PlayTone(ton,4 * NOTETIME); 54 Wait(4 * WAITTIME); 55 } 56 } 57 }

41 Nicht vom Tisch fallen Aufgabenstellung Berührung8 Der Roboter fährt gerade auf die Tischkante zu: kommt er an die Tischkante, hält er an Lernziel Ein interessantes Experiment mit dem Berührungssensor und zusätzlicher Konstruktion. Das Problem liegt in der Konstruktion, der Berührungssensor muss bei Beginn des s gedrückt sein und darf erst nach dem Losfahren und erreichen der Tischkante losgelassen werden. Voraussetzung Übungen zur Motorensteuerung Konstruktion Verwendung von Sensoren Roboter mit Berührungssensor EV3-G : Berührung8 NXT-G : Berührung8 NXC : Berührung8 1 // Der Roboter fährt gerade auf die Tischkante zu: 2 // - kommt er an die Tischkante, hält er an 3 4 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 5 6 #define SPEED task main() 9 { 10 SetSensorTouch(IN_1);

42 11 12 // fahre los 13 OnFwd(OUT_BC,SPEED); 14 // warte auf Tischkante bis der Sensor nicht mehr gedrückt 15 until (SENSOR_1 == 0); 16 Off(OUT_BC); 17 }

43 Eingesperrt Aufgabenstellung Licht1 Der Roboter darf das schwarz umrandete Feld nicht verlassen Lernziel Erstes Ausprobieren des Lichtsensors Voraussetzung Konstruktion Basisroboter mit einem nach unten gerichteten Lichtsensor zur Testunterlage EV3-G : Licht1 NXT-G : Licht1 NXC : Licht1 1 // Der Robot darf das schwarz umrandete Feld nicht verlassen 2 3 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 4 #define SPEED 60 5 #define motoren OUT_BC 6 #define THRESHOLD task main () 9 { 10 SetSensorLight(IN_3); while(true) 13 { 14 OnFwd(motoren,SPEED);

44 15 // überprüft den Lichtsensor, damit der Roboter nicht über die schwarze Linie fährt 16 if (SENSOR_3 < THRESHOLD) 17 { 18 // zurück fahren 19 OnRev(motoren, SPEED); 20 Wait(2000); 21 // drehen 22 OnFwd(OUT_B,SPEED); 23 Wait (900); 24 } 25 } 26 }

45 Eingesperrt mit Musik Aufgabenstellung Licht2 Der Roboter darf das schwarz umrandeten Feld nicht verlassen immer wenn er die schwarze Linie erkennt, wird ein Ton gespielt Lernziel Erstes Ausprobieren des Lichtsensors Voraussetzung Konstruktion Basisroboter mit einem nach unten gerichteten Lichtsensor zur Testunterlage EV3-G : Licht2 NXT-G : Licht2 NXC : Licht2 1 // Der Roboter 2 // - darf das schwarz umrandeten Feld nicht verlassen 3 // - immer wenn er die schwarze Linie erkennt, wird ein Ton gespielt 4 5 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 6 7 #define SPEED 60 8 #define motoren OUT_BC 9 #define THRESHOLD #define NOTETIME 100

46 11 #define WAITTIME task main () 14 { 15 SetSensorLight(IN_3); while(true) 18 { 19 OnFwd(motoren,SPEED); 20 // überprüft den Lichtsensor, damit der Roboter nicht über die schwarze Linie fährt 21 if (SENSOR_3 < THRESHOLD) 22 { 23 PlayTone(196,4 * NOTETIME); 24 Wait(4 * WAITTIME); 25 // zurück fahren 26 OnRev(motoren, SPEED); 27 Wait(2000); 28 // drehen 29 OnFwd(OUT_B,SPEED); 30 Wait (900); 31 } 32 } 33 }

47 Aufräumen Aufgabenstellung Licht3 Eine andere Variante von eingesperrt. Auf der Testunterlage befinden sich größere Gegenstände (z.b. leere Getränkedosen), die durch die Bewegung aus dem Kreis geschoben werden. Es sollte noch zusätzlich ein Schieber konstruiert werden. Der Roboter soll Dosen oder Bausteine aus einem Kreis heraus schieben. Lernziel Erstes Ausprobieren des Lichtsensors Voraussetzung Konstruktion Basisroboter mit einem nach unten gerichtetem Lichtsensor. Testunterlage mit Dosen oder größeren LEGO-Steinblöcken EV3-G : Licht3 NXT-G : Licht3 NXC : Licht3 1 // Der Roboter soll 2 // Bausteine aus einem Kreis heraus schieben 3 4 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 5

48 6 #define SPEED 60 7 #define motoren OUT_BC 8 #define THRESHOLD task main () 11 { 12 SetSensorLight(IN_3); while(true) 15 { 16 OnFwd(motoren,SPEED); 17 // Linie 18 if (SENSOR_3 < THRESHOLD) 19 { 20 OnRev(motoren, SPEED); 21 Wait(2000); 22 OnFwd(OUT_B,SPEED); 23 Wait (900); 24 OnFwd (motoren, SPEED); 25 } 26 } 27 }

49 Linie folgen mit einem Lichtsensor Aufgabenstellung Licht4 Der Roboter soll eine schwarze Linie erkennen und auf/an ihr entlang fahren. Lernziel Allgemeine Palette: Schalter Allgemeine Palette: Warten auf Licht NXC: if-abfrage Voraussetzung Konstruktion Basisroboter mit einem nach unten gerichtetem Lichtsensor. EV3-G : Licht4 NXC : Licht4 1 // Der Roboter soll 2 // - eine schwarze Linie erkennen und auf/an ihr entlang fahren 3 4 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 5 6 #define SPEED 40 7 #define motoren OUT_BC

50 8 #define THRESHOLD 45 // Festlegen eines Schwellenwerts 9 10 task main () 11 { 12 SetSensorLight(IN_3); while(true) 15 { 16 // Lichtwert unterhalb des Schwellenwerts 17 if(sensor_3 < THRESHOLD) 18 { 19 Off(OUT_B); 20 OnFwd(OUT_C, SPEED); 21 } 22 // Lichtwert überhalb des Schwellenwerts 23 else 24 { 25 Off(OUT_C); 26 OnFwd(OUT_B, SPEED); 27 } 28 } 29 } NXT-G : Licht4

51 Linie folgen mit zwei Lichtsensoren Aufgabenstellung Licht5 Der Roboter soll auf einer schwarzen Linie entlang fahren. Mit zwei Lichtsensoren weiß der Roboter, ob er rechts oder links die schwarze Linie verlässt. Mit dieser Lösung fährt der Roboter sehr ruhig. Eine Lösung mit einem Lichtsensor findet man unter Licht 4. Der Roboter fährt dann unruhiger. Lernziel Erstes Ausprobieren des Lichtsensors Voraussetzung Konstruktion Basisroboter mit zwei Lichtsensoren nach unten zur Testunterlage EV3-G : Licht5

52 NXT-G : Licht5 NXC : Licht5 1 // Der Roboter 2 // - eine schwarze Linie erkennen und auf/an ihr entlang fahren 3 // mit 2 Lichtsensoren 4 5 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 6 7 #define SPEED 40 8 #define motoren OUT_BC 9 #define sensorrechts SENSOR_3 // zur besseren Unterscheidung wurden die Sensoren ihrer Anbringung entsprechend benannt 10 #define sensorlinks SENSOR_4 11 #define wertrechts 400 // statt Rohwerte, kann auch mit Prozent gearbeitet werden, dementsprechend Modus in task main() ändern 12 #define wertlinks #define verzoegerung task folgen() 16 { 17 do 18 { 19 if(sensorlinks > wertlinks && sensorrechts > wertrechts)

53 20 { 21 OnFwd(motoren,SPEED); 22 } 23 if(sensorlinks < wertlinks && sensorrechts > wertrechts) 24 { 25 Off(OUT_C); 26 OnFwd(OUT_B,SPEED); 27 Wait(verzoegerung); 28 } 29 if(sensorlinks > wertlinks && sensorrechts < wertrechts) 30 { 31 Off(OUT_B); 32 OnFwd(OUT_C,SPEED); 33 Wait(verzoegerung); 34 } 35 if(sensorlinks < wertlinks && sensorrechts < wertrechts) 36 { 37 OnRev(OUT_B,SPEED); 38 OnFwd(OUT_C,SPEED); 39 } 40 } 41 while(true); 42 } task main () 45 { 46 SetSensorLight(IN_3); 47 SetSensorLight(IN_4); 48 SetSensorMode(IN_3,IN_MODE_RAW); 49 SetSensorMode(IN_4,IN_MODE_RAW); 50 // Ausführen der Task folgen 51 Precedes(folgen); 52 }

54 Lichtquelle suchen Aufgabenstellung Licht6 Der Roboter soll eine helle Lichtquelle im Raum suchen und zu ihr hinfahren. Lernziel Erstes Ausprobieren des Lichtsensors Voraussetzung Konstruktion Basisroboter mit einem Lichtsensor. Evtl. zusätzlicher Motor, damit der Sensorkopf rotieren kann EV3-G : Licht6 NXT-G : Licht6

55 NXC : Licht6 1 // Der Roboter 2 // soll eine helle Lichtquelle im Raum suchen und zu ihr hinfahren 3 4 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 5 6 #define SPEED 50 7 #define motoren OUT_BC 8 #define hell task lichtsuchen() 11 { 12 while(true) 13 { 14 OnFwd(OUT_B,SPEED); 15 OnRev(OUT_C,SPEED); 16 until(sensor_3 > hell); 17 OnFwd(motoren, SPEED); 18 Wait(200); 19 } 20 } task main() 23 { 24 SetSensorLight(IN_3); 25 ClearSensor(IN_3); 26 Precedes(lichtsuchen); 27 }

56 Farben und Töne Aufgabenstellung Licht7 Der Roboter soll über die Testunterlage fahren und je nach überfahrener Farbe einen anderen Ton ausgeben. Lernziel Addieren und multiplizieren Datenleitungen legen NXC: Variablen Voraussetzung Konstruktion Basisroboter mit einem nach unten gerichteten Lichtsensor EV3-G : Licht7 NXT-G : Licht7

57 NXC : Licht7 1 // Der Roboter soll 2 // über die Testunterlage fahren und je nach Farbe einen anderen Ton ausgeben 3 4 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 5 #define SPEED 40 6 #define motoren OUT_BC 7 8 task main() 9 { 10 SetSensorLight(IN_3); 11 SetSensorMode(IN_3, IN_MODE_RAW); int mylight = 0; // Initialisierung der Variables mylight 14 OnFwd (motoren,speed); while(true) 17 { 18 mylight = (SENSOR_3); // Zuweisung der Sensorwerte 19 PlayTone(mylight*5, 50); 20 Wait(50); 21 } 22 }

58 Zeit anzeigen Aufgabenstellung Timer Der Roboter soll: eine bestimmte Zeit z.b. 6,5 Sekunden vorwärts fahren und die gefahrene Zeit auf dem Display ausgeben. Lernziel Arbeiten mit dem Timer Displayausgabe Variablen Voraussetzung Bewegungsblöcke Datenleitungen Konstruktion Basisroboter EV3-G : Timer1 NXT-G : Timer1

59 NXC : Timer 1 1 // Dieses lässt den Roboter eine bestimmte Zeit vorwärtsfahren. 2 // Die Fahrzeiten werden durch den Timer gesteuert. 3 4 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 5 #define TIME_MOVE task main() 8 { 9 int t3, time; 10 { 11 t3 = CurrentTick(); // aktuellen Timer speichern 12 do 13 { 14 time = CurrentTick()-t3; // entspricht: Timer auf 0 setzen 15 NumOut (16,20, time, 1); 16 OnFwd (OUT_BC, 40); // vorwärtsfahren 17 } 18 while (time < TIME_MOVE); 19 { 20 Off(OUT_BC); // stoppt Motoren 21 NumOut (12, 28, TIME_MOVE, 1); // zeigt Fahrzeit/Timerwert in ms an 22 Wait (1500); 23 } 24 } 25 } s

60 Mache Musik Aufgabenstellung Kommunikation1 DDer erste Roboter ist der Anführer (Master), er sendet ein Kommando. Der andere Roboter (Slave) empfängt den Auftrag. Daraufhin spielt er eine Melodie. Lernziel Kommunikationsexperiment Vollständige Palette Eigene Blöcke Bluetooth Befehle Voraussetzung Klang-Blöcke Konstruktion Zwei Basisroboter EV3-G : Kommunikation1-Master EV3-G : Kommunikation1-Slave NXT-G : Kommunikation1-Master

61 NXT-G : Kommunikation1-Slave NXC : Kommunikation1 Master 1 // Master 2 3 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 4 5 #define BT_CONN sub BTCheck(int conn) 8 { 9 if(!bluetoothstatus(conn)==no_err) 10 { 11 TextOut(5,LCD_LINE5, Bluetooth-Error!,1); 12 Wait(1000); 13 Stop(1); 14 } 15 } task main() 18 { 19 BTCheck(BT_CONN); 20 string send = go ; 21 SendRemoteString(BT_CONN,true,send); 22 } NXC : Kommunikation1 Slave 1 // Slave 2 3 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 4 5 #define BT_CONN // Anlegen der Subroutine BTCheck 8 sub BTCheck(int conn) 9 { 10 if(!bluetoothstatus(conn)==no_err) 11 { 12 TextOut(5,LCD_LINE5, Bluetooth-Error!,1); 13 Wait(1000); 14 Stop(1); 15 } 16 } task main()

62 19 { 20 string message; 21 // Aufruf der Subroutine BTCheck 22 BTCheck(BT_CONN); // auf Bluetooth-Nachricht warten und dann Musik spielen 25 while (message!= go ) 26 { 27 ReceiveRemoteString(1,true,message); 28 // Alle meine Entchen PlayTone (262, 400); Wait(410); 30 PlayTone (294, 400); Wait(410); 31 PlayTone (330, 400); Wait(410); 32 PlayTone (349, 400); Wait(410); 33 PlayTone (392, 800); Wait(810); 34 PlayTone (392, 800); Wait(810); 35 PlayTone (440, 400); Wait(410); 36 PlayTone (440, 400); Wait(410); 37 PlayTone (440, 400); Wait(410); 38 PlayTone (440, 400); Wait(410); 39 PlayTone (392, 1600); Wait(1610); 40 PlayTone (440, 400); Wait(410); 41 PlayTone (440, 400); Wait(410); 42 PlayTone (440, 400); Wait(410); 43 PlayTone (440, 400); Wait(410); 44 PlayTone (392, 1600); Wait(1610); 45 PlayTone (349, 400); Wait(410); 46 PlayTone (349, 400); Wait(410); 47 PlayTone (349, 400); Wait(410); 48 PlayTone (349, 400); Wait(410); 49 PlayTone (330, 800); Wait(810); 50 PlayTone (330, 800); Wait(810); 51 PlayTone (392, 400); Wait(410); 52 PlayTone (392, 400); Wait(410); 53 PlayTone (392, 400); Wait(410); 54 PlayTone (392, 400); Wait(410); 55 PlayTone (262, 1600); Wait(1610); 56 Stop(true); 57 } 58 }

63 Auftrag ausführen Aufgabenstellung Kommunikation2 Der erste Roboter ist der Anführer (Master), er sendet Kommandos. Der andere Roboter (Slave) empfängt die Aufträge. Je nach Auftrag soll er eine von drei möglichen Anweisungen ausführen: fahre gerade aus fahre rückwärts halte an Lernziel Kommunikationsexperiment Vollständige Palette Eigene Blöcke Bluetooth Befehle Voraussetzung Klang-Blöcke Konstruktion Zwei Basisroboter Hinweis Die Bluetoothschnittstelle in den Robotern muss eingeschaltet sein. Bevor die e gestartet werden, muss eine Verbindung zwischen den Robotern hergestellt werden. Das vom Slave muss vor dem des Masters gestartet werden. EV3-G : Kommunikation2-Master

64 EV3-G : Kommunikation2-Slave NXT-G : Kommunikation2-Master NXT-G : Kommunikation2-Slave NXT-G : Kommunikation2-Slave2

65 NXC : Kommunikation2 Master 1 // Master 2 3 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 4 5 #define BT_CONN 1 6 #define OUTBOX sub BTCheck(int conn) 9 { 10 if(!bluetoothstatus(conn)==no_err) 11 { 12 TextOut(5,LCD_LINE5, Bluetooth-Error!,1); 13 Wait(1000); 14 Stop(1); 15 } 16 } task main() 19 { 20 // Bluetooth-Verbindung wird überprüft 21 BTCheck(BT_CONN); 22 int i=0; while(true) 25 { 26 // Nachricht(Zahl) senden 27 SendRemoteNumber (BT_CONN, OUTBOX, i); 28 // wenn zahl > 3 29 if(i>3) 30 { 31 // abbrechen 32 Stop(1); 33 } 34 // für alle anderen Fälle 35 else 36 { 37 // Zahl um 1 erhöhen 38 i++; 39 // 2 Sekunden warten, dann Schleife wiederholen 40 Wait(2000); 41 } 42 } 43 } NXC : Kommunikation2 Slave 1 // Slave 2 3 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 4

66 5 #define INBOX sub BTCheck(int conn) 8 { 9 if(!bluetoothstatus(conn)==no_err) 10 { 11 TextOut(5,LCD_LINE5, Bluetooth-Error!,1); 12 Wait(1000); 13 Stop(1); 14 } 15 } task main() 18 { 19 int in; 20 // Bluetooth-Verbindung überprüfen 21 BTCheck(0); // auf Bluetooth-Nachricht warten und dann bewegen 24 while (true) 25 { 26 // Nachricht(zahl) empfangen 27 ReceiveRemoteNumber (INBOX, true, in); 28 // wenn zahl = 1 29 if(in == 1) 30 { 31 // fahre vorwärts 32 OnFwd(OUT_BC, 75); 33 } 34 // wenn zahl = 2 35 else if(in == 2) 36 { 37 // fahre rückwärts 38 OnRev(OUT_BC, 75); 39 } 40 // wenn zahl >= 3 41 else if(in >= 3) 42 { 43 // stopp das 44 Stop(1); 45 } 46 } 47 }

67 Cheerleader Aufgabenstellung Kommunikation3 Ein Roboter soll zufällig ausgesuchte Bewegungen vormachen Der andere Roboter soll: die Bewegungen zeitversetzt nachmachen Lernziel Ein fortgeschrittenes Kommunikationsexperiment mit NXC Voraussetzung Kommunikation Konstruktion zwei Roboter (ohne Sensoren) Hinweis Die Bluetoothschnittstelle in den Robotern muss eingeschaltet sein. Bevor die e gestartet werden, muss eine Verbindung zwischen den Robotern hergestellt werden. Das vom Slave muss vor dem des Masters gestartet werden. NXC : Kommunikation3 Master 1 /* üfr den Roboter, der die Bewegungen vorgibt */ 2 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 3 #define BT_CONN 1 4 #define OUTBOX #define geradeaus \ 7 OnFwd(motoren, speed); Wait(roll); Float(motoren); 8 #define links \ 9 OnFwd(OUT_C, speed); Off(OUT_B); Wait(turn); Off( motoren); 10 #define rechts \ 11 OnFwd(OUT_B, speed); Off(OUT_C); Wait(turn); Off( motoren); 12 #define zurueck \ 13 OnRev(motoren, speed); Wait(roll); Float(motoren); #define cheer \

68 16 OnRev(motoren, speed); Wait(roll/2); OnFwd(motoren, speed); Wait(roll); \ 17 OnFwd(OUT_C, speed); Off(OUT_B); Wait(turn); Off( motoren); \ 18 OnFwd(OUT_B, speed); Off(OUT_C); Wait(turn); Off( motoren); \ 19 OnFwd(OUT_B, speed); Off(OUT_C); Wait(turn); Off( motoren); #define motoren OUT_BC 23 #define turn #define roll #define speed task main() 29 { 30 int dance; 31 do 32 { 33 dance = Random(5); if(dance == 0) 36 { 37 // Nachricht(Zahl=1) senden 38 SendRemoteNumber (BT_CONN, OUTBOX, 1); 39 geradeaus; 40 Wait(1000); 41 } 42 if(dance == 1) 43 { 44 // Nachricht(Zahl=2) senden 45 SendRemoteNumber (BT_CONN, OUTBOX, 2); 46 links; 47 Wait(1000); 48 } 49 if(dance == 2) 50 { 51 // Nachricht(Zahl=3) senden 52 SendRemoteNumber (BT_CONN, OUTBOX, 3); 53 rechts; 54 Wait(1000); 55 } 56 if(dance == 3) 57 { 58 // Nachricht(Zahl=4) senden 59 SendRemoteNumber (BT_CONN, OUTBOX, 4); 60 zurueck; 61 Wait(1000); 62 } 63 if(dance == 4) 64 { 65 // Nachricht(Zahl=5) senden 66 SendRemoteNumber (BT_CONN, OUTBOX, 5);

69 67 cheer; 68 Wait(1000); 69 } 70 } 71 while(true); 72 } NXC : Kommunikation3 Slave 1 /* üfr den Roboter, der die Bewegungen nachmacht */ 2 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 3 #define INBOX #define geradeaus \ 6 OnFwd(motoren, speed); Wait(roll); Float(motoren); 7 #define links \ 8 OnFwd(OUT_C, speed); Off(OUT_B); Wait(turn); Off( motoren); 9 #define rechts \ 10 OnFwd(OUT_B, speed); Off(OUT_C); Wait(turn); Off( motoren); 11 #define zurueck \ 12 OnRev(motoren, speed); Wait(roll); Float(motoren); #define cheer \ 15 OnRev(motoren, speed); Wait(roll/2); OnFwd(motoren, speed); Wait(roll); \ 16 OnFwd(OUT_C, speed); Off(OUT_B); Wait(turn); Off( motoren); \ 17 OnFwd(OUT_B, speed); Off(OUT_C); Wait(turn); Off( motoren); \ 18 OnFwd(OUT_B, speed); Off(OUT_C); Wait(turn); Off( motoren); #define motoren OUT_BC 22 #define turn #define roll #define speed task main() 27 { 28 int in; 29 while (true) 30 { 31 // Nachricht(zahl) empfangen 32 ReceiveRemoteNumber (INBOX, true, in); if(in == 1) // wenn zahl = 1 35 { 36 Wait(500); 37 geradeaus; 38 }

70 39 else if(in == 2) // wenn zahl = 2 40 { 41 Wait(500); 42 links; 43 } 44 else if(in == 3) // wenn zahl = 3 45 { 46 Wait(500); 47 rechts; 48 } 49 else if(in == 4) // wenn zahl = 4 50 { 51 Wait(500); 52 zurueck; 53 } 54 else if(in == 5) // wenn zahl = 5 55 { 56 Wait(500); 57 cheer; 58 } 59 } 60 }

71 Wer macht alles nach? Aufgabenstellung Kommunikation4 Ein Roboter macht Bewegungen vor Der andere Roboter Beide macht die Bewegungen nach bestimmen über Nachrichtenaustausch, wer von ihnen die Bewegungen vormacht und wer sie nur nachmacht Die Bewegungen sollen zufällig ausgesucht werden Lernziel Ein fortgeschrittenes Kommunikationsexperiment mit NXC Voraussetzung Kommunikation Konstruktion zwei Roboter (ohne Sensoren) Hinweis Die Bluetoothschnittstelle in den Robotern muss eingeschaltet sein. Bevor die e gestartet werden, muss eine Verbindung zwischen den Robotern hergestellt werden. Das vom Slave muss vor dem des Masters gestartet werden. NACHMACHEN heißt in diesem Zusammenhang, dass der Cheerleader eine Nachricht sendet und die anderen Roboter diese empfangen und interpretieren. Es ist notwendig sich vorher auf ein Kommunikationsprotokoll zu einigen. NXC : Kommunikation3 Master 1 /* üfr den ersten Roboter */ 2 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt

72 3 4 #define BT_CONN 1 5 #define OUTBOX 2 6 #define OUTBOX1 3 7 #define INBOX #define motoren OUT_BC 10 #define turn #define roll #define speed #define geradeaus OnFwd(motoren, speed); Wait(roll); Float( motoren); 15 #define links OnFwd(OUT_C, speed); Off(OUT_B); Wait(turn ); Off(motoren); 16 #define rechts OnFwd(OUT_B, speed); Off(OUT_C); Wait(turn ); Off(motoren); 17 #define zurueck OnRev(motoren, speed); Wait(roll); Float( motoren); 18 #define cheer OnRev(motoren, speed); Wait(roll/2); OnFwd (motoren, speed); Wait(roll); OnFwd(OUT_C, speed); Off( OUT_B); Wait(turn); Off(motoren); OnFwd(OUT_B, speed); Off(OUT_C); Wait(turn); Off(motoren); OnFwd(OUT_B, speed) ; Off(OUT_C); Wait(turn); Off(motoren); int chance; 21 int dance; 22 int in; sub cheermaster() 25 { 26 do 27 { 28 dance = Random(5); 29 if(dance == 0) 30 { 31 geradeaus; 32 SendRemoteNumber (BT_CONN, OUTBOX, 3); 33 Wait(turn); 34 } if(dance == 1) 37 { 38 links; 39 SendRemoteNumber (BT_CONN, OUTBOX, 4); 40 Wait(turn); 41 } if(dance == 2) 44 { 45 rechts; 46 SendRemoteNumber (BT_CONN, OUTBOX, 5); 47 Wait(turn); 48 } 49

73 50 if(dance == 3) 51 { 52 zurueck; 53 SendRemoteNumber (BT_CONN, OUTBOX, 6); 54 Wait(turn); 55 } if(dance == 4) 58 { 59 cheer; 60 SendRemoteNumber (BT_CONN, OUTBOX, 7); 61 Wait(turn); 62 } 63 } 64 while(true); 65 } sub cheerslave() 68 { 69 while(true) 70 { 71 // Nachricht empfangen 72 ReceiveRemoteNumber (INBOX, true, in); if(in == 3) 75 { 76 geradeaus; 77 } 78 else if(in == 4) 79 { 80 links; 81 } 82 else if(in == 5) 83 { 84 rechts; 85 } 86 else if(in == 6) 87 { 88 zurueck; 89 } 90 else if(in == 7) 91 { 92 cheer; 93 } 94 } 95 } task main() 98 { 99 chance = Random(2); 100 NumOut(10, LCD_LINE5, chance, 1); if(chance == 0) 103 { 104 SendRemoteNumber(BT_CONN, OUTBOX1, 1);

74 105 cheermaster(); 106 } 107 else if(chance == 1) 108 { 109 SendRemoteNumber(BT_CONN, OUTBOX1, 2); 110 cheerslave(); 111 } 112 } NXC : Kommunikation3 Slave 1 /* üfr den zweiten Roboter */ 2 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 3 #define OUTBOX 1 4 #define INBOX 2 5 #define INBOX #define motoren OUT_BC 8 #define turn #define roll #define speed #define geradeaus OnFwd(motoren, speed); Wait(roll); Float( motoren); 13 #define links OnFwd(OUT_C, speed); Off(OUT_B); Wait(turn ); Off(motoren); 14 #define rechts OnFwd(OUT_B, speed); Off(OUT_C); Wait(turn ); Off(motoren); 15 #define zurueck OnRev(motoren, speed); Wait(roll); Float( motoren); 16 #define cheer OnRev(motoren, speed); Wait(roll/2); OnFwd (motoren, speed); Wait(roll); OnFwd(OUT_C, speed); Off( OUT_B); Wait(turn); Off(motoren); OnFwd(OUT_B, speed); Off(OUT_C); Wait(turn); Off(motoren); OnFwd(OUT_B, speed) ; Off(OUT_C); Wait(turn); Off(motoren); int dance; 19 int in; 20 int x; sub cheermaster() 23 { 24 do 25 { 26 dance = Random(5); 27 if(dance == 0) 28 { 29 geradeaus; 30 SendResponseNumber(OUTBOX, 3); 31 Wait(turn); 32 } 33 else if(dance == 1) 34 {

75 35 links; 36 SendResponseNumber(OUTBOX, 4); 37 Wait(turn); 38 } 39 else if(dance == 2) 40 { 41 rechts; 42 SendResponseNumber(OUTBOX, 5); 43 Wait(turn); 44 } 45 else if(dance == 3) 46 { 47 zurueck; 48 SendResponseNumber(OUTBOX, 6); 49 Wait(turn); 50 } 51 else if(dance == 4) 52 { 53 cheer; 54 SendResponseNumber(OUTBOX, 7); 55 Wait(turn); 56 } 57 } 58 while(true); 59 } sub cheerslave() 62 { 63 while(true) 64 { 65 // Nachricht empfangen 66 ReceiveRemoteNumber(INBOX, true, in); if(in == 3) 69 { 70 geradeaus; 71 } 72 else if(in == 4) 73 { 74 links; 75 } 76 else if(in == 5) 77 { 78 rechts; 79 } 80 else if(in == 6) 81 { 82 zurueck; 83 } 84 else if(in == 7) 85 { 86 cheer; 87 } 88 } 89 }

76 90 91 task main() 92 { 93 while(true) 94 { 95 ReceiveRemoteNumber(INBOX1, 1, x); 96 // zeigt Nachrichteninhalt 97 NumOut(10, LCD_LINE5, x, 1); if(x == 2) 100 { 101 cheermaster(); 102 } 103 else if(x == 1) 104 { 105 cheerslave(); 106 } 107 } 108 }

77 Laut und leise Aufgabenstellung Geräusch1 Der Basisroboter soll: geradeaus fahren, wenn es laut ist stehen bleiben, wenn es leise ist Lernziel Kennen lernen des Geräuschsensors Voraussetzung Konstruktion Verwendung der Motoren Basisroboter mit Geräuschsensor EV3-G : Geraeusch1 NXT-G : Geraeusch1

78 NXC : Geräusch1 1 #define LAUT 50 2 #define GESCHWINDIGKEIT bool robotersteht; 5 6 task main() 7 { 8 SetSensorSound(IN_2); 9 robotersteht = true; while(true) 12 { 13 if (robotersteht) 14 { 15 if (SENSOR_2 >= LAUT) 16 { 17 OnFwd(OUT_BC, GESCHWINDIGKEIT); 18 robotersteht = false; 19 } 20 } 21 else 22 { 23 if (SENSOR_2 < LAUT) 24 { 25 Off(OUT_BC); 26 robotersteht = true; 27 } 28 } 29 } 30 }

79 Klatschen Aufgabenstellung Geräusch2 Der Basisroboter soll: geradeaus fahren wird geklatscht oder laut gerufen dreht der Roboter Lernziel Kennen lernen des Geräuschsensors Voraussetzung Konstruktion Verwendung der Motoren Basisroboter mit Geräuschsensor EV3-G : Geraeusch2 NXT-G : Geraeusch2 NXC : Geräusch2 1 #define LAUT 50 2 #define GESCHWINDIGKEIT 60 3 #define DREHZEIT task main() 6 { 7 SetSensorSound(IN_2); 8 OnFwd(OUT_BC, GESCHWINDIGKEIT); 9

80 10 while(true) 11 { 12 if (SENSOR_2 >= LAUT) 13 { 14 OnRev(OUT_C, GESCHWINDIGKEIT); 15 Wait(DREHZEIT); 16 OnFwd(OUT_C, GESCHWINDIGKEIT); 17 } 18 } 19 }

81 Schnell im Kreis Aufgabenstellung Geräusch3 Lernziel Der Basisroboter soll: im Kreis fahren. stehen bleiben, wenn es leise ist Er passt seine Geschwindigkeit der Lautstärke an. Kennen lernen des Geräuschsensors Steuern mit Geräuschsensor Datenleitungen Arbeiten mit Variablen Voraussetzung Konstruktion Verwendung der Motoren Basisroboter mit Geräuschsensor EV3-G : Geraeusch3 NXT-G : Geraeusch3

82 NXC : Geräusch3 1 int geschwindigkeit; 2 3 task main() 4 { 5 SetSensorSound(IN_2); 6 geschwindigkeit = 0; 7 8 while(true) 9 { 10 if (geschwindigkeit!= SENSOR_2) 11 { 12 geschwindigkeit = SENSOR_2; 13 OnFwd(OUT_B, geschwindigkeit); 14 OnFwd(OUT_C, geschwindigkeit/2); 15 } 16 } 17 }

83 Komm komm Aufgabenstellung Ultraschall1 Der Roboter soll der Hand folgen stehen bleiben, wenn die Hand zu weit weg ist. Lernziel Kennenlernen des Ultraschallsensors Voraussetzung Bewegungsblöcke Konstruktion Basisroboter mit Ultraschallsensor EV3-G : Ultra_Infra1-1

84 EV3-G : Ultra_Infra1-2 NXT-G : Ultra1 NXC : Tischkante1 1 // Dieses lässt den Roboter Hindernissen ausweichen und sich drehen, 2 // wenn der Roboeter eine Entfernung kleiner als 35 cm misst. 3 4 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 5 #define NEAR 35 // in cm 6 7 task main () 8 { 9 SetSensorLowspeed(IN_4); 10 Wait(1000); while (true) 13 { 14 OnFwd(OUT_BC, 30);

85 15 while(sensorus (IN_4) < NEAR) // wenn die Entfernung < 35 cm 16 { 17 OnRev(OUT_BC, 30); 18 Wait(333); 19 OnFwd(OUT_C, 30); 20 Wait(300); 21 } 22 } 23 }

86 Hindernissen ausweichen Aufgabenstellung Ultraschall2 Der Roboter soll beliebig vorwärts fahren, bis eine Wand/ein Hindernis in der Nähe ist danach 1 Sekunde rückwärts fahren anschließend wieder vorwärts fahren Lernziel Kennenlernen des Ultraschallsensors Voraussetzung Bewegungsblöcke Konstruktion Basisroboter mit Ultraschallsensor EV3-G : Ultra_Infra2-1

87 EV3-G : Ultra_Infra2-2 NXT-G : Ultra2 NXC : Tischkante1 1 // Dieses lässt den Roboter den Abstand zu etwas Beweglichem konstant halten. 2 3 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 4 #define prt_us IN_4 // an welchen Port der US-Sensor angeschlossen ist 5 #define NEAR 30 // cm 6 int messwert; 7 8 task main () 9 { 10 SetSensorLowspeed (prt_us); 11 Wait(1000); while (true) 14 { 15 messwert = (SensorUS(prt_us)); 16 NumOut (18, LCD_LINE3, messwert, 1); 17 if (SensorUS(prt_us)> NEAR) // wenn der Messwert > 30cm 18 { 19 OnFwd (OUT_BC,30);

88 20 } 21 else if (SensorUS(prt_us)< NEAR) // wenn der Messwert < 30cm 22 { 23 OnRev (OUT_BC, 30); 24 } 25 else // wenn der Messwert = 30cm 26 { 27 Off(OUT_BC); 28 } 29 } 30 }

89 Nicht vom Tisch fallen Aufgabenstellung Ultraschall3 Der Roboter soll auf dem Tisch fahren nicht vom Tisch fallen Lernziel Kennenlernen des Ultraschallsensors Voraussetzung Bewegungsblöcke Konstruktion Basisroboter mit Ultraschallsensor EV3-G : Ultra_Infra3-1

90 EV3-G : Ultra_Infra3-2 NXT-G : Ultra3 NXC : Tischkante1 1 // Dieses lässt den Roboter die Tischkante erkennen und sich drehen, 2 // wenn der Roboter eine Entfernung größer als 25 cm misst. 3 4 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 5 #define NEAR 18 // in cm 6 7 task main () 8 { 9 SetSensorLowspeed (IN_4); while (true) 12 { 13 OnFwd(OUT_BC, 30); 14 NumOut (13, 9, SensorUS(IN_4),1); 15 while (SensorUS(IN_4)> NEAR) // wenn die Entfernung > 18 cm 16 { 17 OnRev(OUT_BC, 30); 18 Wait(333); 19 OnFwd(OUT_C, 30); 20 Wait(300);

91 21 } 22 } 23 }

92 Quadrat fahren Aufgabenstellung Gyro1 Lernziel Voraussetzung Der Roboter soll unter Verwendung des Kreiselsensors ein Quadrat fahren. Kennenlernen des Kreiselsensors. Bewegungsblöcke Konstruktion Basisroboter mit Kreiselsensor. EV3-G : Gyro1

93 Gyro2 Rampe Rampe Aufgabenstellung Gyro2 Lernziel Voraussetzung Der Roboter soll unter Verwendung des Kreiselsensors erkennen, wenn eine Steigung/Rampe befahren wird. Kennenlernen des Kreiselsensors. Bewegungsblöcke Konstruktion Basisroboter mit Kreiselsensor. EV3-G : Gyro2

94 Tischkante Aufgabenstellung Mehrere Sensoren1 Der Roboter soll sich auf einem Tisch bewegen können ohne herunter zu fallen. Erweiterung: Es kann noch ein Schieber gebaut werden, damit der Roboter den Tisch abräumen kann. Lernziel Sammeln, diskutieren und ausprobieren von unterschiedlichen Lösungsansätzen. Welche Sensoren sind für diese Aufgabe geeignet? Hinweis Für diese Aufgabe gibt es unterschiedliche Lösungsansätze mit Lichtsensor (ist abhängig von der Tischoberfläche und dem Umgebungslicht) mit Ultraschallsensor mit dem Infrarotsensor Voraussetzung Bewegungsblöcke Sensoren Konstruktion Basisroboter EV3-G : Tischkante1

95 EV3-G : Tischkante2 EV3-G : Tischkante3 NXT-G : Tischkante1 NXT-G : Tischkante2 NXC : Tischkante1 1 // Dieses lässt den Roboter die Tischkante erkennen und sich drehen. 2 3 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 4 5 #define THRESHOLD 40 // Schwellenwert für die Helligkeit in Prozent 6

96 7 task main () 8 { 9 SetSensorLight(IN_3); while (true) 12 { 13 OnFwd(OUT_BC, 30); // wenn Helligkeit < while(sensor (IN_3) < TRESHOLD) 17 { 18 OnRev(OUT_BC, 30); 19 Wait(333); 20 OnFwd(OUT_C, 30); 21 Wait(300); 22 } 23 } 24 } NXC : Tischkante2 1 // Dieses lässt den Roboter die Tischkante erkennen und sich drehen, 2 // wenn der Roboter eine Entfernung größer als 18 cm misst. 3 4 //#include NXCDefs.h wird ab der Version 3.3 nicht mehr benötigt 5 6 #define NEAR 18 // in cm 7 8 task main () 9 { 10 SetSensorLowspeed (IN_4); 11 while (true) 12 { 13 OnFwd(OUT_BC, 30); 14 NumOut (13, 9, SensorUS(IN_4),1); // wenn Entfernung > 18 cm 17 while (SensorUS(IN_4)> NEAR) 18 { 19 OnRev(OUT_BC, 30); 20 Wait(333); 21 OnFwd(OUT_C, 30); 22 Wait(300); 23 } 24 } 25 }

97 Hindernissen ausweichen Aufgabenstellung Mehrere Sensoren2 Der Roboter soll: Hindernissen ausweichen mit einem Berührungssensor mit zwei Berührungssensoren (kann sich bei geschickter ierung nicht in den Ecken festfahren) mit einem Ultraschallsensor Lernziel Verwendung unterschiedlicher Sensoren. Für diese Aufgabe gibt es unterschiedliche Lösungsansätze: mit einem Berührungssensor mit zwei Berührungssensoren mit einem Ultraschallsensor Voraussetzung Bewegungsblöcke Ablaufsteuerung Sensoren Konstruktion Basisroboter mit benötigtem Sensor EV3-G : Hindernis1

98 EV3-G : Hindernis2 EV3-G : Hindernis3 EV3-G : Hindernis4

Referenz. Bluetooth with NXT. Referenz zur Kommunikation mit Bluetooth zwischen mehreren NXT Prozessoren basierend auf NXC. Zelglistrasse 42 8122 Binz

Referenz. Bluetooth with NXT. Referenz zur Kommunikation mit Bluetooth zwischen mehreren NXT Prozessoren basierend auf NXC. Zelglistrasse 42 8122 Binz Referenz Bluetooth with NXT Referenz zur Kommunikation mit Bluetooth zwischen mehreren NXT Prozessoren basierend auf NXC Veröffentlicht von: Martin Stypinski Zelglistrasse 42 8122

Mehr

Welche Roboter kennst du? Wo brauchst du zuhause Roboter?

Welche Roboter kennst du? Wo brauchst du zuhause Roboter? ROBOTER LÖSUNGEN Roboter Mensch Welche Roboter kennst du? Wo brauchst du zuhause Roboter? Individuelle Antworten: R2-D2 / BB6 / C-3PO (Star Wars), Wall-e, Rodney Copperbottom (Film Robots), Optimus Prime

Mehr

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

Programmierung des Lego NXT in C. Hochschule Mannheim Fakultät für Informatik Programmierung des Lego NXT in C Hochschule Mannheim Fakultät für Informatik Der NXT Stein Technische Daten 32-bit ARM7 Microcontroller 256 Kbytes FLASH, 64 Kbytes RAM 8-bit AVR microcontroller 4 Kbytes

Mehr

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

Beim ROBORACE werden jedes Jahr Schüler und Studierende mit einer neuen Aufgabe aus dem Bereich der Technischen Kybernetik herausgefordert. Beim ROBORACE werden jedes Jahr Schüler und Studierende mit einer neuen Aufgabe aus dem Bereich der Technischen Kybernetik herausgefordert. Die Schüler entwickeln selbstständig vollautonome Roboter auf

Mehr

Lego Mindstorms Tutorial

Lego Mindstorms Tutorial Lego Mindstorms Tutorial Lego Firmware Als allerestes muss eine Firmware auf den Mindstorms Computer (fortan kurz RCX) geladen werden. Dieser Programmcode hat die Funktion, Befehle per Infrarot (IR) entgegenzunehmen

Mehr

Einführung in die Programmierung des NXT mit C

Einführung in die Programmierung des NXT mit C Einführung in die Programmierung des NXT mit C 1. Einführung zu Lego Mindstorms und zur Programmierung in C (NXC) - Einführung - Entwicklungsumgebung - Hallo Welt auf dem NXT - Bau des Roboters 1 2. Grundlegende

Mehr

Programmierung der Lego Mindstorms Roboter

Programmierung der Lego Mindstorms Roboter Programmierung der Lego Mindstorms Roboter Dipl.-Inform. O. Taminé Gliederung Infrastruktur Aufbau, Vorbereitungen, WWW-Links NQC-Programmierung Vorbereitungen, Kommandozeilen-Programmierung, IDE-Oberflächen

Mehr

Lego Mindstorms. Diverse Übungen. Autor: Franz Philipp Website:

Lego Mindstorms. Diverse Übungen. Autor: Franz Philipp Website: Lego Mindstorms Diverse Übungen Autor: Franz Philipp Website: www.fraengg.ch Übersicht Sensoren...... 1 Übung 1 (Sensoren kennenlernen)...... 2 Übersicht NXT-Menü... 3 Übung 2 (Programme mit dem NXT schreiben)...

Mehr

Lego Roboter mit NXT-G programmieren. Hochschule Mannheim

Lego Roboter mit NXT-G programmieren. Hochschule Mannheim Lego Roboter mit NXT-G programmieren Hochschule Mannheim Die Programmiersprache NXT - G Grafische Programmiersprache zur Programmierung von Lego Robotern vom Typ NXT Das Programm Mindstorms NXT-G wird

Mehr

Die NXT-Motoren im Detail

Die NXT-Motoren im Detail Die NXT-Motoren im Detail In diesem Tutorial werden wir uns die verschiedenen Betriebsarten der NXT-Motoren anhand von Beispielen anschauen. Teil 1: Regulation Lässt man einen Motor mit dem OnFwd oder

Mehr

LEGO MINDSTORMS NXT Programming

LEGO MINDSTORMS NXT Programming LEGO MINDSTORMS NXT Programming Bernhard Buchli Andreas Schranzhofer Bernhard Buchli, bbuchli@tik.ee.ethz.ch, ETZ G 75, +41 44 63 27038 Andreas Schranzhofer, schranzhofer@tik.ee.ethz.ch, ETZ G 77, +41

Mehr

System Design Projekt Einführung in NXC

System Design Projekt Einführung in NXC System Design Projekt Einführung in NXC Karola Rühle, Thomas Lampe, Maximilian Beinhofer Albert-Ludwigs-Universität Freiburg Was ist NXC? Eine C-ähnliche Programmiersprache (Not exactly C) Speziell zur

Mehr

Programmierung LEGO NXT Roboter mit NXC (beta30 oder höher)

Programmierung LEGO NXT Roboter mit NXC (beta30 oder höher) Programmierung LEGO NXT Roboter mit NXC (beta30 oder höher) (Version 2.2, 7. Juni 2007) Von Daniele Benedettelli mit Änderungen von John Jansen Übersetzung (und Ergänzungen) ins Deutsche von Thorsten Leimbach,

Mehr

Aufgabe Im Quadrat fahren

Aufgabe Im Quadrat fahren Aufgabensammlung LEGO MINDSTORMS NXT Version 4.6.13 Aufgabe Im Quadrat fahren Ziel Sie programmieren den Lego Roboter mit dem Programm LEGO MINDSTORMS Sie kennen Bedingungen und Schleifen Zeitaufwand 20

Mehr

Programmierung LEGO NXT Roboter mit NXC (beta3.0 oder höher)

Programmierung LEGO NXT Roboter mit NXC (beta3.0 oder höher) Programmierung LEGO NXT Roboter mit NXC (beta3.0 oder höher) (Version 2.2, 7. Juni 2007) Von Daniele Benedettelli mit Änderungen von John Jansen Übersetzung (und Ergänzungen) ins Deutsche von Thorsten

Mehr

2. Die Grundbausteine

2. Die Grundbausteine . Die Grundbausteine. Die Grundbausteine Inhaltsverzeichnis.. Der Motorbaustein..... Der Klangbaustein... 4.3. Der Anzeigebaustein... 7.4. Der Warte-Baustein... 8 -LEGO Grundbausteine 4.05.0 . Die Grundbausteine:

Mehr

Fragen? Wie komme ich effizient zu einem Programm? Wie beschreibe/dokumentiere ich meine Idee?

Fragen? Wie komme ich effizient zu einem Programm? Wie beschreibe/dokumentiere ich meine Idee? Fragen? Wie komme ich effizient zu einem Programm? Wie beschreibe/dokumentiere ich meine Idee? Schritte beim Programmieren Idee, was der Roboter tun soll? EVA-Prinzip E: Eingabe Welche Daten werden über

Mehr

Sensoren Blöcke. Sensoren Ultraschallsensor. Neu in 2.1 ist die Einbindung verschiedener Sensoren.

Sensoren Blöcke. Sensoren Ultraschallsensor. Neu in 2.1 ist die Einbindung verschiedener Sensoren. Sensoren Blöcke Neu in 2.1 ist die Einbindung verschiedener Sensoren. 1. Reihe v.l.n.r.: Berührungs-, Klang-, Licht-, Ultraschall-, NXT Tasten, Drehsensor und Timer, Nachricht 2. Reihe : Temperatur-, Farbsensor,

Mehr

Lego Mindstorm NXT Tutorial

Lego Mindstorm NXT Tutorial Lego-Mindstorm NXT Tutorial: Schalter Informatik 2012 1 Lego Mindstorm NXT Tutorial 1. Schleifen Mit dem «Schleifen»-Block kannst du den Roboter veranlassen sich zu wiederholen. Dabei kannst du selber

Mehr

Programmieren mit RoboLab Bauen mit Lego

Programmieren mit RoboLab Bauen mit Lego Programmieren mit RoboLab 2.5.2 Bauen mit Lego 1. Doppelstunde Kommunikation zwischen Computer und RCX herstellen können. Motoren im und gegen den Uhrzeigersinn für eine bestimmte Zeit drehen lassen können.

Mehr

2. Teil: Programmierung der Roboter

2. Teil: Programmierung der Roboter ,, 2. Teil: Programmierung der Lego Mindstorms Schulprojekt der Technischen Universität Dänemark Technische Universität Dänemark Institut für Mathematik Januar 2008 , Der Labyrinth- Wettbewerb Lego Mindstorms

Mehr

Programmierung mit NQC: Kommunikation zwischen zwei RCX

Programmierung mit NQC: Kommunikation zwischen zwei RCX Programmierung mit NQC: Kommunikation zwischen zwei RCX Martin Schmidt Aufbau der Messages Messages müssen möglichst kurz sein und dürfen nicht zu häufig gesendet werden! 1 Byte reicht für unsere Zwecke

Mehr

LEGO-Mindstorms im Unterricht. Anregungen für den Einsatz im Unterricht

LEGO-Mindstorms im Unterricht. Anregungen für den Einsatz im Unterricht M a r c L a p o r t e LEGO-Mindstorms im Unterricht Anregungen für den Einsatz im Unterricht Dipl. Päd., medienpädagogischer Berater am Medienzentrum Pforzheim-Enzkreiz; mpb@marc-laporte.de Vorbemerkungen:

Mehr

Pacman. Projektbeschreibung. Aus was wir Pacman nachgebaut haben. Anpassungen and die physikalische Welt, oder wie wir das

Pacman. Projektbeschreibung. Aus was wir Pacman nachgebaut haben. Anpassungen and die physikalische Welt, oder wie wir das Pacman Projektbeschreibung Übersicht: Unser Projekt Was Pacman eigentlich ist. Aus was wir Pacman nachgebaut haben. Anpassungen and die physikalische Welt, oder wie wir das Pacman-Spiel mit Lego implementiert

Mehr

Der Lego NXT Roboter. Hochschule Mannheim Fakultät für Informatik

Der Lego NXT Roboter. Hochschule Mannheim Fakultät für Informatik Der Lego NXT Roboter Hochschule Mannheim Fakultät für Informatik Der NXT-Stein Technische Daten 32-bit ARM7 Microcontroller 256 Kbytes FLASH, 64 Kbytes RAM 8-bit AVR microcontroller 4 Kbytes FLASH, 512

Mehr

LEGO WeDo: SCRATCH-Programmierung

LEGO WeDo: SCRATCH-Programmierung LEGO WeDo: SCRATCH-Programmierung Version 1.0 SCRATCH ist eine kostenlose kindergerechte Programmiersprache, die vom MIT entwickelt wurde. Vor kurzem ist die neue Version 2.0 erschienen, die direkt von

Mehr

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

Fakultät für Informatik, Institut für Robotik Laborpraktikum I Legorobotik in JAVA EV3 Fakultät für Informatik, Institut für Robotik Laborpraktikum I Legorobotik in JAVA EV3 Ute Ihme Hochschule Mannheim Ute Ihme DAS LEGO MINDSTORMS System Die Bausysteme source: Lego via Cnet 1999: RCX 2007:

Mehr

Mess- und Regelungstechnik

Mess- und Regelungstechnik Mess- und Regelungstechnik Professor: Dr. Löffler Mang Semester: WS 00/01 Inhaltsverzeichnis 1. Thema 2. Das Mind- Storm- System 2.1 Der RCX 2.2 Die Sensoren 2.2.1 Der Tastsensor 2.2.2 Der Lichtsensor

Mehr

Vergleich zwischen Open Roberta / NEPO und LEGO MINDSTORMS EV3 / EV3-G. - Übersicht/Fact-Sheet - Programmblöcke - Beispielprogramme

Vergleich zwischen Open Roberta / NEPO und LEGO MINDSTORMS EV3 / EV3-G. - Übersicht/Fact-Sheet - Programmblöcke - Beispielprogramme Vergleich zwischen Open Roberta / NEPO und LEGO MINDSTORMS EV3 / EV3-G - Übersicht/Fact-Sheet - Programmblöcke - Beispielprogramme Roberta-Zentrale Fraunhofer IAIS Version 1.0 18.07.2016 Übersicht Open

Mehr

3 Programmierung von Robotern

3 Programmierung von Robotern 3 Programmierung von Robotern 3.1 Arten der Programmierung Arten Programmierung durch Beispiele Programmierung durch Training roboterorientierte Programmierung aufgabenorientierte Programmierung 3.1.1

Mehr

( ) 30. Baue das Basismodel von NXT. Halte dich dabei an die bereitgestellte Bauanleitung auf der Website oder am Arbeitsplatz.

( ) 30. Baue das Basismodel von NXT. Halte dich dabei an die bereitgestellte Bauanleitung auf der Website oder am Arbeitsplatz. Posten: Bauen - Die SuS können das NXT Basismodel anhand der Bauanleitung 1:1 nachbauen. ( ) 30 - NXT Baukasten - Anleitung Auftrag: Baue das Basismodel von NXT. Halte dich dabei an die bereitgestellte

Mehr

Zugang Website:

Zugang Website: Posten: Bauen - Die SuS können das NXT Basismodel anhand der Bauanleitung 1:1 nachbauen. ( ) 30 - NXT Baukasten - Anleitung Auftrag: Baue das Basismodel von NXT. Halte dich dabei an die bereitgestellte

Mehr

Lego Mindstorms im Unterricht 2015/16

Lego Mindstorms im Unterricht 2015/16 Lego Mindstorms im Unterricht 2015/16 Schule: NMS Institut St. Josef, Feldkirch Lehrer: Mario Mahl E-Mail: mario_mahl@hotmail.com Auch in diesem Schuljahr waren die Roboter, die wir von Ihnen bekommen

Mehr

mblock & mbot Roboter Programmierung auf der Basis von Scratch

mblock & mbot Roboter Programmierung auf der Basis von Scratch Roboter Programmierung auf der Basis von Scratch Institut ICT & Medien www.iim.phsg.ch START mbot verbinden mblock mit mbot verbinden Der mbot-roboter kann mit der mblock-software programmiert werden.

Mehr

Inhaltsverzeichnis. Andreas Stadler. Mein LEGO -EV3-Buch. Eigene Roboter bauen und programmieren mit LEGO MINDSTORMS. ISBN (Buch):

Inhaltsverzeichnis. Andreas Stadler. Mein LEGO -EV3-Buch. Eigene Roboter bauen und programmieren mit LEGO MINDSTORMS. ISBN (Buch): Andreas Stadler Mein LEGO -EV3-Buch Eigene Roboter bauen und programmieren mit LEGO MINDSTORMS ISBN (Buch): 978-3-446-44737-0 ISBN (E-Book): 978-3-446-44900-8 Weitere Informationen oder Bestellungen unter

Mehr

Programmieren von LegoMindstorms-Robotern mit NQC

Programmieren von LegoMindstorms-Robotern mit NQC Programmieren von LegoMindstorms-Robotern mit NQC (Version 3.03, Oct 2, 1999) by Mark Overmars Department of Computer Science Utrecht University P.O. Box 80.089, 3508 TB Utrecht the Netherlands Deutsche

Mehr

[ Experiment- und Datenprotokollierung. mit der EV3 Software]

[ Experiment- und Datenprotokollierung. mit der EV3 Software] 2013 [ Experiment- und Datenprotokollierung mit der EV3 Software] Experiment Datenprotokollierung Es gibt zwei Möglichkeiten um die Datenaufzeichnung durchzuführen. Eine besteht darin, die Datenprotokollierung

Mehr

Greenfoot: Verzweigungen

Greenfoot: Verzweigungen Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch Betrachten wir die act()-methode des Wombats aus dem Wombats-Szenario: Wie interpretieren Sie diesen Code? (einfach übersetzen) Falls der Wombat ein

Mehr

Kapitel 2: Programmfluss steuern

Kapitel 2: Programmfluss steuern Kapitel 2: Programmfluss steuern Thema: Programmieren Seite: 1 Kapitel 2: Programmfluss steuern Das Flussdiagramm Um schwierige Aufgaben beim Programmieren zu lösen, ist es oft hilfreich, den Programmablauf

Mehr

Arbeiten mit programmierbaren Robotern am Beispiel von LEGO Mindstorms NXT. Mag. DI Gerald Höfler, Georg von Peuerbachgymnasium, LINZ

Arbeiten mit programmierbaren Robotern am Beispiel von LEGO Mindstorms NXT. Mag. DI Gerald Höfler, Georg von Peuerbachgymnasium, LINZ Arbeiten mit programmierbaren Robotern am Beispiel von LEGO Mindstorms NXT Mag. DI Gerald Höfler, Georg von Peuerbachgymnasium, LINZ Arbeiten mit LEGO Mindstorms Programmerstellung & Optimierung Erklärung

Mehr

Die Einführung von mehreren "Start Bausteinen", um das Programm zu starten, realisiert leicht die parallele Programmverarbeitung (Parallele Tasks).

Die Einführung von mehreren Start Bausteinen, um das Programm zu starten, realisiert leicht die parallele Programmverarbeitung (Parallele Tasks). Programmierung Allgemein Anfänger und Fortgeschrittene können die Programmierfunktion in der LEGO MINDSTORMS Education EV3 Software gut nutzen, weil sie vor allem grafisch ist. Mit Blick auf das Programmieren

Mehr

Technik veranschaulichen und begreifen mit LEGO MINDSTORMS Robotern

Technik veranschaulichen und begreifen mit LEGO MINDSTORMS Robotern Technik veranschaulichen und begreifen mit LEGO MINDSTORMS Robotern SWiSE - 2. Innovationstag - naturwissenschaftlicher-technischer Unterricht - FHNW Brugg - 5 März 2011 SWiSE Innovationstag: Technik veranschaulichen

Mehr

EINFÜHRUNG LEGO MINDSTORMS

EINFÜHRUNG LEGO MINDSTORMS EINFÜHRUNG LEGO MINDSTORMS LabVIEW 2014 Prof. Dr.-Ing. Dahlkemper 1 NXT DIRECT COMMANDS Es gibt zwei verschiedene Möglichkeiten, die Lego-Roboter zu programmieren: Man kann das Programm direkt auf den

Mehr

Unterrichtspraxis mit dem Lego NXT-Baustein Programmieren mit NXC

Unterrichtspraxis mit dem Lego NXT-Baustein Programmieren mit NXC VS-Möbel Unterrichtspraxis mit dem Lego NXT-Baustein Programmieren mit NXC Frank Engeln Unterrichten mit dem NXT und der Programmiersprache NXC. Warum NXC? NXC-Dateien kann man in jedem Editor erstellen.

Mehr

PowerPod Tipps und Problemlösungen November 2015

PowerPod Tipps und Problemlösungen November 2015 PowerPod Tipps und Problemlösungen November 2015 1) Die Status-LED meines PowerPod leuchtet nicht, wenn ich die Taste drücke. a. Die Batterie Ihres PowerPod muss aufgeladen werden. Verbinden Sie Ihr PowerPod

Mehr

WI-05 Projekt Mobile Agenten Protokoll

WI-05 Projekt Mobile Agenten Protokoll Zeit: - 13.03.2007-14.03.2007 - Martin Schaldach,Lei Zhu - Roboter zusammen bauren - erst Tests durchfueren Vorgehensweise: - BrixCC installieren - Linierkennung programmieren - Lichtsensoren programmieren

Mehr

Schleifenanweisungen

Schleifenanweisungen Schleifenanweisungen Bisher: sequentielle Abarbeitung von Befehlen (von oben nach unten) Nun: Befehle mehrfach ausführen (= Programmschleife): for-anweisung - wenn feststeht, wie oft z.b.: eine Berechnung

Mehr

Robot Karol - ein Lehrgang

Robot Karol - ein Lehrgang 1. Wir steuern Robot Karol mit Maus und Tastatur Du kannst Robot Karol mit der Maus steuern. Klicke dazu einfach auf die Pfeile oder Buchstaben. Wenn Robot Karol deinem Befehl nicht gehorchen kann, dann

Mehr

GoTime Kurzanleitung. Über dieses Handbuch

GoTime Kurzanleitung. Über dieses Handbuch DE GoTime Kurzanleitung Über dieses Handbuch Bitte lesen Sie dieses Handbuch sorgfältig. Wenn Sie die Informationen nicht verstehen oder eine Frage haben, die nicht in diesem Handbuch behandelt wird, wenden

Mehr

Roboter programmieren

Roboter programmieren 16 mm Grundregeln beim Roboterbau Grundmodelle bauen: vierrädrig, zweirädrig, mit Kettenantrieb Programmiergrundlagen Motoren Konstanten und Datenknoten Schalter, Logik und Operatoren Sensoren und Variablen

Mehr

3. Anweisungen und Kontrollstrukturen

3. Anweisungen und Kontrollstrukturen 3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen

Mehr

Bedienungsanleitung LivingColors Iris

Bedienungsanleitung LivingColors Iris Bedienungsanleitung LivingColors Iris Auspacken und Aufbauen Erste Schritte mit Ihren LivingColors Wenn Ihre LivingColors bei Ihnen Zuhause eintrifft, ist sie bereits mit der Fernbedienung verbunden. Sie

Mehr

Teamprojekt: Programmierung verteilter eingebetteter Systeme

Teamprojekt: Programmierung verteilter eingebetteter Systeme Stephan Friedrichs, Henning Günther, Sven Hesse, Oliver Mielentz, Christoph Peltz, Martin Wegner 8. Februar 2008 Inhaltsverzeichnis 1 Ziele 3 1.1 Beschreibung...............................................

Mehr

Wie Sensoren funktionieren

Wie Sensoren funktionieren 6 Wie Sensoren funktionieren Der Lego-Mindstorms-EV3-Kasten enthält drei Arten von Sensoren: Berührungs-, Farb- und Infrarotsensoren. Du kannst diese Sensoren einsetzen, damit dein Roboter mit seiner Umgebung

Mehr

Strukturiertes Bedienfeld (Lautstärke / Ton / Memory / Reichweitentest / Farbeinstellung)

Strukturiertes Bedienfeld (Lautstärke / Ton / Memory / Reichweitentest / Farbeinstellung) Gebrauchsanleitung AN / AUS Taste und Vibrationsalarm 4 verschiedefarbige LED s zur Bissanzeige Fallbissanzeige (weiß) Akkuladeanzeige Hochfrequenz Lautsprecher Magnet Befestigung Strukturiertes Bedienfeld

Mehr

LEGO MINDSTORMS PRÄSENTATION. PPS im Sommersemester 2007

LEGO MINDSTORMS PRÄSENTATION. PPS im Sommersemester 2007 LEGO MINDSTORMS PRÄSENTATION PPS im Sommersemester 2007 WARUM LEGO MINDSTORMS? Sehr einfaches Stecksystem, daher einfaches Zusammen- und Auseinanderbauen Sensoren, Motoren und die Zentraleinheit (der RCX)

Mehr

Projektdokumentation für den Fußballroboter Jaqueline. Rene Peschmann und Ronny Gorzelitz

Projektdokumentation für den Fußballroboter Jaqueline. Rene Peschmann und Ronny Gorzelitz Projektdokumentation für den Fußballroboter Jaqueline Rene Peschmann und Ronny Gorzelitz Inhaltsverzeichnis Inhaltsverzeichnis...2 Entwicklung von Jaqueline... 3 Das Getriebe und Gehäuse... 3 Die Schussvorrichtung

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 8. Vorlesung 25.05.2016 1 Ausdrücke "Befehle", die ein Ergebnis liefern 3 + 4 sin(x) x < 10 getchar() Ausdrücke können Teil eines anderen Ausdrucks sein x = sin( x + y ) Auswertung:

Mehr

Kapitel 3: Variablen

Kapitel 3: Variablen Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber

Mehr

2.5 Programmstrukturen Entscheidung / Alternative

2.5 Programmstrukturen Entscheidung / Alternative Entscheidung, ob der folgende Anweisungsblock ausgeführt wird oder ein alternativer Block Entscheidung ob die Bedingung wahr oder falsch (True / False) ist Syntax: 2.5 Programmstrukturen 2.5.1 Entscheidung

Mehr

FM-Transmitter-Halterung

FM-Transmitter-Halterung FM-Transmitter-Halterung FM-Transmitter-Halterung Verwendung Ihrer FM-Transmitter-Halterung Mit Ihrer TomTom TomTom FM- Transmitter-Halterung übertragen Sie beliebige Audiosignale von Ihrem GO an Ihr Autoradio,

Mehr

Bedienungsanleitung HiTRAX GO Stoppuhr

Bedienungsanleitung HiTRAX GO Stoppuhr R GO Kat.-Nr. 38.2016 Bedienungsanleitung HiTRAX GO Stoppuhr Gratuliere! Sie haben jetzt eine HiTrax Stoppuhr von TFA. Sie haben eine Uhr, einen Wecker, eine Stoppuhr und einen Timer in einem Gerät. Sie

Mehr

BEDIENUNGSANLEITUNG. Übersetzt von Google

BEDIENUNGSANLEITUNG. Übersetzt von Google BEDIENUNGSANLEITUNG Übersetzt von Google II. Zusammenfassung der Bedienungstasten Beschreibung von Bedienungstasten Gesehen von der Vorderseite 1. Lautsprecher 12. Equalizer 2. Funktion 13. DOWN / UP 3.

Mehr

AUSBILDUNG eines OBEDIENCE HUNDES

AUSBILDUNG eines OBEDIENCE HUNDES Beginners, CH (Box, Carré), 15 m entfernt Beginners, CH ab 2017 FCI - 1 (Box, Carré), 15 m entfernt mit Platz, 15 m FCI - 2 FCI - 3 mit Platz und Abrufen, 23 m Voransenden in einen Kreis, dann in ein Viereck

Mehr

Informatik für Elektrotechnik und Informationstechnik

Informatik für Elektrotechnik und Informationstechnik Informatik für Elektrotechnik und Informationstechnik Praktikum 1 Wintersemester 2013/14 1 Kennenlernen der Entwicklungsumgebung Netbeans Netbeans ist eine moderne Entwicklungsumgebung für mehrere Programmiersprachen,

Mehr

Teil III - Baustein Bewegung & Sport - Seite 1. lesebaustein zueinanderreisen DEUTSCH MUSIK BIOLOGIE. Bewegung & Sport.

Teil III - Baustein Bewegung & Sport - Seite 1. lesebaustein zueinanderreisen DEUTSCH MUSIK BIOLOGIE. Bewegung & Sport. Teil III - Baustein - Seite 1 DEUTSCH MUSIK BIOLOGIE Bewegung & Sport Fair-Play-Spiele Kurzinfo: Fair-Play-Spiele zum Thema Teil III - Baustein - Seite 2 Textbegegnung I - Spiele zum Aufwärmen: 1.1 Reise

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)

Mehr

Ein Fahrzeug mit Raupenantrieb

Ein Fahrzeug mit Raupenantrieb 1 Inventor-Bot: Ein Fahrzeug mit Raupenantrieb Ein einfaches Fahrzeug zu bauen, ist der beste Weg, um sich mit einem neuen NXT-2.0-Kasten anzufreunden. Solche Modelle lassen sich nicht nur einfach bauen,

Mehr

Einführung in die Programmierung des NXT Brick mit NXC

Einführung in die Programmierung des NXT Brick mit NXC Angewandte Informationstechnologie BRG Kepler Einführung in die Programmierung des NXT Brick mit NXC Johannes Zenz 2010/11 robotik.brgkepler.at Inhaltsverzeichnis 1. Grundlagen & Vorbereitung... 4 1.1

Mehr

Roboter programmieren mit NXC für LEGO MINDSTORMS NXT Braun

Roboter programmieren mit NXC für LEGO MINDSTORMS NXT Braun Roboter programmieren mit NXC für LEGO MINDSTORMS NXT von Daniel Braun 2., überarb. Aufl. 2010 Roboter programmieren mit NXC für LEGO MINDSTORMS NXT Braun schnell und portofrei erhältlich bei beck-shop.de

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Sie bauen Ihren ersten Roboter

Sie bauen Ihren ersten Roboter 2 Sie bauen Ihren ersten Roboter Wie Sie in Kapitel 1 gesehen haben, besteht ein Roboter aus mehreren wichtigen Bestandteilen. Damit Sie die Funktionsweise der einzelnen Teile mühelos und Schritt für Schritt

Mehr

1. TASTER BEISPIEL ERKLÄRUNG: Seite 1. Strukturierte Programmierung Das erste Programm

1. TASTER BEISPIEL ERKLÄRUNG: Seite 1. Strukturierte Programmierung Das erste Programm Das erste Programm Seite 1 1. TASTER Taster sind Bauelemente, mit denen Informationen von außen an den Computer weiter gegeben werden können. Sie lassen sich an nahezu allen Computern wiederfinden. In

Mehr

6. Iteration (Schleifenanweisungen)

6. Iteration (Schleifenanweisungen) 6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 9. Nov. 2015 2 Schwerpunkte While-Anweisung: "abweisende"

Mehr

Erreichen eines Ziels (ohne Kamera) Teil II: Realisation

Erreichen eines Ziels (ohne Kamera) Teil II: Realisation Erreichen eines Ziels (ohne Kamera) Teil II: Realisation Vortrag im PSBVLego 2003, PDF-Version Christoph Sommer 2003-01-20 1 Aufgabenstellung Anfahren einer Lampe hinter einem kleinen

Mehr

Arduino Grundkurs. 3. Schreibe eine Funktion für das Morsezeichen S und eine für O

Arduino Grundkurs. 3. Schreibe eine Funktion für das Morsezeichen S und eine für O Grundkurs LEDs Piezolautsprecher 1. Mikrocontroller Hello World Bring eine LED zum Blinken 1s ein / 1s aus usw. 2. Lichtmorsen - SOS Erzeuge Morsezeichen mit deiner LED SOS = - - - Punkt = 0.2s Strich

Mehr

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C Einfache Programmstrukturen in C 4-1 Welche einfache Programmstrukturen sind zu unterscheiden? Arithmetische und logische Ausdrücke und Zuweisungen Verzweigungen Unvollständige bedingte Anweisungen Vollständige

Mehr

Anregungen für den Einsatz im Unterricht

Anregungen für den Einsatz im Unterricht M a r c L a p o r t e - H o f f m a n n im Unterricht Anregungen für den Einsatz im Unterricht Dipl. Päd., 08/2015 (CC: BY NC ND) 2 1. Einleitung LEGO Mindstorms EV3 ist schon die dritte Generation. Breits

Mehr

1. LAUTSTÄRKE-HÖRSPIELE

1. LAUTSTÄRKE-HÖRSPIELE 1. LAUTSTÄRKE-HÖRSPIELE Aufwachspiel Alle Kinder sitzen im Kreis und schließen die Augen. Wenn alles still ist, wird auf einem Instrument ein Ton angeschlagen, der lange anhält. Die Kinder dürfen erst

Mehr

= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf)

= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf) Musterlösung Übung 2 Aufgabe 1: Große Zahlen Das Ergebnis ist nicht immer richtig. Die Maschine erzeugt bei Zahlen, die zu groß sind um sie darstellen zu können einen Über- bzw. einen Unterlauf. Beispiele

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

Station 3 Die Roboter Fernsteuerung für Profis! Roboterfernsteuerung über den Lagesensor!

Station 3 Die Roboter Fernsteuerung für Profis! Roboterfernsteuerung über den Lagesensor! Roboterfernsteuerung über den Lagesensor! Die erste Fernsteuerung habt ihr geschafft. Super. Und jetzt soll der Roboter auf die Bewegung eures Smartphones reagieren! Er fährt in die Richtung, in die ihr

Mehr

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

Fakultät für Informatik, Institut für Robotik Laborpraktikum I Legorobotik in JAVA 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:

Mehr

Wenn chiptan comfort mit der Grafik nicht funktionieren sollte, finden Sie hier einige Tipps die weiterhelfen.

Wenn chiptan comfort mit der Grafik nicht funktionieren sollte, finden Sie hier einige Tipps die weiterhelfen. Tipps und Problemlösungen zu chiptan comfort Wenn chiptan comfort mit der Grafik nicht funktionieren sollte, finden Sie hier einige Tipps die weiterhelfen. Übersicht 1. Das klappt immer: die Überweisung

Mehr

Anleitung zur Programmierung des NXT in NXC

Anleitung zur Programmierung des NXT in NXC Anleitung zur Programmierung des NXT in NXC Czech, Walter 14. Mai 2014 Inhaltsverzeichnis 1 Erste Einführung 5 1.1 Roboter?.................................... 5 1.2 Tribot......................................

Mehr

Der I²C-Bus. Vorstellung des Inter-Integrated Circuit -Bus. Aufbau und Funktionsweise. Beispiel PortExpander am Arduino

Der I²C-Bus. Vorstellung des Inter-Integrated Circuit -Bus. Aufbau und Funktionsweise. Beispiel PortExpander am Arduino Der I²C-Bus Vorstellung des Inter-Integrated Circuit -Bus Aufbau und Funktionsweise Beispiel PortExpander am Arduino Weitere Anwendungsmöglichkeiten Was ist der I²C-Bus entwickelt von Philips Anfang der

Mehr

5. Elementare Befehle und Struktogramme

5. Elementare Befehle und Struktogramme 5. Elementare Befehle und Struktogramme Programmablauf Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme Dr. Norbert Spangler / Grundlagen

Mehr

4 Schleifen und Dateien

4 Schleifen und Dateien 4 Schleifen und Dateien 4.1 Übungsaufgabe 4.1.1 Aufgabe 1 Schreiben Sie drei C++ Programme: pword_for.cxx, pword_while.cxx, pword_do.cxx. Die Programme sollen den Benutzer höchstens 5 Mal nach einem Passwort

Mehr

So funktioniert der TAN-Generator

So funktioniert der TAN-Generator So funktioniert der TAN-Generator Lösungen, wenn's mal klemmt Was tun, wenn der TAN-Generator streikt? Es sind oft nur kleine Korrekturen nötig, um das Gerät zum Arbeiten zu bewegen. Die wichtigsten Tipps

Mehr

1 Einleitung LEGO MINDSTORMS als informationsverarbeitendes System Lehrbeitrag des Buchs Aufbau des Buchs...

1 Einleitung LEGO MINDSTORMS als informationsverarbeitendes System Lehrbeitrag des Buchs Aufbau des Buchs... Inhaltsverzeichnis 1 Einleitung... 1 1.1 LEGO MINDSTORMS als informationsverarbeitendes System.... 2 1.2 Lehrbeitrag des Buchs...... 3 1.3 Aufbau des Buchs...... 4 2 Robotik... 5 2.1 Roboter.... 5 2.1.1

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

Mehr

Zugang Website: www.robotik.phlu.ch/wordpress_d

Zugang Website: www.robotik.phlu.ch/wordpress_d Posten: Bauen - Die SuS können eines der vorhandenen Modelle mit Hilfe der Anleitung 1:1 bauen damit es anschließend programmiert werden kann. ( ) 30 - WeDo Baukasten - Anleitung Auftrag: Wähle eines der

Mehr

Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein:

Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein: Blinken Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein: // Projekt 1 - LED Blinker int ledpin = 13; void setup() pinmode(ledpin, OUTPUT); void loop() digitalwrite(ledpin, HIGH);

Mehr

einfache PIC-Übungsprogramme

einfache PIC-Übungsprogramme einfache PIC-Übungsprogramme Schreibe in MPLAB für das PIC-Übungsboard 01 mit dem PIC16F88 folgendes Programm, assembliere und dokumentiere dieses, schreibe es anschließend mittels dem Programmiergerät

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

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

Basisanforderungen: EVA-Prinzips. Erweiterte Anforderungen: wirtschaftlichen und privaten Alltag. Basisanforderungen: 1. Erstelle eine einfache Motor-Steuerung (siehe Anforderungen) 2. Erläutere den Begriff Steuerung. 3. Benenne die Sensoren und Aktoren dieser Steuerung. 4. Beschreibe die Informationsverarbeitung

Mehr

Mathematik. Technik. Programmieren. Physik. Mechanik. Elektronik. Getriebeverhältnisse. Sensoren Antwort/ Feedback. Einfache Maschinen

Mathematik. Technik. Programmieren. Physik. Mechanik. Elektronik. Getriebeverhältnisse. Sensoren Antwort/ Feedback. Einfache Maschinen Robotics ist angewandte Mathematik und fördert das forschende Lernen Physik Elektronik Sensoren Antwort/ Feedback Mathematik Technik Programmieren Mechanik Getriebeverhältnisse Einfache Maschinen Geometrie

Mehr

Schleifen in C/C++/Java

Schleifen in C/C++/Java Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.

Mehr

Gebrauchsanweisung. 1.Produkt Details: 1.1 Produkt Details

Gebrauchsanweisung. 1.Produkt Details: 1.1 Produkt Details Gebrauchsanweisung 1.Produkt Details: 1.1 Produkt Details HOME Taste: Power An/Au;Einschalten / Ausschalten des Displays, zurück zum Hauptmenü USB Eingang: Aufladen/Daten; Touch Screen: Jede Funktion (Hauptmenü)

Mehr