Modul STOP:bit netradične rozširujúci súpravu Basic Kit

Zdravím priaznivcov robotiky a programovania, ktorí by si radi vyskúšali ďalšiu kombináciu súpravy Basic Kit s výučbovým mikropočítačom micro:bit a modulu nepatriaceho do spomenutej súpravy. Musím sa priznať, že mi trvalo dlhšiu dobu, dokým som zvážil možnosti jednotlivých modulov tejto súpravy spolu s modulom STOP:bit. Nebol to zbytočne vynaložený čas, pretože po jeho uplynutí sa zrodili dva nezvyčajné programy. Nebudem však predbiehať a najskôr začnem s predstavením spomínaného modulu.

STOP:bit a Basic Kit

Modul STOP:bit pozostáva z troch LED diód (zelená, žltá a červená) a troch odporov, ktoré sú osadené na doske v tvare semafora. Pravdepodobne výrobca nezohnal oranžovú LED diódu, tak ju nahradil žltou. V uvedenej doske je päť otvorov určených na primontovanie mikropočítača micro:bit pomocou skrutiek s maticami, ktoré sú súčasťou balenia. Matice som nahradil doskou Basic:bit súpravy Basic Kit, pričom som najskôr zaizoloval kontakt žltej LED diódy (pin P1). Zo semaforu pre autá som tak spravil semafor pre chodcov. Musel som takto postupovať, lebo inak by som nedokázal pripojiť ani jeden modul zmienenej súpravy.

Nasledovalo rozhodovanie, ktorý modul zo súpravy Basic Kit použiť. Voľba padla na snímač nárazu plniaceho funkciu momentového tlačidlového spínača, čiže pri stlačení vyšle signál a pri uvoľnení sa spojenie preruší a vráti sa späť do svojej polohy. Podobá sa tak na tri tlačidlá mikropočítača micro:bit (reset, tlačidlo A a B), pričom sa líši konštrukciou.

Hardvér predurčoval rovnaký ‚layout‘ obsadených pinov mikropočítača pre obidva programy:

  • P0 – červená LED dióda a bzučiak
  • P1 – snímač nárazu
  • P2 – zelená LED dióda

Potom som nechal pracovať svoju fantáziu, aby som dospel k dvom pozoruhodným programom, ktoré vám podrobne opíšem nižšie.

Na programovanie som použil platformu Microsoft MakeCode, pričom som nepotreboval ani rozširujúci Blok STOP:bit a vystačil som si len s rozšírením o Blok ScrollText.

Prvý program s modulom STOP:bit

Prvý program mal ukázať podobnosť tlačidiel A a B mikropočítača micro:bit so snímačom nárazu, pričom tento snímač umožnil prepnúť farbu so súčasnou zmenou piktogramu chodca svietiaceho na displeji mikropočítača. Po stlačení tlačidla A sa zobrazila aktuálna teplota a stlačením tlačidla B úroveň osvetlenia.

Bezproblémovým testovaním som nakoniec dospel k finálnej verzii programu:

Program JavaScript

input.onButtonPressed(Button.A, function () {
    button = 1
})
input.onButtonPressed(Button.B, function () {
    button = 2
})
let button = 0
for (let index = 0; index < 2; index++) {
    pins.digitalWritePin(DigitalPin.P0, 1)
    pins.digitalWritePin(DigitalPin.P2, 1)
    basic.showLeds(`
        # . # . #
        . # . # .
        # . . . #
        . # . # .
        # . # . #
        `)
    basic.pause(300)
    pins.digitalWritePin(DigitalPin.P0, 0)
    pins.digitalWritePin(DigitalPin.P2, 0)
    basic.showLeds(`
        . # . # .
        # . . . #
        . . # . .
        # . . . #
        . # . # .
        `)
    basic.pause(300)
}
basic.clearScreen()
basic.pause(500)
pins.setPull(DigitalPin.P1, PinPullMode.PullUp)
button = 0
basic.forever(function () {
    if (pins.digitalReadPin(DigitalPin.P1) == 1) {
        pins.digitalWritePin(DigitalPin.P0, 1)
        pins.digitalWritePin(DigitalPin.P2, 0)
        basic.showLeds(`
            . . . . .
            . # . # #
            # # # . .
            . # . # #
            . . . . .
            `)
        if (button == 1) {
            ScrolText.showNumber(
            input.temperature(),
            SCROLL_DIR.DOWN,
            SCROLL_ROTATE.SR_270,
            90
            )
            basic.showLeds(`
                # . . . #
                # . . . #
                . # # # .
                . . . . .
                # . . . .
                `)
            basic.pause(500)
            button = 0
        } else if (button == 2) {
            ScrolText.showNumber(
            input.lightLevel(),
            SCROLL_DIR.DOWN,
            SCROLL_ROTATE.SR_270,
            90
            )
            basic.showLeds(`
                . . # . #
                . . . # .
                . . # . #
                . . . . #
                # # # # #
                `)
            basic.pause(500)
            button = 0
        }
    } else {
        pins.digitalWritePin(DigitalPin.P0, 0)
        pins.digitalWritePin(DigitalPin.P2, 1)
        basic.showLeds(`
            # . . . .
            . # . # #
            # # # # .
            . # . . #
            . . . . .
            `)
        basic.pause(2000)
    }
})

