Image
6.5.2019 0 Comments

IoT prakticky – modulová stavebnica Grove pre vývojovú dosku BBC micro:bit

Ak ešte nemáte dostatok skúseností so zapojovaním elektronických obvodov a chcete si vyskúšať fungovanie čidiel a displejov a ďalších komponentov pripojených k vývojovým doskám, riešením sú modulové stavebnice Grove. Predstavujeme možnosti stavebnice Grove pre vývojovú dosku BBC Micro:bit. Cena stavebnice je okolo 50 eur.

Možnosti stavebnice vrátane predstavenia jednotlivých modulov aj s názornými príkladmi sú vo videu:

Stavebnice Grove sú k dispozícii pre všetky populárne mikrokontrolérové vývojové dosky. Možno ste si položili otázku, prečo ako prvú predstavujeme Grove stavebnicu pre vývojovú dosku BBC Micro:bit a nie povedzme pre u nás najpopulárnejšie dosky Arduino, prípadne Raspberry Pi. Micro:bit je primárne určený na výučbu programovania na školách. Britská verejnoprávna televízna spoločnosť BBC v roku 2016 rozdistribuovala jeden micro:bit každému žiakovi siedmeho ročníka v Spojenom Kráľovstve (11 až 12 roční). No a veľa žiakov má obavy boja, aby obvody nezapojili zle a nezničili elektronické súčiastky. Pri pokusoch so súpravou Grove stačí moduly poprepájať káblikmi, ktoré majú konektory.  Druhý dôvod je hardvérový. Vývojové dosky typu Arduino, Raspberry Pi, či STM Nucleo majú vyvedené zbernice na konektory, do ktorých môžete zasúvať prepojovacie vodiče. Naproti tomu Micro:bit má síce vyvedené tri porty na široké plôšky s otvormi, takže do nich môžete zasunúť vodiče s banánikmi, prípadne krokosvorky, ostatné porty sú však na úzkych plôškach plošného spoja, takže potrebujete redukciu, aby ste mohli realizovať zapojenie na prepojovacom poli.   

Každý modul plní jednu funkciu. Potrebné moduly stačí pripojiť základnej doske Base Shield a ste pripravení na testovanie svojich nápadov. Po overení fungovania si môžete skúsiť realizovať zapojenie na prepojovacom poli, prípadne pri finálnom zariadení na univerzálnej doske plošného spoja.  Súprava Grove Inventor kit for Micro:bit obsahuje modul s LED diódou, snímačom intenzity osvetlenia, potenciometrom,  reproduktorom, ultrazvukovým meračom vzdialenosti, snímačom giest, sedemsegmentovým displejom so štyrmi číslicami a RGB LED pásik.  

Na základnej doske Base Shield, do ktorej sa zasunie vývojová doska BBC Micro:bit sú štyri konektory. Jeden je označený I2C, k nemu sa pripájajú moduly využívajúce túto komunikačnú zbernicu. Súprava Grove Inventor kit obsahuje len jeden takýto modul - snímač giest. Ostatné moduly využívajú univerzálne analógové a digitálne vstupy a výstupy. Tie sú na ďalších troch konektoroch vždy po dvojiciach. P0/P14, P1/P15 a P2/P16. Na každom konektore je vyvedené aj napájacie napätie 3,3 V a zem GND.

Aby ste mohli jednoducho programovať aj zložitejšie komponenty ako je sedemsegmentový displej, ultrazvukový snímač vzdialeností, pásik RGB LED diód, či snímač pohybových giest potrebujete v online vývojovom prostredí https://makecode.microbit.org pripojiť knižnice. Pomocou položky Extensions. Potrebujete knižnicu github.com/seeed-studio/pxt-grove a aby ste mohli využiť pásik RGB LED diód aj Neopixel. 

Funkcie v rozširujúcej knižnici Grove

Jednotlivé moduly predstavíme na praktických príkladoch. V prvom príklade využijeme modul s LED diódou pripojený ku konektoru P0/P14. 

Tlačidlami A a B budeme diódu rozsvecovať a zhášať. Pripomenieme si zároveň aj tému obsluhy udalosti. V tomto prípade je udalosť zatlačenie tlačidla. 

JavaScript:

let LED1 = 0
input.onButtonPressed(Button.A, function () {
   pins.digitalWritePin(DigitalPin.P0, 1)
})
input.onButtonPressed(Button.B, function () {
   pins.digitalWritePin(DigitalPin.P0, 0)
})
LED1 = pins.digitalReadPin(DigitalPin.P0)

