Skip to content
This repository was archived by the owner on Nov 7, 2026. It is now read-only.

Commit 88be9db

Browse files
Web 0.15.29: Block-Lektion 8 „Parcours“ und vier Aufgaben für Jüngere (#293)
* Web 0.15.29: Block-Lektion 8 „Parcours“ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ugz28UyJP4CyzFezJTWZbD * Block-Ansicht: vier Aufgaben für Jüngere (Slalom, Disco, Kleeblatt im Wald, Ausgang finden) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ugz28UyJP4CyzFezJTWZbD --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 20e587d commit 88be9db

22 files changed

Lines changed: 2106 additions & 1275 deletions

‎CHANGELOG.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ The format is loosely inspired by Keep a Changelog.
88

99
### Changed
1010

11+
- **Web 0.15.29, VisuBot block lesson 8 „Parcours“:** the final lesson for younger learners combines everything: station 1 follows the line until the red field (`solange nicht Farbe ist rot?`), station 2 warns with orange light and a beep and drives around blocks (both checked in two worlds), then a free step to build an own parcours station by station; drive game with three rounds. Plus four junior tasks in `visubot/bloecke/aufgaben/` (shown in the Aufgaben tab with block view): Slalom (after 2), Disco (after 5), Kleeblatt im Wald (after 7), Ausgang finden (after 8), all checked.
1112
- **Web 0.15.28, VisuBot block lesson 7 „Der Linie folgen“:** the line sensor for younger learners: turn around at the black edge (`solange Linie == 0`), then a simple two-case line follower with „Linie links?“ and „Räder einzeln“ (wenn links Schwarz: 10, 40, sonst 40, 10), checked in both line worlds; game „Was passiert?“ with four rounds.
1213
- **Web 0.15.27, VisuBot block lessons 5 „Lichter und Töne“ and 6 „Immer wieder prüfen“:** LEDs in RGB colours, blinking with „wiederhole“ and „kurz warten“, a siren with „Ton spielen“, and a free light show. The game „Was passiert?“ (`spiel frage`) shows its rounds as blocks in the block lessons, like „Wo landet der mBot2?“. Lesson 6 „Immer wieder prüfen“: wait for button A (solange nicht …), endless loop with an emergency brake, free obstacle avoidance. Blocks also show „nicht“, „und“, „oder“ and „verlasse die Schleife“ instead of `!`, `&&`, `||` and `break`.
1314
- **Web 0.15.26, VisuBot: short block lessons for younger learners (grades 5/6):** when the block view is on in VisuBot, the learning area shows its own short lesson series from `web/lessons/<lang>/visubot/bloecke/` instead of the Java series (switching back restores it; no exercises tab content there). Lessons are about trying things out: step 1 „Das schaffst du heute“, a few hands-on exercises, a game, and „Das hab ich geschafft“ as the checklist; no knowledge test. First lessons (German): 1 „Losfahren“ (drive, change numbers, turn), 2 „Immer wieder“ (square, „wiederhole“, triangle and other shapes), 3 „Der mBot2 misst“ (show the distance, drive while the way is free) and 4 „Entscheidungen“ (wenn/sonst with the wall and the colour sensor). The blocks now show their keywords in the UI language: „wenn“, „sonst“, „solange“, „wiederhole immer“, „mache“ (en: if, else, while, forever, do; pt: se, senão, enquanto, repetir sempre, faz). In „Wo landet der mBot2?“ the rounds are shown as blocks instead of Java (`blockPicture.ts`). Tests in `blockLessons.test.ts`.
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
---
2+
titel: Parcours
3+
bereich: Sensoren und Entscheidungen
4+
kurz: Alles zusammen: der Linie bis Rot folgen, Klötzen ausweichen und einen eigenen Parcours bauen.
5+
---
6+
7+
## Das schaffst du heute
8+
9+
::: kompetenzen
10+
- den mBot2 einer Linie bis zum roten Feld folgen lassen
11+
- den mBot2 vor einem Klotz warnen und ausweichen lassen
12+
- einen eigenen Parcours planen und Stück für Stück bauen
13+
:::
14+
15+
## Station 1: Bis zum roten Feld
16+
17+
Ein Parcours besteht aus Stationen. Bei der ersten folgt der mBot2 einer schwarzen Linie. Am Ende der Linie liegt ein rotes Feld, dort soll er anhalten.
18+
19+
Du kennst schon alles dafür. Den Linienfolger hast du in der letzten Lektion gebaut. Neu ist nur die Frage hinter **solange**: Er fährt, solange er **nicht** auf Rot steht.
20+
21+
1. Zieh eine **While-Schleife** unter 🏁.
22+
2. Zieh **nicht** aus **Operatoren** auf die Frage und leg **Farbe ist rot?** hinein.
23+
3. Leg in die Schleife eine **Verzweigung** mit **Linie links?**.
24+
4. Unter **wenn** kommt **Räder einzeln** mit `10, 40`, unter **sonst** mit `40, 10`.
25+
5. Unter die Schleife legst du **anhalten**.
26+
27+
::: übung vbb-linie-bis-rot
28+
titel: Bis zum roten Feld
29+
auftrag: Der mBot2 folgt der Linie, solange er nicht auf Rot steht. Dann hält er an. In der zweiten Welt schlängelt sich die Linie.
30+
welt: linie-rot-1, linie-rot-2
31+
braucht: whileSchleife, verzweigung
32+
tipp: Die Frage der Schleife heißt `!mbot.getColor().equals("rot")`. Im Block steht dort **nicht Farbe ist rot?**.
33+
tipp: In der Schleife liegt dieselbe Verzweigung wie beim Linienfolger aus Lektion 7.
34+
lösung: vbb-linie-bis-rot-loesung.visustruct
35+
:::
36+
37+
## Station 2: Achtung, Klotz!
38+
39+
Bei der zweiten Station stehen Klötze im Weg. Der mBot2 fährt in kleinen Schritten vor. Ist ein Klotz näher als 20 cm, warnt er mit oranger Lampe und Piepton und fährt außen herum. Danach geht die Lampe aus.
40+
41+
Außen herum heißt: **drehe rechts**, **fahre vor** mit 30, **drehe links**. Dann steht er neben dem Klotz und schaut wieder nach vorn.
42+
43+
::: übung vbb-klotz
44+
titel: Achtung, Klotz!
45+
auftrag: Solange der mBot2 nicht auf Rot steht: Ist ein Klotz näher als 20 cm, leuchtet er orange, piept und weicht aus. Sonst fährt er ein Stück vor. Es gibt zwei Welten, in der zweiten stehen zwei Klötze.
46+
welt: hindernis-1 -> tone
47+
welt: hindernis-2 -> tone
48+
braucht: whileSchleife, verzweigung
49+
tipp: Außen dieselbe Schleife wie bei Station 1. Darin eine Verzweigung mit **Abstand** **kleiner als** 20. Unter **sonst** liegt **fahre vor**.
50+
tipp: Unter **wenn**: **LEDs an** mit `255, 128, 0`, **Ton spielen** mit `880, 200`, **drehe rechts**, **fahre vor** mit 30, **drehe links**, **LEDs aus**.
51+
lösung: vbb-klotz-loesung.visustruct
52+
:::
53+
54+
## Dein eigener Parcours
55+
56+
Jetzt bist du dran! Bau mit Klebeband und Kartons einen Parcours auf dem Boden. Plane erst, dann programmier Station für Station:
57+
58+
- **Start:** Der mBot2 wartet, bis du Taste A drückst.
59+
- **Linie:** Er folgt einer schwarzen Linie bis zu einem roten Blatt Papier.
60+
- **Klotz:** Danach weicht er einem Karton aus.
61+
- **Ziel:** Am Ende blinkt er grün und spielt eine Melodie.
62+
63+
Probier jede Station erst allein aus. Klappt sie, hängst du die nächste unten an. So findest du Fehler viel schneller.
64+
65+
::: ludwig
66+
Profis machen das genauso: Sie testen jedes kleine Stück, bevor sie alles zusammenstecken. Bei Robotik-Wettbewerben gewinnt oft nicht der schnellste Roboter, sondern der, der zuverlässig ins Ziel kommt.
67+
:::
68+
69+
## Spiel: Wo landet der mBot2?
70+
71+
::: spiel fahrt
72+
titel: Spiel: Wo landet der mBot2?
73+
intro: Die grauen Felder sind Wände. Schau dir die Blöcke an und tipp auf das Feld, auf dem der mBot2 am Ende steht. Jedes Feld ist 30 cm groß. Drei Runden.
74+
frage: Auf welchem Feld steht der mBot2 am Ende?
75+
76+
runde:
77+
while (mbot.getDistance() > 15) {
78+
mbot.forward(30);
79+
}
80+
mbot.turnRight();
81+
while (mbot.getDistance() > 15) {
82+
mbot.forward(30);
83+
}
84+
karte: #.... | ..... | ^...#
85+
ziel: 4,1
86+
> Er fährt bis vor die Wand, dreht sich nach rechts und fährt wieder, bis der Rand kommt.
87+
88+
runde:
89+
for (int i = 0; i < 3; i++) {
90+
if (mbot.getDistance() < 20) {
91+
mbot.turnRight();
92+
} else {
93+
mbot.forward(30);
94+
}
95+
}
96+
karte: ..#.. | ..... | ..^..
97+
ziel: 3,1
98+
> Erst ist frei, er fährt ein Feld. Dann ist die Wand direkt vor ihm, er dreht sich. Beim dritten Mal ist wieder frei, er fährt nach rechts.
99+
100+
runde:
101+
while (mbot.getDistance() > 15) {
102+
mbot.forward(30);
103+
}
104+
mbot.turnLeft();
105+
mbot.forward(30);
106+
mbot.turnRight();
107+
while (mbot.getDistance() > 15) {
108+
mbot.forward(30);
109+
}
110+
karte: ..... | ..#.. | ..... | ..^..
111+
ziel: 1,0
112+
> Er fährt bis vor den Klotz, weicht nach links aus und fährt dann geradeaus weiter bis zum Rand.
113+
:::
114+
115+
## Das hab ich geschafft
116+
117+
Wie gut klappt es schon? ☂️ noch nicht, ⛅ ein bisschen, ☀️ klappt prima. Bei ☂️ und ⛅ bringt dich **Nachlesen** zum passenden Schritt.
118+
119+
::: checkliste
120+
- Ich kann den mBot2 einer Linie bis zum roten Feld folgen lassen. → Station 1: Bis zum roten Feld
121+
- Ich kann den mBot2 vor einem Klotz warnen und ausweichen lassen. → Station 2: Achtung, Klotz!
122+
- Ich kann einen eigenen Parcours Station für Station bauen. → Dein eigener Parcours
123+
:::
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
titel: Ausgang finden
3+
nach: 8
4+
stufe: 3
5+
---
6+
7+
Der mBot2 steht unten links und schaut nach rechts. Über ihm liegen Wände. Jede Wand hat genau eine Lücke, und jede Lücke liegt weiter rechts als die darunter. Ganz oben ist das schwarze Ziel.
8+
9+
Der mBot2 fährt nach rechts und schaut in jedem Feld nach oben. Ist dort eine Lücke, fährt er hindurch in den nächsten Gang.
10+
11+
::: übung vbb-ausgang
12+
titel: Ausgang finden
13+
auftrag: Der mBot2 fährt in beiden Welten durch alle Lücken bis zum Ziel, ohne anzustoßen. Ein Feld ist 30 cm groß.
14+
welt: ausgang-1, ausgang-2
15+
braucht: whileSchleife, verzweigung
16+
tipp: Außen eine While-Schleife mit **Linie** **gleich** 0. Darin dreht sich der mBot2 zuerst nach links und schaut: Ist oben frei, misst er mehr als 20 cm.
17+
tipp: **Wenn** frei: 60 vor (durch die Lücke in den nächsten Gang), dann rechts drehen. **Sonst**: rechts drehen und 30 vor.
18+
lösung: vbb-ausgang-loesung.visustruct
19+
:::
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
titel: Disco
3+
nach: 5
4+
stufe: 1
5+
---
6+
7+
Der mBot2 macht Party! Seine LEDs wechseln die Farbe: rot, grün, blau, immer wieder.
8+
9+
::: übung vbb-disco
10+
titel: Disco
11+
auftrag: Die LEDs leuchten nacheinander rot, grün und blau, jede Farbe eine halbe Sekunde lang. Das Ganze dreimal. Danach gehen die LEDs aus.
12+
befehle: 3 x (setLed 255 0 0, pause 500, setLed 0 255 0, pause 500, setLed 0 0 255, pause 500), ledOff
13+
braucht: forSchleife
14+
tipp: In **wiederhole 3 mal** liegen drei Blöcke **LEDs an**, nach jedem ein **kurz warten** mit 500.
15+
tipp: Rot ist `255, 0, 0`, grün `0, 255, 0`, blau `0, 0, 255`. **LEDs aus** liegt unter der Schleife.
16+
lösung: vbb-disco-loesung.visustruct
17+
:::
18+
19+
Probier aus: Mach eine eigene Farbe, zum Beispiel lila mit `255, 0, 255`.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
titel: Slalom
3+
nach: 2
4+
stufe: 2
5+
---
6+
7+
Vor dem mBot2 stehen vier Pylonen in einer Reihe. Er fährt Slalom: am ersten Pylon oben vorbei, am zweiten unten, dann wieder oben und unten. Hinter dem letzten Pylon ist das Ziel.
8+
9+
Ein Feld ist 30 cm groß, so breit wie der mBot2. Ein Schritt von Feld zu Feld ist also **fahre vor** mit 30.
10+
11+
::: übung vbb-slalom
12+
titel: Slalom
13+
auftrag: Fahre den Slalom bis ins Ziel, ohne einen Pylon zu berühren. Benutze **wiederhole**.
14+
welt: slalom
15+
braucht: forSchleife
16+
tipp: Fahr erst nur oben um den ersten Pylon herum: links drehen, ein Feld vor, rechts drehen, zwei Felder vor, rechts drehen, ein Feld vor, links drehen.
17+
tipp: Unten herum geht genauso, nur mit links und rechts vertauscht. „Oben herum, dann unten herum“ kommt in **wiederhole 2 mal**.
18+
lösung: vbb-slalom-loesung.visustruct
19+
:::
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
titel: Kleeblatt im Wald
3+
nach: 7
4+
stufe: 3
5+
---
6+
7+
Ganz hinten im Wald liegt ein Kleeblatt auf einem schwarzen Feld. Auf dem Weg dorthin stehen Bäume, aber nie zwei direkt hintereinander. Steht ein Baum vor dem mBot2, fährt er außen herum und dann weiter geradeaus.
8+
9+
Ein Feld ist 30 cm groß. Steht ein Baum im nächsten Feld, misst der Abstandssensor weniger als 20 cm.
10+
11+
::: übung vbb-wald
12+
titel: Kleeblatt im Wald
13+
auftrag: Der mBot2 fährt in beiden Welten bis zum schwarzen Feld und umfährt dabei jeden Baum, ohne anzustoßen.
14+
welt: wald-1, wald-2
15+
braucht: whileSchleife, verzweigung
16+
tipp: Außen eine While-Schleife mit **Linie** **gleich** 0, so wie beim Rand in Lektion 7. Darin eine Verzweigung: **wenn** **Abstand** **kleiner als** 20, **sonst** **fahre vor** mit 30.
17+
tipp: Um einen Baum herum: links drehen, 30 vor, rechts drehen, 60 vor, rechts drehen, 30 vor, links drehen.
18+
lösung: vbb-wald-loesung.visustruct
19+
:::
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<struktogramm caption="-1;">
3+
<strelem typ="4" zx="0" zy="0">
4+
<text>109;98;111;116;46;103;101;116;76;105;110;101;40;41;32;61;61;32;48;</text>
5+
<schleifeninhalt>
6+
<strelem typ="0" zx="0" zy="0">
7+
<text>109;98;111;116;46;116;117;114;110;76;101;102;116;40;41;</text>
8+
</strelem>
9+
<strelem typ="1" zx="0" zy="0">
10+
<text>109;98;111;116;46;103;101;116;68;105;115;116;97;110;99;101;40;41;32;62;32;50;48;</text>
11+
<fall fallname="116;114;117;101;">
12+
<strelem typ="0" zx="0" zy="0">
13+
<text>109;98;111;116;46;102;111;114;119;97;114;100;40;54;48;41;</text>
14+
</strelem>
15+
<strelem typ="0" zx="0" zy="0">
16+
<text>109;98;111;116;46;116;117;114;110;82;105;103;104;116;40;41;</text>
17+
</strelem>
18+
</fall>
19+
<fall fallname="102;97;108;115;101;">
20+
<strelem typ="0" zx="0" zy="0">
21+
<text>109;98;111;116;46;116;117;114;110;82;105;103;104;116;40;41;</text>
22+
</strelem>
23+
<strelem typ="0" zx="0" zy="0">
24+
<text>109;98;111;116;46;102;111;114;119;97;114;100;40;51;48;41;</text>
25+
</strelem>
26+
</fall>
27+
</strelem>
28+
</schleifeninhalt>
29+
</strelem>
30+
</struktogramm>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<struktogramm caption="-1;">
3+
<strelem typ="3" zx="0" zy="0">
4+
<text>105;110;116;32;105;32;61;32;48;</text>
5+
<text>105;32;60;32;51;</text>
6+
<text>105;43;43;</text>
7+
<schleifeninhalt>
8+
<strelem typ="0" zx="0" zy="0">
9+
<text>109;98;111;116;46;115;101;116;76;101;100;40;50;53;53;44;32;48;44;32;48;41;</text>
10+
</strelem>
11+
<strelem typ="0" zx="0" zy="0">
12+
<text>109;98;111;116;46;112;97;117;115;101;40;53;48;48;41;</text>
13+
</strelem>
14+
<strelem typ="0" zx="0" zy="0">
15+
<text>109;98;111;116;46;115;101;116;76;101;100;40;48;44;32;50;53;53;44;32;48;41;</text>
16+
</strelem>
17+
<strelem typ="0" zx="0" zy="0">
18+
<text>109;98;111;116;46;112;97;117;115;101;40;53;48;48;41;</text>
19+
</strelem>
20+
<strelem typ="0" zx="0" zy="0">
21+
<text>109;98;111;116;46;115;101;116;76;101;100;40;48;44;32;48;44;32;50;53;53;41;</text>
22+
</strelem>
23+
<strelem typ="0" zx="0" zy="0">
24+
<text>109;98;111;116;46;112;97;117;115;101;40;53;48;48;41;</text>
25+
</strelem>
26+
</schleifeninhalt>
27+
</strelem>
28+
<strelem typ="0" zx="0" zy="0">
29+
<text>109;98;111;116;46;108;101;100;79;102;102;40;41;</text>
30+
</strelem>
31+
</struktogramm>
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<struktogramm caption="-1;">
3+
<strelem typ="4" zx="0" zy="0">
4+
<text>33;109;98;111;116;46;103;101;116;67;111;108;111;114;40;41;46;101;113;117;97;108;115;40;34;114;111;116;34;41;</text>
5+
<schleifeninhalt>
6+
<strelem typ="1" zx="0" zy="0">
7+
<text>109;98;111;116;46;103;101;116;68;105;115;116;97;110;99;101;40;41;32;60;32;50;48;</text>
8+
<fall fallname="116;114;117;101;">
9+
<strelem typ="0" zx="0" zy="0">
10+
<text>109;98;111;116;46;115;101;116;76;101;100;40;50;53;53;44;32;49;50;56;44;32;48;41;</text>
11+
</strelem>
12+
<strelem typ="0" zx="0" zy="0">
13+
<text>109;98;111;116;46;112;108;97;121;84;111;110;101;40;56;56;48;44;32;50;48;48;41;</text>
14+
</strelem>
15+
<strelem typ="0" zx="0" zy="0">
16+
<text>109;98;111;116;46;116;117;114;110;82;105;103;104;116;40;41;</text>
17+
</strelem>
18+
<strelem typ="0" zx="0" zy="0">
19+
<text>109;98;111;116;46;102;111;114;119;97;114;100;40;51;48;41;</text>
20+
</strelem>
21+
<strelem typ="0" zx="0" zy="0">
22+
<text>109;98;111;116;46;116;117;114;110;76;101;102;116;40;41;</text>
23+
</strelem>
24+
<strelem typ="0" zx="0" zy="0">
25+
<text>109;98;111;116;46;108;101;100;79;102;102;40;41;</text>
26+
</strelem>
27+
</fall>
28+
<fall fallname="102;97;108;115;101;">
29+
<strelem typ="0" zx="0" zy="0">
30+
<text>109;98;111;116;46;102;111;114;119;97;114;100;40;41;</text>
31+
</strelem>
32+
</fall>
33+
</strelem>
34+
</schleifeninhalt>
35+
</strelem>
36+
</struktogramm>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<struktogramm caption="-1;">
3+
<strelem typ="4" zx="0" zy="0">
4+
<text>33;109;98;111;116;46;103;101;116;67;111;108;111;114;40;41;46;101;113;117;97;108;115;40;34;114;111;116;34;41;</text>
5+
<schleifeninhalt>
6+
<strelem typ="1" zx="0" zy="0">
7+
<text>109;98;111;116;46;105;115;76;105;110;101;76;101;102;116;40;41;</text>
8+
<fall fallname="116;114;117;101;">
9+
<strelem typ="0" zx="0" zy="0">
10+
<text>109;98;111;116;46;100;114;105;118;101;40;49;48;44;32;52;48;41;</text>
11+
</strelem>
12+
</fall>
13+
<fall fallname="102;97;108;115;101;">
14+
<strelem typ="0" zx="0" zy="0">
15+
<text>109;98;111;116;46;100;114;105;118;101;40;52;48;44;32;49;48;41;</text>
16+
</strelem>
17+
</fall>
18+
</strelem>
19+
</schleifeninhalt>
20+
</strelem>
21+
<strelem typ="0" zx="0" zy="0">
22+
<text>109;98;111;116;46;115;116;111;112;40;41;</text>
23+
</strelem>
24+
</struktogramm>

0 commit comments

Comments
 (0)