Ovládanie elementárnej stavebnice

Vážení priaznivci robotiky pohrávajúci sa s myšlienkou spojenia edukačného mikropočítača micro:bit a dielikov stavebnice LEGO! Elementárna stavebnica Ring:bit Bricks Pack je vhodným kandidátom na realizáciu začiatočníckych projektov, pričom samotný výrobca Elecfreaks poskytuje k zmienenej stavebnici šesť zaujímavých vzorových projektov.

Jeden z týchto projektov rieši rádiové diaľkové ovládanie, ktoré je nepraktické v dnešnej dobe mobilných telefónov. Rozhodol som sa vypracovať vlastný projekt s názvom The Tricycle (v preklade trojkolka) riadený mobilným zariadením využívajúci technológiu Bluetooth.

Projekt The Tricycle – technológia Bluetooth

Projekt The Tricycle ovládaný technológiou Bluetooth vyžaduje inštaláciu bezplatnej Android aplikácie micro:bit Blue do mobilného telefónu a jeho spárovanie s mikropočítačom micro:bit. Pre predstavenú aplikáciu treba zakázať aktualizácie a pri jej používaní mať vždy zapnuté Bluetooth a GPS.

Pred začatím programovania je potrebné platformu Microsoft MakeCode rozšíriť o Blok Bluetooth.

Finálna verzia programu (ovládania technológiou Bluetooth) obsahuje aj príkazy štandardného Bloku Control:

Program JavaScript

bluetooth.onBluetoothConnected(function () {
    basic.showLeds(`
        . . # # .
        # . # . #
        . # # # .
        # . # . #
        . . # # .
        `)
    basic.clearScreen()
})
bluetooth.onBluetoothDisconnected(function () {
    basic.showLeds(`
        . . # # .
        # . # . #
        . # # # .
        # . # . #
        . . # # .
        `)
    basic.showLeds(`
        . . . . .
        . # . # .
        . . . . .
        # . . . #
        . # # # .
        `)
})
control.onEvent(EventBusSource.MES_DPAD_CONTROLLER_ID, EventBusValue.MICROBIT_EVT_ANY, function () {
    if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_A_DOWN) {
        basic.showArrow(ArrowNames.North)
        pins.servoWritePin(AnalogPin.P2, 180)
    } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_A_UP) {
        basic.clearScreen()
        pins.servoWritePin(AnalogPin.P2, 90)
    } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_B_DOWN) {
        basic.showArrow(ArrowNames.South)
        pins.servoWritePin(AnalogPin.P2, 0)
    } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_B_UP) {
        basic.clearScreen()
        pins.servoWritePin(AnalogPin.P2, 90)
    } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_C_DOWN) {
        basic.showArrow(ArrowNames.West)
        pins.servoWritePin(AnalogPin.P1, 100)
        basic.pause(100)
        pins.servoWritePin(AnalogPin.P2, 180)
    } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_C_UP) {
        basic.clearScreen()
        pins.servoWritePin(AnalogPin.P1, 90)
        pins.servoWritePin(AnalogPin.P2, 90)
    } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_D_DOWN) {
        basic.showArrow(ArrowNames.East)
        pins.servoWritePin(AnalogPin.P1, 75)
        basic.pause(100)
        pins.servoWritePin(AnalogPin.P2, 180)
    } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_D_UP) {
        basic.clearScreen()
        pins.servoWritePin(AnalogPin.P1, 90)
        pins.servoWritePin(AnalogPin.P2, 90)
    } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_1_DOWN) {
        basic.showLeds(`
            # . # . #
            . # . # .
            # . # . #
            . # . # .
            # . # . #
            `)
    } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_2_DOWN) {
        basic.showLeds(`
            . # . # .
            # . # . #
            . # . # .
            # . # . #
            . # . # .
            `)
    } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_3_DOWN) {
        basic.showLeds(`
            # # # # #
            # # # # #
            # # # # #
            # # # # #
            # # # # #
            `)
    } else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_4_DOWN) {
        basic.clearScreen()
    }
})
led.setBrightness(10)
basic.showLeds(`
    . . . . .
    . # . # .
    . . . . .
    # . . . #
    . # # # .
    `)

Program MakeCode

Návod na postavenie opísaného projektu stavebnice Ring:bit Bricks Pack spolu s programom sa dá stiahnuť po kliknutí na zelené tlačidlo.

Video

Aplikácia micro:bit Blue disponuje ôsmimi tlačidlami slúžiacimi na predvedenie pohybového prejavu trojkolky a displeja výučbového mikropočítača micro:bit. Pohyb je zabezpečený dvomi zelenými servomotormi (Geekservo 9g 360°), preto je otáčanie predného servomotora obmedzené konštrukciou trojkolky. Predný servomotor je pripojený na pin P1 rozširujúcej dosky Ring:bit V2 a zadný na pin P2.

Taktiež existuje alternatívna Android aplikácia s názvom Kitronik Move nahrádzajúca horeuvedenú aplikáciu.

Záver

Záverom ďakujem čitateľom za vytrvalosť pri čítaní mojich článkov a vedeniu e-shopu za konštruktívnu spoluprácu. Taktiež sa chcem poďakovať správcovi blogu za pomoc. Nateraz sa s vami lúčim s vierou opätovnej spolupráce v novom roku.

E-shop

Elecfreaks Ring:bit Bricks Pack (bez micro:bitu)

Stavebnice kompatibilní s Lego určená pro micro:bit. Obsahuje šest zábavných projektů v jednom: semafor, LEGO auto, ventilátor s regulací teploty, chytrou stolní lampu, stěrač a trebuchet. Všechny projekty lze dále rozvinout podle vaší fantazie!




BBC micro:bit V2

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





Další příslušenství

Podobné příspěvky

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *