Predstavenie rozširujúcej dosky Grove Shield V2.0 a modulov Grove
Grove a micro:bit
Značku Grove tvorí veľké množstvo modulov a zopár rozširujúcich dosiek, avšak len niektoré sú kompatibilné s mikropočítačom micro:bit. Niekedy nevyhovuje napätie, lebo spomenutý mikropočítač pracuje pri napätí 3,3V a väčšina modulov až pri 5V. Inokedy zase chýbajú knižnice príkazov potrebných pre naprogramovanie modulov. Preto som si dal za úlohu otestovať niekoľko zaujímavých modulov a vybrať pre ne vhodnú rozširujúcu dosku. V tomto článku vás oboznámim s dvomi praktickými programami, aby ste mohli posúdiť mieru úspešnosti splnenia zadanej úlohy.
Skôr než prejdem k samotným programom, popíšem vám moju súpravu Grove. Tvorí ju rozširujúca doska Grove Shield V2.0, prepojovacie káble a šesť modulov Grove:
- červená LED dióda
- reproduktor
- 4-miestny displej
- snímač natočenia (otočný potenciometer)
- infračervený (skratka IR) prijímač
- mini pasívny IR snímač označovaný skratkou PIR
Zmienená doska obsahuje konektory Grove (typu GVS, IIC, Zero), konektor USB, pinové kontakty s otvormi, kontrolná dióda zapnutia a port pre pripojenie mikropočítača micro:bit.
Skúšobný program
Prvým programom, tzv. skúšobným, som chcel odskúšať funkčnosť uvedených modulov. Najskôr som musel vyriešiť otázku pripojenia šiestich modulov Grove k rozširujúcej doske Grove Shield V2.0, pričom tri som pripojil na konektory Grove (typu GVS) a zvyšné na pinové kontakty prostredníctvom skrutiek s maticami (veľkosti M3) a káblovými okami, do ktorých som nastrčil prepojovacie káble s konektormi ‚male‘ DuPont a ‚female‘ Grove. Konektory DuPont prepojovacích káblov som v káblových okách zakrimpoval a zaizoloval. Potom som začal riešiť ‚layout‘ obsadených pinov mikropočítača micro:bit modulmi, pričom som dospel k jednoznačnému výsledku:
P0
– reproduktorP1
aP15
– 4-miestny displejP2
– otočný potenciometerP8
– mini snímač PIRP12
– IR prijímačP13
– červená LED dióda
Následne som programoval v platforme Microsoft MakeCode rozšírenej o Bloky Grove, BitMaker, CODO a OSOYOO_IR. Na pomoc som si zobral aj IR diaľkový ovládač (batéria CR2025 nebola súčasťou balenia), ktorého päť tlačidiel som takto zakomponoval do programu:
- tlačidlo 1 – prehranie melódie
- tlačidlo 2 – zobrazenie čísla s dvojbodkou na 4-miestnom displeji
- tlačidlo 3 – zobrazenie slova a hodnoty potenciometra na displeji mikropočítača
- tlačidlo 4 – zobrazenie slova a hodnoty snímača PIR na displeji mikropočítača
- tlačidlo 5 – rozsvietenie červenej LED diódy
Vytvorený program som ešte otestoval, aby som dospel k jeho finálnej verzii:
Program JavaScript
OSOYOO_IR.onPressEvent(RemoteButton.CH_MINUS, function () {
music.beginMelody(music.builtInMelody(Melodies.JumpUp), MelodyOptions.Once)
})
OSOYOO_IR.onPressEvent(RemoteButton.CH, function () {
CODO.digit_show(1234)
CODO.digit_point(true)
basic.pause(1000)
CODO.digit_clear()
CODO.digit_point(false)
})
OSOYOO_IR.onPressEvent(RemoteButton.CH_Add, function () {
basic.showString("Potentiometer:")
basic.showNumber(CODO.potarValue(AnalogPin.P2))
basic.clearScreen()
})
OSOYOO_IR.onPressEvent(RemoteButton.PREV, function () {
basic.showString("PIR:")
basic.showNumber(pins.digitalReadPin(DigitalPin.P8))
basic.clearScreen()
})
OSOYOO_IR.onPressEvent(RemoteButton.NEXT, function () {
pins.analogWritePin(AnalogPin.P13, 1023)
basic.pause(1000)
pins.analogWritePin(AnalogPin.P13, 0)
})
basic.showString("Test")
CODO.digit_createDisplay(DigitalPin.P1, DigitalPin.P15)
OSOYOO_IR.init(Pins.P12)
pins.analogWritePin(AnalogPin.P13, 0)
basic.clearScreen()
Program MakeCode
Video
Program Hodiny
Druhý program s názvom Hodiny mal simulovať digitálne meranie času, pričom som zapojil do hry displej mikropočítača micro:bit osadeného v rozširujúcej doske Grove Shield V2.0, reproduktor (pin P0) a 4-miestny displej (piny P1 a P15). Zostávalo mi už len vytvoriť program v platforme Microsoft MakeCode s použitím rozširujúceho Bloku Grove a testovaním získať jeho finálnu verziu, čo sa mi aj podarilo:
Program JavaScript
input.onButtonPressed(Button.AB, function () {
if (9 < hours) {
hour1 = Math.floor(hours / 10)
hour2 = hours % 10
display.bit(hour1, 0)
display.bit(hour2, 1)
} else {
display.bit(0, 0)
display.bit(hours, 1)
}
if (9 < minutes) {
minute1 = Math.floor(minutes / 10)
minute2 = minutes % 10
display.bit(minute1, 2)
display.bit(minute2, 3)
} else {
display.bit(0, 2)
display.bit(minutes, 3)
}
display.point(true)
basic.pause(1000)
display.clear()
display.point(false)
basic.clearScreen()
})
input.onButtonPressed(Button.A, function () {
if (hours < 23) {
hours += 1
} else {
hours = 0
}
display.show(hours)
basic.showString("h")
music.playTone(262, music.beat(BeatFraction.Half))
display.clear()
basic.clearScreen()
})
input.onButtonPressed(Button.B, function () {
if (minutes < 59) {
minutes += 1
} else {
minutes = 0
}
display.show(minutes)
basic.showString("m")
music.playTone(494, music.beat(BeatFraction.Half))
display.clear()
basic.clearScreen()
})
let minute2 = 0
let minute1 = 0
let minutes = 0
let hour2 = 0
let hour1 = 0
let hours = 0
let display: grove.TM1637 = null
display = grove.createDisplay(DigitalPin.P1, DigitalPin.P15)
led.setBrightness(10)
basic.forever(function () {
basic.pause(60000)
if (minutes < 59) {
minutes += 1
} else {
minutes = 0
if (hours < 23) {
hours += 1
} else {
hours = 0
}
}
})
Program MakeCode
Video
Uvedený program nemá za úlohu nahradiť vaše hodiny, len má demonštrovať praktickosť 4-miestneho displeja.
Záver
Na záver chcem vysloviť poďakovanie za prečítanie týchto riadkov, ktoré vám mali rozšíriť obzor o moju súpravu Grove a jej využitie v praxi.
Tejto téme sa chcem venovať aj v budúcom článku, viac však neprezradím, aby ste sa mali na čo tešiť.
E-shop
Grove Shield pro micro:bit v2.0
Připojte celé prostředí Grove na micro:bit.
BBC micro:bit
Nekonečně programovatelný a rozšiřitelný vzdělávací počítač do kapsy.