Gå til innhold

Lag en terning med Micro Bit

Introduksjon

Dette er en oppskrift som passer deg som er nybegynner i Micro Bit. Den tar omtrent en halvtime å gjennomføre. I denne oppskriften vil du programmere Micro Biten til å bli en terning som du kan bruke til å spille brettspillet Snakes and Ladders.

Du vil lære

  • å få Micro Biten til å gjøre noe når den ristes
  • å lage animasjoner på skjermen til Micro Biten
  • å bruke en variabel til å huske et tall

Du trenger

  • en Micro Bit
  • en USB-kabel til overføring
  • en batteripakke med to AAA-batterier
  • en utskrift av brettspillet Snakes and Ladders

Steg 1: Gjør noe når Micro Biten ristes

Micro Biten har en sensor som gjør at den kan merke når den ristes. Den skal vi bruke til å lage vår egen Micro Bit-terning. I dette steget skal du få Micro Biten til å reagere på at den ristes og da vise et terningkast.

  • Begynn med å åpne nettsiden MakeCode for micro:bit.

  • Trykk på knappen Nytt Prosjekt for å starte et nytt prosjekt.

  • Gi prosjektet navnet Lag en terning ved å skrive i tekstfeltet nederst på siden.

  • Slett alle klossene som ligger i lærretet. Du sletter en kloss ved å dra den til venstre over kategoriene. Slipp klossen når søplespannet vises for å slette den.

Micro Biten kan reagere på forskjellige typer inndata. Inndata er noe som skjer med Micro Biten og som du ønsker den skal reagere på. Noen eksempler på inndata er å trykke på en knapp på Micro Biten eller å vende den opp-ned. I dette programmet ønsker vi at Micro Biten skal reagere på at den ristes.

  • Dra klossen når ristes fra kategorien Inndata og slipp den et sted på lærretet.
input.onGesture(Gesture.Shake, function () {
})

Som du ser ovenfor er det en munn på når ristes-klossen. Hvis du plasserer en kloss i munnen på når ristes vil denne klossen utføres når Micro Biten ristes. Alle klosser som blir plassert i munnen til en kloss fra Inndata-kategorien vil utføres om Micro Biten får denne typen inndata.

Du skal nå fortelle Micro Biten at den skal vise tallet 0 når den ristes.

  • Trykk på kategorien Basis og finn vis tall 0-klossen. Ta tak i klossen og plasser den i munnen til når ristes.
input.onGesture(Gesture.Shake, function () {
    basic.showNumber(0)
})

Test programmet

Til venstre på siden er det et bilde av en Micro Bit. Denne kan du bruke til å teste programmet ditt mens du koder. Trykk på den hvite sirkelen ved siden av SHAKE. Da tror Micro Biten at du rister den, og den vil vise tallet null.

Steg 2: Vis et tilfeldig tall fra 1 til 6

Du har nå programmert at Micro Biten skal vise tallet null når den ristes. Men når du kaster en ekte terning vil den lande på og vise et tilfeldig tall fra en til seks. For å få til dette må vi fortelle Micro Biten at den skal vise et tilfeldig tall fra en til seks når den ristes.

  • Finn klossen velg tilfeldig 0 til 10 i kategorien Matematikk. Ta tak i klossen og slipp den på verdifeltet 0vis tall-klossen.

  • Trykk på verdifeltet 0velg tilfeldig 0 til 10 og skriv inn tallet 1.

  • Trykk deretter på verdifeltet 10velg tilfeldig 1 til 10 og skiv inn tallet 6.

input.onGesture(Gesture.Shake, function () {
    basic.showNumber(Math.randomRange(1, 6))
})

Test programmet

Trykk SHAKE på Micro Biten. Den skal nå vise ett tilfeldig tall fra en til seks hver gang du trykker på SHAKE.

Det virker ikke!

Hvis Micro Biten ikke viser et tilfeldig tall fra en til seks hver gang du trykker SHAKE så er noe galt i programmet ditt. For å finne feilen bør du lese oppskriften om igjen og se nøye på bildene. En vanlig feil er å glemme å skifte tallene i verdifeltet på velg tilfeldig fra 0 til 10 til 1 og 6.

Utfordring

Vanlige terninger har øyne fra en til seks. Men noen terninger har øyne fra en til tjue. Disse kalles for D20-terninger. Hva må du forandre i koden du har laget for å få Micro Biten til å fungere som en D20-terning?

Steg 3: Lage en terninganimasjon

