Etter super:bit-oppdraget

Her finner du morsomme og utfordrende kodeoppgaver dere kan gjøre i klassen. Du må ha gjort de to første delene av super:bit-oppdraget før du starter her. OBS: Det trengs noe utstyr for å gjøre oppgavene, og skolen får dette utstyret fra vitensentrene. 

 

Illustrasjon

Oppfriskning av kjøring med Bit:Bot

Oppfriskning av kjøring med Bit:Bot

Lærer og elev programmerer bitbot

 

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». Da kan vi senere bruke sensorene samtidig som vi kjører.

 

Utstyr:

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

 

Kjøring med Bit:Bot:

Finn en rute som dere vil kjøre, og programmer en rute frem til målet. Det som er annerledes denne gangen er at vi ikke skal putte koden for kjøring inn i «ved start» blokken slik dere gjorde da dere kjørte med vitensenteret, men legge koden inn i blokken  «når knapp A trykkes». Vi gjør det fordi det lar oss bruke sensorene til Bit:bot samtidig som vi kjører ruta vår. I den neste oppgaven skal dere programmere Bit:boten til å nødbremse hvis den merker en hindring foran seg, og da er det greit at koden ikke ligger i «ved start» blokken. 

 

Lek med lys:

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

Hva skjer hvis vi bruker blokken «sett LED i regnbue» og samtidig har en «roter LED» blokk inne i en «gjenta for alltid» blokk?

Bit:Bot.
Elev følger med på Bit:Bot

Tilbake til start - kjør på veien gjennom hele byen

Tilbake til start - kjør på veien gjennom hele byen

Bilde av elever og lærere som programmerer

Skal du prøve deg på denne utfordringen, bør du ha klart oppfriskningsoppgaven, det vil si å kjøre BitBoten fra START til MÅL i SmartByen. 

I denne oppgaven skal du jobbe videre med programmet fra oppfriskningsoppgaven, men nå skal du se om du klarer å kjøre en hel runde, og stoppe der du startet.

For å gjøre dette skal du bruke ei LØKKE.

Hva skjer når du legger kjørekoden din inn  i en slik LØKKE ?

Må du gjøre noen endringer i koden din eller legge til noe på slutten for å få bilen til å kjøre gjennom hele byen (på veien) og ende opp der du startet?

Bilde av superbitmatten med en markering av kjørevei

Trafikklys - styr trafikken med trafikklys

Trafikklys - styr trafikken med trafikklys

Bilde av trafikklys

Trafikklysene i byen virker ikke som de skal!

Kan dere hjelpe til med å fikse lysstyringsprogrammet?

 

Du trenger: Trafikklys koblet til micro:bit

 

Slik er programmet til å begynne med:

Digital verdi (1) betyr strøm .
Digital verdi (0) betyr strøm AV.

P0 (pin null) styrer RØDT LYS.
P1 (pin en) styrer GULT LYS.
P2 (pin to) styrer GRØNT LYS.

Det gule lyset går på/av hvert 2. sekund.

 

Hvordan kan dere legge til flere blokker og forandre koden for å få lysstyringsprogrammet til å styre lyset i rett sekvens?

 

Hva synes dere er passelige pauser?
Bør det være like lenge hver gang?

Lærer viser programmering av trafikklys
Bilde av trafikklys
Kodesnutt

Robotgressklipper (ultrasensor) - lag en robotgressklipper som unngår hindringer

Robotgressklipper (ultrasensor) - lag en robotgressklipper som unngår hindringer

Barn programmerer

SmartByen har noen robotgressklippere som skal kjøre rundt i parkene og klippe gresset. Hjelp til med å lage et program sånn at de ikke kolliderer med ting og tang. 

Du trenger: BitBot med ultralydsensor.

Startkoden bruker VILKÅR, som ligger under LOGIKK.

 

Her starter programmet med å sjekke om ultralydsensoren (sonaren) måler en avstand på under 10 cm.

Hva synes dere bør skje hvis avstanden er under 10 cm?
Og hva skal skje ellers, dersom avstanden er over 10 cm?

De to boksene som ligger løst under gjenta for alltid-blokka, er forslag til blokker fra BitBot-menyendere kan bruke. Her er det mange måter å løse oppgavene på, så prøv dere fram og se hva dere synes fungerer best. Prøv å forandre litt på avstanden eller legg inn pauser i programmet hvis ting skurrer.

