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
lehrkraefte:blc:informatik:glf20:robotik:mgr:start [2021/03/25 22:37]
michael.greminger
lehrkraefte:blc:informatik:glf20:robotik:mgr:start [2021/03/26 12:09] (current)
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 48: Line 71:
  
 ===== Lichtsensor ===== ===== Lichtsensor =====
 +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>
 +ls = LightSensor(SensorPort.S3)
 +robot.addPart(ls)
 +ls.activate(True)
 +</code>  
 +Ausgelesen wird der Sensor mit 
 +<code python>
 +v = ls.getValue()
 +</code>  
 +==== Aufgaben ====
 +=== 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 erste Zeilen in Ihrer Lösung folgende Zeilen ein
 +<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>  
  
 +<hidden Lösungsvorschlag>
 +<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))
 +  
 +robot = LegoRobot()
 +gear = Gear()
 +robot.addPart(gear)
 +ls = LightSensor(SensorPort.S3)
 +robot.addPart(ls)
 +ls.activate(True)
 +gear.forward()
  
 +while not robot.isEscapeHit():
 +   v = ls.getValue()
 +   if v > 500:
 +      break
 +   Tools.delay(100)     
 +robot.exit()
 +</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 ==== ==== Aufgaben ====
-=== Aufgabe ===+=== Aufgabe === 
 +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>   
 + 
 +<hidden Lösungsvorschlag> 
 +<code python> 
 +kommt bald... 
 +</code>   
 +</hidden>
  • lehrkraefte/blc/informatik/glf20/robotik/mgr/start.1616708246.txt.gz
  • Last modified: 2021/03/25 22:37
  • by michael.greminger