Teknologilab logo

🎡 Pariserhjul Del 2: Programmering og Sensorer

Nå som du har bygget pariserhjulet, skal vi lære å programmere det med sekvenser, løkker og sensorer. Dette er hvor robotikken virkelig våkner til live!

📋 Forutsetninger: Du bør ha fullført Del 1 og ha et ferdig bygget pariserhjul. Hvis du ikke har gjort det ennå, start med Del 1 her.

🎯 Læringsmål

I denne økten skal du lære:

  • Sekvenser: Hvordan instruksjoner utføres i rekkefølge
  • Løkker: Hvordan gjenta handlinger automatisk
  • Sensorer: Hvordan roboten kan reagere på omgivelsene
  • Betingelser: Hvordan roboten tar beslutninger

📚 Del 1: Sekvenser - Steg for steg

En sekvens er en liste med instruksjoner som utføres i rekkefølge, én etter én. Dette er grunnlaget for all programmering!

Oppgave 1.1: Din første sekvens

Lag et program som gjør følgende i rekkefølge:

1. Vis et smilefjes på hubben 2. Roter motoren 90 grader (en kvart omdreining) 3. Vent 2 sekunder 4. Roter motoren 90 grader til 5. Vis et annet ikon

Spørsmål: Hva skjer hvis du bytter om på rekkefølgen?

Oppgave 1.2: Fire stopp

Utvid programmet til å stoppe ved alle fire gondolene (4 x 90 grader).

Når programmet starter Vis ikon (smilefjes) Roter motor 90 grader Vent 2 sekunder Roter motor 90 grader Vent 2 sekunder Roter motor 90 grader Vent 2 sekunder Roter motor 90 grader Vis ikon (stjerne)

Utfordring: Legg til lyd ved hvert stopp!

🔁 Del 2: Løkker - Gjenta automatisk

Løkker lar deg gjenta kode uten å skrive den om og om igjen. Det finnes to typer løkker i SPIKE:

Oppgave 2.1: Gjenta for alltid

Bruk en "Gjenta for alltid"-løkke for å la pariserhjulet rotere kontinuerlig:

Når programmet starter Gjenta for alltid: Roter motor 90 grader Vent 2 sekunder

Tips: Trykk på stopp-knappen for å stoppe programmet!

Oppgave 2.2: Gjenta 10 ganger

Bruk en "Gjenta N ganger"-løkke for å kjøre pariserhjulet et bestemt antall runder:

Når programmet starter Gjenta 10 ganger: Roter motor 90 grader Vent 1 sekund Vis ikon (ferdig!)

Spørsmål: Hvor mange gondol-stopp blir dette til sammen? (Hint: 10 x 4)

💡 Debugging-tips: Hvis pariserhjulet roterer for fort eller for sakte, endre ventetiden eller motorhastigheten. Prøv forskjellige verdier til det ser riktig ut!

🔘 Del 3: Sensorer - La roboten føle

Sensorer gjør at roboten kan reagere på verden rundt seg. La oss bruke sensorer til å styre pariserhjulet!

Oppgave 3.1: Start med kraftsensor

Koble til en kraftsensor (den runde knappen) og bruk den til å starte pariserhjulet:

Når programmet starter Vent til kraftsensor trykkes Vis ikon (start!) Gjenta 4 ganger: Roter motor 90 grader Vent 2 sekunder

Port: Husk å koble kraftsensoren til en port (A, B, C, D, E eller F)!

Oppgave 3.2: Stopp med kraftsensor

Bruk kraftsensoren til å stoppe pariserhjulet når som helst:

Når programmet starter Gjenta til kraftsensor trykkes: Roter motor 90 grader Vent 1 sekund Stopp motor Vis ikon (stoppet!)

Oppgave 3.3: Avstandssensor (hvis tilgjengelig)

Hvis du har en avstandssensor, bruk den til å oppdage passasjerer:

