ETTER super:bit-oppdraget

 

Her kommer fire morsomme og utfordrende programmeringsoppgaver. Dere må ha gjennomført de to foregående bolkene med oppgaver før dere starter på denne. Oppgavene kan gjennomføres i klasserommet. De krever noe utstyr, og skoler som er med på Super:bit får dette fra vitensentrene. 

Illustrasjon av tallet tre.

Oppgave 1 - Oppfrisking av kjøring med Bit:Bot

Oppgave 1 - Oppfrisking av kjøring med Bit:Bot

Elever med Bit:Bot.

Mål med øvelsen:

Nå skal vi kjøre Bit:Bot på smartby-matta igjen. Dette blir en repetisjon av øvelsen dere gjorde sammen med vitensenteret.

Samtidig flytter vi koden for kjøring - over i en annen «start-blokk», slik at vi kan bruke sensorene samtidig som vi kjører.

 

Utstyr / ressurser:

  • micro:bit
  • Bit:Bot
  • smartby-matte

 

Kjøring med Bit:Bot:

Gi eleven et start- og et sluttpunkt, og la dem programmere en rute til målet.

Denne gangen skal vi imidlertid flytte koden fra «ved start» - og over i en annen start-blokk. Vi gjør dette fordi blokken «ved start» er prioritert, og alt som ligger inne i denne blokken blir lest/kjørt før annen kode.

I eksempelet her (eksempel 1) vil LED 0 på Bit:Bot tennes først, så vil Bit:Boten kjøre en løype, og til sist vil lyset begynne å rotere.

Hvis vi skal bruke sensorer så vil vi putte avlesingen av disse inne i en «gjenta for alltid»-blokk. Men koden her vil ikke kjøres før all koden inne i «ved start»-blokken er ferdig.

Derfor: Hvis vi skal bruke den ultrasoniske sensoren til å oppdage hindringer foran Bit:Boten, er vi avhengige av at kjørekoden ligger i en startblokk som ikke har høyere prioritet enn «gjenta for alltid»-blokken.

Løsning: Med Bit:Bot XL kan vi bruke «når knapp A trykkes»-blokken til å starte koden. Se eksempel 2.Med Bit:Bot Classic kan vi bruke «når ristes»-blokken, og bruke nedtrekksmenyen til å bytte til «når logo opp». Koden vil da kjøre når micro:bit merker at den ligger vannrett, med logoen opp, slik den gjør når den sitter i Bit:Bot.

 

Lek med lys:

Bit:Bot har 12 LED-lys som kan programmeres, og dette åpner for en masse muligheter. Se eksempel 3. Hva med å programmere Bit:Boten til å lyse som et utrykningskjøretøy? Eller kanskje det er på sin plass med et lysshow når løypa er overvunnet?

 

Bit:Bot
Elever med Bit:Bot.

Hvis du vil skrive ut:

Her finner du oppgaven som pdf  (bokmål)

(Nynorsk versjon foreløpig ikke tilgjengelig)

Kompetansemål fra lærerplanene:

Hovedområder og kompetansemål fra læreplanene. 

Kodeblokker kjøring med Bit:Bot.

Eksempel 1.

Slik må kodeblokkene legges opp.

Eksempel 2. Gjelder Bit:Bot XL.

Lek med lys på Bit:Bot.

Eksempel 3. Lek med lys.


TIPS:
 Blokken som kalles «når skjerm opp» kjører koden sin når micro:biten har skjermen oppover. (Det har micro:bit når den er montert i bit:bot.) Det betyr at den vil starte på samme måte som dere er vant til når dere har brukt «ved start»-blokken. Forskjellen er at vi nå kan bruke en «gjenta for alltid»-blokk samtidig som vi kjører bit:bot, hvis vi ønsker det. For eksempel kan vi kjøre med sonar/ultrasonisk sensor. 

Bilde av blokker.

TIPS: Vi finner styring av LED-lys under Bitbot-fanen og underfanen LED. Se bilde. Ved hjelp av disse blokkene kan dere få bit:bot til å lyse på mange forskjellige måter. (LED=Light Emitting Diode.) 

Klarer dere å få annethvert lys til å være rødt og blått? Og så få dem til å rotere rundt?

Her styrer vi LED-lys.

Oppgave 2 - Kjøring med ultralydsensor / sonar

Oppgave 2 -  Kjøring med ultralydsensor / sonar

Elever med Bit:Bot.

Mål med øvelsen / introduksjon: 

I en smart by må vi ha smarte kjøretøyer - som unngår å kjøre på hindringer og andre trafikanter!

Bit:Bot har en ultralydsensor som bruker lydbølger til å oppdage hindringer foran seg. Denne teknologien kalles også for sonar, og fungerer ved at sonaren sender ut et ultrasonisk lydsignal, og så måler hvor lang tid det tar før den hører et ekko. Jo nærmere noe er, jo kortere vil tiden fra lydsignalet sendes ut til mikrofonen fanger opp ekkoet være. 

