i

Einsatzfelder des Ultraschallsensors

Ultraschallsensor: Distanz messen

Der Ultraschallsensor 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.

EV3-Version

Der Ultraschallsensor (lejos.hardware.sensor.EV3UltrasonicSensor) 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. Für den Einsatz empfiehlt es sich, den komplexer gewordenen Code in eine Methode missAbstand() auszulagern.

NXT-Version

Der Ultraschallsensor (lejos.nxt.UltrasonicSensor) 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.

Suche

v
13.2.4.2
www.inf-schule.de/informatiksysteme/robotik/messendarstellen/ultraschall
www.inf-schule.de/13.2.4.2
www.inf-schule.de/@/page/D3XtHtfGZNc7EdXH

Rückmeldung geben