des NXT Brick mit NXC

Größe: px
Ab Seite anzeigen:

Download "des NXT Brick mit NXC"

Transkript

1 Angewandte Informationstechnologie LEGO Mindstorms NXT Einführung in die Programmierung des NXT Brick mit NXC Dr. Leander Brandl 2010 it.brgkepler.at

2 1 Allgemeines 1.1 LEGO Mindstorms NXT Im Oktober 2006 hat LEGO mit Mindstorms NXT eine neue Generation von LEGO Robotern auf den Markt gebracht. Begleitend zur weltweiten Verbreitung von LEGO Mindstorms haben diese Roboter längst auch in Schulen einzug gehalten. Schülerinnen und Schülern können mit diesen Möglichkeiten und damit verbundenen Lernkonzepten Naturwissenschaften, Technik, Konstruktion, Programmierkenntnisse und Mathematik durch selbständiges Arbeiten vermittelt werden. Zusätzliche Motivation erfährt die Konstruktion und Programmierung von Robotern durch die Teilnahme an Wettbewerben, wie der First Lego League oder dem RoboCup Junior. 1.2 Erstellung von Programmen mit der grafischen Oberfläche NXT Die mitgelieferte Software ermöglicht die Erstellung von Programmen für NXT Roboter mit einer grafischen Oberfläche. In einer übersichtlichen Darstellung können Ereignisse (Auswertung von Sensoren) und Aktionen (Steuern von Motoren) miteinander verknüpft und auch komplexe Programmabläufe realisiert werden. Die Programme werden in einer Art Baukastensystem zusammengestellt, die Bedienung kann intuitiv erfolgen und es werden keine Programmierkenntnisse vorausgesetzt. Die sehr übersichtliche und einfach zu bedienende Software bietet zwei Programmierbereiche für Einsteiger und Fortgeschrittene. Abbildung Oberfläche der grafischen Programmiersoftware LEGO Mindstorms Seite 2

3 1.3 Die Programmiersprache NXC Möchte man den gesamten Funktionsumfang des NXT Brick nutzen, so muss man auf Programmiersprachen und entsprechende Compiler zurückgreifen mit denen man Programmcode direkt für den im NXT Brick enthaltenen Mikrocontroller erstellen kann. Neben kommerziellen Produkten haben sich auch einige Softwareentwickler daran gemacht eigene Lösungen zur Erstellung von Programmen für den NXT Brick in verschiedenen Programmiersprachen zu erstellen und bieten diese im Internet kostenlos an. Die Programmiersprache NXC - Not exactly C - wurde von John Hansen speziell für die LEGO Roboter entwickelt und basiert in den Grundstrukturen auf der Programmiersprache C. Die eigentliche Arbeit beim Schreiben von Programmen erfolgt in der integrierten Entwicklungsumgebung Bricx Command Center. Diese steht unter der folgenden Adresse zum Download bereit: Die vorliegende Einführung soll dazu dienen auch ohne Vorkenntnisse einer Programmiersprache das Erstellen von Programmen für den NXT Brick mit NXC zu erlernen. 1.4 Der NXT Brick Der NXT Brick verfügt über 4 Eingänge und 3 Ausgänge. An den Eingängen können Sensoren angeschlossen werden, die Ausgänge werden verwendet um Motoren anzuschließen. Zusätzlich steht ein USB-Anschluss zum Übertragen von Programmen von einem Computer zum NXT Brick zur Verfügung. Die Bedienung des NXT Brick erfolgt über die 4 Tasten unter dem Display. Nach dem Übertragen von eigenen Programmen stehen diese unter dem Menüpunkt "My Programs" zur Verfügung, können mit den Pfeiltasten ausgewählt und mit der orangen Taste gestartet werden. Abbildung Anschluss- und Tastenbelegung des NXT Brick Seite 3

4 1.5 Die Motoren Für LEGO Mindstorms wurden neue Servomotoren entwickelt. Diese verfügen auch über integrierte Rotationssensoren, die das genaue Messen von Geschwindigkeiten und Entfernungen ermöglichen und an den NXT Brick zurückmelden. Die Motoren können sehr präzise in 1 - Schritten gesteuert werden. Abbildung Aufbau eines Motors 1.6 Die Sensoren An den Eingängen des NXT Brick können unterschiedliche Sensoren angeschlossen werden. Mittlerweile gibt es zu den von LEGO gelieferten Sensoren auch eine große Anzahl, die von anderen Herstellern entwickelt und mit dem NXT Brick verwendet werden können. Die genaue Funktion und die Einbindung der verschiedenen Senoren in eigene Programme wird in späterer Folge beschrieben. Lichtsensor Berührungssensor Geräuschsensor Abstandsensor Abbildung Standard-Sensoren von LEGO Mindstorms Seite 4

5 2 Das erste Programm 2.1 Die Programmieroberfläche BricxCC Zur Erstellung von Programmen für den NXT Brick bietet sich die Entwicklungsoberfläche Bricx Command Center aufgrund ihrer übersichtlichen Oberfläche und umfangreichen Funktionalität für den Einsatz in der Schule sehr an. Wird dieses Programm gestartet, so muss zunächst angegeben werden welcher programmierbare Roboter-Baustein zum Einsatz kommt (hier NXT), über welche Schnittstelle dieser am Computer angeschlossen ist (hier USB) und welche Firmware auf dem Roboter-Baustein installiert ist. Abbildung Einstellungen beim Start des Bricx Command Centers Zusätzlich zum Editor in dem der Programmcode geschrieben wird, kann damit das erstellte Programm mit dem Klick auf bereitgestellte Schaltflächen compiliert (in einen für den NXT vertändlichen Code übersetzt) und auch über die USB-Schnittstelle zum NXT Brick übertragen werden. Neues Programm Öffnen Speichern Compilieren des Programms Programm auf NXT übertragen Texteditor Abbildung Die Programmieroberfläche Brixc Command Center mit den wichtigsten Bedienelementen Seite 5

