lehrkraefte:blc:informatik:glf20:robotik:start

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
Last revision Both sides next revision
lehrkraefte:blc:informatik:glf20:robotik:start [2021/03/26 11:20]
Ivo Blöchliger
lehrkraefte:blc:informatik:glf20:robotik:start [2021/03/26 21:20]
Ivo Blöchliger
Line 8: Line 8:
  
 ===== Robotik im Simulationsmodus ===== ===== Robotik im Simulationsmodus =====
-  * {{lehrkraefte:blc:informatik:glf20:robotik:robochallenge.zip}}+
 ==== Wichtigste Gear-Funktionen ==== ==== Wichtigste Gear-Funktionen ====
 +<WRAP info>
   * Voraussetzung ist, dass die Variable ''gear'' auch ein ''Gear''-Objekt ist.   * Voraussetzung ist, dass die Variable ''gear'' auch ein ''Gear''-Objekt ist.
   * **Nicht-blockierend** heisst, das Programm läuft sofort weiter. Die Motoren drehen einfach weiter in dieser Einstellung, bis eine Änderung vorgenommen wird.   * **Nicht-blockierend** heisst, das Programm läuft sofort weiter. Die Motoren drehen einfach weiter in dieser Einstellung, bis eine Änderung vorgenommen wird.
Line 19: Line 20:
 | gear.left() | gear.left(ms) | dreht links  | | gear.left() | gear.left(ms) | dreht links  |
 | gear.right() | gear.right(ms) | dreht rechts  | | gear.right() | gear.right(ms) | dreht rechts  |
-| gear.leftArc(radius) | gear.leftArc(radius , ms) | fährt auf einem Linksbogen | +| gear.leftArc(radius) | gear.leftArc(radius , ms) | fährt auf einem Linksbogen (negative Radien bewirken eine Rückwärtsbewegung) 
-| gear.rightArc(radius) | gear.rightArc(radius , ms) | Rechtsbogen |+| gear.rightArc(radius) | gear.rightArc(radius , ms) | Rechtsbogen |
 | gear.setSpeed(speed) | | setzt die Geschwindigkeit (Werte zwischen 0 und ungefähr 70 sind überhaupt sinnvoll.) | | gear.setSpeed(speed) | | setzt die Geschwindigkeit (Werte zwischen 0 und ungefähr 70 sind überhaupt sinnvoll.) |
 | gear.stop() | | stoppt das Fahrwerk (nötig nach nicht-blockierenden Befehlen | | gear.stop() | | stoppt das Fahrwerk (nötig nach nicht-blockierenden Befehlen |
  
 Vollständige Dokumentation der Funktionen: http://tigerjython.ch/index.php?inhalt_links=navigation.inc.php&inhalt_mitte=robotik/robotikdoc.html Vollständige Dokumentation der Funktionen: http://tigerjython.ch/index.php?inhalt_links=navigation.inc.php&inhalt_mitte=robotik/robotikdoc.html
 +</WRAP>
 +==== Aufwärm-Aufgaben ====
 +<WRAP todo>
 +Zeichnen Sie mit dem Roboter folgende Figur:
 +
 +{{:lehrkraefte:blc:informatik:glf20:robotik:mgr:pasted:20210325-220909.png}}
 +
 +Benutzen Sie dazu geeignete ''Gear''-Funktionen von oben und eine for-Schleife für die 3-fache Wiederholung, z.B.
 +<code python>
 +for i in range(3):
 +  # Tu was
 +</code>
 +</WRAP>
 +
 +<WRAP todo>
 +Zeichnen Sie in etwa folgende Spirale:
 +
 +{{:lehrkraefte:blc:informatik:glf20:robotik:mgr:pasted:20210325-223207.png}}
 +
 +Definieren Sie eine Variable für den Kurvenradius und erhöhen Sie diese Variable in einer Wiederholungs-Schleife.
 +</WRAP>
 +
 +==== Lichtsensor ====
 +<WRAP info>
 +Es ist auch möglich, im Simulator einen Lichtsensor zu verwenden. Der Lichtsensor misst die Helligkeit, die Werte liegen zwischen 0 und 1023 (je grösser der Wert, umso heller). Der Lichtsensor muss auch zum Roboter hinzugefügt werden und zwar mit folgenden Zeilen
 +<code python>
 +# Initialisierung
 +ls = LightSensor(SensorPort.S3)
 +robot.addPart(ls)
 +ls.activate(True)
 +
 +
 +# Ausgelesen wird der Sensor im Programm mit 
 +v = ls.getValue()
 +# v enthält nun einen Wert zwischen 0 (schwarz) und 1023 (weiss)
 +</code>  
 +</WRAP>
 +
 +<WRAP todo>
 +Die Initialisierung (aller erste Zeilen) soll nun wie folgt aussehen:
 +<code python>
 +from simrobot import *
 +from random import randrange
 +
 +RobotContext.useBackground("sprites/border.gif")
 +RobotContext.setStartPosition(350 + randrange(50), 250)
 +RobotContext.setStartDirection(135+randrange(90))
 +</code>
 +Dabei wird ein Hintergrund geladen und die Startposition zufällig gewählt.
 +
 +Lassen Sie den Roboter so lange vorwärts fahren, bis der Roboter auf weissem Grund steht. Dann soll der Roboter anhalten.
 +</WRAP>
 +
 +
 +===== Challenges =====
 +  * {{lehrkraefte:blc:informatik:glf20:robotik:robochallenge.zip}}
 +  * Challenge 1: Roboter bleibt auf dem roten Punkt unten rechts stehen
 +  * Challenge 2: Roboter bleibt auf dem roten Punkt oben stehen.
 +
  • lehrkraefte/blc/informatik/glf20/robotik/start.txt
  • Last modified: 2021/03/26 21:23
  • by Ivo Blöchliger