LEGO NXT Roboter in Java programmieren

Slides:



Advertisements
Ähnliche Präsentationen
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Advertisements

Einführung in die Programmierung Ausführbare Klassen
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Kapselung , toString , equals , Java API
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
Threads Richard Göbel.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Java: Grundlagen der Objektorientierung
Wie überwacht man Objekte im "Alltag" ?. Indem man "Wanzen" an diese anbringt.
Ein Beispiel in Java.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
DO...WHILE Anweisung.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
DVG1 - Applets1 Applets. DVG1 - Applets2 Die Klasse Applet n Applets sind Grafikobjekte, die unter Steuerung eines anderen Programms (z.B. eines Browsers,
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Einführung in Java1 Einführung in JAVA.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Das Roboterprojekt Einführung Der erste Entwurf Das Thread-Konzept Hindernisse Website.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Step by step zum JFrame 1 Zum JFrame Step by step by step by step by step by step by step by step by.
Thema: Fibonacci-Zahlen
Bestimmung des ggT zweier Zahlen
© 2005 Pohlig GK Informatik K Zum JFrame Step by step by step by step by step by step by step by step by.
© 2006 MPohlig Grundkurs Informatik mit Java 1 JFrame-Vorlage Step by step by step by step by step by step by step by step by.
Verzweigung.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Objektorientierte Modellierung
Kapitel 1 – Erste Schritte
1.2 Attribute und Methoden Aufbau einer Java-Klasse:
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
Objektorientiertes Konstruieren
Die Grundidee Funktionsaufruf Funktionsname (Kopf) Code der Funktion
Variablenkonzept Klassisch, in Java Basistyp
Die Klasse String und ihre Methoden
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
Starten der Entwicklungsumgebung (IDE)
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Learning By Doing Konstruktoren Gleicher Name wie die Klasse Zur Initialisierung des Objekts, insbesondere mit Parametern Wir immer bei der Objekterzeugung.
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Lind 02/2005 Einführung in JAVA. Lind 02/2005 Beispiel: Mittelwert Es soll ein Programm erstellt werden, das den Mittelwert zweier reeller Zahlen berechnet.
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Schleifen
Programmiervorkurs WS 2014/15 Instanzmethoden
© 2005 Pohlig Informatik Jg. 11 mfH Michael Pohlig 1 Zum JFrame Step by step by step by step by step by step by step by step by.
© 2004 Pohlig Informatik Kurse © 2004 Pohlig Informatik Kurse Der Tramp tanzt die Rekursion zünderUntersuchen(…) Basisfall Rückmeldung:
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
Roboter programmieren
Tutorium Software-Engineering SS14 Florian Manghofer.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Hello World! Javakurs 2013 Arne Kappen
JAVA lernen: Methoden.
Die Struktur einer Java-Klasse
Grundkurs Informatik 11-13
Cäsar-Verschlüsselung
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Grundkurs Informatik mit Java
Schleifen mit der Turtle
Cäsar-Verschlüsselung
Reklursive Grafiken Teil I
Implementieren von Klassen
 Präsentation transkript:

LEGO NXT Roboter in Java programmieren

Programmgerüst public class NxtDemo { public static void main(String[] args) { // hier steht das eigentliche Programm }

Die wichtigsten Klassen- bibliotheken import lejos.nxt.*; import lejos.util.*;

Programmgerüst mit Motoren und Sensoren import lejos.nxt.*; import lejos.util.*;  public class NxtDemo { static Motor motorA  new Motor(MotorPort.A); // weitere Motoren… static TouchSensor ts  new TouchSensor(SensorPort.S1); // weitere Sensoren…   public static void main(String[] args) { // hier steht das eigentliche Programm }

Verwendung von Motoren new Motor(MotorPort port) Konstruktor. port kann einen der drei Werte MotorPort.A, MotorPort.B und MotorPort.C annehmen. backward() Rückwärtsdrehung starten. Voreingestellt ist eine Geschwindigkeit von einer Radumdrehung pro Sekunde. flt() Stromzufuhr abstellen, Motor ausrollen lassen forward() Vorwärtsdrehung starten. Voreingestellt ist eine Geschwindigkeit von einer Radumdrehung pro Sekunde. boolean isMoving() gibt true zurück, falls der Motor dreht, andernfalls false rotate(int angle, boolean immediateReturn) Motor um den Winkel angle (in °) drehen (falls angle < 0: Rückwärtsdrehung). Falls immediateReturn  true, wird der nächste Programmbefehl sofort nach Start der Drehung ausgeführt, andernfalls erst am Schluss der Drehung. setSpeed(int speed) Geschwindigkeit des Motors festlegen (ohne den Motor damit zu starten). speed kann je nach Akkustand zwischen 0 und ca. 720 liegen und gibt die Geschwindigkeit in Grad pro Sekunde an. Voreingestellt sind 360°/s. stop() Vollbremsung durchführen

Verwendung von Sensoren Lichtsensor   new LightSensor(SensorPort s) Konstruktor. s kann einen der vier Werte SensorPort.S1 bis SensorPort.S4 annehmen. setFloodlight(boolean fl) Falls fl  true, Lampe am Lichtsensor einschalten, andernfalls ausschalten int readNormalizedValue() gibt den Helligkeitswert des Lichtsensors (im Bereich von 0 bis 1023) zurück int readValue() gibt den Helligkeitswert des Lichtsensors in Prozent (0 bis 100) zurück Berührungssensor new TouchSensor(SensorPort s) boolean isPressed() gibt true zurück, falls der Sensor gedrückt wird, andernfalls false Ultraschallsensor new UltrasonicSensor( SensorPort s) int getDistance() gibt die Entfernung des nächstgelegenen, vom Ultraschallsensor erfassten Objekts in cm zurück. Falls kein Objekt erfasst wurde, ist der Rückgabewert 255.

LCD-Display und Buttons Klasse LCD   LCD.clearDisplay() Bildschirminhalt löschen LCD.drawInt(int i, int places, int x, int y) Schreibe die Zahl i, beginnend in Spalte x und Zeile y (die Zählung der Zeilen und Spalten beginnt mit 0!). Falls die Zahl weniger als places Stellen hat, füge vor der Zahl so viele Leerzeichen ein, dass sie insgesamt places Zeichen Platz einnimmt. LCD.drawString(String s, int x, int y) Schreibe den String s, beginnend in Spalte x und Zeile y (die Zählung der Zeilen und Spalten beginnt mit 0!). Der String kann die Sequenz \n enthalten, welche einen Zeilenumbruch bewirkt. LCD.scroll() Scrolle den gesamten Text eine Zeile nach oben. Klasse Button Button.LEFT, Button.ENTER, Button.RIGHT und Button.ESCAPE boolean isPressed() gibt true zurück, falls der Button gedrückt wird, andernfalls false. Benutzungsbeispiel: if(Button.ESCAPE.isPressed()) { NXT.shutdown(); // siehe unten }

Weitere nützliche Klassen Klasse Delay   Delay.msDelay(int ms) Programm für ms Millisekunden anhalten (1 ms  10-3 s) Delay.usDelay(int us) Programm für us Mikrosekunden anhalten (1 s  10-6 s) Delay.nsDelay(int ns) Programm für ns Nanosekunden anhalten (1 ns  10-9 s) Klasse NXT NXT.exit(int code) Programm beenden. Für code wird im Normalfall 0 eingesetzt. NXT.shutdown() NXT ausschalten Klasse Sound Sound.beep() einmal piepsen Sound.beepSequence() absteigende Sequenz von zwei Piepstönen spielen Sound.beepSequenceUp() aufsteigende Sequenz von zwei Piepstönen spielen Sound.buzz() tiefen Summton abspielen Sound.setVolume(int vol) Lautstärke auf den Wert vol (0 – 100) setzen. Sound.playTone(int freq, int duration) Ton mit der Frequenz freq (in Hz) und der Länge duration (in ms) spielen Alle Methoden dieser Klassen sind statisch!

NXT Notabschaltung gleichzeitig drücken