6 2.2 Grundstruktur eines NXC-Programms und Steuern von Motoren An den Ausgängen A, B und C können die Motoren angeschlossen werden. Bei den ersten Beispielen kommt ein einfaches Robotermodell mit zwei Motoren zum Einsatz, die an den Ausgängen A und B angeschlossen sind. Programme in NXC bestehen aus Tasks. Jedes Programm muss zumindest einen Task mit dem Namen main() beinhalten. Alle Anweisungen, die zu diesem Task gehören, werden mit geschwungenen Klammern zusammengefasst. Jede Anweisung wird in NXC mit einem Strichpunkt beendet! Quellcode Programmstruktur und Steuern der Motoren an den Ausgängen A und B Die Funktionen OnFwd(Ausgang, Leistung) und OnRev(Ausgang, Leistung) Zum Steuern der Motoren stehen die beiden Funktionen OnFwd(Ausgang, Leistung) und OnRev(Ausgang, Leistung) zur Verfügung. Als Ausgang können entweder ein Ausgang (OUT_A, OUT_B oder OUT_C) oder gleichzeitig mehrere Ausgänge (OUT_AB, OUT_AC, OUT_BC oder OUT_ABC) angegeben werden. Die Leistung, aus der sich die Drehgeschwindigkeit ergibt, kann mit ganzen Zahlen aus dem Bereich von 0 bis 100 zwischen 0% und 100% festgelegt werden. Die Funktion Wait(Millisekunden) Soll das Programm die zuvor angegebenen Anweisungen für eine bestimmte Zeit ausführen, so kann dies an jeder beliebigen Stelle mit der Funktion Wait(Millisekunden) erreicht werden. Die Funktion Off(Ausgang) Zum Ausschalten der Ausgänge verwendet man die Funktion Off(Ausgang). Die möglichen Werte für den Parameter Ausgang sind: OUT_A, OUT_B, OUT_C, OUT_AB, OUT_AC, OUT_BC oder OUT_ABC Zum Programmcode: Zeile 3: Der Motor an Ausgang A dreht sich mit 50% Leistung vorwärts Zeile 4: Der Motor an Ausgang B dreht sich mit 50% Leistung vorwärts Zeile 5: Das Programm wartet an dieser Stelle für zwei Sekunden, der Roboter fährt also zwei Sekunden rückwärts Zeile 6: Der Motor an Ausgang A dreht sich mit 20% Leistung rückwärts Zeile 7: Der Motor an Ausgang B dreht sich mit 20% Leistung rückwärts Zeile 8: Das Programm wartet an dieser Stelle für drei Sekunden, der Roboter fährt also drei Sekunden rückwärts Zeile 9: Die beiden Ausgänge A und B werden abgeschaltet - der Roboter bleibt stehen. Seite 6

7 Programmierung des NXT mit NXC 2.3 Kompilieren des Programms und Übertragen auf den Roboter Nach dem Schreiben des Programmcodes im Editor muss dieser in einen für den NXT Brick verständlichen Code übersetzt werden. Dieser Vorgang wird von einem Compiler ausgeführt und im Brixc Command Center durch einen Klick auf die Schaltfläche mit den beiden Zahlrädern veranlasst. Aufgabe 2.1 Dr. Leander Brandl - it.brgkepler.at Anhang

8 3 Steuern von Motoren und Wiederholung von Programmteilen 3.1 Drehung Soll sich der Roboter drehen, so kann dies durch Ansteuerung beider Motoren in entgegengesetzter Richtung oder durch Einschalten nur eines Motors erfolgen. Je nach Konstruktion und Aufgabenstellung wird entweder die eine oder andere Möglichkeit zum Einsatz kommen. Quellcode Drehung des Roboters um 90 Zum Programmcode: Zeile 3-4: Beide Motoren fahren für zwei Sekunden mit Leistung 50% vorwärts Zeile 5-6: Nur der Motor an Ausgang A fährt für 400 Millisekunden vorwärts Zeile 7-8: Beide Motoren fahren wieder für zwei Sekunden mit Leistung 50% vorwärts Zeile 9: Die Ausgänge A und B werden abgeschaltet Die Kombination der Werte Leistung 50% und 400 Millisekunden ergibt beinahe eine Drehung um 90. Sollte dies nicht der Fall sein, so können die Werte für die Leistung und die Warte-Zeit in Zeile 5 und 6 geändert werden. Aufgabe 3.1 Aufgabe 3.2 Seite 8

9 3.2 Wiederholung von Programmteilen mit repeat() Sollen verschiedene Anweisungen in einem Programm mehrmals hintereinander ausgeführt werden, so müssen diese nicht entsprechend oft hintereinander im Programmcode stehen. Diese Aufgabe übernimmt das repeat - Statement. Quellcode Wiederholung von Programmteilen mit dem repeat-statement Zum Programmcode: Zeile 3: Mit dem repeat-statement wird ein Bereich eingeleitet, der in der Folge mehrmals behandelt werden soll. Der Wert in den runden Klammern gibt an, wie oft der folgende Anweisungs-Block wiederholt wird. Zeile 4-9: Der Anweisungsblock, der zwischen den beiden geschwungenen Klammern steht wird 2 Mal ausgeführt. Aufgabe 3.3 Aufgabe 3.4 Seite 9

10 3.3 Motoren um vorgegebenen Winkel drehen Bei der Steuerung der Motoren ist es nicht nur möglich diese mit unterschiedlichen Geschwindigkeiten vorwärts und rückwärts drehen zu lassen, sondern diese auch sehr exakt zu positionieren. Quellcode Drehung der Motoren um einen vorgegebenen Winkel Die Funktion RotateMotor(Ausgang, Leistung, Drehwinkel) Zum Drehen der Motoren um einen bestimmten Winkel verwendet man die Funktion RotateMotor(Ausgang, Leistung, Drehwinkel). Die möglichen Werte für die Parameter Ausgang und Leistung entsprechen denen der Funktionen OnFwd() und OnRev(). Mit dem Parameter Drehwinkel wird der Winkel angegeben, um den sich der Motor drehen soll: positive Werte - Drehung vorwärts, negative Werte - Drehung rüchwärts Zum Programmcode: Zeile 3: Der Motor an Ausgang A dreht sich mit der Leistung 20% eine Volldrehung (360 ) vorwärts. Zeile 4: Der Motor an Ausgang B dreht sich mit der Leistung von 50% um 120 rückwärts. Seite 1 0

11 4 Sensoren, Entscheidungsabfragen und Textausgabe am Display 4.1 Kontinuierliches Ablaufen von Programmen Möchte man, dass Programme nicht wie bei den bisherigen Beispielen ein einziges Mal durchlaufen, so kann man dies mit einer Endlosschleife innerhalb des Tasks main() erreichen. Diese Schleife läuft solange das Programm im NXT Brick aktiv ist und wir am NXT Brick mit dem Stop-Button beendet. Quellcode Endlosschleife in einem Programm für den NXT Brick Die while - Schleife Soll ein Anweisungsblock solange ausgeführt werden wie eine bestimmte Bedingung erfüllt ist, so verwendet man die while - Schleife. Nach dem Schlüsselwort while wird in runden Klammern eine Bedingung angegeben. Alle Anweisungen, die in dieser Schleife ausgeführt werden sollen, sind mit geschwungenen Klammern zusammengefasst. Zum Programmcode: Zeile 3: Beginn der while-schleife mit der Bedingung (1==1). Diese ist immer erfüllt, die Schleife läuft endlos. Zeile 5-9: Der Roboter fährt ein kleines Kreisstücke und wartet anschließend eine Sekunde. Seite 1 1

