Teknik 1 · område 3 · pass 8–10 · projekt
Labyrinten
En bana av tejp med korsningar och återvändsgränder. Roboten ska hitta från start till mål på egen hand – och på nästa nivå minnas vägen och köra den kortare andra gången. Det är blockets projekt, det som körs inför klassen 4 november och som dokumentationen handlar om.
- 4 nov Körning inför klassen Varje par kör sin robot på banan, 3 minuter. Nivå, svårast, mest nöjd med.
- 11 nov Inlämning: dokumentationen Fem delar. Del 2 och 5 skriver du själv.
1. Uppdraget
Roboten startar vid startlinjen. Målet är en tjock svart linje någon annanstans på banan. Däremellan: linjer som korsar varandra, där roboten måste välja, och linjer som bara tar slut, där den måste vända. Den ska hitta målet själv – ingen rör den efter start.
Allt du behöver har du redan: linjeföljning från pass 7, readLine()
som ger både position och de fem värdena, och motorfunktionerna. Det nya är att
upptäcka en korsning och en återvändsgränd, och att bestämma vad
roboten gör där.
2. Banan
start ──┬──────────┐
│ │
│(åter- ├────── (återvändsgränd)
│ vänds- │
│ gränd) └──────────┬──────── ▌ MÅL
│
└── (återvändsgränd)
┬ ┼ ┤ = korsning: roboten måste välja
─── som tar slut = återvändsgränd: roboten måste vända
▌ = tjock linje: målet. Alla fem sensorer ser svart, länge
Den riktiga banan på golvet kan se annorlunda ut, men reglerna är samma: alla korsningar är räta vinklar, kurvorna är mjuka, och det finns alltid en väg till målet om man håller vänster.
Så känner roboten igen de tre lägena, med varden från readLine():
| Läge | Vad sensorerna ser | Hur du testar det |
|---|---|---|
| Linje | En eller två sensorer mörka, resten ljusa | position mellan 0 och 4000 – det du redan följer |
| Korsning | Tre eller fler sensorer mörka samtidigt – tejpen går tvärs över | Summan av varden är hög. Prova: vad blir sum(varden) när roboten står på en korsning? På en linje? |
| Återvändsgränd | Ingen sensor mörk – tejpen tog slut | Summan är låg, eller position fastnar på 0 eller 4000 |
| Mål | Alla fem mörka – och de förblir mörka när roboten kör en bit till | Som korsning, men den tar inte slut. Kör 5 cm och läs igen |
3. Vänsterhandsregeln
Lägg vänster hand på väggen i en labyrint och gå. Släpp aldrig väggen. Du kommer ut – alltid, så länge labyrinten inte har "öar" (väggar som inte hänger ihop med ytterväggen). För roboten blir det en regel i varje korsning:
- Går det att svänga vänster? Gör det.
- Annars: går det rakt? Kör rakt.
- Annars: sväng höger.
- Återvändsgränd? Vänd 180 grader och kör tillbaka.
Roboten behöver alltså inte veta hur banan ser ut. Den behöver bara veta vad den ser just nu och följa regeln. Varför regeln alltid leder ut går vi igenom på passet – fundera själv över lovet. Koden, i bitar, finns i labyrintlogiken.
Roboten står med fronten i korsningen. Sväng vänster: kor med vänster
hjul bakåt och höger framåt – vanster() från pass 5 – tills
mittsensorn hittar linjen igen. Inte en fast tid: läs sensorn medan den
svänger, sluta när varden[2] är mörk. Det är skillnaden mellan en
robot som svänger rätt varje gång och en som svänger rätt ibland.
4. Nivåerna
Ska — nivå E
Bör — nivå C
Utmaning — nivå A
Kryssen sparas i din webbläsare.
Alla par ska köra något inför klassen 4 november. Bas-nivån är det ni redan har – så alla har något att visa.
5. Tidsplan
| När | Vad |
|---|---|
| Över lovet | Läs dokumentationsmallen. Rita ett första flödesschema på papper – tjugo minuter |
| Pass 9 · 4/11 fm | Vänsterhandsregeln och vägförkortning gås igenom. Flödesschemat granskas innan ni kodar. Sedan arbetspass med handledning: korsningar, återvändsgränder, mål. Listan för de som hinner |
| Pass 10 · 4/11 em | Körning inför klassen, 3 minuter per par. Sista loggboken |
| 11/11 | Dokumentationen lämnas in |
6. Vad som lämnas in
Dokumentationen enligt mallen: fem delar,
2–3 sidor plus bilder. Del 1, 3 och 4 skriver ni i par. Del 2 (flödesschemat)
och del 5 (utvärderingen) skriver ni var för sig. Bifoga main.py
och logg.md.
Körningen inför klassen är den muntliga delen: kör, och säg tre saker – vilken nivå, vad som var svårast, vad ni är mest nöjda med.