Program MakeCode

Video

Druhý program s modulom STOP:bit

Druhý program počítal už len so snímačom nárazu, pričom som náhodou objavil ‚hack‘, ktorý mi umožnil naprogramovať bzučiak (pin P0) dosky Basic:bit súpravy Basic Kit za súčasného použitia červenej LED diódy. Stačilo len prepnúť integrovaný prepínač dosky do hornej polohy.

Otestovanie programu prebehlo bez komplikácií, čím som získal jeho finálnu verziu:

Program JavaScript

for (let index = 0; index < 2; index++) {
    music.playTone(262, music.beat(BeatFraction.Quarter))
    pins.digitalWritePin(DigitalPin.P0, 1)
    pins.digitalWritePin(DigitalPin.P2, 1)
    basic.showLeds(`
        # . # . #
        . # . # .
        # . # . #
        . # . # .
        # . # . #
        `)
    basic.pause(300)
    music.playTone(494, music.beat(BeatFraction.Quarter))
    pins.digitalWritePin(DigitalPin.P0, 0)
    pins.digitalWritePin(DigitalPin.P2, 0)
    basic.showLeds(`
        . # . # .
        # . # . #
        . # . # .
        # . # . #
        . # . # .
        `)
    basic.pause(300)
}
basic.clearScreen()
basic.pause(500)
pins.setPull(DigitalPin.P1, PinPullMode.PullUp)
let crash = 0
basic.forever(function () {
    if (pins.digitalReadPin(DigitalPin.P1) == 1) {
        pins.digitalWritePin(DigitalPin.P0, 1)
        pins.digitalWritePin(DigitalPin.P2, 0)
        basic.showLeds(`
            . . . . .
            . # . # #
            # # # . .
            . # . # #
            . . . . .
            `)
    } else {
        crash += 1
        if (crash == 1) {
            pins.digitalWritePin(DigitalPin.P0, 0)
            pins.digitalWritePin(DigitalPin.P2, 1)
            basic.showLeds(`
                # . . . .
                . # . # #
                # # # # .
                . # . . #
                . . . . .
                `)
            basic.pause(2000)
        } else if (crash == 2) {
            music.playTone(330, music.beat(BeatFraction.Quarter))
            pins.digitalWritePin(DigitalPin.P0, 0)
            ScrolText.showNumber(
            input.temperature(),
            SCROLL_DIR.DOWN,
            SCROLL_ROTATE.SR_270,
            90
            )
            basic.showLeds(`
                # . . . #
                # . . . #
                . # # # .
                . . . . .
                # . . . .
                `)
            basic.pause(500)
        } else if (crash == 3) {
            music.playTone(392, music.beat(BeatFraction.Quarter))
            pins.digitalWritePin(DigitalPin.P0, 0)
            ScrolText.showNumber(
            input.lightLevel(),
            SCROLL_DIR.DOWN,
            SCROLL_ROTATE.SR_270,
            90
            )
            basic.showLeds(`
                . . # . #
                . . . # .
                . . # . #
                . . . . #
                # # # # #
                `)
            basic.pause(500)
            crash = 0
        }
    }
})

Program MakeCode

Video

Záver

V závere článku chcem vyjadriť vďaku nielen za prečítanie týchto riadkov, ale aj za odskúšanie opísaných programov. Priznám sa, že ma prekvapilo súčasné fungovanie bzučiaka a pripojeného modulu na pin P0 dosky Basic:bit súpravy Basic Kit. Určite by to prekvapilo aj samotného výrobcu, lebo ani v návode nie je zmienka o takejto možnosti.

Snažil som sa vám hravou formou spríjemniť čas strávený so základnou súpravou určenej pre mikropočítač micro:bit. Treba sa však posunúť ďalej a naučiť sa niečo nové, preto v nasledujúcom článku nastavím vyšší stupeň náročnosti, ale v stále medziach vhodných pre začiatočníka.

Eshop

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 STOP:bit – Semafor pro BBC micro:bit

Stvořte zajímavý projekt se světelnou signalizací.




Leave a Reply