Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lehrkraefte:blc:informatik:glf20:robotik:start [2021/03/25 15:20] Ivo Blöchliger |
lehrkraefte:blc:informatik:glf20:robotik:start [2021/03/26 21:23] Ivo Blöchliger |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Robotik ====== | ====== Robotik ====== | ||
+ | |||
+ | * {{lehrkraefte: | ||
===== Begriffe, Definitionen ===== | ===== Begriffe, Definitionen ===== | ||
Line 9: | Line 11: | ||
===== Robotik im Simulationsmodus ===== | ===== Robotik im Simulationsmodus ===== | ||
- | ==== Wichtigste Funktionen ==== | + | ==== Wichtigste |
- | * Nicht-blockierend heisst, das Programm läuft sofort weiter. Die Einstellung der Motoren | + | <WRAP info> |
- | * Blockierend heisst, das Programm wartet an dieser Stelle die gegebene Anzahl Millisekunden und kann während dieser Zeit nicht auf Sensoreingaben reagieren. | + | |
- | | nicht-blockierend | + | * **Nicht-blockierend** heisst, das Programm läuft sofort weiter. Die Motoren |
+ | | ||
+ | |||
+ | ^ nicht-blockierend | ||
| gear.backward() | gear.backward(ms) | fährt rückwärts | | | gear.backward() | gear.backward(ms) | fährt rückwärts | | ||
| gear.forward() | | gear.forward() | ||
| 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 |
- | | 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 | | + | | gear.stop() |
Vollständige Dokumentation der Funktionen: http:// | Vollständige Dokumentation der Funktionen: http:// | ||
+ | </ | ||
+ | ==== Aufwärm-Aufgaben ==== | ||
+ | <WRAP todo> | ||
+ | Zeichnen Sie mit dem Roboter folgende Figur: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Benutzen Sie dazu geeignete '' | ||
+ | <code python> | ||
+ | for i in range(3): | ||
+ | # Tu was | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <WRAP todo> | ||
+ | Zeichnen Sie in etwa folgende Spirale: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Definieren Sie eine Variable für den Kurvenradius und erhöhen Sie diese Variable in einer Wiederholungs-Schleife. | ||
+ | </ | ||
+ | |||
+ | ==== 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) | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <WRAP todo> | ||
+ | Die Initialisierung (aller erste Zeilen) soll nun wie folgt aussehen: | ||
+ | <code python> | ||
+ | from simrobot import * | ||
+ | from random import randrange | ||
+ | |||
+ | RobotContext.useBackground(" | ||
+ | RobotContext.setStartPosition(350 + randrange(50), | ||
+ | RobotContext.setStartDirection(135+randrange(90)) | ||
+ | </ | ||
+ | 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. | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Challenges ===== | ||
+ | * {{lehrkraefte: | ||
+ | * Challenge 1: Roboter bleibt auf dem roten Punkt unten rechts stehen | ||
+ | * Challenge 2: Roboter bleibt auf dem roten Punkt oben stehen. | ||
+ |