PXT: Ildfluer
Skrevet av: Oversatt fra makecode.microbit.org
Oversatt av: Kolbjørn Engeland
Introduksjon
Ildfluer blinker i mørket om natta. Noen ildfluer er spesielle ved at de kan blinke nesten i takt. Hvordan er dette mulig? Forskere har funnet ut at hver ildlfue har sin egen interne klokke og blinker med jevne mellomrom. I tilleg ser hver ildflue når naboen blinker, og da endrer de litt på på sin egen klokke. Til slutt kan da hele svermer av ildlfluer blinke i takt. Du kan lese mer om ildlfuer og synkronisert blinking på denne nettsiden.
I denne oppgaven skal vi kode micro:bitene slik at de fungere som en sverm med blinkende ildfluer.
Steg 1: Vi lager en ensom ildflue
Det første vi skal gjøre er å lage en ensom ildflue som ikke kommuniserer med de andre. Det gjør vi ved å lage en intern klokke som teller langsomt oppver. Hver gang den når verdien 8 bruker en endre poengsum
-kloss fra Spill
-menyen for å vise en liten animasjon.
Sjekkliste
basic.forever(function () { if (klokke >= 8) { game.addScore(1) basic.pause(200) klokke = 0 } else { basic.pause(100) klokke += 1 } })
Test prosjektet
Nå kan dere teste om micro:biten blinker med jevne mellomrom
Steg 2: Ildfluene kommuniserer
Vi kan nå få micro:bitene til å kommunisere ved å be de sende ut et radiosignal hver gang de blinker. Vi vil også la alle micro:bitene motta radiosignal fra naboene og endre klokka når signalet mottas.
Sjekkliste
radio.setGroup(1)
basic.forever(function () { if (klokke >= 8) { radio.sendNumber(0) game.addScore(1) basic.pause(200) klokke = 0 } else { basic.pause(100) klokke += 1 } })
radio.onReceivedNumber(function (receivedNumber) { klokke += 1 })
Test prosjektet
Nå kan dere teste om micro:biten blinker med jevne mellomrom
Steg 4: Noen utfordringer
Noen forslag til endringer og utvidelser, men prøv selv dine ideer!
Flere ideer
Nedenfor er noen ideer til videreutvikling, men finn gjerne på noe helt eget!
Lisens: CC BY-SA 4.0
Forbedre denne siden
Funnet en feil? Kunne noe vært bedre?
Hvis ja, vennligst gi oss tilbakemelding ved å lage en sak på Github eller fiks feilen selv om du kan. Vi er takknemlige for enhver tilbakemelding!