Roboterprogrammierung

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

JAVA-Datentypen und deren Wertebereich

Einführung Java Programmieren in Java Arrays Schleifen Fehler. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann

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

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Einführung in die Programmierung mit VBA

Algorithmen und ihre Programmierung

Modellierung und Programmierung 1

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

Objektorientierte Programmierung und Modellierung

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

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

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

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

IoT-Werkstatt Das Internet der Dinge anfassbar machen Algorithmisches Denken

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

System.out.println("TEXT");

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

C++ - Einführung in die Programmiersprache Schleifen

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Girls Day 2018 Programmiereinführung

Intensivübung zu Algorithmen und Datenstrukturen

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Unterlagen. CPP-Uebungen-08/

Programmierung mit C Zeiger

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Algorithmen zur Datenanalyse in C++

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Kapitel 3: Variablen

Java I Vorlesung Imperatives Programmieren

Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke

Programmierkurs Python I

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Tag 2 Repetitorium Informatik (Java)

Operatoren (1) Operatoren (2)

4 Formelsammlung C/C++

Einfache Rechenstrukturen und Kontrollfluss

Vorkurs Informatik WiSe 16/17

Hello World! Eine Einführung in das Programmieren Variablen

Angewandte Mathematik und Programmierung

Boolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration:

Anweisungen zur Ablaufsteuerung

Programming 101. Carl Herrmann IPMB & DKFZ

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

WS2018/ Oktober 2018

Algorithmen & Programmierung. Logik

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Schleifenanweisungen

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

1. Referenzdatentypen: Felder und Strings