Så gjenstår det bare å programmere Bit:Bot til å bremse hvis noe kommer i nærheten.

 

Utstyr:

  • micro:bit
  • Bit:Bot med sonar
  • Smartby-matte 

Bruk av sensorer:

Når vi bruker sensorer må vi passe på å legge prosessen i en «gjenta for alltid»-løkke. Hvis vi legger koden utenfor en slik løkke vil sensoren sjekkes en gang, og så være av resten av kjøringen.

Problemet med koden til høyre (eksempel 1) er at den først vil aktiveres når den kjøreblokken som er aktiv er ferdig. Det vil for eksempel være problematisk dersom en hindring dukker opp i starten av den tredje blokken under «når knapp A trykkes». Bit:Bot vil da fortsette framover i 2 sekunder til før den endelig stopper.

 

For å unngå dette må vi bruke variabler til å styre farten til Bit:Bot. Vi starter med å lage to variabler, en som vi kaller «fart rett frem», og en som vi kaller «fart sving». (Se eksempel 2).

En variabel er en plassholder for tall og verdier. Det lar oss endre verdier i koden vår, for eksempel farten til Bit:bot, ved hjelp av sensorer.

 

Vi starter med å definere variablene slik at Bit:Boten kjører som normalt når den starter.

I «kjørekoden» erstatter vi farten, med variabelen som passer, «fart rett frem», eller «fart sving». (Se eksempel 3.)

 

Helt til slutt bruker vi «Hvis betingelsen» til å endre farten hvis den oppdager en hindring nærmere enn 10 cm. Variabelen vil endres umiddelbart, og farten vil settes til 0, selv om Bit:Bot er midt i en «kjøre-blokk». (Se eksempel 4.)

 

Se riktig kode i makecode her.

 

 

Bit:Bot
Elever programmerer

Hvis du vil skrive ut:

Her er oppgaven som pdf (bokmål)

(Nynorsk versjon foreløpig ikke tilgjengelig)

Bilde av kodeblokker. Eksempel 1.

Eksempel 1

Variabler i makecode. Eksempel 2.

Eksempel 2

Bilde av kodeblokker. Eksempel 3.

Eksempel 3

Bilde av kodeblokker. Eksempel 4.

Eksempel 4

Kompetansemål fra læreplanene:

Hovedområder og kompetansemål fra læreplanene

Oppgave 3 - Bygg og programmer et automatisk gatelys

Bygg og programmer et automatisk gatelys 

Elever i samtale med lærer.

Mål med øvelsen:

Her skal elevene lage gatelys som slår seg på automatisk hvis det blir mørkt ute. Vi bruker en micro:bit både som lyssensor og til å styre lyset.

 

Utstyr:

  • micro:bit med batteriholder
  • LED (lysdiode)
  • To ledninger med krokodilleklemmer
  • Sugerør e.l.

 

Gjennomføring:

Det lange beinet til LEDen skal kobles til for eksempel P0 på micro:bit. Det korte beinet skal kobles til GND (jord). Se bildet til høyre. Vi skulle egentlig også hatt en motstand til å begrense strømmen, men micro:bit leverer såpass lite strøm gjennom utgangene at det som regel går helt fint uten.

Så kan en for eksempel bruke et sugerør med passelig diameter så det ser litt ut som et skikkelig gatelys. (Se bilde.) Her kan det også brukes papp, kartong eller noe annet man har liggende.

Programmeringen her er relativt enkel. Vi trenger at koden sjekker lysnivået, og hvis dette er under en viss verdi, så går lyset på. Ett forslag er at elevene får et hint om å bruke følgende blokker: (Se eksempel under eller klikk på denne lenka for å gå til makecode.)

Kodeblokker for å programmere gatelys.

Deretter må elevene selv finne ut hvordan dette skal pusles sammen. Repeter gjerne hva det betyr å skrive digital til 0 og 1. (strøm av og på). Verdien 50 for lysnivået må tilpasses lysnivået i klasserommet, og er noe de må prøve seg fram til.

Her er et løsningsforslag, men la elevene få prøve litt på egenhånd før de får se det.

 

 

Ekstraoppgave: Styring ved hjelp av radiosignaler

De elevene som blir fort ferdige med gatelyset kan få en ekstra utfordring med å bruke radiosignaler - slik at en lyssensor kan styre mange gatelys på én gang. Micro:biten som brukes som lyssensor sender da ut et radiosignal som mottas av en eller flere micro:biter som styrer gatelyset. Her kan man lage flere mottaker-enheter og lyse opp hele byen!

Siden dette sannsynligvis er første gang elevene kommer borti radiofunksjonen til micro:bit, kan det være lurt at de skriver av de ferdige programmene. Det ligger bilder av disse på elevsiden

Så kan de heller fritt utforske radiostyring videre etterpå. Hva med å forsøke å fjernstyre Bit:Boten?

 

Programmering av senderen: 

Det trengs ikke kobles noe til denne micro:biten utenom batteriholder.

