Súprava Basic Kit neštandardne rozšírená o modul LAMP:bit

Opäť zdravím priateľov robotiky a programovania, ktorých zaujala súprava Basic Kit určená pre výučbový mikropočítač micro:bit. Aj keď sa jedná o základnú súpravu, stačí povoliť uzdu fantázii a vytvorenie zaujímavých programov nenechá na seba dlho čakať. Tak to bolo aj v mojom prípade, keď ma napadli dva povšimnutia hodné programy, ktoré vám rád predostriem.

LAMP:bit a Basic Kit

Pri skúšaní rôznych kombinácií modulov súpravy Basic Kit sa mi najviac zapáčilo skombinovať červenú LED diódu s potenciometrom alebo s modulom ADKey s piatimi tlačidlami. Pri rozmýšľaní nad vylepšením týchto zostáv som si spomenul na pozoruhodný modul LAMP:bit, ktorý posunul hardvérové prevedenie LED diódy na vyšší ‚level‘.

Modul LAMP:bit tvorí biela LED dióda a snímač svetla, ktoré sú osadené na doske v tvare lampy verejného osvetlenia. Spomenutý modul disponuje piatimi otvormi v doske a skrutkami s maticami, slúžiacimi na pripevnenie mikropočítača micro:bit. Odskúšaním som zistil, že dĺžka uvedených skrutiek je postačujúca na pripevnenie tohto mikropočítača a dosky Basic:bit súpravy Basic Kit k zmienenému modulu. Črtal sa mi tak jediný možný ‚layout‘ obsadených pinov mikropočítača:

  • P0 – biela LED dióda
  • P2 – potenciometer alebo modul ADKey

Snímač svetla (pin P1) som vynechal z hry zaizolovaním kontaktu, aby som neznížil kvalitu ukážkového videa pri jeho natáčaní za šera. Týmto som vám dal námet na vlastnú tvorbu, aby ste skúsili naprogramovať aj pin P1.

Predstavím vám moje dva programy, jeden s potenciometrom a druhý s modulom ADKey, ktoré som vytvoril v platforme Microsoft MakeCode s použitím rozširujúceho Bloku ScrollText. Keďže som nepotreboval naprogramovať opísaný snímač svetla, nerozšíril som si platformu o Blok LAMP:bit, ktorý by som použil len pri štandardných situáciách.

Ovládanie modulu LAMP:bit potenciometrom

Napísať program na ovládanie modulu LAMP:bit potenciometrom zo súpravy Basic Kit nebolo náročné, lebo sa vlastne jednalo o reguláciu jasu bielej LED diódy. Testovaním som sa onedlho dopracoval k finálnej verzii programu:

Program JavaScript

let brightness = 0
let veličina = 0
let index = 0
input.onButtonPressed(Button.A, function () {
    ScrolText.showNumber(
    input.temperature(),
    SCROLL_DIR.DOWN,
    SCROLL_ROTATE.SR_270,
    100
    )
    basic.showLeds(`
        # . . . #
        # . . . #
        . # # # .
        . . . . .
        # . . . .
        `)
    basic.clearScreen()
})
input.onButtonPressed(Button.B, function () {
    brightness += 1
    if (brightness == 1) {
        led.setBrightness(53)
        basic.showLeds(`
            . . # . .
            . . . # .
            # # # # #
            . . . # .
            . . # . .
            `)
        basic.clearScreen()
    } else if (brightness == 2) {
        led.setBrightness(3)
        basic.showLeds(`
            . . # . .
            . . . # .
            # # # # #
            . . . # .
            . . # . .
            `)
        basic.clearScreen()
    } else if (brightness == 3) {
        led.setBrightness(53)
        basic.showLeds(`
            . . # . .
            . # . . .
            # # # # #
            . # . . .
            . . # . .
            `)
        basic.clearScreen()
    } else if (brightness == 4) {
        led.setBrightness(255)
        basic.showLeds(`
            . . # . .
            . # . . .
            # # # # #
            . # . . .
            . . # . .
            `)
        basic.clearScreen()
        brightness = 0
    }
})
basic.forever(function () {
    veličina = pins.analogReadPin(AnalogPin.P2)
    index = pins.map(
    veličina,
    1,
    1023,
    0,
    255
    )
    pins.analogWritePin(AnalogPin.P0, index)
})