V druhom príklade budeme snímať intenzitu svetla a znázorňovať ju formou grafu na maticovom displeji. Modul Light Sensor pripojte ku konektoru P0/P14.

Príklad je jednoduchý, dal by sa vylepšiť úvodnou kalibráciou na aktuálnu úroveň svetla

JavaScript: 

let svetlo = 0
svetlo = pins.analogReadPin(AnalogPin.P0)
basic.forever(function () {
   led.plotBarGraph(
   pins.analogReadPin(AnalogPin.P0),
    255
    )
   basic.pause(10)
})

Namiesto snímača intenzity osvetlenia môžete pripojiť potenciometer a merať analógovú hodnotu, ktorá závisí od uhla natočenia hriadeľa. Kód je ten istý

V ďalšom príklade využijeme modul reproduktora pripojený ku konektoru P0/P14. 

Jednoduchý kód zahrá po zatlačení tlačidla A tón a tlačidlo B aktivuje krátku melódiu. 

JavaScript: 

let repro = 0
input.onButtonPressed(Button.A, function () {
   music.playTone(262, music.beat(BeatFraction.Whole))
})
input.onButtonPressed(Button.B, function () {
   music.beginMelody(music.builtInMelody(Melodies.Dadadadum), MelodyOptions.Once)
})
repro = pins.digitalReadPin(DigitalPin.P0)

Modul na rozpoznávanie giest je potrebné pripojiť na konektor označený I2C. 

Podľa toho, ktorým smerom budete pohybovať rukou pred snímačom zobrazí sa na maticovom displeji symbol

JavaScript: 

grove.onGesture(GroveGesture.Right, function () {
   basic.showString("R")
})
grove.onGesture(GroveGesture.Left, function () {
   basic.showString("L")
})
grove.onGesture(GroveGesture.Forward, function () {
   basic.showArrow(ArrowNames.North)
})
grove.onGesture(GroveGesture.Backward, function () {
   basic.showArrow(ArrowNames.South)
})

Ultrazvukový merač vzdialenosti indikuje vzdialenosť predmetu, napríklad ruky od snímača. Vzdialenosť za meria na základe oneskorenia ultrazvukového signálu, ktorý sa od predmetu odrazí.  Možno vás prekvapí, že modul sa pripája len na jeden digitálny vstup P0/P14. Funguje tak, že jeho elektronika generuje obdĺžnikový signál a šírka signálu závisí od nameranej vzdialenosti.  Pri experimentoch s ultrazvukovým snímačom použite externý batériový zdroj napájania. V našom videu sme ho nepoužili a všimnite si, že občas sa nameria zlá hodnota. Markantné je to na ďalšom príklade s týmto snímačomkde sa zobrazuje vzdialenosť na displeji. 

V príklade je vzdialenosť predmetu nad 10 cm indikovaná ikonou OK a ak sa predmet priblíži k snímaču bližšie, zobrazí sa ikona „X“

JavaScript: 

basic.forever(function () {
    if (grove.measureInCentimeters(DigitalPin.P0) >= 10) {
       basic.showIcon(IconNames.Yes)
    } else {
       basic.showIcon(IconNames.No)
    }
   basic.pause(100)
})

V ďalšom príklade použijeme modul displeja, na ktorom budeme zobrazovať počet potrasení. Doska Micro:bit obsahuje akcelerometer, takže stačí obslúžiť udalosti generované týmto hardvérovým komponentom. Aj displej sa pripája na port P0/P14 a využíva obidva tieto digitálne výstupy. 

Na výstupe DIO je logická hodnota 0, alebo 1 a výstup CLK je taktovací.

JavaScript: 

let A = 0
let disp: grove.TM1637 = null
input.onGesture(Gesture.Shake, function () {
    A += 1
   disp.show(A)
   basic.pause(100)
})
disp = grove.createDisplay(DigitalPin.P0, DigitalPin.P14)

V nasledujúcom príklade je potrebné pripojiť dva moduly. Ultrazvukový merač vzdialenosti na konektor P0/P14 a displej na konektor P1/P15

JavaScript: 

let disp: grove.TM1637 = null
disp = grove.createDisplay(DigitalPin.P1, DigitalPin.P15)
basic.forever(function () {
   disp.show(grove.measureInCentimeters(DigitalPin.P0))
   basic.pause(100)
})

