Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
lehrkraefte:blc:informatik:glf20:robotik:mgr:start [2021/03/25 22:57] michael.greminger [Aufgaben] |
lehrkraefte:blc:informatik:glf20:robotik:mgr:start [2021/03/26 11:59] michael.greminger |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Robotik ====== | ====== Robotik ====== | ||
- | {{lehrkraefte: | + | {{lehrkraefte: |
===== Begriffe, Definitionen ===== | ===== Begriffe, Definitionen ===== | ||
Line 33: | Line 33: | ||
<hidden Lösungsvorschlag> | <hidden Lösungsvorschlag> | ||
<code python> | <code python> | ||
- | kommt bald... | + | from simrobot import * |
+ | RobotContext.enableTrace(True) | ||
+ | robot = LegoRobot() | ||
+ | gear = Gear(); | ||
+ | robot.addPart(gear); | ||
+ | |||
+ | gear.forward() | ||
+ | for i in range(3): | ||
+ | gear.rightArc(0.15) | ||
+ | Tools.delay(4000) | ||
+ | gear.right(1100) | ||
+ | robot.exit() | ||
</ | </ | ||
</ | </ | ||
Line 42: | Line 53: | ||
<hidden Lösungsvorschlag> | <hidden Lösungsvorschlag> | ||
<code python> | <code python> | ||
- | kommt bald... | + | from simrobot import * |
+ | RobotContext.enableTrace(True) | ||
+ | robot = LegoRobot() | ||
+ | gear = Gear(); | ||
+ | robot.addPart(gear); | ||
+ | |||
+ | radius = 0.05 | ||
+ | gear.forward() | ||
+ | while not robot.isEscapeHit(): | ||
+ | gear.rightArc(radius) | ||
+ | Tools.delay(2000) | ||
+ | radius = radius * 1.1 | ||
+ | robot.exit() | ||
</ | </ | ||
</ | </ | ||
Line 67: | Line 90: | ||
RobotContext.setStartPosition(350 + randrange(50), | RobotContext.setStartPosition(350 + randrange(50), | ||
RobotContext.setStartDirection(135+randrange(90)) | RobotContext.setStartDirection(135+randrange(90)) | ||
+ | </ | ||
+ | |||
+ | <hidden Lösungsvorschlag> | ||
+ | <code python> | ||
+ | kommt bald... | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === Aufgabe 4 === | ||
+ | Wir wollen nun versuchen, dass der Roboter entlang der Wellenlinie fährt. Auch hier soll das Programm wieder mit der <ESC> Taste beendet werden können. Fügen Sie bitte dazu als erste Zeilen in Ihrer Lösung folgende Zeilen ein | ||
+ | <code python > | ||
+ | from simrobot import * | ||
+ | RobotContext.useBackground(" | ||
+ | RobotContext.setStartPosition(250, | ||
+ | </ | ||
+ | Hinweis: Wenn der Roboter auf einer dunklen Fläche liegt, dann kann er einen Kreis nach links fahren, wenn er auf einer hellen Fläche ist, dann... | ||
+ | Wenn Ihr Roboter der Linie folgt von unten nach oben, dann versuche mit den verschiedenen Werten zu spielen. | ||
+ | Mit welchen Werten ist der Roboter am schnellsten am Ziel? | ||
+ | Mit welchen Werten folgt der Roboter möglichst exakt der Linie? | ||
+ | <hidden Lösungsvorschlag> | ||
+ | <code python> | ||
+ | kommt bald... | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ===== Ultraschallsensor ===== | ||
+ | Mit dem Ultraschallsensor ist es möglich, die Entfernung von Hindernissen zu messen. Der Sensor muss auch zum Roboter hinzugefügt werden und zwar mit folgenden Zeilen | ||
+ | <code python> | ||
+ | us = UltrasonicSensor(SensorPort.S1) | ||
+ | robot.addPart(us) | ||
+ | </ | ||
+ | Ausgelesen wird der Sensor mit | ||
+ | <code python> | ||
+ | distance = us.getDistance() | ||
+ | </ | ||
+ | ==== Aufgaben ==== | ||
+ | === Aufgabe 5 === | ||
+ | Wir wollen die Aufgabe 4 so erweitern, dass wir ein Hindernis einbauen. Der Roboter soll wieder so lange der Linie folgen, bis der Benutzer <ESC> drückt oder die Distanz zum Hindernis kleiner als 30 ist. Wir simulieren das Hindernis mit folgenden Zeilen | ||
+ | <code python > | ||
+ | mesh_hbar = [[200, 10], [-200, 10], [-200, -10], [200, -10]] | ||
+ | RobotContext.useTarget(" | ||
+ | </ | ||
+ | Somit beginnt unser Lösung mit folgenden Zeilen | ||
+ | <code python > | ||
+ | from simrobot import * | ||
+ | RobotContext.useBackground(" | ||
+ | RobotContext.setStartPosition(250, | ||
+ | mesh_hbar = [[200, 10], [-200, 10], [-200, -10], [200, -10]] | ||
+ | RobotContext.useTarget(" | ||
</ | </ | ||