Vi bruker den innebygde lyssensoren til micro:biten, og skal programmere den til å sende et radiosignal hvis omgivelsene blir for mørke.

Det første vi gjør når vi skal bruke radiofunksjonen til micro:bit, er at vi ved start velger hvilken gruppe vi skal bruke. Her kan vi velge fra 0 til 255. Er det flere elever som holder på med hvert sitt prosjekt, er det god praksis å bruke forskjellige grupper så de ikke forstyrrer hverandre. Se eksempel til høyre eller gå til makecode.

Her er det satt opp til å sende verdien 1 hvis lysnivået er mindre enn 3, og ellers skal den sende verdien 0. Her må en prøve seg fram litt til hvilket lysnivå som fungerer.

Vi ser at programmeringen av senderen er ganske lik slik den var når gatelyset stod for seg selv. Forskjellen er at i stedet for å skru et lys av og på, skal den enten sende verdien 1 eller 0 via radio til andre micro:biter som er mottakere. I tillegg har den en liten pause så den ikke sender radiosignaler hele tiden.

 

 

Programmering av mottakeren:

En LED (lysdiode) kobles til med ledninger og krokodilleklemmer, slik som i forrige oppgave. Når denne mottar et tall via radio, må vi få den til å sjekke om dette tallet er 1. Hvis det er det, skal lyset gå på. Er tallet noe annet enn 1, skal lyset være av. Se eksempel til høyre eller gå til makecode.

Hvis du vil skrive ut oppgaven:

(Nynorsk versjon foreløpig ikke tilgjengelig)

Slik kopler du.
Gatelys laget av et sugerør.

Kompetansemål fra læreplanene:

Hovedområder og kompetansemål fra læreplanene

Kodeblokker for programmering av sender.

Programmering av senderen.

Kodeblokker for programmering av mottaker.

Programmering av mottakeren.

Oppgave 4 - Frioppgave: Bygg og programmer det du vil!

Oppgave 4 - Frioppgave: Bygg og programmer det du vil!

Elev med lys-dioder.

Mål med øvelsen:

I den siste delen av etterarbeidet slipper vi elevene løs. Nå skal de få lov til å bygge og programmere det de vil. Som lærer kan det være utfordrende, for elevene kommer ganske sikkert til å ønske å gjøre ting som vi ikke kan. Oppgaven vår nå blir derfor å veilede elevene slik at de selv kan finne svarene. La dem diskutere seg imellom og bruke nettressurser til å finne ideer og løsninger. For eksempel har micro:bit ei nettside med mange tips til ting dere kan lage - alt fra spill og musikk til skritt-tellere: https://makecode.microbit.org/ 

 

Utstyr:

  • micro:bit
  • Bit:Bot med sonar
  • Papp
  • Sakser
  • Tape
  • LED-pærer og ledninger med krokodilleklemmer
  • Evt. en smartby-matte

 

Gjennomføring:

La elevene få fundere i fellesskap om hva de ønsker å kunne programmere og hva slags blokker de kan komme til å trenge for å få det til. Snakk om mulige ting som kan programmeres og lages med micro:bit og Bit:Bot, og la elevene få prøve seg fram. På slutten av økta kan de gruppene som har lyst få vise fram det de har lagd. La dem forklare hva de ønsket å lage og hvordan de fant løsningen sin.

 

Hvis du vil skrive ut oppgaven:

Her finner du oppgaven som pdf (bokmål)

(Nynorsk versjon foreløpig ikke tilgjengelig)

Kompetansemål fra læreplanene:

Hovedområder og kompetansemål fra læreplanene.

Elever med Bit:Bot

Nyttige tips:

 

Bruk av radio for å kommunisere mellom to eller flere micro:biter:

Sett alle micro:bitene som skal brukes sammen til å være på samme radiogruppe.
Til høyre er ett eksempel på hvordan vi kan styre farten til en Bit:Bot ved hjelp av en annen micro:bit (eksempel 1).

 

 

 

Senderen kan for eksempel ha koden i eksempel 2 til høyre: Den vil kontinuerlig sende ut akselerasjonen den måler langs y-aksen til micro:biten. Det er en verdi som går fra -1023 til +1023. Bit:Bot vil nå kjøre framover når micro:bit peker bakover, og bakover når micro:biten peker framover. Hvis dere ønsker at det motsatte skal skje, kan dere bruke en matematikkblokk og multiplisere verdien med -1. 

 

 

Bruk av variabler og «hvis-betingelser»:

Ved å bruke en variabel og en «hvis-betingelse» kan vi lage sekvenser som forandrer seg og «nullstiller» seg. I denne koden (se eksempel 3) tenner vi et rødt lys og flytter det helt til alle de 12 LED-lysene er blitt lyst opp, før vi starter på LED 0 igjen. Legg merke til at de 12 LED-ene på Bit:Boten er nummerert fra 0-11.

Kodeblokker for radiostyring.

Eksempel 1

Eksempel på kode for senderen.

Eksempel 2

Kodeblokker med variabler.

Eksempel 3