12 4.2 Der Berührungssensor Die Sonsoren werden an einem der vier Eingänge des NXT Brick angschlossen. Bevor die Werte der Sonsoren im Programm verwendet werden können, muss gestgelegt werden, welcher Sensor an einem Eingang angeschlossen ist. Quellcode Ausweichmanöver des Roboters bei eine Berührung mit der Stoßstange an der Vorderseite In diesem Programm wird zunächst festgelegt, dass an Eingang 1 ein Berührungssensor angeschlossen ist. In einer Endlosschleife fährt der Roboter gerade aus und macht bei einer Berührung eine Ausweichbewegung nach hinten bevor dieser wieder vorwärts fährt. Die Funktion SetSensorTouch(Eingang) Mit dieser Funktion legt man fest, dass einem Eingang ein Berührungssensor angeschlossen ist. Der Parameter Eingang kann die Werte IN_1, IN_2, IN_3 oder IN_4 annehmen. Die Funktion Sensor(Eingang) Möchte man auf die Werte, die ein Sensor liefert zugreifen, so verwendet man die Funktion Sensor(). Als Parameter übergibt man den jeweiligen Eingang IN_1, IN_2, IN_3 oder IN_4. Ist an einem Eingan ein Berührungssensor angeschlossen, so liefert die Funktion Sensor() die Werte 0 (Taster offen) oder 1 (Taster geschlossen) zurück. Die Entscheidungsabfrage if() Soll das Programm selbstständig Entscheidungen treffen, so steht dafür die if - Abfrage zur Verfügung. Hinter dem Schlüsselwort if wird in runden Klammern eine Bedingung angegeben. Alle Anweisungen, die ausgeführt werden, wenn die Bedingung erfüllt ist, werden mit geschwungenen Klammern zusammengefasst. Sollen Anweisungen ausgeführt werden, wenn die Bedingung nicht erfüllt ist, so werden diese hinter dem Schlüsselwort else angeführt. Seite 1 2

13 Vergleichsoperatoren für Bedingungen In den Bedingungen der if - Abfrage und einer while - Schleife können folgende Operatoren für den Vergleich von zwei Werten verwendet werden: ==... ist gleich if (Sensor(IN_1) == 1) {... }!=... ungleich if (Sensor(IN_3)!= 1) {... } <... kleiner if (Sensor(IN_2) < 4) {... } >... größer if (Sensor(IN_4) > 20) {... } <=... kleiner gleich if (Sensor(IN_4) <= 10) {... } >=... größer gleich if (Sensor(IN_2) >= 25) {... } Verknüpfungsoeratoren für Bedingungen Sollen in einer Bedingung mehrere Bedingungen verknüpft werden, so gibt es dafür die beiden Operatoren && und. Bei einer Verknüpfung mit && (und) ist die Gesamtbedingung erfüllt, wenn beide Bedingung erfüllt sind. Bei einer Verfknüpfung mit (oder) gilt die Gesammtbedingung dann als erfüllt, wenn entweder die eine oder die andere Bedingung erfüllt ist. Verknüpfung mit && (und) if ( (Sensor(IN_1) == 1) && (Sensor(IN_2) ==1) ) {... } Verknüpfung mit (oder) if ( (Sensor(IN_1) == 1) (Sensor(IN_2) ==1) ) {... } Zum Programmcode: Zeile 3: Am Eingang 1 ist ein Berührungssensor angeschlossen. Zeile 4: Die Aufgaben des Roboters laufen in einer Endlosschleife. Zeile 6: Beide Motoren fahren mit der Leistung 40% vorwärts. Zeile 7: Entscheidungsabfrage: Wenn die Funktion Sensor() den Wert 1 zurückliefert, dann fährt der Roboter das Ausweichmanöver. Zeile 9-11: Das Ausweichmanöver: Der Roboter fährt mit unterschiedlichen Geschwindigkeiten beider Motoren für 2 Sekunden nach hinten. Aufgabe 4.1 Aufgabe 4.2 Seite 1 3

14 4.3 Der Lichtssensor Wird ein Lichtsensor an einem Eingang angeschlossen so kann die Intensität des reflektierten Lichts aus dem Sensor ausgelesen werden. Im folgenden Beispiel fährt der Roboter mit einem nach unten gerichteten Lichtsensor auf einer weißen Fläche in Richtung eines schwarzen Strichs. Ist der Lichtsensor über dem schwarzen Strich, so soll der Roboter anhalten. Quellcode Abtasten der Oberfläche mit einem Lichtsensor Die Funktion SetSensorLight(Eingang) Mit dieser Funktion legt man fest, dass einem Eingang ein Lichtsensor angeschlossen ist. Der Parameter Eingang kann die Werte IN_1, IN_2, IN_3 oder IN_4 annehmen. Die Funktion Sensor(Eingang) Möchte man auf die Werte, die ein Sensor liefert zugreifen, so verwendet man auch bei einem Lichtsensor die Funktion Sensor(). Als Parameter übergibt man den jeweiligen Eingang IN_1, IN_2, IN_3 oder IN_4. Im Fall eines Lichtsensors liefert die Funktion Sensor() die Werte zwischen 0 (minimale Intensität) und 100 (maximale Intensität) zurück. Zum Programmcode: Zeile 3: Beide Motoren fahren mit der Leistung 40% vorwärts. Zeile 4: Am Eingang 1 ist ein Lichtsensor angeschlossen. Zeile 5: In einer Endlosschleife wertet das Programm den Wert des Lichtsensors aus. Zeile 7: Entscheidungsabfrage: Wenn der Wert des Lichtsensors kleiner als 40 ist, dann werden beide Ausgänge abgeschaltet. Aufgabe 4.3 Aufgabe 4.4 Aufgabe 4.5 Seite 1 4

