Benötigter Roboter: NXT mit Gear und Soundsensor |
![]() |
![]() |
Beispiel 1: |
![]() |
Beispiel mit Online Editor testen
Programmcode:
|
// SoundSensorEx1.java import ch.aplu.nxt.*; import ch.aplu.util.*; public class SoundSensorEx1 implements SoundListener { private final int triggerLevel = 30; private Gear gear; public SoundSensorEx1() { NxtRobot robot = new NxtRobot(); SoundSensor ss = new SoundSensor(SensorPort.S1); robot.addPart(ss); ss.addSoundListener(this, triggerLevel); gear = new Gear(); gear.setSpeed(30); robot.addPart(gear); gear.forward(); while (!QuitPane.quit()); robot.exit(); } public void loud(SensorPort port, int level) { gear.left(500); gear.forward(); } public void quiet(SensorPort port, int level) { } public static void main(String[] args) { new SoundSensorEx1(); } } |
| implements SoundListener | Analog wie beim Light- und Touchsensor wird der SoundListener implementiert. Das Interface SoundListener hat zwei Callbackmethoden loud() und quiet() |
| private final int triggerLevel = 30 |
Der Triggerpegel wird auf 30 gesetzt. In einer lauten Umgebung muss dieser Wert vergrössert werden |
| ss.addSoundListener(this, triggerLevel) | SoundListener wird mit der aktuellen Instanz und dem Triggerlevel registriert, damit der Soundsensor die Callbackmethoden aufrufen kann |
Beispiel 2: |
![]() |
Beispiel mit Online Editor testen
Programmcode:
|
// SoundSensorEx2.java import ch.aplu.nxt.*; import ch.aplu.util.*; class SoundSensorEx2 implements SoundListener { private final int triggerLevel = 30; private Gear gear; SoundSensorEx2() { NxtRobot robot = new NxtRobot(); gear = new Gear(); robot.addPart(gear); SoundSensor ss = new SoundSensor(SensorPort.S1); robot.addPart(ss); ss.addSoundListener(this,triggerLevel); while (!QuitPane.quit()) {} robot.exit(); } public void loud(SensorPort port, int level) { gear.forward(); } public void quiet(SensorPort port, int level) { } public static void main (String[] args) { new SoundSensorEx2(); } } |
| while (!QuitPane.quit()) | Das Hauptprogramm läuft in einer Endlosschleife |
| ss.addSoundListener(this,triggerLevel) |
SoundListener wird mit der aktuellen Instanz und dem Triggerlevel registriert, damit der Soundsensor die Callbackmethoden aufrufen kann . in der Callbackmethode loud() wird der Roboter in Bewegung gesetzt |