Når programmet starter Gjenta for alltid: Hvis avstandssensor < 10 cm: Vis ikon (person oppdaget!) Vent 3 sekunder Roter motor 90 grader Vent 2 sekunder

Idé: Plasser avstandssensoren slik at den ser når noen står foran pariserhjulet!

🤔 Del 4: Betingelser - La roboten bestemme

Betingelser (hvis-så) lar roboten ta beslutninger basert på sensor-data.

Oppgave 4.1: Ulike hastigheter

La kraftsensoren bestemme hastigheten:

Når programmet starter Gjenta for alltid: Hvis kraftsensor trykkes hardt (> 50%): Roter motor 180 grader med hastighet 75% Ellers: Roter motor 90 grader med hastighet 30% Vent 1 sekund

Oppgave 4.2: Telle passasjerer

Bruk en variabel til å telle hvor mange ganger pariserhjulet har stoppet:

Når programmet starter Sett variabel "passasjerer" til 0 Gjenta 10 ganger: Roter motor 90 grader Vent 2 sekunder Endre variabel "passasjerer" med 1 Vis variabel "passasjerer" på hubben Vis ikon (ferdig!)

Tips: Dette er nyttig for å holde oversikt over hvor mange "turer" som er gjennomført!

🏆 Del 5: Utfordringsprosjekter

Utfordring A: Billettsystem

Lag et system der:

  • Kraftsensor = "kjøp billett"
  • Roboten teller antall billetter
  • Etter 4 billetter starter pariserhjulet automatisk
  • Etter turen, nullstill telleren

Utfordring B: Nødstopp-system

Lag et sikkerhets-system:

  • Pariserhjulet roterer kontinuerlig
  • Hvis kraftsensor trykkes (nødstopp): stopp umiddelbart
  • Blink rødt lys på hubben
  • Spill alarm-lyd

Utfordring C: Flerfarge-system

Hvis du har fargesensor:

  • Rød farge = stopp pariserhjulet
  • Grønn farge = start pariserhjulet
  • Blå farge = sakte rotasjon
  • Gul farge = rask rotasjon

Utfordring D: VIP-gondol

Avansert prosjekt:

  • En gondol er "VIP" (marker den fysisk)
  • Når VIP-gondolen er nederst: stopp ekstra lenge (5 sekunder)
  • Vis spesielt ikon og spill lyd for VIP
  • Hint: Bruk motor-posisjon eller tell rotasjoner for å vite hvor VIP-gondolen er

🧠 Konsepter du har lært

Programmering:

  • Sekvens: Instruksjoner i rekkefølge
  • Løkke: Gjenta kode (for alltid / N ganger / til betingelse)
  • Betingelse: Hvis-så logikk
  • Variabel: Lagre og endre verdier (f.eks. teller)

Sensorer:

  • Kraftsensor: Oppdager trykk (0-100%)
  • Avstandssensor: Måler avstand (0-200 cm)
  • Fargesensor: Gjenkjenner farger

Motor:

  • Rotasjon: Grader (360° = full runde)
  • Hastighet: 0-100% (+ eller -)
  • Posisjon: Spore motorens vinkel

❓ Feilsøking

  • Sensoren reagerer ikke: Sjekk at kabelen er koblet til riktig port og velg riktig port i programmet
  • Løkken stopper ikke: Hvis du bruker "gjenta for alltid", må du stoppe programmet manuelt eller legge til en "stopp hvis"-betingelse
  • Motoren roterer feil vei: Bruk negativ hastighet (-50%) for å rotere motsatt vei
  • Programmet virker ikke: Test hver del for seg. Kommenter ut kode eller lag små test-programmer
  • Verdier er rare: Bruk "Vis på hub" for å debugge - vis variabelverdier eller sensordatad for å se hva som skjer

📖 Ressurser

🌐 Original LEGO-leksjon 🎡 Tilbake til Del 1 (Bygging)
🎉 Gratulerer! Du har nå lært grunnleggende programmering med sekvenser, løkker, sensorer og betingelser. Dette er byggesteinene i all robotikk og programmering!