Benötigter Roboter: NXT mit Gear und Ultrasonicsensor |
![]() |
![]() |
Mit Ultraschalsensor kann man die Distanz zu einem Objekt messen. Der Roboter bewegt sich auf einer Fläche (z.B. Tisch). Falls er auf die Tischkante kommt, stürzt er nich ab, sondern fährt ein kurze Strecke zurück, dreht 90° links oder rechts und setzt die Bewegung weiter.
|
![]() |
Programmcode:
|
// UltrasonicEx1.java import ch.aplu.nxt.*; import ch.aplu.util.*; public class UltrasonicEx1 implements UltrasonicListener { private final int triggerLevel = 20; private Gear gear; public UltrasonicEx1() { NxtRobot robot = new NxtRobot(); UltrasonicSensor us = new UltrasonicSensor(SensorPort.S1); robot.addPart(us); us.addUltrasonicListener(this, triggerLevel); gear = new Gear(); gear.setSpeed(15); robot.addPart(gear); gear.forward(); while (!QuitPane.quit()) {} robot.exit(); } public void far(SensorPort port, int level) { gear.backward(2000); if (Math.random() < 0.5) gear.left(1000); else gear.right(1000); gear.forward(); } public void near(SensorPort port, int level) { } public static void main(String[] args) { new UltrasonicEx1(); } } |
| implements UltrasonicListener |
Der Ultraschallsensor wird durch einen UltrasonicListener überwacht. Der Interface UltrasonicListener hat zwei Callbackmethoden far() und near() |
| private final int triggerLevel = 20 |
Distanzlevel wird auf 20 cm gesetzt |
| us.addUltrasonicListener(this, triggerLevel) | UltrasonicListener bezieht sich auf die aktuelle Instanz und den festgelegten level |