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

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:blc:informatik:glf20:robotik:pruegeli-challenge [2021/05/26 20:36]
Ivo Blöchliger [Heber-Motor]
lehrkraefte:blc:informatik:glf20:robotik:pruegeli-challenge [2021/05/31 08:26] (current)
Ivo Blöchliger [Aufgaben]
Line 8: Line 8:
 <code python> <code python>
 # Ultraschall Distanzsensor hinzufuegen # Ultraschall Distanzsensor hinzufuegen
-us = UltrasonicSensor(SensorPort.S4)+us = UltrasonicSensor(SensorPort.S2 # Kontrollieren, ob der US-Sensor auch an Port 2 hängt
 robot.addPart(us) robot.addPart(us)
 +
 </code> </code>
  
Line 48: Line 49:
 ===== Aufgaben ===== ===== Aufgaben =====
 Sie programmieren und testen Programmteile, um damit am Schluss die Prügeli-Challenge zu lösen. Sie programmieren und testen Programmteile, um damit am Schluss die Prügeli-Challenge zu lösen.
 +
 +Das Programm soll wie folgt organisiert werden:
 +<code python>
 +# imports
 +
 +# Initialiserung des Roboters, Motoren, Sensoren
 +
 +# Definition der Funktionen wie z.B.
 +
 +def heberPosition(position):
 +  # ...
 +  
 +def folgenBisWand(distanz):
 +  # ...
 +  
 +def wenden():
 +  # ...
 +  
 +# Ganz unten, Start vom eigentlichen Programm:
 +
 +folgenBisWand(20)  # Bis 20cm vor der Wand der Linie folgen
 +heberPosition(-100)  # Heber in geeignete Position
 +folgenBisWand(10)  # Bis 10cm vor der Wand der Linie folgen
 +heberPosition(-60)  # Prügeli aufheben
 +rueckwartsFahren()
 +wenden()
 +heberPosition(-160)  # Prügeli abladen
 +</code>
  
 ==== Challenge ==== ==== Challenge ====
Line 60: Line 89:
  
 ==== Bis auf eine Distanz geradeaus fahren ==== ==== Bis auf eine Distanz geradeaus fahren ====
-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 
 <WRAP todo> <WRAP todo>
 +Messen Sie die geeignete 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
 <code python> <code python>
 def fahrenBisWand(): def fahrenBisWand():
Line 77: Line 106:
 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. 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.
 </WRAP> </WRAP>
 +
 +
 +
 +==== Dem Rand folgen, bis zu einer Distanz ====
 +<WRAP todo>
 +Schreiben Sie eine Funktion, damit der Roboter dem Rand folgt, bis zu einen bestimmten Distanz.
 +<code python>
 +def folgenBisWand():
 +    while True:
 +        # Folgen
 +        # Distanz überprüfen
 +</code>
 +Zusätzlich können Sie die Geschwindigkeit in Abhängigkeit der Distanz anpassen:
 +  * zuerst maximale Geschwindigkeit, damit sinnvolles Folgen noch möglich ist
 +  * Dann die Geschwindigkeit bis etwa 5 reduzieren, je näher man der gewünschten Distanz kommt (verwenden Sie dazu unsere Funktion linear für die Umrechnung)
 +
 +<code python>
 +def linear(a,b,c,d,x):
 +    return (x-a)/(b-a)*(d-c)+c  
 +</code>
 +</WRAP>
 +
 +
 +===== Challenges =====
 +Jetzt sollten Sie die Challenge 1 lösen können.
 +
 +==== Challenge 2 ====
 +{{lehrkraefte:blc:informatik:glf19:challenge2.png}}
 +
 +Der Roboter startet beim grünen Pfeil, folgt der Linie bis vor die Mauer, fährt dann schräg daran vorbei bis zum Rand, dann wie Challange 1
 +
 +==== Challenge 3 ====
 +Wie Challenge 2, das Prügeli soll aber im rechten unteren Ecken (beim Startpunkt) abgelegt werden.
 +
  
  
  • lehrkraefte/blc/informatik/glf20/robotik/pruegeli-challenge.1622054213.txt.gz
  • Last modified: 2021/05/26 20:36
  • by Ivo Blöchliger