Terningen din fungerer nå, men den er litt kjedelig. Den viser kun ett tall for hver gang du rister Micro Biten. Det ville vært mye kulere om terningen viste mange tilfeldige tall fra en til seks før den til slutt landet på et tall. For å få til dette må du lage en animasjon.

  • Finn klossen gjenta 4 ganger fra kategorien Løkker. Dra den over til vis tall i programmet ditt. Når vis tall er i munnen til gjenta 4 ganger slipper du klossen for å plassere den.
input.onGesture(Gesture.Shake, function () {
    for (let i = 0; i < 4; i++) {
        basic.showNumber(Math.randomRange(1, 6))
    }
})

Klossene som plasserer i munnen til gjenta 4 ganger vil utføres fire ganger etter hverandre. Antall ganger klossene i munnen utføres av gjenta bestemmes av tallet som står i verdifeltet til gjenta-klossen.

Vi vil at Micro Biten skal utføre vis tall fem ganger etter hverandre. For å få til dette må vi skifte tallet i verdifeltet til fem.

  • Trykk på tallet 4 i verdifeltet på gjenta 4 ganger og skriv inn tallet 5.
input.onGesture(Gesture.Shake, function () {
    for (let i = 0; i < 5; i++) {
        basic.showNumber(Math.randomRange(1, 6))
    }
})

Hvis du nå tester programmet ditt vil se du at tallene skifter litt for fort. For å få hvert tall til å vises lengre på skjermen må vi legge til en pause mellom hver gang et tall vises.

  • Finn klossen pause (ms) 100 fra kategorien Basis og plasser den under vis tall. Pass på at pause-klossen plasseres i munnen til gjenta 5 ganger.
input.onGesture(Gesture.Shake, function () {
    for (let i = 0; i < 5; i++) {
        basic.showNumber(Math.randomRange(1, 6))
        basic.pause(100)
    }
})

Test programmet

Trykk på SHAKE for å teste programmet ditt. Micro Biten skal nå vise fem tilfeldige tall på skjermen hver gang du trykker SHAKE.

Utfordring

Hva må du forandre i koden din for å få Micro Biten til å kun vise tre tilfeldige tall hver gang du trykker på SHAKE?

Steg 4: Lag en blinkeanimasjon

Terningen fungerer nå, men det kan være vanskelig å se hva tall terningen lander på til slutt. Det kan vi gjøre tydeligere ved å lage en ny animasjon som får tallet terningen lander på til å blinke.

  • Finn klossen gjenta 4 ganger i kategorien Løkker. Plasser den under gjenta 5 ganger. Skift tallet i verdifeltet til 3.
input.onGesture(Gesture.Shake, function () {
    for (let i = 0; i < 5; i++) {
        basic.showNumber(Math.randomRange(1, 6))
        basic.pause(100)
    }
    for (let i = 0; i < 3; i++) {

    }
})

For å få tallet terningen lander på til å blinke trenger du noen flere klosser.

  • Finn klossen tøm skjerm. Du finner den ved å først trykke på kategorien Basis og deretter på ⋯ more som dukker opp under.
  • Ta tak i tøm skjerm-klossen og plasser den i munnen til gjenta 3 ganger.
input.onGesture(Gesture.Shake, function () {
    for (let i = 0; i < 5; i++) {
        basic.showNumber(Math.randomRange(1, 6))
        basic.pause(100)
    }
    for (let i = 0; i < 3; i++) {
        basic.clearScreen()
    }
})

Klossen tøm skjerm skrur av alle lysene på skjermen til Micro Biten. Det er en kloss som er fin å bruke hvis du vil vise noe på skjermen og så ta det vekk etterpå.

Nå skal vi finne tre klosser på en gang, men heldigvis kommer alle fra samme kategori.

  • Finn klossen pause (ms) 100 fra Basis og plasser den under tøm skjerm.
  • Ta en vis tall 0 og plasser den under pause (ms) 100
  • Ta enda en pause (ms) 100 og plasser den under vis tall 0.
input.onGesture(Gesture.Shake, function () {
    for (let i = 0; i < 5; i++) {
        basic.showNumber(Math.randomRange(1, 6))
        basic.pause(100)
    }
    for (let i = 0; i < 3; i++) {
        basic.clearScreen()
        basic.pause(100)
        basic.showNumber(0)
        basic.pause(100)
    }
})

Test programmet

Trykk på SHAKE for å teste programmet ditt. Se nøye etter om det skjer noe merkelig!

