Benötigter Roboter: NXT mit Gear und Touchsensor |
![]() |
![]() |
| Der Touchsensor reagiert auf eine Berührung. Im folgenden Beispiel bewegt sich der Roboter so lange vorwärts, bis der Touchsensor gedrückt wird (Roboter stösst auf ein Hindernis). Dann fährt er eine kurze Strecke zurück, dreht um ca. 90° links und fährt wieder vorwärts. |
![]() |
Beispiel mit Online Editor testen
Programmcode:
|
// TouchsensorEx1.java import ch.aplu.nxt.*; import ch.aplu.util.*; public class TouchsensorEx1 implements TouchListener { private Gear gear; public TouchsensorEx1() { NxtRobot robot = new NxtRobot(); TouchSensor ts = new TouchSensor(SensorPort.S1); robot.addPart(ts); ts.addTouchListener(this); gear = new Gear(); gear.setSpeed(30); robot.addPart(gear); gear.forward(); while (!QuitPane.quit()); robot.exit(); } public void pressed(SensorPort port) { gear.backward(500); gear.left(500); gear.forward(); } public void released(SensorPort port) { } public static void main(String[] args) { new TouchsensorEx1(); } } |
| implements TouchListener | TouchListener ist ein Interface. Interfaces in Java enthalten Methodendeklarationen ohne Programmcode. Während in Java nur eine einfache Vererbung erlaubt ist, ist es möglich, dass eine Klasse mehrere Interfaces implementiert. Sie muss alle Methoden des Interfaces deklarieren. Da das Interface TouchListener zwei Callbackmethoden (pressed() und released()) hat, muss auch eine leere Methode released() deklariert werden |
| ts.addTouchListener(this) | TouchListener wird mit der aktuellen Instanz registriert damit der Touchsensor die die Callbackmethoden aufrufen kann |