|  | Die  Distanzmessung mit einem Ultraschallsensor lässt sich auch im Simulationsmodus ausführen. Dazu musst du  die die Koordinaten des Objekts (target)  im Grafik-Fenster angegeben. 
          
            | Beispiel 4: Ultraschallsimulation (Objekt erkennen)Der Roboter  soll  zum Hindernis fahren. Wenn die Distanz kleiner als 30 cm ist,  fährt er eine kurze Strecke  rückwärts und danach  wieder  vorwärts.
 Für die Simulation verwendest als Hindernis einen horizontalen Balken, den du mit folgendem Context erzeugst:                  
             |  |  |  
              target = [[200, 10], [-200, 10], [-200, -10], [200, -10]]
RobotContext.useTarget("sprites/bar0.gif", target, 250, 100)
 In der ersten Zeile sind die Koordinaten der Eckpunkte des Objekts (ein Rechteck mit dem Mittelpunkt bei (0,0)). Im Grafikfenster wird das Objekt an der Position (250, 100) mit dem Bild bar0.gif   dargestellt. Die Bilder sind in der TigerJython-Distribution enthalten (Bilderbibiothek). ► In Zwischenablage kopierenfrom callibot import *
target = [[200, 10], [-200, 10], [-200, -10], [200, -10]]
RobotContext.useTarget("sprites/bar0.gif", target, 250, 100)
forward()
repeat:
    d = getDistance()
    if d < 30:
        backward()
        delay(2000)
    else: 
        forward()    
    delay(100)
Der Ultraschallsensor ist beim simulierten EV3 oben auf dem Brick und nicht vorne platziert. Deswegen fährt der Roboter etwas näher zum Balken hin.
 
 
  
   | Beispiel 5: Ultraschallsimulation (Objekt suchen)Ein Roboter mit Ultraschallsensor dreht sich  langsam am Ort. Wenn er einen Gegenstand detektiert, fährt er hinzu  und hält kurz vor ihm an.
 Du schreibst eine Funktion searchTarget(), die den Suchvorgang definiert: 
Der Roboter dreht in kleinen Schritten nach rechts und misst dabei die Distanz dist. Wenn er ein  Objekt detektiert (dist  != -1), dreht er ein wenig weiter und unterbricht den Suchvorgang mit break.
 |  |  |  Danach fährt er mit Hilfe einer zweiten repeat-Schleife so lange vorwärts, bis die Distanz zum Objekt kleiner als 30 ist. Mit dem Befehl setBeamAreaColor() kannst du den Suchvorgang  besser veranschaulichen. ► In Zwischenablage kopierenfrom callibot import *
target = [[50,0], [25,43], [-25,43], [-50,0],[-25,-43], [25,-43]] 
RobotContext.useTarget("sprites/redtarget.gif", target, 400, 400)
def searchTarget():
   repeat:  
      right()
      delay(50)    
      dist = getDistance()
      if dist != -1: 
         right()
         delay(600)
         break
 
setBeamAreaColor(Color.green) 
setSpeed(10)
searchTarget()
forward()
repeat:
   dist = getDistance()
   print(dist)
   if dist < 20:
      stop()
      break
Das Objekt ist mit den Koordinaten eines Sechsecks mit dem Mittelpunkt (0, 0) beschrieben und  mit dem Bild redtarget.gif an der Position (400, 400) dargestellt wird. |