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 23:19]
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 71: Line 94:
 <hidden Lösungsvorschlag> <hidden Lösungsvorschlag>
 <code python> <code python>
-kommt bald...+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>   </code>  
 </hidden> </hidden>
Line 92: Line 134:
 </hidden> </hidden>
  
-===== Lichtsensor ===== +===== Ultraschallsensor ===== 
-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+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> <code python>
-ls LightSensor(SensorPort.S3+us UltrasonicSensor(SensorPort.S1
-robot.addPart(ls) +robot.addPart(us)
-ls.activate(True)+
 </code>   </code>  
 Ausgelesen wird der Sensor mit  Ausgelesen wird der Sensor mit 
 <code python> <code python>
-ls.getValue()+distance us.getDistance()
 </code>   </code>  
 ==== Aufgaben ==== ==== Aufgaben ====
-=== Aufgabe === +=== Aufgabe === 
-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+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 >   <code python >  
-from simrobot import * +mesh_hbar = [[200, 10], [-200, 10], [-200, -10], [200, -10]] 
-from random import randrange +RobotContext.useTarget("sprites/bar0.gif", mesh_hbar, 250, 100)
-RobotContext.useBackground("sprites/border.gif"+
-RobotContext.setStartPosition(350 + randrange(50), 250+
-RobotContext.setStartDirection(135+randrange(90))+
 </code>   </code>  
- +Somit beginnt unser Lösung mit folgenden Zeilen
-<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 >   <code python >  
 from simrobot import * from simrobot import *
 RobotContext.useBackground("sprites/border.gif") RobotContext.useBackground("sprites/border.gif")
 RobotContext.setStartPosition(250, 490) 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>  
-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> <hidden Lösungsvorschlag>
 <code python> <code python>
  • lehrkraefte/blc/informatik/glf20/robotik/mgr/start.1616710772.txt.gz
  • Last modified: 2021/03/25 23:19
  • by michael.greminger