← Område 3 Projekt · Labyrinten Nivåerna

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.

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ägeVad sensorerna serHur du testar det
LinjeEn eller två sensorer mörka, resten ljusaposition mellan 0 och 4000 – det du redan följer
KorsningTre eller fler sensorer mörka samtidigt – tejpen går tvärs överSumman av varden är hög. Prova: vad blir sum(varden) när roboten står på en korsning? På en linje?
ÅtervändsgrändIngen sensor mörk – tejpen tog slutSumman är låg, eller position fastnar på 0 eller 4000
MålAlla fem mörka – och de förblir mörka när roboten kör en bit tillSom 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:

  1. Går det att svänga vänster? Gör det.
  2. Annars: går det rakt? Kör rakt.
  3. Annars: sväng höger.
  4. Å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.

Att svänga i en korsning

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ärVad
Över lovetLäs dokumentationsmallen. Rita ett första flödesschema på papper – tjugo minuter
Pass 9 · 4/11 fmVä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 emKörning inför klassen, 3 minuter per par. Sista loggboken
11/11Dokumentationen 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.