15 4.4 Ausgabe von Text und Zahlen Für die Ausgabe von Zahlenwerten und Text stehen unter NXC zwei Funktionen zur Verfügung. Diesen werden die Position der Ausgabe und der auszugebende Text bzw. Wert übergeben. Das folgende Programm zeigt kontinuierlich den Wert eines angeschlossenen Lichtsensors an. Quellcode Ausgabe von Text und Zahlen am Display Die Funktion TextOut(X-Koordinate, Zeile, Text) Mit dieser Funktion wird Text am Display ausgegeben. Der Wert für die X-Koordinate kann zwischen 0 und 99 liegen und für den Parameter Zeile stehen die Werte LCD_LINE1, LCD_LINE2,..., LCD_LINE8 zur Verfügung. Der auszugebende Text wird als Zeichenkette (String) übergeben und muss zwischen zwei doppelten Anführungszeichen stehen. Die Funktion NumOut(X-Koordinate, Zeile, Zahl) Möchte man Zahlenwerte am Display ausgeben, so müssen diese zuerst in Zeichenketten (Strings) umgewandelt werden. Dies übernimmt die Funktion NumOut(), der man die Startposition und den anzuzeigenden Zahlenwert übergibt. Zum Programmcode: Zeile 3: Die Zeichenkette "Lichtsensor: " wird in der Zeile 1 und der X-Koordinate 0 ausgegeben. Zeile 4: Am Eingang 1 ist ein Lichtsensor angeschlossen. Zeile 7: Der Zahlenwert, den die Fuktion Sensor(IN_1) zurückliefert, wird in Zeile 1 und der X-Koordinate 76 angezeigt. Die X-Koordinate 76 gibt hier die Position nach der Zeichenkette "Lichtsensor: " an. Aufgabe 4.6 Seite 1 5

16 Programmierung des NXT mit NXC Anghang A - Referenz der NXC Programmierstrukturen und allgemeine Funktionen Grundstrkutur Anweisung 1; Anweisung 2;... Wiederholung eines Anweisungsblockes Anweisung 1; Anweisung 2;... x gibt die Anzahl der Wiederholungen an Endlosschleife mit while Anweisung 1; Anweisung 2;... Entscheidungsabfrage mit if Anweisung 1; Anweisung 2;... Anweisung 1; Anweisung 2;... Wait(Millisekunden) Der Programmablauf wird an dieser Stelle angehalten Millisekunden: ganze Zahl TextOut(X-Koordinate, Zeile, Text) Ausgabe einer Zeichenkette an einer bestimmten Position am Display X-Koordinate: ganzzahliger Wert zwischen 0 und 99 Zeile: LCD_LINE1, LCD_LINE2,..., LCD_LINE8 Text: Zeichenkette, begrenzt von doppelten Anführungszeichen (z. B. "Hallo NXT!") NumOut(X-Koordinate, Zeile, Zahl) Ausgabe eines Zahlenwerts an einer bestimmten Position am Display X-Koordinate: ganzzahliger Wert zwischen 0 und 99 Zeile: LCD_LINE1, LCD_LINE2,..., LCD_LINE8 Zahl: Zahlenwert oder Name einer Variable, die einen Zahlenwert beinhaltet Dr. Leander Brandl - it.brgkepler.at Anhang

17 Programmierung des NXT mit NXC Anhang B - Referenz der NXT-spezifischen Funktionen Motoren in NXC OnFwd(Ausgang, Leistung) Vorwärtsbewegung der Motoren mit variabler Geschwindigkeit zwischen 0% und 100% Ausgang: OUT_A, OUT_B, OUT_C, OUT_AB, OUT_AC, OUT_BC, OUT_ABC Leistung: ganze Zahl OnRev(Ausgang, Leistung) Rückwärtsbewegung der Motoren mit variabler Geschwindigkeit zwischen 0% und 100% Ausgang: OUT_A, OUT_B, OUT_C, OUT_AB, OUT_AC, OUT_BC, OUT_ABC Leistung: ganze Zahl RotateMotor(Ausgang, Leistung, Drehwinkel) Drehung eines Motors um einen vorgegebenen Winkel Ausgang: OUT_A, OUT_B, OUT_C, OUT_AB, OUT_AC, OUT_BC, OUT_ABC Leistung: ganze Zahl Drehwinkel: ganze Zahl, positiver Wert - Vorwärtsdrehung, negativer Wert - Rückwärtsdrehung Off(Ausgang) Abschalten der Ausgänge Ausgang: OUT_A, OUT_B, OUT_C, OUT_AB, OUT_AC, OUT_BC, OUT_ABC Dr. Leander Brandl - it.brgkepler.at Anhang

18 Anhang C - Referenz der NXT-spezifischen Funktionen Sensoren in NXC SetSensorTouch(Eingang) An dem angegebenen Eingang ist ein Berührungssensor angschlossen Eingang: IN_1, IN_2, IN_3, IN_4 SetSensorLight(Eingang) An dem angegebenen Eingang ist ein Lichtsensor angschlossen Eingang: IN_1, IN_2, IN_3, IN_4 Sensor(Eingang) Diese Funktion liefert den Wert des Sensor am jeweiligen Eingang zurück Eingang: IN_1, IN_2, IN_3, IN_4 Rückgabewert bei einem Berührungssensor: 0 (Taster offen) oder 1 (Taster geschlossen) Rückgabewert bei einem Lichtsensor: 0 (minimale Intensität) bis 100 (maximale Intensität) Seite 1 8

19 Programmierung des NXT mit NXC Anhang D - Aufgabensammlung Aufgabe 2.1 (Roboter mit 2 Motoren) Erstelle ein Programm, mit dem der Roboter fünf Sekunden mit einer Leistung von 50% rückwärts und anschließend mit einer Leistung von 30% zwei Sekunden vorwärts fährt. Aufgabe 3.1 (Roboter mit 2 Motoren) Erstelle ein Programm, mit dem der Roboter aus Kapitel 2 drei Sekunden vorwärts fährt, dann am Stand umdreht und anschließend wieder an den Ausgangspunkt zurückkehrt. Aufgabe 3.2 (Roboter mit 2 Motoren) Erstelle ein Programm, mit dem der Roboter aus Kapitel 2 ein Quadrad abfährt. Die Motorleistung kann dabei beliebig gewählt werden. Aufgabe 3.3 (Roboter mit 2 Motoren) Erstelle ein Programm, mit dem der Roboter ein Quadrat in der dargestellten Richtung viermal hintereinander abfährt und verwende dabei das repeat-statement. Aufgabe 3.4 (Roboter mit 2 Motoren) Erstelle ein Programm, mit dem der Roboter einen Achter abfährt, der aus zwei Quadraten besteht und verwende dabei zwei Anweisungs-Blöcke, die mit repeat() eingeleitet werden. Dr. Leander Brandl - it.brgkepler.at Anhang