Nasleduje príklad s LED pásikom pripojeným ku konektoru P0/P14. Aby ste ho mohli programovať, potrebujete pridať knižnicu Neopixel. Blikanie a rotáciu farieb budeme ovládať potenciometrom pripojeným ku konektoru P0/P14

JavaScript: 

let pasik: neopixel.Strip = null
let uhol = 0
uhol = pins.analogReadPin(AnalogPin.P0)
pasik = neopixel.create(DigitalPin.P1, 30, NeoPixelMode.RGB)
basic.forever(function () {
   pasik.showRainbow(1, 360)
   pasik.rotate(pins.analogReadPin(AnalogPin.P0))
   pasik.show()
   basic.pause(100)
})

Nasledujú komplexné príklady s viacerými modulmi. Námetom prvého z nich je ochrana tajnej zásuvky, alebo tašky. Otvorenie zistí snímač svetla a indikuje sa výstražným tónom a blikaním LED diódy. Na konektor P0/P14 pripojte reproduktor, na P1/P15 svetelný senzor a na P2/P16 modul s červenou LED diódou

JavaScript: 

let svetlo = 0
basic.forever(function () {
   svetlo = pins.analogReadPin(AnalogPin.P1)
    if (svetlo >= 100) {
       pins.digitalWritePin(DigitalPin.P2, 1)
       music.playTone(262, music.beat(BeatFraction.Whole))
       basic.pause(100)
       pins.digitalWritePin(DigitalPin.P2, 0)
       basic.pause(100)
    } else {
       pins.digitalWritePin(DigitalPin.P0, 0)
       pins.digitalWritePin(DigitalPin.P2, 0)
    }
   basic.pause(100)
})

V ďalšom príklade je prototyp bezpečnostného zariadenia využívajúceho ultrazvukový merač vzdialenosti. Po prekročení nastavenej vzdialenosti sa ozve výstražný tón a blikanie. Na konektor P0/P14 pripojte reproduktor, na P1/P15 ultrazvukový senzor a na P2/P16 modul s červenou LED diódou

JavaScript: 

basic.forever(function () {
    if (grove.measureInCentimeters(DigitalPin.P1) < 5) {
       for (let i = 0; i < 20; i++) {
           pins.digitalWritePin(DigitalPin.P2, 1)
           music.playTone(262, music.beat(BeatFraction.Whole))
           basic.pause(100)
           pins.digitalWritePin(DigitalPin.P2, 0)
           basic.pause(100)
        }
    }
   basic.pause(100)
})

A na záver simulátor hudobného nástroja Theremin, ktorý vyludzuje tóny podľa pohybov rúk v priestore. V príklade sa výška tónu mení podľa vzdialenosti ruky od ultrazvukového znímača. Aby to spoľahlivo fungovalo pripojte napájanie z batérie.  

JavaScript: 

basic.forever(function () {
   music.playTone(grove.measureInCentimeters(DigitalPin.P1) * 10, music.beat(BeatFraction.Whole))
})

Stavebnice Grove sú k dispozícii pre všetky populárne mikrokontrolérové vývojové dosky. O možnostiach týchto stavebníc sa viac dozviete v úvodnom videu.  

V niektorom z ďalších dielov predstavíme aj súpravu Grove pre Arduino

Zobrazit Galériu

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

Technológie

Robotika - čo dokážu roboty Blue-Bot a Pro-Bot

18.07.2019 00:10

V tomto dielu prázdninového seriálu venovaného robotike predstavíme možnosti dvoch robotov od britskej firmy TTS. Blue-Bot sa programuje zadávaním sekvencie krokov, pričom krok je buď pohyb v danom sm ...

Technológie

IoT prakticky – UniPi 1.1 Lite s Raspberry Pi pre smarthome a automatizáciu

17.07.2019 00:10

UniPi 1.1 Lite je nadstavba pre populárnu mikropočítačovú dosku Raspberry Pi, s ktorou tvorí jednoduchou programovateľnú riadiacu jednotku využiteľnú pre jednoduchšie projekty riadenia napríklad intel ...

Technológie

Roboty Bee-Bot a Blue-Bot pre mladších žiakov

16.07.2019 00:10

Náš prázdninový seriál venovaný robotike sme začali štyrmi dielmi popisujúcimi konštrukciu a programovanie jednoduchých a lacných robotických podvozkov. Inak povedané – témy pre učiteľov informatiky a ...

q

Žiadne komentáre

Vyhľadávanie

Najnovšie videá