|
| 1 | +--- |
| 2 | +titel: Der Linie folgen |
| 3 | +bereich: Sensoren und Entscheidungen |
| 4 | +kurz: Mit dem Liniensensor am Rand umkehren und einer schwarzen Linie folgen. |
| 5 | +--- |
| 6 | + |
| 7 | +## Das schaffst du heute |
| 8 | + |
| 9 | +::: kompetenzen |
| 10 | +- mit dem Liniensensor eine schwarze Linie erkennen |
| 11 | +- den mBot2 am Rand umkehren lassen |
| 12 | +- den mBot2 einer Linie folgen lassen |
| 13 | +::: |
| 14 | + |
| 15 | +## Augen nach unten |
| 16 | + |
| 17 | +Unter dem mBot2 sitzt vorn der **Liniensensor**. Er leuchtet auf den Boden und sieht, ob es dort hell oder dunkel ist. |
| 18 | + |
| 19 | +::: mbot2 |
| 20 | +fokus: lineSensor |
| 21 | +ansicht: unten |
| 22 | +::: |
| 23 | + |
| 24 | +Der Sensor **Linie** aus der Gruppe **➖ Linie** liefert **0**, wenn unter dem mBot2 alles hell ist. Sieht er etwas Schwarzes, ist die Zahl größer als 0. |
| 25 | + |
| 26 | +## Am Rand umkehren |
| 27 | + |
| 28 | +Stell dir einen Tisch vor, um den schwarzes Klebeband klebt. Der mBot2 soll vorfahren, bis er das Band sieht, und dann umkehren. So fällt er nicht herunter. |
| 29 | + |
| 30 | +1. Zieh eine **While-Schleife** unter 🏁. |
| 31 | +2. Zieh aus **Operatoren** den Baustein **gleich** auf die Frage hinter **solange**. |
| 32 | +3. Leg den Sensor **Linie** in das linke Feld und tipp rechts **0** ein. |
| 33 | +4. Leg **fahre vor** in die Schleife und **drehe rechts** mit **180** darunter. |
| 34 | + |
| 35 | +::: übung vbb-rand |
| 36 | +titel: Am Rand umkehren |
| 37 | +auftrag: Der mBot2 fährt vor, solange er keine Linie sieht. Dann dreht er sich um. Es gibt zwei Welten, der Rand ist mal näher und mal weiter weg. |
| 38 | +welt: rand-1 -> forward 20, turnRight 180 |
| 39 | +welt: rand-2 -> forward 50, turnRight 180 |
| 40 | +braucht: whileSchleife |
| 41 | +tipp: Die Frage der Schleife heißt `mbot.getLine() == 0`. |
| 42 | +tipp: **drehe rechts** mit 180 liegt unter der Schleife, nicht darin. |
| 43 | +lösung: vbb-rand-loesung.visustruct |
| 44 | +::: |
| 45 | + |
| 46 | +## Der Linie folgen |
| 47 | + |
| 48 | +Jetzt kommt ein Klassiker: Der mBot2 fährt eine schwarze Linie entlang, auch durch Kurven. Dafür brauchst du zwei neue Dinge: |
| 49 | + |
| 50 | +- **Linie links?** aus der Gruppe **➖ Linie** sagt ja, wenn der linke Fühler Schwarz sieht. |
| 51 | +- **Räder einzeln** aus der Gruppe **⚙️ Räder einzeln** lässt jedes Rad anders schnell drehen. Die erste Zahl ist das linke Rad, die zweite das rechte. Dreht das rechte schneller, fährt er eine Linkskurve. |
| 52 | + |
| 53 | +Die Idee ist ganz einfach: **Wenn** links Schwarz ist, lenkt er nach links. **Sonst** lenkt er nach rechts. So wackelt er an der Linie entlang. |
| 54 | + |
| 55 | +::: übung vbb-linienfolger |
| 56 | +titel: Linienfolger |
| 57 | +auftrag: Solange die Wand mehr als 15 cm weg ist, folgt der mBot2 der Linie. Danach hält er an. In der einen Welt biegt die Linie nach rechts ab, in der anderen nach links. |
| 58 | +welt: linie-1, linie-2 |
| 59 | +braucht: whileSchleife, verzweigung |
| 60 | +tipp: Außen eine While-Schleife mit `mbot.getDistance() > 15`. Darin eine Verzweigung mit **Linie links?**. Unter der Schleife liegt **anhalten**. |
| 61 | +tipp: Unter **wenn** liegt **Räder einzeln** mit `10, 40`, unter **sonst** **Räder einzeln** mit `40, 10`. |
| 62 | +lösung: vbb-linienfolger-loesung.visustruct |
| 63 | +::: |
| 64 | + |
| 65 | +Probier aus: Was passiert mit `20, 60` und `60, 20`? Wird er schneller oder fliegt er aus der Kurve? |
| 66 | + |
| 67 | +::: ludwig |
| 68 | +Am echten mBot2 klebst du die Linie mit schwarzem Isolierband auf einen hellen Boden. Fang langsam an, sonst schießt er in der Kurve über die Linie hinaus. |
| 69 | +::: |
| 70 | + |
| 71 | +## Spiel: Was passiert? |
| 72 | + |
| 73 | +::: spiel frage |
| 74 | +titel: Spiel: Was passiert? |
| 75 | +intro: Schau dir die Blöcke an. Was macht der mBot2? Vier Runden. |
| 76 | + |
| 77 | +runde: |
| 78 | + mbot.drive(40, 40); |
| 79 | +frage: Wie fährt der mBot2? |
| 80 | +- [x] geradeaus |
| 81 | +- Linkskurve |
| 82 | +- Rechtskurve |
| 83 | +> Beide Räder drehen gleich schnell. |
| 84 | +
|
| 85 | +runde: |
| 86 | + mbot.drive(10, 40); |
| 87 | +frage: Wie fährt der mBot2? |
| 88 | +- geradeaus |
| 89 | +- [x] Linkskurve |
| 90 | +- Rechtskurve |
| 91 | +> Das rechte Rad ist schneller, also schiebt es ihn nach links. |
| 92 | +
|
| 93 | +runde: |
| 94 | + if (mbot.isLineLeft()) { |
| 95 | + mbot.drive(10, 40); |
| 96 | + } else { |
| 97 | + mbot.drive(40, 10); |
| 98 | + } |
| 99 | +frage: Nur der rechte Fühler sieht die Linie. Wie fährt er? |
| 100 | +- Linkskurve |
| 101 | +- [x] Rechtskurve |
| 102 | +- Er hält an. |
| 103 | +> Links ist kein Schwarz, also nimmt er den sonst-Teil: das linke Rad ist schneller. |
| 104 | +
|
| 105 | +runde: |
| 106 | + while (mbot.getLine() == 0) { |
| 107 | + mbot.forward(); |
| 108 | + } |
| 109 | + mbot.turnRight(180); |
| 110 | +frage: Der mBot2 steht schon auf der schwarzen Linie. Was tut er? |
| 111 | +- Er fährt erst ein Stück vor. |
| 112 | +- [x] Er dreht sich sofort um. |
| 113 | +- Er fährt immer weiter. |
| 114 | +> Die Frage der Schleife ist gleich am Anfang nein, also läuft sie gar nicht. |
| 115 | +::: |
| 116 | + |
| 117 | +## Das hab ich geschafft |
| 118 | + |
| 119 | +Wie gut klappt es schon? ☂️ noch nicht, ⛅ ein bisschen, ☀️ klappt prima. Bei ☂️ und ⛅ bringt dich **Nachlesen** zum passenden Schritt. |
| 120 | + |
| 121 | +::: checkliste |
| 122 | +- Ich kann mit dem Liniensensor eine Linie erkennen. → Augen nach unten |
| 123 | +- Ich kann den mBot2 am Rand umkehren lassen. → Am Rand umkehren |
| 124 | +- Ich kann den mBot2 einer Linie folgen lassen. → Der Linie folgen |
| 125 | +::: |
0 commit comments