20 Programmierung des NXT mit NXC Aufgabe 4.1 (Roboter mit 2 Motoren und einem Berührungssensor vorne) Erstelle zwei Programme, mit denen der Roboter auf ein zylindrisches Hinternis (z. B. PET-Flasche) zufährt. Berührt der Roboter das Hindernis, so soll dieser ein Stück zurück und dann das Hindernis so umfahren, dass er danach seinen Weg wie zuvor fortsetzt. Mit dem ersten Programm soll der Roboter ein Ausweischmanöver auf der rechten, mit dem zweiten Programm ein Ausweichmanöver auf der linken Seite des Hindernis fahren ohne dieses zu berühren. Aufgabe 4.2 (Roboter mit 2 Motoren und einem Berührungssensor vorne) Erstelle zwei Programme, mit denen der Roboter auf ein rechteckiges (z. B. Ziegel) zufährt. Berührt der Roboter das Hindernis, so soll dieser ein Stück zurück und dann das Hindernis so umfahren, dass er danach seinen Weg wie zuvor fortsetzt (siehe Zeichnung). Mit dem ersten Programm soll der Roboter ein Ausweischmanöver auf der rechten, mit dem zweiten Programm ein Ausweichmanöver auf der linken Seite des Hindernis fahren ohne dieses zu berühren. Aufgabe 4.3 (Roboter mit 2 Motoren und einem nach untern gerichteten Lichtsensor) Erstelle ein Programm, mit dem der Roboter auf eine schwarze Linie zusteuert. Erreicht der Lichtsensor die schwarze Linie, so soll der Roboter für zwei Sekunden stehen bleiben. Im Anschluss daran soll dieser wieder vorwärts fahren bis der Sensor die weiße Fläche erreicht. Dort soll der Roboter stehen bleiben. Eine entsprechende Vorlage zum Ausdrucken findet sich am Ende dieses Skriptums. Aufgabe 4.4 (Roboter mit 2 Motoren und einem nach untern gerichteten Lichtsensor) Erstelle ein Programm, mit dem der Roboter auf eine schwarze Linie zusteuert, diese ohne anzuhalten überfährt und stehenbleibt, sobald der Lichtsensor nach dem Passieren der schwarzen Linie wieder die weiße Fläche erreicht. Eine entsprechende Vorlage zum Ausdrucken findet sich am Ende dieses Skriptums. Dr. Leander Brandl - it.brgkepler.at Anhang

21 Programmierung des NXT mit NXC Aufgabe 4.5 (Roboter mit 2 Motoren und einem nach unten gerichteten Lichtsensor) Erstelle ein Programm, mit dem der Roboter auf einen Bereich mit mehreren, parallelen schwarzen Streifen zufährt. Der Roboter soll, wenn sich der Lichtsensor über einer schwarzen Linie befindet, jeweils für zwei Sekunden anhalten und dann weiterfahren. Hat der Roboter die dritte schwarze Linie erreicht, so soll der dort stehen bleiben. Eine entsprechende Vorlage zum Ausdrucken findet sich am Ende dieses Skriptums. Aufgabe 4.6 (Roboter mit 2 Motoren und einem nach unten gerichteten Lichtsensor) Erweitere das Programm aus Aufgabe 4.5 so, dass am Display laufend der aktuelle Wert des Lichtsensors angezeigt wird. Dr. Leander Brandl - it.brgkepler.at Anhang

22

23

NXC-Programmiersprache

NXC-Programmiersprache Seite 1 von 7 NXC-Programmiersprache Programmbefehle: Strg + N Strg + S Strg + F4 Alt + F4 Strg + P Strg + F Strg + R Strg + G F5 F6 Strg + Z Strg + (nach oben) + Z Strg + X Strg + C Strg + V Strg + Entf

Mehr

Seite 1/6. ModellFerienPass.pdf).

Seite 1/6. ModellFerienPass.pdf). Seite 1/6 NXC Programme Legomodell Am Ende dieser Doku findest ein Bild des Modells, das im Kurs eingesetzt wird. Alle Beispielprogramme basieren auf diesem Modell. Ein Anleitung zum Bau ist auf der CD

Mehr

Inhaltsverzeichnis. 1 Anfang 2. 2 Erste Schritte 3. 3 Schleifen repeat while(true) Die if()-schleife... 5.

Inhaltsverzeichnis. 1 Anfang 2. 2 Erste Schritte 3. 3 Schleifen repeat while(true) Die if()-schleife... 5. Inhaltsverzeichnis 1 Anfang 2 2 Erste Schritte 3 3 Schleifen 4 3.1 repeat...................................... 4 3.2 while(true).................................... 4 3.3 Die if()-schleife.................................

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

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 C EV3 Fakultät für Informatik, Institut für Robotik Laborpraktikum I - Medizinarena Legorobotik in C EV3 Ute Ihme Hochschule Mannheim Ute Ihme DAS LEGO MINDSTORMS System Das EV3 System Prinzip von LEGO MINDSTORMS

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

Programmieren von Lego Robotern mit NQC

Programmieren von Lego Robotern mit NQC 5.1 1. Die Entwicklungsumgebung Die Lego-Mindstorms Roboter werden so wie Karol über ein Programm gesteuert. Ein solches Programm wird in einer Entwicklungsumgebung geschrieben, die einen Texteditor enthält.

Mehr

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

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag

Mehr

Fraunhofer IAIS. Lernen mit Robotern. Roberta Grundlagen und Experimente. Roberta-Reihe Band 1 - NXT

Fraunhofer IAIS. Lernen mit Robotern. Roberta Grundlagen und Experimente. Roberta-Reihe Band 1 - NXT Fraunhofer IAIS Lernen mit Robotern Roberta Grundlagen und Experimente Roberta-Reihe Band 1 - NXT Inhaltsverzeichnis Inhaltsverzeichnis Kapitel 1 Einführung 1 Einleitung 3 Roboter in der Bildung 4 LEGO

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

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

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

Arbeit_Roboter. Setze einen Haken bei den Fragen, die du für richtig hältst: Bei Textantworten oder Lückentexten gib jeweils das Ergebnis an.

Arbeit_Roboter. Setze einen Haken bei den Fragen, die du für richtig hältst: Bei Textantworten oder Lückentexten gib jeweils das Ergebnis an. Arbeit_Roboter drucken neu_sortieren verschicken verschicken_selbsttest Setze einen Haken bei den Fragen, die du für richtig hältst: Bei Textantworten oder Lückentexten gib jeweils das Ergebnis an. Vorname:

Mehr

Roboter programmieren mit NXC für LEGO MINDSTORMS NXT

Roboter programmieren mit NXC für LEGO MINDSTORMS NXT Daniel Braun Roboter programmieren mit NXC für LEGO MINDSTORMS NXT mitp Vorwort 13 i NXTundNXC 15 i.i DerNXT 15 1.2 NXC 16 1.2.1 Not exactly С 16 1.2.2 Compiler 17 1.2.3 Zusammenfassung 17 2 BricxCC 19

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

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

Fakultät für Informatik, Institut für Robotik Laborpraktikum Legorobotik in C EV3 Fakultät für Informatik, Institut für Robotik Laborpraktikum Legorobotik in C EV3 Ute Ihme Hochschule Mannheim Ute Ihme DAS LEGO MINDSTORMS System Das EV3 System Prinzip von LEGO MINDSTORMS Roboter wird