Kodeblokk

Robotgressklipper (linje) - lag en robotgressklipper som holder seg på gressmatta

Robotgressklipper (linje) - lag en robotgressklipper som holder seg på gressmatta

Elever koder

SmartByen har rammet inn et parkområde med en svart strek, og vil at en BitBot-robotgressklipper skal kjøre fram og tilbake innenfor dette området og klippe gresset.

Du trenger: BitBot

Startkoden bruker VILKÅR, som ligger under LOGIKK.

 

Når venstre linjesensor = 1, betyr det at den venstre linjesensoren ser noe mørkt.

Hva tror dere bør ligge i boksen etter ellers hvis?

 

De to boksene som ligger løst under gjenta for alltid-blokka er forslag til blokker fra BitBot-menyendere kan bruke, men her er det mange måter å løse oppgavene på, så prøv dere fram og se hva dere synes fungerer best.

Kodeblokk

Selvkjørende bit:bot (linjesensor) - programmér roboten til å bli selvkjørende

Selvkjørende bit:bot (linjesensor) - programmér roboten til å bli selvkjørende

Bilde av bitbot

I SmartByen er det tegnet opp svarte linjer på veiene som skal hjelpe selvkjørende biler med å holde seg på veien. Kan dere programmere BitBoten til å følge linjene?

 

Du trenger: BitBot

 

Startkoden bruker VILKÅR, som ligger under LOGIKK.

 

Linjesensoren sender:
1 = svart
0 = lyst

Kodeblokk

Hvilke fire alternativer kan roboten treffe på når den får informasjon fra venstre og høyre linjesensor? To av alternativene ligger der allerede. Kopier to til og tilpass.

 

De to blokkene som ligger løst under gjenta for alltid-blokka er forslag til blokker fra BitBot-menyen dere kan bruke, men her er det mange måter å løse oppgavene på, så prøv dere fram og se hva dere synes fungerer best.

Bilde av elever som ser på en bitbot kjøre
To jenter viser en microbit

Radiostyrt bit:bot - lag en radiostyrt robot

Radiostyrt bit:bot - lag en radiostyrt robot

Bilde av en bitbot

Her bør dere samarbeide med en annen gruppe, slik at den ene gruppa programmerer BitBoten, og den andre fjernkontrollen.

 

Gruppe 1:     micro:bit med batteripakke og Oppgave 2F-1.

Gruppe 2:     BitBot og Oppgave 2F-2.

Begge programmene starter med å melde begge micro:bitene inn i en radiogruppe. Velg et tall mellom 1 og 255, men pass på at dere bruker den samme radiogruppa.

 

Gruppe 1:

Deres micro:bit skal sende signal (tall) til BitBoten, og de forskjellige tallene får den til å kjøre, svinge og stoppe. Startkoden (Oppgave 2F-1) har to forslag til blokker liggende klar. Den første sender tall når du klikker på A, B eller A+B. Den andre bruker akselerometeret (bevegelser).

Hvor mange slike bokser trenger dere for å få bilen til å gjøre som dere vil, og hvilke knapper eller bevegelser gir mest mening?

Kodeblokk

Gruppe 2:

Programmet deres skal få BitBoten til å kjøre, svinge og stoppe når den mottar ulike signal (tall) fra den andre gruppa sin micro:bit.

Startkoden (Oppgave 2F-2) inneholder en viktig blokk som dere kan arbeide videre med.  

Blokka blir aktivert når micro:biten i BitBoten mottar et tall via radio. Deretter bruker denVILKÅR (hvis-logikk) for å sjekke om BitBoten skal kjøre, svinge eller stoppe, avhengig av hvilket tall den mottar.

Dere kan legge til flere vilkår (ellers hvis), ved å klikke på pluss-tegnet (+) nederst i blokka.

 

NB! Det er lurt at begge gruppene har kontroll på både sitt eget program og den andre gruppa sitt program. Da kan dere bli enige om hvilket tall som skal gjøre hva, og ikke minst hjelpe hverandre med å finne eventuelle feil.

 

kodeblokk

Gatelys - lag et gatelys som skrus på når det blir mørkt

Gatelys - lag et gatelys som skrus på når det blir mørkt

Bilde av lærer og to elever

