Level 2PXT: Ballong Battle

Skrevet av: Sigurd Schaathun

Kurs: Microbit
Tema: Elektronikk, Blokkbasert, Spill
Fag: Matematikk, Naturfag, Programmering, Teknologi
Klassetrinn: 5.-7. klasse, 8.-10. klasse

Introduksjon

I super:bitpakken er Bit:Bot, en bil som vi kan programmere med micro:bit. I denne oppgaven skal vi lage en fjernstyring til den slik at vi kan ha battle.

Steg 1: Radiokommunikasjon

I de første oppgavene med Bit:Bot, er alt forhåndsprogrammert på en micro:bit som festes på bit:bot. Vi vil fjernstyre bit:bot og da trenger vi to micro:bit som snakker sammen.

checkSjekkliste

 {
    radio.setGroup(42)
})
input.onButtonPressed(Button.A, function () {
   radio.sendNumber(5)
})

radio.onReceivedNumber(function (receivedNumber) {
        basic.showNumber(receivedNumber))
})

flagTest prosjektet

Last inn programmet på 2 micro:biter.

Steg 2: Fjernkontrollprogrammet

Nå skal vi sette opp et enkelt fjernstyringsprogram. Micro:biten skal sende tall for å få bit:boten til å gjøre ulike ting. Foreksempel kan 0 være stopp, 1 være å kjøre fremover, 2 sving venstre og 3 sving høyre.

checkSjekkliste

input.onGesture(Gesture.Shake, function () {
    radio.sendNumber(0)
})
input.onButtonPressed(Button.AB, function () {
    radio.sendNumber(1)
})
input.onButtonPressed(Button.A, function () {
    radio.sendNumber(2)
})
input.onButtonPressed(Button.B, function () {
    radio.sendNumber(3)
})

flagTest prosjektet

Last inn programmet på den ene micro:biten.

Tips

Micro:bit har en gyro som kan registrere om den holdes vannrett eller tipper oppover eller nedover ved å bruke blokken helningsvinkel tonehøyde under Inndata-mer. Her er oversettelsen litt dårlig pitch er oversatt med tonehøyde. Det kan vi bruke for å bestemme om den skal kjøre fremover eller bakover. I tillegg kan vi bruke en hvis-løkke og sjekke hvordan knappene er trykket inn.

checkSjekkliste

basic.forever(function () {
    if (input.rotation(Rotation.Pitch) < 0) {
        if (input.buttonIsPressed(Button.AB)) {
            radio.sendNumber(1)
        } else if (input.buttonIsPressed(Button.A)) {
            radio.sendNumber(2)
        } else if (input.buttonIsPressed(Button.B)) {
            radio.sendNumber(3)
        } else {
            radio.sendNumber(0)
        }
    } else {
        if (input.buttonIsPressed(Button.AB)) {
            radio.sendNumber(4)
        } else if (input.buttonIsPressed(Button.A)) {
            radio.sendNumber(5)
        } else if (input.buttonIsPressed(Button.B)) {
            radio.sendNumber(6)
        } else {
            radio.sendNumber(0)
        }
    }
})

flagTest prosjektet

Last inn programmet på den ene micro:biten.

Steg 3: Kjøre bilen

Nå må vi lage programmet på bit:boten. Den skal oversette tallene til bevegelse. Her er det to måter å gjøre det på. Du kan legge til egne bit:bot-koder. Da går du nederst under avansert og velger utvidelser. Der velger du bit:bot og får opp en egen fane som heter bit:bot. Den andre måten er å hardkode - med å bruke skriv digital eller skriv analog. Da må du finne ut hvilken pinne som gjør hva.

checkSjekkliste

radio.onReceivedNumber(function (receivedNumber) {
    if (receivedNumber == 0) {
        bitbot.stop(BBStopMode.Coast)
    } else if (receivedNumber == 1) {
        bitbot.go(BBDirection.Forward, 100)
    }
})
radio.onReceivedNumber(function (receivedNumber) {
    if (receivedNumber == 0) {
        pins.digitalWritePin(DigitalPin.P16, 0)
        pins.digitalWritePin(DigitalPin.P14, 0)
        pins.digitalWritePin(DigitalPin.P12, 0)
        pins.digitalWritePin(DigitalPin.P8, 0)
    } else if (receivedNumber == 1) {
        pins.digitalWritePin(DigitalPin.P16, 1)
        pins.digitalWritePin(DigitalPin.P14, 1)
        pins.digitalWritePin(DigitalPin.P12, 0)
        pins.digitalWritePin(DigitalPin.P8, 0)
    }
})

Tips

skriv digital er enten 0 eller 1. Hvis du vil kjøre med redusert fart, kan du bruke skriv analog. Da kan du justere kraften mellom 0 og 1023. Dette må vi bruke for å kunne svinge mens vi rygger.

På undersiden av bit:bot, står det hvilke pinner motoren er koblet til. Når det står P14/P8, er det en pinne for å kjøre fremover og en for å kjøre bakover. Hvis du setter strøm på begge samtidig, vil ikke motoren gå.

flagTest prosjektet

Last inn programmet på micro:biten du setter i bit:boten.

Utfordring

flagBallongBattle

Da er det å blåse opp en ballong og dytte den nedi pennefestet på bit:boten, og feste en knappenål med tape foran på festet. Da kan dere prøve å sprekke ballongene til de andre, mens du beskytter din egen ballong.

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!