Mehr

Programmieren des NXT-Roboters mit LabView 2010

Programmieren des NXT-Roboters mit LabView 2010 Programmieren des NXT-Roboters mit LabView 2010 Von Alwin Ebermann 1. Voraussetzungen Der Roboter hat die neueste Firmenware LabView 2010 for NXT ist schon installiert (Testversion hier) 2. Programmieren

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

Inhaltsverzeichnis. Vorwort NXTundNXC DerNXT NXC Not exactly C Compiler Zusammenfassung 17

Inhaltsverzeichnis. Vorwort NXTundNXC DerNXT NXC Not exactly C Compiler Zusammenfassung 17 Vorwort 13 1 NXTundNXC 15 1.1 DerNXT 15 1.2 NXC 16 1.2.1 Not exactly C 16 1.2.2 Compiler 17 1.2.3 Zusammenfassung 17 2 BricxCC 19 2.1 Installation 19 2.2 Oberfläche 20 2.3 Menüleiste 22 2.3.1 Datei 22

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

Intelligente Programme für den NXT

Intelligente Programme für den NXT Intelligente Programme für den NXT Dieses Tutorial ist für alle die gedacht, die den Einstieg durch meine Programmiereinführung bereits hinter sich haben und nun intelligente Programme für den NXT schreiben

Mehr

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

1.37 Gyro1 Quadrat fahren Gyro2 Rampe Mehrere Sensoren1 Tischkante Mehrere Sensoren2 Hindernissen ausweichen... Inhaltsverzeichnis Aufgabenstellungen 3 1.1 Display1 Augen verdrehen.................. 3 1.2 Display2 Herzschlag..................... 4 1.3 Fahren1 Vor und zurück................... 5 1.4 Fahren2 Links

Mehr

Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert?

Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert? 1 Übersicht Für die Programmierung steht ein Programm zur Verfügung. Hier kann der Quelltext geschrieben, überprüft, kompiliert und anschließend auf den Arduino geladen werden. Wenn ihr das Programm startet,

Mehr

NXC Minimal Tutorial

NXC Minimal Tutorial NXC Minimal Tutorial Christian Scheuer Helmut-Schmidt-Universität /Universität der Bundeswehr Hamburg Professur für Technische Informatik cscheuer@hsu-hh.de, hildebrandt@hsu-hh.de 30. Mai 2012 Dieses Dokument

Mehr

Infokarte: Snap4Arduino

Infokarte: Snap4Arduino Infokarte: Snap4Arduino Ein Arduino-Projekt erstellen Um ein neues Arduino-Projekt in Snap4Arduino zu erstellen, wird das Programm geöffnet. Snap erzeugt automatisch ein neues Projekt. Soll ein bereits

Mehr

Messungen mit dem Lichtsensor

Messungen mit dem Lichtsensor Messungen mit dem Lichtsensor Für die Programmierung eines Roboters, der einer Linie folgt, brauchen wir für die drei Farben die Helligkeitswerte, die dein Lichtsensor jeweils ausgibt. Arbeite dazu folgende

Mehr

Softwarepraktikum Teamrobotik SS 2007

Softwarepraktikum Teamrobotik SS 2007 Lego Mindstorms Softwarepraktikum Teamrobotik SS 2007 Thema: - Programmierung von Steuerungsalgorithmen für mobile Roboter Gruppe 1: - Stefanie Müller und Ina Bosse Hardware: LEGO MINDSTORM Programmiersprache:

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

Softwarepraktikum Teamrobotik SS 2007 Abschlusspräsentation

Softwarepraktikum Teamrobotik SS 2007 Abschlusspräsentation Inhalt des Vortrags Softwarepraktikum Teamrobotik SS 27 Abschlusspräsentation von Norman Siemer, Thomas Poltrock und Martin Schemmer Einleitung Aufgabenstellung: Kollisionsfreie Navigation durch einen

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

mit der gratis erhältlichen Entwicklungsoberfläche BricxCC und der Programmiersprache NXC.

mit der gratis erhältlichen Entwicklungsoberfläche BricxCC und der Programmiersprache NXC. Kepler Robo League Kurzinformation für Schulen Was ist die Kepler Robo League? eine Bildungsinitiative des Bundesrealgymnasiums Keplerstraße zum Einstieg in das Bauen und Programmieren von Robotern ohne

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

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

Wie können See how wir far Enchanting away something mitteilen, is. dass am NXT der Lichtsensor an Port 3 angeschlossen ist?

Wie können See how wir far Enchanting away something mitteilen, is. dass am NXT der Lichtsensor an Port 3 angeschlossen ist? Wie können See how wir far Enchanting away something mitteilen, is. dass am NXT der Lichtsensor an Port 3 angeschlossen ist? 1. Klicke auf das Fühlen - Menü 2. Klicke auf Sensoren festlegen 3. Suche auf

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

Künstliche Intelligenz - Logische Agenten und Roboter

Künstliche Intelligenz - Logische Agenten und Roboter Künstliche Intelligenz - Logische Agenten und Roboter Wird präsentiert von: Alexander Betker Gregor Biering Thiemo Esch Marko Flod Sascha Schewe Unser Motto: Zu Fünft agiert es sich besser. Übersicht 1.

Mehr

Wichtige Befehle bei der Programmierung von. FISCHER-Technik

Wichtige Befehle bei der Programmierung von. FISCHER-Technik Wichtige Befehle bei der Programmierung von FISCHER-Technik 1 7 6 2 3 4 5 1) Interfacediagnose : Bevor du loslegst, teste alle, an den Eingängen E1-E8 angeschlossenen Schalter und Sensoren. Mit der linken

Mehr

C++ - Einführung in die Programmiersprache Schleifen

C++ - Einführung in die Programmiersprache Schleifen C++ - Einführung in die Programmiersprache Schleifen Bedingung wiederhole ja Anweisung Anweisung Anweisung Leibniz Universität IT Services Anja Aue Schleifen Iterationsanweisungen. Wiederholung von Anweisungsblöcken.

Mehr

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme Institut für Computational Science Prof. Dr. H. Hinterberger Praxismodul 1 Einführung in die Programmierung Erste Programme Einführung in die Programmierung 2 Institut für Computational Science, ETH Zürich,

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

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

Schleifen: Immer wieder dasselbe tun

Schleifen: Immer wieder dasselbe tun Schleifen: Immer wieder dasselbe tun Bei einer Schleife werden Anweisungen immer wieder ausgeführt, solange die Bedingung wahr ist. Dafür muss man eine Variable immer wieder ändern, solange bis eine Überprüfung

Mehr

Grundlagen der Fortran Sprache

