Kráľovská doska Wukong
Samotný názov tejto dosky vystihuje jej nadradenosť nad ostatnými, nakoľko nesie meno hlavnej postavy – opičieho kráľa Sun Wukonga z čínskeho mytologického románu.
Hardvér dosky Wukong
Hardvérová stránka rozširujúcej dosky Wukong je unikátna pre svoje bohaté rozširujúce rozhranie, kompatibilitu so stavebnicami LEGO Technic a rýchlonabíjateľnú batériu.
Balenie uvedenej dosky pozostáva z:
- rozširujúcej dosky Wukong
- akumulátora BBR 802035 (3,7V 400mAh)
- technického dielika LEGO – rám nosníka 5×7 (64179)
Na vrchnej strane zmienenej dosky sa nachádzajú:
- 1. vypínač
- 2. indikátor stavu batérie (štyri kontrolné LED diódy)
- 3. nabíjací konektor micro USB
- 4. dva konektory na pripojenie motorov
- 5. osem konektorov na pripojenie servomotorov
- 6. tri konektory s napätím 5V
- 7. osem konektorov GVS
- 8. port pre mikropočítač micro:bit
- 9. štyri RGB LED diódy
- 10. vypínač bzučiaku
Spodná strana opísanej dosky obsahuje:
- 11. bzučiak
- 12. konektor batérie
- 13. osem modrých LED diód
- 14. štyri dištančné stĺpiky s vnútorným závitom M3
Softvér dosky Wukong
Softvérovú stránku rozširujúcej dosky Wukong zabezpečuje jej riadiaca jednotka v podobe mikropočítača micro:bit, ktorý sa dá ľahko naprogramovať pomocou bezplatnej platformy Microsoft MakeCode. Spomenutú platformu je potrebné rozšíriť o Blok Wukong, aby bolo možné využiť všetky vymoženosti tejto dosky.
Samotná doska je primontovaná na technický dielik (rám nosníka 5×7), do ktorého je rozumne umiestnená batéria. Prevádzkový čas batérie je okolo 40 minút, avšak závisí od náročnosti projektu a počtu pripojených servomotorov alebo snímačov. Výhodou je rýchle nabitie batérie (cca 20 minút), pričom batéria je vybavená bezpečnostnými prvkami proti prebitiu a skratu.
Ako riadiacu jednotku tejto dosky je možné použiť akúkoľvek verziu mikropočítača micro:bit, aktuálne sú to verzie V1 a V2.
Pred začatím programovania je vhodné poznať základný ‚layout‘ zapojených pinov uvedenej dosky:
- P0 – bzučiak
- P16 – štyri RGB LED diódy
Ukážkový program dosky Wukong
Následné vytvorenie programu je len vecou fantázie a logického myslenia, nakoľko platforma Microsoft MakeCode je užívateľsky prívetivá pre začiatočníkov v rôznom veku.
Rozhodol som sa na účely prezentácie potenciálu rozširujúcej dosky Wukong vytvoriť jedinečný program využívajúci technológiu Bluetooth jej riadiaceho mikropočítača prostredníctvom neplatenej Android aplikácie micro:bit Blue. Pred použitím tejto aplikácie treba spárovať mikropočítač s mobilným telefónom, zakázať jej aktualizácie a zapnúť Bluetooth a GPS.
Pred programovaním som sa nezaobišiel bez nahratia rozširujúcich Blokov Wukong, Neopixel a Blockytalky do zmienenej platformy, pomocou ktorých som sa mohol dopracovať k finálnej verzii programu:
Program JavaScript
bluetooth.onBluetoothConnected(function () {
count = 0
countA = 0
countB = 0
basic.clearScreen()
basic.showLeds(`
. . # # .
# . # . #
. # # # .
# . # . #
. . # # .
`)
music.playTone(494, music.beat(BeatFraction.Half))
basic.clearScreen()
wuKong.setLightMode(wuKong.LightMode.OFF)
strip.showColor(neopixel.colors(NeoPixelColors.Black))
basic.showString("Press A or B")
})
bluetooth.onBluetoothDisconnected(function () {
basic.clearScreen()
basic.showLeds(`
. . # # .
# . # . #
. # # # .
# . # . #
. . # # .
`)
music.playTone(262, music.beat(BeatFraction.Half))
basic.clearScreen()
wuKong.setLightMode(wuKong.LightMode.BREATH)
strip.showColor(neopixel.colors(NeoPixelColors.Blue))
basic.showString("W")
})
input.onButtonPressed(Button.A, function () {
count = 1
countA = 0
})
input.onButtonPressed(Button.B, function () {
count = 2
countB = 0
})
control.onEvent(EventBusSource.MES_DPAD_CONTROLLER_ID, EventBusValue.MICROBIT_EVT_ANY, function () {
if (count == 1) {
countA += 1
if (countA == 1) {
basic.showString("A")
basic.clearScreen()
}
music.playTone(392, music.beat(BeatFraction.Quarter))
if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_A_DOWN) {
wuKong.setLightMode(wuKong.LightMode.BREATH)
} else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_B_DOWN) {
wuKong.setLightMode(wuKong.LightMode.OFF)
} else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_C_DOWN) {
strip.showRainbow(1, 360)
} else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_D_DOWN) {
strip.shift(1)
strip.show()
} else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_1_DOWN) {
strip.showColor(neopixel.colors(NeoPixelColors.Red))
} else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_2_DOWN) {
strip.showColor(neopixel.colors(NeoPixelColors.Yellow))
} else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_3_DOWN) {
strip.showColor(neopixel.colors(NeoPixelColors.Green))
} else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_4_DOWN) {
strip.showColor(neopixel.colors(NeoPixelColors.Black))
}
} else if (count == 2) {
countB += 1
if (countB == 1) {
basic.showString("B")
basic.clearScreen()
}
music.playTone(330, music.beat(BeatFraction.Quarter))
if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_A_DOWN) {
basic.clearScreen()
basic.pause(400)
basic.showNumber(input.temperature() - 5)
basic.showLeds(`
# . . # #
. . # . .
. . # . .
. . # . .
. . . # #
`)
basic.clearScreen()
} else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_B_DOWN) {
basic.clearScreen()
basic.pause(400)
basic.showNumber(input.lightLevel())
basic.showLeds(`
# . . . .
# . . . .
# . # . #
# . . # .
# . # . #
`)
basic.clearScreen()
} else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_C_DOWN) {
music.playTone(392, music.beat(BeatFraction.Whole))
music.playTone(523, music.beat(BeatFraction.Whole))
music.playTone(523, music.beat(BeatFraction.Half))
music.playTone(587, music.beat(BeatFraction.Half))
music.playTone(523, music.beat(BeatFraction.Half))
music.playTone(494, music.beat(BeatFraction.Half))
music.playTone(440, music.beat(BeatFraction.Whole))
music.playTone(440, music.beat(BeatFraction.Whole))
music.playTone(440, music.beat(BeatFraction.Whole))
music.playTone(587, music.beat(BeatFraction.Whole))
music.playTone(587, music.beat(BeatFraction.Half))
music.playTone(659, music.beat(BeatFraction.Half))
music.playTone(587, music.beat(BeatFraction.Half))
music.playTone(523, music.beat(BeatFraction.Half))
music.playTone(494, music.beat(BeatFraction.Whole))
music.playTone(392, music.beat(BeatFraction.Whole))
music.playTone(392, music.beat(BeatFraction.Whole))
} else if (control.eventValue() == EventBusValue.MES_DPAD_BUTTON_D_DOWN) {
music.playTone(659, music.beat(BeatFraction.Whole))
music.playTone(659, music.beat(BeatFraction.Half))
music.playTone(698, music.beat(BeatFraction.Half))
music.playTone(659, music.beat(BeatFraction.Half))
music.playTone(587, music.beat(BeatFraction.Half))
music.playTone(523, music.beat(BeatFraction.Whole))
music.playTone(440, music.beat(BeatFraction.Whole))
music.playTone(392, music.beat(BeatFraction.Half))
music.playTone(392, music.beat(BeatFraction.Half))
music.playTone(440, music.beat(BeatFraction.Whole))
music.playTone(587, music.beat(BeatFraction.Whole))
music.playTone(494, music.beat(BeatFraction.Whole))
music.playTone(523, music.beat(BeatFraction.Half))
} 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()
}
}
})
let countB = 0
let countA = 0
let count = 0
let strip: neopixel.Strip = null
led.setBrightness(10)
basic.showString("W")
wuKong.lightIntensity(10)
wuKong.setLightMode(wuKong.LightMode.BREATH)
strip = neopixel.create(DigitalPin.P16, 4, NeoPixelMode.RGB)
strip.setBrightness(10)
strip.showColor(neopixel.colors(NeoPixelColors.Blue))
Program MakeCode
Video
Nakoľko som považoval 8 tlačidiel Android aplikácie za nedostatočný počet, využil som dve tlačidlá mikropočítača na zdvojnásobenie tlačidiel spomenutej aplikácie, čím som vám dokázal rozširujúcu dosku lepšie predviesť.
Záver
K záveru pripájam poďakovanie za ochotu prečítať si tento článok a nechať si poradiť pri výbere vhodnej rozširujúcej dosky. Veľký počet konektorov rozširujúcej dosky Wukong umožňuje pripojenie rôznych kombinácií snímačov, servomotorov a motorov. Stačí zapojiť do hry predstavivosť a nebudete mať núdzu o nové originálne projekty.
V ďalšom článku sa pohrám s dielikmi LEGO zo zaujímavej stavebnice Ring:bit Bricks Pack, takže o zábavu bude postarané.
E-shop
BBC micro:bit V2
Nová verze vylepšená například o integrovaný reproduktor a mikrofon, vypínací tlačítko, logo citlivé na dotek, nový procesor a větší paměť.
BBC micro:bit V1
Nekonečně programovatelný a rozšiřitelný vzdělávací počítač do kapsy.