if ( Logischer Operator ) { } else { Anweisungen false

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

PIC16 Programmierung in HITECH-C

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

6. Grundlagen der Programmierung

Java: Eine kurze Einführung an Beispielen

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

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

EINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Vorkurs Informatik WiSe 17/18

RobotC Einführung für den EV3 Kepler Gymnasium Weil der Stadt Thomas Jörg Stand: 02. September 2018 Version 1.0

Übersicht Shell-Scripten

Brückenkurs Programmieren

Mathematische Computer-Software

Modul 122 VBA Scribt.docx

2. Programmierung in C

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15

Datentypen: integer, char, string, boolean

Übungszettel 2a - Python

Elementare Konzepte von

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

Projekt 3 Variablen und Operatoren

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17

PHP JavaScript Kapitel 4. Kommentare

Informatik I: Einführung in die Programmierung

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Informatik für Schüler, Foliensatz 2 Ausdrücke, Variablen, Datentypen, Ein- und Ausgabe

Programmieren in C/C++ und MATLAB

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Transkript:

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, hierzu steht eine systematische Sammlung der wichtigsten Befehle aus RobotC zur Verfügung. Jeder Befehl wird dabei durch ein kurzes Beispiel illustriert. Außerdem wird jeweils angegeben in welchem Praktikum und innerhalb welcher Aufgabe die jeweilige Funktion zum ersten Mal benutzt wurde. Die Sortierung der einzelnen Befehle orientiert sich dabei in den meisten Fällen an der Aufteilung in der RobotC-Bibliothek. Die meisten Teile dieses ReferenceGuides basieren auf den Dokumentationen des National Robotics Engineering Center an der Carnegie Mellon University (siehe www.robotc.net). A Generelle C-Syntax Die folgenden Unterpunkte enthalten Übersichten zu den wichtigsten Elementen der generellen Syntax von C. Hierbei werden natürlich in dieser Referenz nur die Elemente angegeben, welche auch zur Bearbeitung der Praktika benötigt werden. A1 Datentypen und Deklarationen von Variablen A1.1 Deklaration von Variablen Aufgabe 2.2 1 int distance; // Deklaration einer Ganzzahlvariablen Syntax: Datentyp Variablenname; 2 float distance = 0; // Gleitkommavariable + Zuweisung Startwert Syntax: Datentyp Variablenname = Startwert; A1.2 Übersicht der Datentypen Aufgabe 2.2 Datentyp Beschreibung Beispiele Code Integer Positive und negative Ganze Zahlen -5, -1, 0,, (Ganzzahl) und Null 100, 45 int Float Numerische Werte mit -0.12; 0.56; (Fließkommazahl) Dezimalpunkten.0; 1000.07 float Boolesche Zur Auswertung von logischen (wahr / falsch) Ausdrücken true / false bool A1. Felder Aufgabe 4.1 Fachhochschule Südwestfalen Fachbereich Elektrische Energietechnik - Campus Soest 0.10.2015 2 / 6

1 int feld[5]; // Initialisieren Feld mit 5 Integer Variablen 2 int feld[5] = {1,2,,4,5}; // Initialisieren Feld mit gleichzeitiger // Definition der Elemente 4 A = feld[4] // Zugriff auf den Wert in der 5. Zelle des Feldes 5 B = feld[0] // Index des ersten Elementes des Feldes: 0!!! A2 Operatoren A2.1 Arithmetische Operationen Aufgabe.2 1 A++; // Erhöhe den Wert von A um eins 2 B--; // Erniedrige den Wert von B um eins C=A; // Weise C den Wert von A zu 4 A+B; // Addition von A und B 5 D-C; // Subtraktion von D und C 6 B/D; // Dividiere B durch D 7 C*A; // Multipliziere C und A A2.2 Vergleichsoperationen Aufgabe 2. 1 A==B; // Ist A gleich B? 2 A!=B; // Ist A ungleich B? C>A; // Ist C größer als A? 4 A<B; // Ist A kleiner als B? 5 D<=C; // Ist D kleiner oder gleich C? 6 B>=D; // Ist B größer oder gleich D? A2. Logische Verknüpfungen Aufgabe.1 1 A&&B; // True wenn A und B true sind 2 A B; // True wenn A oder B oder beide true sind!a; // True wenn A false ist A Programmflusssteuerung (C_Constructs) A.1 while-schleife Aufgabe 2. 1 while ( Bedingung ) 2 { Anweisungen; 4 } 5 6 // Beispiel: 7 while ( a < 10 ) // Solange a kleiner ist als 10 8 { 9 a++; // erhöhe a um eins 10 } A.2 for-schleife Aufgabe 4..1 Fachhochschule Südwestfalen Fachbereich Elektrische Energietechnik - Campus Soest 0.10.2015 / 6

1 for ( Initialisierung; Bedingung; Aktion ) // Initialisierung: Zuweisung 2 { // eines Startwertes für die Anweisungen; // Zählvariable 4 } // Bedingung: Verbleibe 5 // solange in der Schleife bis 6 // die Bedingung nicht mehr 7 // erfüllt ist 8 // Aktion: Veränderung der 9 // Beispiel: 10 int a=1; // Zählvariable nach Iteration 11 int i; // Deklaration Zählvariable 12 for ( i=0; i<9; i++ ) // Erhöhe i solange i kleiner 1 { // als neun ist um eins und 14 a=a+i; // berechne a = a + i 15 } // 1,2,4,7,11,16,22,29,7 16 // Ergebnis: 7 A. if-struktur Aufgabe 4..1 1 if ( Bedingung ) // Wenn Bedingung wahr ist, dann 2 { Anweisungen 1; // führe Anweisungen 1 aus, 4 } 5 else // sonst 6 { 7 Anweisungen 2; // führe Anweisungen 2 aus. 8 } 9 10 // Beispiel: 11 if ( a < 10 ) // Wenn a kleiner ist als 10, dann 12 { 1 b = 1; // weise b den Wert 1 zu, 14 } 15 else // sonst 16 { 17 b = 2; // weise b den Wert 2 zu. 18 } B Buttons des NXT-Bricks B1 Abfragen ob Taste auf NXT-Brick gedrückt Aufgabe 2.2 1 if (nnxtbuttonpressed == 1) // Variable nnxtbuttonpressed 2 { // enthält einen Wert der die // Pfeil nach rechts wurde gedrückt // gedrückte Taste 4 } // repräsentiert Button Wert von nnxtbuttonpressed Kein Button gedrückt -1 2 1 C Display des NXT-Bricks Fachhochschule Südwestfalen Fachbereich Elektrische Energietechnik - Campus Soest 0.10.2015 4 / 6

C 1 C 2 Texte auf dem LCD ausgeben Aufgabe 2.1 1 nxtdisplaytextline(nlinenumber, sstring); // In der Zeile nlinenumber wird 2 // der Text in sstring angezeigt 4 // Beispiel: 5 nxtdisplaytextline(1, "Hallo Leute!"); // In Zeile 1 wird der Text Hallo 6 // Leute! ausgegeben Texte und Werte von Variablen auf dem LCD ausgeben Aufgabe 2.2 1 nxtdisplaytextline(nlinenumber, sstring, parm1); // In der Zeile nlinenumber 2 // wird der Text in sstring // angezeigt, welcher einen 4 // Platzhalter für den Wert 5 // in parm1 enthält 6 7 int wert = 5; // Anlegen Variable 8 nxtdisplaytextline(1, "Nummer %i lebt!", wert); // Darstellung auf LCD 9 D Motoren D1 Zuweisung eines Geschwindigkeitswertes Aufgabe 2.4 1 motor[motora] = 100; // Weise dem Motor an Port A einen Geschwindigkeits- 2 // wert von 100 zu. Motor dreht linksrum. 4 motor[motorc] = -50; // Weise dem Motor an Port C einen Geschwindigkeits- 5 // wert von 50 zu. Motor dreht rechtsrum. E Sensoren E1 Auslesen eines Sensorwertes Aufgabe 2.2 1 int distance; // Definition einer Variablen zur 2 // Speicherung des Sensorwertes 4 distance = SensorValue[S4]; // Auslesen des Sensors an Port 4 5 // Sensor muss vorher in RobotC 6 // konfiguriert werden!!! F Sounds F1 Abspielen eines vordefinierten Soundfiles Aufgabe 2.2 Fachhochschule Südwestfalen Fachbereich Elektrische Energietechnik - Campus Soest 0.10.2015 5 / 6

1 PlaySound(sound); // Spielt das Soundfile, welches durch sound definiert 2 // wird auf dem NXT-Brick ab // Es stehen folgende vordefinierte Sounds zur 4 // Verfügung: 5 // - soundbeepbeep 6 // - soundblip 7 // - sounddownwardtones 8 // - soundexception 9 // - soundfastupwardtones 10 // - soundlast 11 // - soundlowbuzz 12 // - soundlowbuzzshort 1 // - soundshortblip 14 // - soundupwardtones G Timing G1 Verzögerungen Aufgabe 2.1 1 wait10msec(ntenmsec); // Verzögerung von ntenmsec*10ms 2 wait1msec(nmsec); // Verzögerung von nmsec*1ms 4 wait10msec(10); // Verzögerung von 10*10ms = 100ms 5 wait1msec(1000); // Verzögerung von 1000*1ms = 1000ms Ansprech partner Bei weiteren Fragen zur Organisation des Einführungss wenden Sie sich bitte jederzeit an: Antonius Schmidt, M.Sc Raum 04.105 Tel: +49 (0)29 21 / 78-452 E-Mail: schmidt.antonius@fh-swf.de Fachhochschule Südwestfalen Fachbereich Elektrische Energietechnik - Campus Soest 0.10.2015 6 / 6