summaryrefslogtreecommitdiff
path: root/robot/problems
diff options
context:
space:
mode:
authorJure Žabkar <jure.zabkar@fri.uni-lj.si>2015-12-15 10:34:40 +0100
committerJure Žabkar <jure.zabkar@fri.uni-lj.si>2015-12-15 13:17:48 +0100
commitb4e46b75f5e2a890b41d2e20a89767590e54ccb4 (patch)
treed9ee2fd8c1543bb4f7fd9db0bace83efc01c999e /robot/problems
parentbe94b55b835283de53c686343164641e15abe806 (diff)
Dodani plani za robotske probleme.
Diffstat (limited to 'robot/problems')
-rw-r--r--robot/problems/introduction/circle20/sl.py16
-rw-r--r--robot/problems/introduction/countlines/common.py1
-rw-r--r--robot/problems/introduction/countlines/sl.py13
-rw-r--r--robot/problems/introduction/followline/common.py8
-rw-r--r--robot/problems/introduction/followline/sl.py15
-rw-r--r--robot/problems/introduction/forward/sl.py10
-rw-r--r--robot/problems/introduction/forward1m/sl.py14
-rw-r--r--robot/problems/introduction/gyro90/common.py3
-rw-r--r--robot/problems/introduction/gyro90/sl.py11
-rw-r--r--robot/problems/introduction/gyrosquare/common.py3
-rw-r--r--robot/problems/introduction/gyrosquare/sl.py11
-rw-r--r--robot/problems/introduction/printcolors/common.py2
-rw-r--r--robot/problems/introduction/printcolors/sl.py13
-rw-r--r--robot/problems/introduction/rotateback/common.py2
-rw-r--r--robot/problems/introduction/rotateback/sl.py12
-rw-r--r--robot/problems/introduction/spotturn90/common.py5
-rw-r--r--robot/problems/introduction/spotturn90/sl.py11
-rw-r--r--robot/problems/introduction/square20/common.py3
-rw-r--r--robot/problems/introduction/square20/sl.py11
-rw-r--r--robot/problems/introduction/wall1m/common.py2
-rw-r--r--robot/problems/introduction/wall1m/sl.py14
21 files changed, 147 insertions, 33 deletions
diff --git a/robot/problems/introduction/circle20/sl.py b/robot/problems/introduction/circle20/sl.py
index abe70eb..735458a 100644
--- a/robot/problems/introduction/circle20/sl.py
+++ b/robot/problems/introduction/circle20/sl.py
@@ -13,7 +13,7 @@ hint = {
'''<p><code>robot.connect_motor( 'left' )</code>.</p>'''],
'connectMotorRight':['''<p>Robotu priključi desni motor</p>''',
'''<p><code>robot.connect_motor( 'right' )</code>.</p>'''],
- 'moveSteering':['''<p>Sinhroniziraj motorja in ju zaženi za 3 sekunde.</p>''',
+ 'moveSteering':['''<p>Sinhroniziraj motorja.</p>''',
'''<p>Za sinhronizirano vožnjo je najbolj primerna metoda <code>robot.move_steering( ... )</code>.</p>'''],
'onForSeconds':['''<p>Prvi argument metode <code>robot.move_steering</code> naj pove, da bo delovanje motorjev časovno omejeno.</p>''',
'''<p><code>robot.move_steering('on_for_seconds', ... )</code>.</p>'''],
@@ -25,10 +25,12 @@ hint = {
'''<p><code>robot.move_steering( 'on_for_seconds', direction=0, seconds=3 )</code>.</p>'''],
}
-plan = [ '''\
-<p>1) Naredi robota</p>
-''',
-'''
-
-'''
+plan = ['''\
+<p>Program izvedemo v naslednjih korakih:</p>
+<ol>
+ <li>Naredimo objekt mindstorms_widgets(), s katerim predstavimo robota.</li>
+ <li>Nanj povežemo oba pogonska motorja.</li>
+ <li>Izračunamo ostrino zavoja, pri kateri bo robot vozil po krogu s polmerom 20 cm.</li>
+ <li>Sinhronizirano poženemo oba motorja za premik v izračunani smeri in časovno omejimo na en obhod.</li>
+</ol>'''
]
diff --git a/robot/problems/introduction/countlines/common.py b/robot/problems/introduction/countlines/common.py
index 6a50988..925fc06 100644
--- a/robot/problems/introduction/countlines/common.py
+++ b/robot/problems/introduction/countlines/common.py
@@ -31,6 +31,7 @@ while time.time()-start < 2.1:
stevec += 1
color = c
robot.move_steering( 'off' )
+
print( "Stevilo crt:", stevec )
'''
diff --git a/robot/problems/introduction/countlines/sl.py b/robot/problems/introduction/countlines/sl.py
index 4e1c3d4..1f8ea18 100644
--- a/robot/problems/introduction/countlines/sl.py
+++ b/robot/problems/introduction/countlines/sl.py
@@ -24,3 +24,16 @@ hint = {
'''<p>Zanka je lahko časovno omejena, npr. z uporabo metode <code>time.time()</code>.</p>''',
'''<p><code>while time.time()-start < 1.1:</code>.</p>'''],
}
+
+plan = ['''\
+<p>Program izvedemo v naslednjih korakih:</p>
+<ol>
+ <li>Naredimo objekt mindstorms_widgets(), s katerim predstavimo robota.</li>
+ <li>Nanj povežemo oba pogonska motorja.</li>
+ <li>Povežemo barvni senzor.</li>
+ <li>Vklopimo oba motorja tako, da robot vozi naravnost.</li>
+ <li>V zanki naj robot bere barve in jih šteje.</li>
+ <li>Zanka naj se konča po vnaprej določenem času, npr. 3 sekunde.</li>
+ <li>Ustavimo oba motorja.</li>
+</ol>'''
+]
diff --git a/robot/problems/introduction/followline/common.py b/robot/problems/introduction/followline/common.py
index 3e84cd4..46df5c6 100644
--- a/robot/problems/introduction/followline/common.py
+++ b/robot/problems/introduction/followline/common.py
@@ -11,8 +11,6 @@ visible = True
solution = '''\
import time
-from ev3dev import *
-from mindstorms_widgets import mindstorms_widgets
robot = mindstorms_widgets()
robot.connect_motor( 'left' )
@@ -21,10 +19,10 @@ robot.connect_sensor( 'color' )
start = time.time()
while time.time()-start < 10:
- if robot.color_sensor_measure('reflected_light_intensity') < 30:
- L, R = 0, 20
+ if robot.color_sensor_measure('reflected_light_intensity') < 50:
+ L, R = 0, 30
else:
- L, R = 20, 0
+ L, R = 30, 0
robot.move_tank( 'on', lr_power=[L,R])
robot.move_tank( 'off' )
'''
diff --git a/robot/problems/introduction/followline/sl.py b/robot/problems/introduction/followline/sl.py
index 848fe2b..cdc6e19 100644
--- a/robot/problems/introduction/followline/sl.py
+++ b/robot/problems/introduction/followline/sl.py
@@ -32,3 +32,18 @@ hint = {
'if': ['''<p>V zanki uporabi pogojni stavek...</p>''',
'''<p>Če robot vidi črto, naj zavije z nje; če vidi podlago, naj zavije proti črti.</p>''']
}
+
+plan = ['''\
+<p>Program izvedemo v naslednjih korakih:</p>
+<ol>
+ <li>Naredimo objekt mindstorms_widgets(), s katerim predstavimo robota.</li>
+ <li>Nanj povežemo oba pogonska motorja.</li>
+ <li>Povežemo barvni senzor.</li>
+ <li>V zanki preverjamo, kakšno barvo vidi robot s senzorjem.</li>
+ <li>Če vidi črno, naj zavije desno, če vidi belo, naj zavije levo. (Sledi desnemu robu črte).</li>
+ <li>Zanka naj se konča po vnaprej določenem času, 10 sekund.</li>
+ <li>Ustavimo oba motorja.</li>
+</ol>
+<p>Opomba: potrebna je predhodna kalibracija barvnega senzorja.</p>
+'''
+]
diff --git a/robot/problems/introduction/forward/sl.py b/robot/problems/introduction/forward/sl.py
index a6f7e86..cd9b096 100644
--- a/robot/problems/introduction/forward/sl.py
+++ b/robot/problems/introduction/forward/sl.py
@@ -21,3 +21,13 @@ hint = {
'seconds':['''<p>Napiši časovno omejitev v sekundah.</p>''',
'''<p><code>robot.move_steering( 'on_for_seconds', direction=0, seconds=3 )</code>.</p>'''],
}
+
+plan = ['''\
+<p>Program izvedemo v naslednjih korakih:</p>
+<ol>
+ <li>Naredimo objekt mindstorms_widgets(), s katerim predstavimo robota.</li>
+ <li>Nanj povežemo oba pogonska motorja.</li>
+ <li>Vklopimo oba motorja v sinhronem načinu tako, da robot vozi naravnost.</li>
+ <li>Določimo čas trajanja vožnje 3 sekunde.</li>
+</ol>'''
+]
diff --git a/robot/problems/introduction/forward1m/sl.py b/robot/problems/introduction/forward1m/sl.py
index 8045d58..2240d3c 100644
--- a/robot/problems/introduction/forward1m/sl.py
+++ b/robot/problems/introduction/forward1m/sl.py
@@ -12,12 +12,22 @@ hint = {
'''<p><code>robot.connect_motor( 'left' )</code>.</p>'''],
'connectMotorRight':['''<p>Robotu priključi desni motor</p>''',
'''<p><code>robot.connect_motor( 'right' )</code>.</p>'''],
- 'moveSteering':['''<p>Sinhroniziraj motorja in ju zaženi za 3 sekunde.</p>''',
+ 'moveSteering':['''<p>Sinhroniziraj motorja in ju zaženi.</p>''',
'''<p>Za sinhronizirano vožnjo je najbolj primerna metoda <code>robot.move_steering( ... )</code>.</p>'''],
'onForRotations':['''<p>Prvi argument metode <code>robot.move_steering</code> naj pove, da bo delovanje motorjev določeno s številom obratov.</p>''',
'''<p><code>robot.move_steering('on_for_rotations', ... )</code>.</p>'''],
'direction':['''<p>Navedi smer premikanja motorjev, naravnost = 0.</p>''',
'''<p><code>robot.move_steering( 'on_for_rotations', direction=0, ... )</code>.</p>'''],
- 'rotations':['''<p>Določi število obratov; za koliko obratov naj se zavrtita motorja? Izmeri dolžino 1m, izpisuj obrate <code>print(robot.motor['left'].count_per_rot, robot.motor['right'].count_per_rot)</code> in tako določi ustrezno število obratov.</p>''',
+ 'rotations':['''<p>Določi število obratov; za koliko obratov naj se zavrtita motorja? Izmeri obseg kolesa in preračunaj, koliko obratov je potrebnih za 1m.</p>''',
'''<p><code>robot.move_steering( 'on_for_rotations', direction=0, rotations=5 )</code>.</p>'''],
}
+
+plan = ['''\
+<p>Program izvedemo v naslednjih korakih:</p>
+<ol>
+ <li>Naredimo objekt mindstorms_widgets(), s katerim predstavimo robota.</li>
+ <li>Nanj povežemo oba pogonska motorja.</li>
+ <li>Vklopimo oba motorja v sinhronem načinu tako, da robot vozi naravnost.</li>
+ <li>Glede na obseg koles izračunamo, koliko obratov mora narediti kolo na dolžini 1m; ustrezno nastavimo število obratov, po katerih se robot ustavi.</li>
+</ol>'''
+]
diff --git a/robot/problems/introduction/gyro90/common.py b/robot/problems/introduction/gyro90/common.py
index 06b4f1d..78c5dca 100644
--- a/robot/problems/introduction/gyro90/common.py
+++ b/robot/problems/introduction/gyro90/common.py
@@ -10,9 +10,6 @@ number = 7
visible = True
solution = '''\
-from ev3dev import *
-from mindstorms_widgets import mindstorms_widgets
-
robot = mindstorms_widgets()
robot.connect_motor( 'left' )
robot.connect_motor( 'right' )
diff --git a/robot/problems/introduction/gyro90/sl.py b/robot/problems/introduction/gyro90/sl.py
index 0a82c6d..c0f9451 100644
--- a/robot/problems/introduction/gyro90/sl.py
+++ b/robot/problems/introduction/gyro90/sl.py
@@ -27,3 +27,14 @@ hint = {
'while':['''<p>Program naj teče dokler je kot zasuka manjši od 90 stopinj.</p>''',
'''<p><code>robot.gyro_sensor_measure() < 90:</code></p>'''],
}
+
+plan = ['''\
+<p>Program izvedemo v naslednjih korakih:</p>
+<ol>
+ <li>Naredimo objekt mindstorms_widgets(), s katerim predstavimo robota.</li>
+ <li>Nanj povežemo oba pogonska motorja.</li>
+ <li>Povežemo žiroskop in ga resetiramo.</li>
+ <li>Vklopimo oba motorja tako, da se vrtita z enako močjo, a v različnih smereh; robot se začne obračati na mestu.</li>
+ <li>V zanki merimo kot zasuka in zanko končamo, ko kot doseže 90 stopinj.</li>
+</ol>'''
+]
diff --git a/robot/problems/introduction/gyrosquare/common.py b/robot/problems/introduction/gyrosquare/common.py
index 5bf6068..872f436 100644
--- a/robot/problems/introduction/gyrosquare/common.py
+++ b/robot/problems/introduction/gyrosquare/common.py
@@ -10,9 +10,6 @@ number = 8
visible = True
solution = '''\
-from ev3dev import *
-from mindstorms_widgets import mindstorms_widgets
-
robot = mindstorms_widgets()
robot.connect_motor( 'left' )
robot.connect_motor( 'right' )
diff --git a/robot/problems/introduction/gyrosquare/sl.py b/robot/problems/introduction/gyrosquare/sl.py
index 16b2c94..7d1f832 100644
--- a/robot/problems/introduction/gyrosquare/sl.py
+++ b/robot/problems/introduction/gyrosquare/sl.py
@@ -36,3 +36,14 @@ hint = {
'seconds':['''<p>Napiši časovno omejitev v sekundah.</p>''',
'''<p><code>robot.move_steering( 'on_for_seconds', direction=0, seconds=3 )</code>.</p>'''],
}
+
+plan = ['''\
+<p>Program izvedemo v naslednjih korakih:</p>
+<ol>
+ <li>Naredimo objekt mindstorms_widgets(), s katerim predstavimo robota.</li>
+ <li>Nanj povežemo oba pogonska motorja.</li>
+ <li>Povežemo žiroskop in ga resetiramo.</li>
+ <li>Napišemo funkcijo, ki robota pelje naravnost po stranici, nato pa ga na mestu obrne za 90 stopinj.</li>
+ <li>Zgornja funkcijo pokličemo 4-krat zaporedoma.</li>
+</ol>'''
+]
diff --git a/robot/problems/introduction/printcolors/common.py b/robot/problems/introduction/printcolors/common.py
index 4377c57..9b06575 100644
--- a/robot/problems/introduction/printcolors/common.py
+++ b/robot/problems/introduction/printcolors/common.py
@@ -11,8 +11,6 @@ visible = True
solution = '''\
import time
-from ev3dev import *
-from mindstorms_widgets import mindstorms_widgets
color_table = ['none', 'black', 'blue', 'green', 'yellow', 'red', 'white', 'brown']
diff --git a/robot/problems/introduction/printcolors/sl.py b/robot/problems/introduction/printcolors/sl.py
index d233b0e..c705eaa 100644
--- a/robot/problems/introduction/printcolors/sl.py
+++ b/robot/problems/introduction/printcolors/sl.py
@@ -34,3 +34,16 @@ hint = {
'''<p><code>while time.time()-start < 1.1:</code>.</p>'''],
'print':['''<p>V zanki na zaslon izpisuj barvo, ki jo zazna robot.</p>''']
}
+
+plan = ['''\
+<p>Program izvedemo v naslednjih korakih:</p>
+<ol>
+ <li>Naredimo objekt mindstorms_widgets(), s katerim predstavimo robota.</li>
+ <li>Nanj povežemo oba pogonska motorja.</li>
+ <li>Povežemo barvni senzor.</li>
+ <li>Vklopimo oba motorja tako, da robot vozi naravnost.</li>
+ <li>V zanki naj robot bere barve in vsako izpiše na zaslon.</li>
+ <li>Zanka naj se konča po vnaprej določenem času, npr. 3 sekunde.</li>
+ <li>Ustavimo oba motorja.</li>
+</ol>'''
+]
diff --git a/robot/problems/introduction/rotateback/common.py b/robot/problems/introduction/rotateback/common.py
index 2dacaf3..7c8ce44 100644
--- a/robot/problems/introduction/rotateback/common.py
+++ b/robot/problems/introduction/rotateback/common.py
@@ -10,8 +10,6 @@ number = 11
visible = True
solution = '''\
-from mindstorms_widgets import mindstorms_widgets
-
def sgn(x):
return -1 if x<0 else (1 if x>0 else 0)
diff --git a/robot/problems/introduction/rotateback/sl.py b/robot/problems/introduction/rotateback/sl.py
index 269ea34..3242a80 100644
--- a/robot/problems/introduction/rotateback/sl.py
+++ b/robot/problems/introduction/rotateback/sl.py
@@ -31,3 +31,15 @@ hint = {
'while':['''<p>Program naj teče v neskončni zanki.</p>''',
'''<p><code>while 1:</code></p>'''],
}
+
+plan = ['''\
+<p>Program izvedemo v naslednjih korakih:</p>
+<ol>
+ <li>Naredimo objekt mindstorms_widgets(), s katerim predstavimo robota.</li>
+ <li>Nanj povežemo oba pogonska motorja.</li>
+ <li>Robotu dodamo žiroskop in ga resetiramo.</li>
+ <li>Robotu dodamo stikalo.</li>
+ <li>V neskončni zanki beremo vrednost kota z žiroskopom.</li>
+ <li>Glede na zasuk iz začetne lege, robota na mestu obrnemo v začetno smer.</li>
+</ol>'''
+]
diff --git a/robot/problems/introduction/spotturn90/common.py b/robot/problems/introduction/spotturn90/common.py
index add6643..e01de39 100644
--- a/robot/problems/introduction/spotturn90/common.py
+++ b/robot/problems/introduction/spotturn90/common.py
@@ -10,9 +10,6 @@ number = 3
visible = True
solution = '''\
-from ev3dev import *
-from mindstorms_widgets import mindstorms_widgets
-
robot = mindstorms_widgets()
robot.connect_motor( 'left' )
robot.connect_motor( 'right' )
@@ -30,7 +27,7 @@ hint_type = {
'seconds': Hint('seconds'),
}
-def hint( code):
+def hint( code ):
tokens = get_tokens(code)
# if code does not include mindstorms_widgets(), a student gets a hint that the robot should be somehow represented in the program
diff --git a/robot/problems/introduction/spotturn90/sl.py b/robot/problems/introduction/spotturn90/sl.py
index fe477aa..e3541c0 100644
--- a/robot/problems/introduction/spotturn90/sl.py
+++ b/robot/problems/introduction/spotturn90/sl.py
@@ -19,3 +19,14 @@ hint = {
'seconds':['''<p>Napiši časovno omejitev v sekundah.</p>''',
'''<p><code>robot.move_tank( 'on_for_seconds', ..., seconds=... )</code>.</p>'''],
}
+
+plan = ['''\
+<p>Program izvedemo v naslednjih korakih:</p>
+<ol>
+ <li>Naredimo objekt mindstorms_widgets(), s katerim predstavimo robota.</li>
+ <li>Nanj povežemo oba pogonska motorja.</li>
+ <li>Povežemo barvni senzor.</li>
+ <li>Vklopimo oba motorja tako, da se z enako močjo vrtita v različnih smereh.</li>
+ <li>Motorja izlopimo po pretečenem času, ki pri izbrani moči obrne robota za 90 stopinj.</li>
+</ol>'''
+]
diff --git a/robot/problems/introduction/square20/common.py b/robot/problems/introduction/square20/common.py
index a293712..ce8bc14 100644
--- a/robot/problems/introduction/square20/common.py
+++ b/robot/problems/introduction/square20/common.py
@@ -10,9 +10,6 @@ number = 4
visible = True
solution = '''\
-from ev3dev import *
-from mindstorms_widgets import mindstorms_widgets
-
robot = mindstorms_widgets()
robot.connect_motor( 'left' )
robot.connect_motor( 'right' )
diff --git a/robot/problems/introduction/square20/sl.py b/robot/problems/introduction/square20/sl.py
index f52ddf7..50b335f 100644
--- a/robot/problems/introduction/square20/sl.py
+++ b/robot/problems/introduction/square20/sl.py
@@ -27,3 +27,14 @@ hint = {
'lrPower': ['''<p>Za obrat na mestu se morata kolesi vrteti z enako močjo in v nasprotni smeri.</p>''',
'''<p><code>robot.move_tank( 'on_for_seconds', lr_power=[20,-20], seconds=.95 )</code>.</p>'''],
}
+
+plan = ['''\
+<p>Program izvedemo v naslednjih korakih:</p>
+<ol>
+ <li>Naredimo objekt mindstorms_widgets(), s katerim predstavimo robota.</li>
+ <li>Nanj povežemo oba pogonska motorja.</li>
+ <li>Vklopimo oba motorja tako, da robot vozi naravnost.</li>
+ <li>Robot se na mestu obrne za 90 stopinj; motorja z enako močjo, v različnih smereh.</li>
+ <li>Še 3-krat ponovimo koraka 3 in 4.</li>
+</ol>'''
+]
diff --git a/robot/problems/introduction/wall1m/common.py b/robot/problems/introduction/wall1m/common.py
index 4492cdc..42b4067 100644
--- a/robot/problems/introduction/wall1m/common.py
+++ b/robot/problems/introduction/wall1m/common.py
@@ -10,8 +10,6 @@ number = 6
visible = True
solution = '''\
-from mindstorms_widgets import *
-
robot = mindstorms_widgets()
robot.connect_motor( 'left' )
robot.connect_motor( 'right' )
diff --git a/robot/problems/introduction/wall1m/sl.py b/robot/problems/introduction/wall1m/sl.py
index 18518d5..cbb27ed 100644
--- a/robot/problems/introduction/wall1m/sl.py
+++ b/robot/problems/introduction/wall1m/sl.py
@@ -29,3 +29,17 @@ hint = {
'while':['''<p>Uporabi zanko: robot naj se pelje naprej, dokler ne pride do razdalje 50 cm od zida.</p>''',
'''<p>Uporabi še eno zanko: robot naj se pelje naprej z 20% močjo, dokler ne pride do razdalje 20 cm od zida.</p>'''],
}
+
+plan = ['''\
+<p>Program izvedemo v naslednjih korakih:</p>
+<ol>
+ <li>Naredimo objekt mindstorms_widgets(), s katerim predstavimo robota.</li>
+ <li>Nanj povežemo oba pogonska motorja.</li>
+ <li>Robotu dodamo ultrazvočni senzor.</li>
+ <li>Vklopimo oba motorja tako, da robot vozi naravnost; moč nastavimo na 80.</li>
+ <li>V zanki merimo razdaljo z UZ senzorjem; zanko končamo, ko je razdalja <50 cm.</li>
+ <li>Moč motorjev nastavimo na 20.</li>
+ <li>V zanki merimo razdaljo z UZ senzorjem; zanko končamo, ko je razdalja <20 cm.</li>
+ <li>Ustavimo oba motorja.</li>
+</ol>'''
+]