Steg 4: Husk et terningkast med en variabel

Hvis du testet programmet ditt på slutten av forrige steg så vil du ha sett en feil i programmet. Det var kun tallet 0 som blinket, og ikke terningkastet. Det skal vi fikse nå!

Heldigvis finnes det en måte å få Micro Biten til å huske det siste tallet i terninganimasjonen. Vi må bruke en variabel.

Variabler brukes i nesten alle programmer. En variabel kan være et tall eller en setning. Det kan være mange grunner til at programmer må huske noe til senere. En grunn til at et program for eksempel må huske et tall er fordi tallet skal brukes senere i et regnestykke.

  • Trykk på kategorien Variabler
  • Trykk så på knappen Lag en ny variabel. Du vil få et spørsmål om hva du vil kalle variabelen; kall den for terningkast og trykk på Ok.

Etter at du har laget variabelen terningkast vil det komme noen nye klosser i kategorien Variabel.

  • Finn klossen sett terningkast til 0 og plasser den over den øverste vis tall-klossen.
let terningkast = 0
input.onGesture(Gesture.Shake, function () {
    for (let i = 0; i < 5; i++) {
        terningkast = 0
        basic.showNumber(Math.randomRange(1, 6))
        basic.pause(100)
    }
    for (let i = 0; i < 3; i++) {
        basic.clearScreen()
        basic.pause(100)
        basic.showNumber(0)
        basic.pause(100)
    }
})
  • Dra klossen velg tilfeldig 1 til 6 vekk fra verdifeltet til vis tall og slipp den ned på verdifeltet til sett terningkast til 0.
let terningkast = 0
input.onGesture(Gesture.Shake, function () {
    for (let i = 0; i < 5; i++) {
        terningkast = Math.randomRange(1, 6)
        basic.showNumber(0)
        basic.pause(100)
    }
    for (let i = 0; i < 3; i++) {
        basic.clearScreen()
        basic.pause(100)
        basic.showNumber(0)
        basic.pause(100)
    }
})
  • Hent to terningkast fra kategorien Variabler og plasser dem på verdifeltene til begge vis tall 0-klossene.
let terningkast = 0
input.onGesture(Gesture.Shake, function () {
    for (let i = 0; i < 5; i++) {
        terningkast = Math.randomRange(1, 6)
        basic.showNumber(terningkast)
        basic.pause(100)
    }
    for (let i = 0; i < 3; i++) {
        basic.clearScreen()
        basic.pause(100)
        basic.showNumber(terningkast)
        basic.pause(100)
    }
})

Du har nå brukt en variabel til å huske det siste terningkastet. Det som skjer i programmet er at hver gang terninganimasjonen viser et tilfeldig tall så husker variabelen terningkast dette tallet. Når terninganimasjonen er ferdig og programmet går videre til blinkeanimasjonen så er det det siste tallet som ble vist i terninganimasjonen som huskes av variablen terningkast. Det er dette tallet som så blinker i blinkeanimasjonen!

Test programmet

Trykk på SHAKE for å teste programmet ditt. Skjermen på Micro Biten skal først vise fem tilfeldige tall. Det siste av de fem tilfeldige tallene skal så blinke tre ganger på skjermen.

Det virker ikke!

Hvis Micro Biten ikke viser fem tilfeldige tall og så blinker det siste tilfeldige tallet når du trykker på SHAKE så er noe galt i programmet ditt. For å finne feilen bør du se på det siste bildet av koden ovenfor og sammeligne det med din kode.

Avslutning

Gratulerer, du har nå gjort Micro Biten om til en terning! Hvis du testet programmet ditt på slutten av forrige steg og ikke fant noen feil så skal du nå overføre programmet til Micro Biten.

  • Koble Micro Biten til datamaskinen din med en USB-kabel.
  • Trykk på tannhjulet øverst til høyre på siden og velg Koble sammen.
  • Nå vises en dialogboks på siden. Trykk på knappen Koble sammen.
  • Velg BBC micro:bit CMSIS-DAP eller DAPLink CMSIS-DAP fra listen som vises og trykk på knappen Sammenkoble.
  • Trykk til slutt på knappen Last ned nederst til venstre på siden for å overføre programmet til Micro Biten.

Da er det på tide å teste terningen din med å spille brettspillet Snakes and Ladders. Koble batteripakken til Micro Biten slik at du kan ta den med deg. Gå sammen med en venn og se hvem som klarer å vinne!