Python Online
Home     .
ultrasonic

6. ULTRASCHALLSENSOR

 

 

DU LERNST HIER...

 

wie du einen Ultraschallsensor dafür verwenden kannst, um die Distanz zu einem Objekt (Target) zu bestimmen. Dazu sendet der Sensor ähnlich wie ein Radar einen kurzen Ultraschall-Puls aus und bestimmt die Zeit, die dieser benötigt, um zum Objekt und wieder zurück zu laufen. Daraus kann er aus der bekannten Schallgeschwindigkeit die Distanz ermitteln. Der Sensor liefert für Distanzen im Bereich von ca. 10 cm und 200 cm Werte zwischen 0 und 255, wobei 255 dann abgegeben wird, wenn kein Objekt im Messbereich ist.

 

 

MUSTERBEISPIEL

 

Dein Programm soll dafür sorgen, dass der Roboter möglichst gut in einer bestimmten Distanz zu deiner Hand bleibt. Ist er zu nahe, soll er rückwärts fahren, sonst soll er vorwärts fahren.

Wiederum wird der Sensor durch ein Objekt UltrasonicSensor in das Programm eingebunden. Mit addPart() schliesst du ihn sozusagen am Brick an. (Verwende SensorPort S3.) Dein Programm fragt in einer Wiederholschleife jede halbe Sekunde mit getDistance() die aktuelle Distanz (in cm) ab. Je nach dem erhaltenen Wert, sagst du dem Roboter, dass er vorwärts oder rückwärts fahren muss.

 

Programm:

from ev3robot import *

robot = LegoRobot()
gear = Gear()
robot.addPart(gear)
us = UltrasonicSensor(SensorPort.S3)
robot.addPart(us)
gear.setSpeed(15)
gear.forward()

while not robot.isEscapeHit():
    d = us.getDistance()
    if d > 20:
        gear.forward()    
    else:
        gear.backward()
robot.exit()
► In Zwischenablage kopieren

 

 

MERKE DIR...

 

dass der Ultraschallsensor ungefähr alle 100 ms die Distanz zu einem reflektierenden Objekt in in Vorwärtsrichtung liefern kann.

 

 

ZUM SELBST LÖSEN

 

 


1.


Der Roboter soll in senkrechter Richtung zu einer Wand fahren und bei rund 10 cm zur Wand den Rückwärtsgang einschalten und 3 s. rückwärts fahren. Nachher soll er wieder vorwärts fahren.

 

 
 
 

2a.

Ein Roboter mit einem Ultraschallsensor soll einen höherer Gegenstand (Säule aus Pappkarton, Kerze, leichte Büchse...) finden, gegen ihn fahren und diesen umstossen. Der Roboter steht beim Start in einer beliebigen Richtung, d.h. er muss zuerst drehen, bis er den Gegenstand registriert.

 

 
2b.

Dasselbe, aber der Roboter soll wenige cm vor der Säule anhalten

2c.

Dasselbe, aber der Roboter soll mehrere Säulen umstossen.
Organisiere einen Wettbewerb. Wem gelingt es in kürzester Zeit?