lehrkraefte:blc:informatik:glf20:robotik:mgr: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:mgr:start [2021/03/25 22:56]
michael.greminger
lehrkraefte:blc:informatik:glf20:robotik:mgr:start [2021/03/26 11:59]
michael.greminger
Line 1: Line 1:
 ====== Robotik ====== ====== Robotik ======
  
-{{lehrkraefte:blc:informatik:glf20:robotik:mgr:introduction.pdf}}+{{lehrkraefte:blc:informatik:glf20:robotik:mgr:presentation.pdf}}
  
 ===== 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() 
 </code>   </code>  
 </hidden> </hidden>
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()
 </code>   </code>  
 </hidden> </hidden>
Line 60: Line 83:
 ==== Aufgaben ==== ==== Aufgaben ====
 === Aufgabe 3 === === Aufgabe 3 ===
-Wir wollen den Roboter fahren lassen, bis er auf eine helle Stelle kommt oder die <ESC> Taste gedrückt wird. Fügen Sie bitte dazu als erst Zeilen in Ihrer Lösung folgende Zeilen ein +Wir wollen den Roboter fahren lassen, bis er auf eine helle Stelle kommt oder die <ESC> Taste gedrückt wird. Fügen Sie bitte dazu als erste Zeilen in Ihrer Lösung folgende Zeilen ein 
-</code>  +<code python >  
 from simrobot import * from simrobot import *
 from random import randrange from random import randrange
Line 67: Line 90:
 RobotContext.setStartPosition(350 + randrange(50), 250) RobotContext.setStartPosition(350 + randrange(50), 250)
 RobotContext.setStartDirection(135+randrange(90)) RobotContext.setStartDirection(135+randrange(90))
 +</code>  
 +
 +<hidden Lösungsvorschlag>
 +<code python>
 +kommt bald...
 +</code>  
 +</hidden>
 +
 +=== 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("sprites/border.gif")
 +RobotContext.setStartPosition(250, 490)
 +</code>  
 +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...
 +</code>  
 +</hidden>
 +
 +===== 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)
 +</code>  
 +Ausgelesen wird der Sensor mit 
 +<code python>
 +distance = us.getDistance()
 +</code>  
 +==== 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("sprites/bar0.gif", mesh_hbar, 250, 100)
 +</code>  
 +Somit beginnt unser Lösung mit folgenden Zeilen
 +<code python >  
 +from simrobot import *
 +RobotContext.useBackground("sprites/border.gif")
 +RobotContext.setStartPosition(250, 490)
 +mesh_hbar = [[200, 10], [-200, 10], [-200, -10], [200, -10]]
 +RobotContext.useTarget("sprites/bar0.gif", mesh_hbar, 250, 100)
 </code>   </code>  
  
  • lehrkraefte/blc/informatik/glf20/robotik/mgr/start.txt
  • Last modified: 2021/03/26 12:09
  • by michael.greminger