Grundlagen der Fortran Sprache Kapitel 1 Grundlagen der Fortran Sprache Programmieren bezeichnet das Verfahren, in einer bestimmten Sprache (Syntax) Anweisungen (sog. Quellcode) für den Computer zu schreiben. Dieser Programmcode wird

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Es können ganze Programmteile aufgenommen werden. Mithilfe von Funktionen kann man denselben

Mehr

Programmieren Sie einen mobilen Roboter des Typs Lego Mindstorm, so daß dieser einen bedingten Reflex erlernen kann.

Programmieren Sie einen mobilen Roboter des Typs Lego Mindstorm, so daß dieser einen bedingten Reflex erlernen kann. UNIVERSITÄT SIEGEN Theorie und Praxis für die Gesellschaft von morgen Fachbereich 12 Elektrotechnik und Informatik Fachgruppe Echtzeit Lernsysteme Prof. Dr.-Ing. K.-D. Kuhnert C-Programmierpraktikum für

Mehr

Baue deinen ersten Roboter

Baue deinen ersten Roboter D3kjd3Di38lk323nnm 2 Baue deinen ersten Roboter In Kapitel 1 hast du gelernt, dass Roboter aus Motoren, Sensoren und dem EV3-Stein bestehen. Damit du besser verstehst, wie diese zusammenarbeiten, setzen

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

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

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

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

Programmierhandbuch zu NWT Robotics

