LED lampor

Micro:bit har 25 röda lysdioder (LED Lampor) som man kan tända och släcka med sin kod. Använd dom för att visa text, siffror, animationer och mer.

Visa bilder

Det finns många olika block för att styra lamporna. När man vill visa en bild, eller göra animationer med hjälp av flera bilder efter varandra, är ”visa lysdioder”-blocket väldigt smidigt. Tryck på en ruta för att byta mellan grå (släckt) och röd (tänd). I JavaScript läget blir det en punkt (släckt) eller ett nummertecken (tänd). Det finns även ett block med några förhandsgjorda bilder, som heter ”visa ikon”. När man vill visa en riktning, till exempel när man bygger en kompass, finns det även ett block specifikt för att visa pilar. Den heter ”visa pil”, och finns under Mer när man har öppnat Grundläggande kategorin. Följande exempel byter mellan att visa ett plustecken, en cirkel, en åttonde musiknot, och en pil Nordost.

basic.forever(() => {
    basic.showLeds(`
        . . # . .
        . . # . .
        # # # # #
        . . # . .
        . . # . .
    `)
    basic.showLeds(`
        . # # # .
        # # # # #
        # # # # #
        # # # # #
        . # # # .
    `)
    basic.showIcon(IconNames.EigthNote)
    basic.showArrow(ArrowNames.NorthEast)
})

Länk till koden.

Visa text och siffror

När man vill skriva något men inte rita ut varje bokstav själv, finns det även ett block för att visa text och en ett för siffror. Båda hittar man i Grundläggande kategorin. Om det handlar om mer än ett tecken, vilket inte ryms, scrollar texten/siffran automatiskt förbi på skärmen. Det finns en begränsning med ”visa text”-blocket, och det är att den inte klarar av ä, å och ö bokstäver. Istället visas då ett mellanslag.

basic.forever(() => {
    basic.showString("Micro:bit")
    basic.showNumber(2018)
})

Länk till koden.

Pixel precis

I kategorin Led finns olika block som gör det möjligt att tända och släcka varenda lampa. För att bestämma vilken lampa det handlar om används ett x och y koordinatsystem. Till skillnad från det koordinatsystemet man är van vid från matematik börjar det med (0, 0) längst upp till vänster. X ökar för varje steg åt höger, och Y ökar för varje steg neråt. Detta är det standard koordinatsystemet som används inom programmering för att rita med pixlar på digitala skärmar.

Följande exempel ritar först en glad gubbe, och sen får den att blinka för alltid genom att tända ock släcka ett öga med hjälp av ett växla-block. Kan du lista ut vilka koordinater motsvarar vilka punkter?

led.plot(1, 0)
led.plot(3, 0)
led.plot(0, 2)
led.plot(1, 3)
led.plot(2, 3)
led.plot(3, 3)
led.plot(4, 2)
basic.forever(() => {
    led.toggle(1, 0)
    basic.pause(500)
})

Länk till koden.

På samma plats finns även ett ”punkt”-block. Den har ett pusselbitskant på vänster sidan, vilket betyder att den ger tillbaka ett värde. Detta block ger nämligen svar om en pixel är tänd eller inte, med som svar värdet sant eller falskt. Detta kan till exempel användas kopplat till en om-sats. Följande kodexempel tänder ett slumpmässigt antal pixlar när man trycker på A knappen. Sen när man trycker på B knappen går den genom alla punkter och räknas hur många är tänd.

let mängdPixlar = 0
input.onButtonPressed(Button.A, () => {
    for (let i = 0; i < Math.random(11); i++) {
        led.plot(Math.random(5), Math.random(5))
        basic.pause(100)
    }
})
input.onButtonPressed(Button.B, () => {
    mängdPixlar = 0
    for (let x = 0; x <= 4; x++) {
        for (let y = 0; y <= 4; y++) {
            if (led.point(x, y)) {
                mängdPixlar += 1
            }
        }
    }
    basic.clearScreen()
    basic.showNumber(mängdPixlar)
    basic.pause(100)
    basic.clearScreen()
})

Länk till koden.

En annan kul block som finns under Mer av Led kategorin är ”tänd x y ljusstyrka”-blocket. Med den kan man inte bara tända en lampa, men även bestämma hur ljust den ska lysa. Värdet ska vara något från 0 (släckt) till 255 (fullt ljus). Här ett exempel som snabbt går genom olika styrkor.

let ljusstyrka = 0
ljusstyrka = 0
basic.forever(() => {
    ljusstyrka += 10
    ljusstyrka = ljusstyrka % 255
    led.plotBrightness(2, 2, ljusstyrka)
})

Länk till koden.

Rita en diagram

Ett annat kul block är ”rita diagram”. Den visar ett värde du väljer, genom att fylla upp skärmen mer när värdet blir högre. Du bestämmer också vad det maximala värdet är, när skärmen ska vara helt fyllt. Detta är ett smidigt sätt att snabbt få en känsla över hur ett visst värde förändrats.

Till exempel kan vi visa upp accelationskraften. Vilket värde tar vi som max? Från dokumentationssida om accelerationsblocket hittar vi 1023 som ett värde när kraften är 1 g, så vi kan ta det och se vad som händer. Experimentera med att sätta in olika max värden, och med andra värden att rita en diagram av.

basic.forever(() => {
    led.plotBarGraph(
        input.acceleration(Dimension.X),
        1023
    )
})

Länk till koden.

Senast ändrad 2017-12-17