lehrkraefte:blc:informatik:glf20:robotik:pruegeli-challenge

This is an old revision of the document!


Prügeli-Challenge

Der Roboter soll einen kleinen Parcours absolvieren, ein Prügeli aufladen und dieses dann an einem bestimmte Ort abladen.

Es gibt noch zwei neue Elemente am Roboter: Der Ultraschall-Distanzsensor und der dritte Motor, um den Heber zu bewegen.

Der Ultraschallsensor wird wie folgt initialisiert:

# Ultraschall Distanzsensor hinzufuegen
us = UltrasonicSensor(SensorPort.S4)
robot.addPart(us)

Die Distanz kann dann wie folgt gemessen werden:

dist = us.getDistance() # Aktuelle Distanz

Kann keine Distanz ermittelt werden, wird 0 (Null) als Wert geliefert. D.h. die Werte sind nur dann sinnvoll wenn dist>0.

Initialisierung:

# Hebearm hinzufuegen
heber = Motor(MotorPort.C)
robot.addPart(heber)
heber.setSpeed(10)

Stellen Sie sicher, dass der Heber ganz oben ist, bevor Sie das Programm starten.

Verwendung:

# Heber runter
def runter():
    heber.continueTo(-140)  # Diesen Wert eventuell anpassen
    Tools.delay(500)
 
# Heber wieder hoch
def rauf():
    heber.continueTo(0)
    Tools.delay(500)
 
# Funktionen aufrufen:
runter()
rauf()

Sie programmieren und testen Programmteile, um damit am Schluss die Prügeli-Challenge zu lösen.

Der Roboter soll ein Schoggi-Prügeli holen und bringen, wie in diesem Video.

Wichtig: Speichern Sie Ihr Programm (Ctrl-S) vor jeder Ausführung!

Der Roboter folgt der Linie, bis er nah genug an der Wand ist, lädt das Prügeli auf, fährt rückwärts, dreht sich, lädt das Prügeli ab und fährt den Heber wieder hoch.

Positionieren Sie die rechte Auflage fast am Rand des Papiers und das Prügeli so weit vorne wie möglich.

Messen Sie die geigenete Distanz von Sensor zur Wand, damit das Prügeli gut aufgeladen werden kann. Tragen Sie dann diese Distanz im Code unten ein und testen Sie

def fahrenBisWand():
    gear.setSpeed(20)   # Geeignete Geschwindigkeit setzen
    gear.forward()      # Fahren
    while True:
        dist = us.getDistance()
        if dist>0 and dist<30:   #Sinnvoller Wert kleiner als 30 cm ?
            break
    gear.stop()
 
# Funktionen aufrufen
fahrenBisWand()

Erweitern Sie das Programm so, dass der Heber erst runter geht, dann der Roboter fährt und am Schluss der Heber das Prügeli hoch hebt.

  • lehrkraefte/blc/informatik/glf20/robotik/pruegeli-challenge.1622053891.txt.gz
  • Last modified: 2021/05/26 20:31
  • by Ivo Blöchliger