Programmierhandbuch zu NWT Robotics Programmierhandbuch zu NWT Robotics Kepler Gymnasium Weil der Stadt, Version 1.2 (7. März 2017), Autor: Thomas Jörg While "True" LCD.StopUpdate() LCD.Clear() LCD.Write(0,0, Sensor.GetName(1)) LCD.Write(0,16,

Mehr

1 Karol stellt sich vor

1 Karol stellt sich vor Kapitel 1 Karol stell sich vor Seite 1 1 Karol stellt sich vor 1.1 Algorithmus Fritz hat zum Geburtstag einen CD-Player als Geschenk erhalten. Natürlich will er sofort das Geschenk ausprobieren und legt

Mehr

Arbeitsblatt: Wie rede ich mit einem Roboter?

Arbeitsblatt: Wie rede ich mit einem Roboter? Arbeitsblatt: Wie rede ich mit einem Roboter? Ausgangslage: Ein Roboter besitzt Sensoren, um seine Umgebung wahrzunehmen, und Aktoren, um seine Umgebung zu beeinflussen. Auch Menschen besitzen Sensoren

Mehr

Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1

Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1 Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1 Kapitel 1: Die ersten Schritte mit Greenfoot 1 Starten Sie Greenfoot. (Wenn Sie Greenfoot das erste Mal öffnen, erscheint ein Dialogfenster,

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.

Mehr

Spaichinger Entwicklungsumgebung 1.1 Zur C-Programmierung und Simulation von ct-bots (Fahrrobotern)

Spaichinger Entwicklungsumgebung 1.1 Zur C-Programmierung und Simulation von ct-bots (Fahrrobotern) Bedienungsanleitung Spaichinger Entwicklungsumgebung 1.1 Zur C-Programmierung und Simulation von ct-bots (Fahrrobotern) Freeware für Microsoft Windows Dr. Markus Ziegler www.spaichinger-schallpegelmesser.de

Mehr

Übersicht Shell-Scripten

Übersicht Shell-Scripten !!!! Wichtig: Bei Shell-Scripten enden die Zeilen nicht mit einem Strichpunkt!!!! Erste Zeile eines Shell-Scripts: #! /bin/bash Variablen in Shell-Scripts: Variablennamen müssen mit einem Buchstaben beginnen,

Mehr

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen Gehe nach links oder rechts Gehe solange geradeaus... Leibniz Universität IT Services Anja Aue Programmabläufe grafisch abbilden

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

Programmübersicht Software EV3

Programmübersicht Software EV3 Programmübersicht Software EV3 8. 4. 2. 1. 5. 3. 6. 7. 1. Menüliste Reiter: Verwaltung der Projekte 2. Projekteigenschaften: Übersicht des Programms 3. Werkzeugliste: Programm kommentieren 4. Programmblöcke:

Mehr

2. Software RoboLab Allgemeine Bedienung Firmware

2. Software RoboLab Allgemeine Bedienung Firmware 2. Software RoboLab 2.1. Allgemeine Bedienung Starten und weiter... : Zum Starten Doppelklick auf die RoboLab-Verknüpfung auf dem Desktop Auf Programmer klicken Inventorlevel wählen Fenster (das untere)

Mehr

Früh übt sich, wer ein Meister werden will!

Früh übt sich, wer ein Meister werden will! Farbige Isolierbänder, Karte LEGO Mindstorms Education EV3 #1 Früh übt sich, wer ein Meister werden will! /lego1 1. Baue ein Standardfahrzeug. Die Anleitung dazu findest du in der LEGO Mindstorms Education

Mehr

Labor Automatisierungstechnik

Labor Automatisierungstechnik Labor Automatisierungstechnik Teilnehmer: Name: Matrikelnr.: Name: Matrikelnr.: Name: Matrikelnr.: Versuch: Robotino Anwendung Philipp Schorr Arduino Anwendung 1 Inhaltsverzeichnis 1. Einleitende Worte...

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

Funktionen nur wenn dann

Funktionen nur wenn dann Funktionen nur wenn dann Funktionen können auch nur in bestimmten Fällen angewendet werden. Code wird nur in einem bestimmten Fall ausgeführt Code Ja Code Block wahr if wahr? Nein else Code Block Alternative

Mehr

Arbeiten mit JavaKara

Arbeiten mit JavaKara Arbeiten mit JavaKara 1. Programmierumgebung Möchte man ein neues Programm erstellen, so wird einem ein Programmeditor zur Verfügung gestellt, der bereits eine vorgefertigte Schablone darstellt. In der

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

LEGO MINDSTORMS NXT MIT LABVIEW 2009 PROGRAMMIEREN

LEGO MINDSTORMS NXT MIT LABVIEW 2009 PROGRAMMIEREN LEGO MINDSTORMS NXT MIT LABVIEW 2009 PROGRAMMIEREN Prof. Dr.-Ing. Dahlkemper Fabian Schwartau Patrick Voigt 1 NXT DIRECT COMMANDS Es gibt zwei verschiedene Möglichkeiten, den NXT zu programmieren: Es werden

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

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

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

06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen

06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen 06 While-Schleifen While-Schleifen 1/7 Wiederholung: Schleifen Eine Schleife ist eine Struktur, welche den Computer anweist, eine Liste von Befehlen mehrmals auszuführen. Falls Du ein Verfahren hast, das

Mehr

Programmsteuerung mit PHP - if/else, elseif,switch

Programmsteuerung mit PHP - if/else, elseif,switch Programmsteuerung mit PHP - if/else, elseif,switch Bei der Programmierung geht es meist vor allem darum festzulegen, welche Aktionen wie oft unter welchen Bedingungen ausgeführt werden sollen. Hierzu steht

Mehr

Programmierung der Lego Mindstorms NXT- Roboter mit lejos!

Programmierung der Lego Mindstorms NXT- Roboter mit lejos! Programmierung der Lego Mindstorms NXT- Roboter mit lejos! INSTITUT FÜR ANTHROPOMATIKLEHRSTUHL PROF. DR.-ING. R. DILLMANN Julian Schill Boris Stach schill@kit.edu boris.stach@student.kit.edu KIT Universität

Mehr

System.out.println("TEXT");

System.out.println(TEXT); Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class

Mehr

3. Das erste eigene Programm mit Greenfoot: Litte Crab

3. Das erste eigene Programm mit Greenfoot: Litte Crab Eigenes Programm: Little Crab1, Seite 1 von 5 3. Das erste eigene Programm mit Greenfoot: Litte Crab 3.1. Quelltext bearbeiten Nachdem Sie etwas Erfahrungen in der Bedienung von Greenfoot gewonnen haben,

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

Programme erstellen und bearbeiten

Programme erstellen und bearbeiten 3 Programme erstellen und bearbeiten Ihren ersten Roboter haben Sie bereits gebaut. Was er nun jedoch braucht, um funktionieren zu können, ist ein Programm. Ein Programm sagt Ihrem Roboter, was er tun

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

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion 01 Einführung in PHP Einführung in PHP 1/13 PHP in Aktion PHP ist eine Programmiersprache, die ganz verschiedene Dinge tun kann: von einem Browser gesendete Formularinhalte auswerten, angepasste Webinhalte

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 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

Aktivitäten in C# /.NET umsetzen

Aktivitäten in C# /.NET umsetzen Aktivitäten in C# /.NET umsetzen Grundlagen von C# Dr. Beatrice Amrhein Überblick Grundlagen der C# Syntax Visual C# Express Einfache Abläufe umsetzen 2 Grundlagen von C# 3 Merkmale von C# C# besteht aus

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

cagebot control quick start guide trike robot revision 1.3

cagebot control quick start guide trike robot revision 1.3 cagebot control trike robot quick start guide revision 1.3 Anleitung Stand 17.12.2015. Die aktuellste Version finden Sie auf unserer Website: www.cagebot.de Übersicht 1. "cagebot control" laden 3 2. mit

Mehr

5. NXT kann hören und Entfernungen erkennen: Test der Sensoren

5. NXT kann hören und Entfernungen erkennen: Test der Sensoren 5. NXT kann hören und Entfernungen erkennen: Test der Sensoren Mit dem NXT werden vier verschiedene Sensoren mitgeliefert. In diesem Kapitel lernst du die Funktion der Sensoren kennen. Im Fenster Robot

Mehr

HomeMatic -Know-how. Teil 2: Funk-Lichtsteuerung über HomeMatic -Display-Wandtaster. 40 So funktioniert s

HomeMatic -Know-how. Teil 2: Funk-Lichtsteuerung über HomeMatic -Display-Wandtaster. 40 So funktioniert s 40 So funktioniert s HomeMatic -Know-how Teil 2: Funk-Lichtsteuerung über HomeMatic -Display-Wandtaster In unserer neuen Reihe HomeMatic-Know-how zeigen wir anhand von kleinen Detaillösungen, wie man bestimmte

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

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

Der NXT Baustein mit Aktoren und Sensoren

Der NXT Baustein mit Aktoren und Sensoren Der NXT Baustein mit Aktoren und Sensoren Der NXT-Baustein ist ein programmierbarer Kleincomputer mit drei (3) Ausgängen und vier (4) Eingängen Im LEGO Mindstorms NXT Baukasten für Schulen befinden sich

Mehr

Firmware-Update von ARGUS -Testern

Firmware-Update von ARGUS -Testern Firmware-Update von ARGUS -Testern Anleitung zum Firmware-Update-Programm (v 1.4) Erstellt von: intec Gesellschaft für Informationstechnik mbh, Lüdenscheid Zuletzt geändert am 16. April 2008 Bei weiteren

Mehr

Roboterprogrammierung

Roboterprogrammierung ReferenceGuide Einführungs Autor: Fachhochschule Südwestfalen Fachbereich Elektrische Energietechnik Campus Soest Hinweise zur Benutzung Dieses Dokument soll die Arbeit während des Praktikums erleichtern,

Mehr

DLR SchoolLab Lektion 1 Erste Schritte

DLR SchoolLab Lektion 1 Erste Schritte 1 Navigation Die Entwicklungsoberfläche lässt sich durch sechs Buttons am unteren Bildschirmrand bedienen. Alternativ kann man auch über die Tastatur navigieren. Hierfür gibt es folgdende Abkürzungen:

Mehr

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Textausgabe per printf Die Funktion printf ist kein Bestandteil der C Sprache sondern gehört zur C Bibliothek. printf

Mehr

Klasse, Name : Datum : Rad l/r Linienfolger l/r Laderaum ATMEGA 128

Klasse, Name : Datum : Rad l/r Linienfolger l/r Laderaum ATMEGA 128 HTL_RoboterDKU.odt Übung : Arbeiten mit dem HTL Leonding Roboter Seite : 1 von 7 1. Roboter Peripherie Eingänge Ausgänge DIGITAL ANA- LG DATEN Taster Kante l/r Rad l/r Linienfolger l/r Laderaum Klappe

Mehr

Fragebogen zur Programmierung mit Aseba / VPL

Fragebogen zur Programmierung mit Aseba / VPL Fragebogen zur Programmierung mit Aseba / VPL Liebe/er Schüler/in Mit diesem Fragebogen möchten wir die Anwendungsmöglichkeiten des Thymio-II Roboter und der Aseba/VPL Software verbessern. Bitte beantworte

Mehr

BlueBot. Kinder lernen Programmieren

BlueBot. Kinder lernen Programmieren BlueBot Kinder lernen Programmieren Inhalt Was ist der BlueBot?... 2 Downloads... 3 Appstore und Google Play Store... 3 Downloadlink BlueBot App für Windows 10... 3 BlueBot Tac Tile Reader... 4 Blue Bot

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

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

Mehr

kepler robotik unser Weg

kepler robotik unser Weg kepler robotik unser Weg Burgenländischer IT-Tag 2017 Robotik für alle Bundesrealgymnasium Keplerstraße Graz kepler robotik unser Weg Matura Wettbewerbe Kurse 1. 5. Klasse 3D Druck Platinenherstellung

Mehr