Einsatzfelder des Ultraschallsensors
Ultraschallsensor: Distanz messen
Der Ultraschallsensor (lejos.nxt.UltrasonicSensor
) dient der Messung von Distanzen zu anderen Objekten. Will man beispielsweise während der Fahrt Kollisionen vermeiden, kann man mithilfe dieses Sensors bei einer Unterschreitung eines gewählten Sicherheitsabstands den Roboter stoppen. An dieser Stelle beschränken wir uns beim umfangreichen API auf simple Distanzmessung.
Tipps:
- Nach dem Start kurz warten. Die ersten Messungen sind nicht korrekt.
- Sensor nicht zu knapp über dem Boden einbauen, da sonst der Boden ggf. als Hindernis erkannt wird.
NXT-Version
Der Sensor ist standardmäßig im Modus "continiuous", d.h. er sendet regelmäßig sogenannte "pings" zum Messen aus. Die aktuellste Messung kann mittels der Methode getDistance()
abgerufen werden. Dessen Rückgabewert ist ein Integer im Intervall [0-255], wobei die Einheit standardmäßig Zentimeter ist und 255 für "kein Objekt in Reichweite" steht.
EV3-Version
Der Sensor ist standardmäßig im "Distance Mode", was auch durch konstantes Leuchten des Sensors deutlich wird. Blinkt der Sensor, so ist er im "Listening Mode". Die Bestimmung der aktuellsten Messung ist im Vergleich zum NXT komplexer geworden. Man benötigt einen SampleProvider, über den man mit fetchSample(sample, 0);
den Messwert erfragen kann. Entgegen der Dokumentation werden nicht Werte zwischen 0 und 250 cm als Ganzzahlwerte zurückgegeben, sondern Dezimalwerte zwischen 0 und über 0,3. Somit muss man (sogar doppelt!?) bei der Wertumwandlung in Ganzzahlen casten.