En smart by trenger selvsagt automatiske gatelys som slår seg av og på av seg selv. Micro:biten har innebygget lyssensor, så den kan merke om det er lyst eller mørkt, og dette skal vi bruke til å styre gatelysene.

 

Utstyr

Du trenger: micro:bit, LED (lysdiode), to ledninger med krokodilleklemmer, sugerør e.l.

 

Kobling

Det lange beinet til LEDen skal kobles til for eksempel P0 på micro:bit. Det korte beinet skal kobles til GND (jord).

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

Når gatelyset skal programmeres trenger vi å sjekke om det er mørkt. Hvis det er det, skal gatelyset slå seg på. Hvis det ikke er mørkt skal lyset gå av. Klarer dere å pusle sammen programmet slik at gatelyset virker som det skal?

https://makecode.microbit.org/_PucKitJ9Agfc

Tallet 50 må dere sannsynligvis tilpasse slik at det passer med slik lyset er i klasserommet.

Kodeblokk

Utvidelse: styring ved hjelp av radiosignaler

Hadde det ikke vært stilig om det var en micro:bit som kunne merke om det var mørkt, og så sende et radiosignal til alle gatelysene i byen? Her er en oppskrift på hvordan dette kan settes opp. Da trenger dere en micro:bit som sender (dette blir lyssensoren) og en eller flere gatelys som mottakere.

 

Programmering av senderen

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

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, og her kan vi velge fra 0 til 255. Både sender og mottaker må bruke det samme tallet her for at det skal virke.

https://makecode.microbit.org/_YVD7Kb2HhYzY

Kodeblokk

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å vi prøve oss 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. I tillegg har den en liten pause så den ikke sender radiosignaler hele tiden.

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

 

Programmering av mottakeren

En LED (lysdiode) kobles til med ledninger og krokodilleklemmer, slik som før. 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.

https://makecode.microbit.org/_h9aD41ef20F4

Kodeblokk
Bilde av trafikklys
Kobling
Bilde av sugerør

Bom med servo - kontrollér trafikken med en automatisk veibom

Bom med servo - kontrollér trafikken med en automatisk veibom

Bilde av en bom

Det holder ikke med lyssignaler. Vi trenger en bom!

Kan dere bygge en bom som stopper trafikken?

 

Du trenger:

  • En 180° servo
  • en micro:bit
  • en bit:bot
  • papp eller annet egnet materiale.
  • en skarp kniv/saks
  • superlim/tape eller en liten stjernetrekker.

 

Bygg en bom, den kan for eksempel se slik ut (se bildet over).

 

Tips: Hvis bommen er ca. 5cm høy, så vil en bit:bot som bruker sonar kunne stoppe automatisk når bommen er nede.

 

Pass på et du har en passelig åpning til servoen, et rektangel på ca. 22mm 12mm burde være passelig.

Bilde av utstyr som trengs i oppgaven
Bilde av utskjært papp til bom

Hent blokken «servo skriv til P0 verdi 180» som dere finner i menyen «Tilkobling».

Bruk «når knapp A trykkes» blokken, og bygg en kode som veksler mellom 180° og 90°.

Kodeblokk

Det er viktig at dere velger å P1, eller P2, for det er disse portene dere kan sende servo-signal til gjennom bit:bot.

Koble servoen til bit:boten. Husk at den oransje ledningen skal være mot fronten på bit:boten. Last ned koden, og styr bommen. Juster bommen slik at den peker rett opp med den ene knappen, og rett til siden med den andre knappen.

Med bit:bot kan vi styre to servoer samtidig. Pass på at du sender signalet til riktig port! P1 er innerst, P2 er ytterst.

Kodeblokk
Bilde av bitbot

Utfordring 1:

Få bommen til å gå opp og igjen av seg selv.

 

Utfordring 2:

Fjernstyr bommen med en annen micro:bit

 

Her er en kode som kontrollerer bommen (se kodeblokk til høyre). Klarer dere å programmere en sender som fungerer med denne koden? Kan dere få et trafikklys til å sende et åpne-signal når lyset er grønt, og et lukke-signal når lyset er rødt?

Kodeblokk

Tips og triks:

Det er mulig å få bommen til å åpne og lukke seg med en roligere bevegelse. Her er en kode som får bommen til å bruke ett sekund på å åpne eller lukke seg.

Kodeblokk