Program MakeCode

Video

Ovládanie modulu LAMP:bit modulom ADKey

Taktiež naprogramovať päť tlačidiel modulu ADKey súpravy Basic Kit spolu s modulom LAMP:bit bola ľahká záležitosť, ktorá si však vyžadovala premyslieť ‚layout‘ tlačidiel modulu:

  • Tlačidlo A – zobrazenie teploty na displeji mikropočítača
  • Tlačidlo B – zmena jasu displeja mikropočítača
  • Tlačidlá C, D a E – zmena jasu bielej LED diódy

Vytvorený program som otestoval bez komplikácií, čím som získal jeho finálnu verziu:

Program JavaScript

pins.analogWritePin(AnalogPin.P0, 0)
let brightness = 0
basic.forever(function () {
    if (0 < pins.analogReadPin(AnalogPin.P2) && pins.analogReadPin(AnalogPin.P2) < 10) {
        ScrolText.showNumber(
        input.temperature(),
        SCROLL_DIR.DOWN,
        SCROLL_ROTATE.SR_270,
        100
        )
        basic.showLeds(`
            # . . . #
            # . . . #
            . # # # .
            . . . . .
            # . . . .
            `)
        basic.clearScreen()
    } else if (pins.analogReadPin(AnalogPin.P2) < 80) {
        brightness += 1
        if (brightness == 1) {
            led.setBrightness(53)
            basic.showLeds(`
                . . # . .
                . . . # .
                # # # # #
                . . . # .
                . . # . .
                `)
            basic.clearScreen()
        } else if (brightness == 2) {
            led.setBrightness(3)
            basic.showLeds(`
                . . # . .
                . . . # .
                # # # # #
                . . . # .
                . . # . .
                `)
            basic.clearScreen()
        } else if (brightness == 3) {
            led.setBrightness(53)
            basic.showLeds(`
                . . # . .
                . # . . .
                # # # # #
                . # . . .
                . . # . .
                `)
            basic.clearScreen()
        } else if (brightness == 4) {
            led.setBrightness(255)
            basic.showLeds(`
                . . # . .
                . # . . .
                # # # # #
                . # . . .
                . . # . .
                `)
            basic.clearScreen()
            brightness = 0
        }
    } else if (pins.analogReadPin(AnalogPin.P2) < 130) {
        pins.analogWritePin(AnalogPin.P0, 10)
    } else if (pins.analogReadPin(AnalogPin.P2) < 160) {
        pins.analogWritePin(AnalogPin.P0, 130)
    } else if (pins.analogReadPin(AnalogPin.P2) < 600) {
        pins.analogWritePin(AnalogPin.P0, 250)
    }
})

Program MakeCode

Video

Záver

Na záver môjho článku sa vám chcem poďakovať za jeho prečítanie. Určite ste si všimli, že možnosti naprogramovania modulov súpravy Basic Kit spočívajú v praktických znalostiach základov elektrotechniky, ktoré začiatočník získa pri práci s touto súpravou.

Ďalší článok zaostrí vašu pozornosť na netradičný modul s názvom STOP:bit, ktorý sa postará o tú správnu zábavu pri programovaní.

E-shop

Elecfreaks BBC micro:bit Základní kit (bez micro:bitu)

Základní sada pro Váš BBC micro:bit!



BBC micro:bit

Nekonečně programovatelný a rozšiřitelný vzdělávací počítač do kapsy.





Kitronik LAMP:bit pro BBC micro:bit

Rozšiřující modul osvětlení pro BBC micro:bit.


Leave a Reply