Image
24.7.2019 0 Comments

IoT prakticky: Micro:bit Experiment Box na jednoduché pokusy s hardvérom

Súprava Experiment Kit uľahčí žiakom a mladým záujemcom o elektroniku prvé kroky pri poznávaní elektroniky a základov programovania. Využíva populárnu mikropočítačovú dosku BBC micro:bit Obsahuje LED diódu, RGB LED, servomotor, jednosmerný motor, snímače teploty a osvetlenia, motor, tlačidlo, bzučiak, spínací MOSFET tranzistor, RGB LED prstenec, potenciometer a rezistory.

Fungovanie príkladov je ukázané vo videu 

Na základnej doske, na ktorej sú sústredené všetky súčiastky je aj konektor typu GVS na pripojenie prípadných ďalších zariadení. Na zdierky, do ktorých sa zasunujú káble s banánikmi sú vyvedené porty 0, 1, 2, 8 a 12. V súprave je 12 prepojovacích káblikov s banánikmi dlhých 28 cm. Plastový kufrík je konštruovaný tak, že sa dá zavrieť bez toho aby bolo treba zapojenie rozpojiť.

ripomínam, že kód sa vytvára priamo na stránke https://makecode.microbit.org a výsledný hex súbor sa kopíruje na cez USB pripojený Micro:bit, ktorý sa voči počítaču javí ako externý USB disk. Námetom prvého pokusu bude pre mikrokontroléry klasická aplikácia blinky, ktorej cieľom je rozblikať LED diódu pripojenú k portu P0. LED dióda je pripojená k portu cez rezistor 100 Ohmov, ktorý obmedzuje prúd prechádzajúci diódou. P Ledku rozblikáte tak, že na porte P0  budete striedavo prepínať hodnoty logická 1 (3,3 V) a logická 0 (0 V).

JavaScript: 

basic.forever(function () {
   pins.digitalWritePin(DigitalPin.P0, 0)
   basic.pause(500)
   pins.digitalWritePin(DigitalPin.P0, 1)
})

Zapojenie rozšírime o tlačidlo pripojené k portu P2 a kód upravíme tak, aby LED diódy blikali iba vtedy, ak je stlačené tlačidlo. V tomto príklade bude potrebné vstupný pin inicializovať. Bude fungovať tak, že pri nestlačenom tlačidle bude na vstupnom porte logická 1 a po zatlačení logická Nula. Aby sme nemuseli ku tlačidlu pridávať rezistor pripojený na jeden vývod tlačidla a napájacie napätie 3,3 V nakonfigurujeme vstupný pin do režimu pull up, kedy sa aktivuje vnútorný rezistor.

JavaScript

pins.setPull(DigitalPin.P2, PinPullMode.PullUp)
basic.forever(function () {
    if (pins.digitalReadPin(DigitalPin.P2) == 0) {
       pins.digitalWritePin(DigitalPin.P0, 0)
       basic.pause(500)
       pins.digitalWritePin(DigitalPin.P0, 1)
    }
})

V ďalšom príklade ukážeme rozsvietenie RGB LED, ktorej tri vývody sú pripojené k portom P0, P1 a P2. Farba LED sa nastaví podľa toho, či používateľ stlačil tlačidlo A, tlačidlo B, alebo obidva tlačidlá súčasne.

 

Všimnite si, že hlavná slučka, čiže cyklus forever neobsahuje žiadny kód, všetko sa odohráva v obsluhe udalosti zatlačenia tlačidla input.onButtonPressed. 

JavaScript: 

input.onButtonPressed(Button.A, function () {
   pins.digitalWritePin(DigitalPin.P0, 1)
   pins.digitalWritePin(DigitalPin.P1, 0)
   pins.digitalWritePin(DigitalPin.P2, 0)
})
input.onButtonPressed(Button.B, function () {
   pins.digitalWritePin(DigitalPin.P0, 0)
   pins.digitalWritePin(DigitalPin.P1, 1)
   pins.digitalWritePin(DigitalPin.P2, 0)
})
input.onButtonPressed(Button.AB, function () {
   pins.digitalWritePin(DigitalPin.P0, 0)
   pins.digitalWritePin(DigitalPin.P1, 0)
   pins.digitalWritePin(DigitalPin.P2, 1)
})
 
basic.forever(function () {
       
})

V ďalšom mini príklade sa presunieme do analógového sveta a ukážeme načítanie a jednoduché grafické znázornenie napätia na pine P0, ktorý v tomto prípade bude fungovať ako analógový vstup. Vstavaný prevodník prevádza analógovú hodnotu napätia na vstupe na interval číselných hodnôt 0 – 1024.

Nameranú hodnotu zobrazíme ako plošný graf na displeji, presnejšie na matici diód na doske micro:bit. Napätie budeme regulovať pomocou potenciometra 

JavaScript

basic.forever(function () {
   led.plotBarGraph(
   pins.analogReadPin(AnalogPin.P0),
    1023
    )
})

Modifikujeme predchádzajúci príklad tak, aby sme pomocou fotobunky mohli merať intenzitu okolitého osvetlenia. Softvérový kód zostane rovnaký, ako keď sme merali hodnotu napätia na potenciometri zapojenom ako napäťový delič.

Ukážeme aj obsluhu serva, ktoré často využívajú modelári a konštruktéri robotov. Servo je k riadiacej jednotke pripojené pomocou troch vodičov. Na červenom vodiči je kladné napájacie napätie, na čiernom (niekedy hnedom) vodiči je zem a na oranžový vodič sa privádzajú signály. Ovláda sa pomocou PWM. Frekvencia impulzov privádzaných na oranžový vodič je 50 Hz. Uhol natočenia sa ovláda šírkou impulzu. U modelárskeho serva SG90 je šírka pulzu 500 až 2500 μs a tejto hodnote zadpovedá uhol natočenia  0°až 180. Na prvý pohľad to znie zložito, ale vďaka knižnici integrovanej do vývojového prostredia je ovládanie servomotorov veľmi jednoduché. Oranžový vodič je vo vnútri serva pripojený na riadiacu elektroniku, nemá veľký prúdový odber, takže ho môžete pripojiť priamo na port.

JavaScript: 

input.onButtonPressed(Button.A, function () {
   pins.servoWritePin(AnalogPin.P0, 0)
})
input.onButtonPressed(Button.B, function () {
   pins.servoWritePin(AnalogPin.P0, 180)
})
input.onButtonPressed(Button.AB, function () {
   pins.servoWritePin(AnalogPin.P0, 90)
})

Ukážeme aj ovládanie jednosmerného motora.  Obmedzíme sa len na zapnutie a vypnutie motora zopnutím logickej úrovne na porte P0. Motor má väčší odber, než je schopná doska dodať pri napájaní cez USB, preto je potrebné napájať dosku z batérií a motor sa spína cez NPN tranzistor.

JavaScript: 

pins.digitalWritePin(DigitalPin.P0, 1)
basic.forever(function () {
   pins.digitalWritePin(DigitalPin.P0, 0)
   basic.pause(1000)
   pins.digitalWritePin(DigitalPin.P0, 1)
   basic.pause(1000)
})

Nasleduje príklad s prstencom RGB LED diód pripojeným k portu P0. Aby ste ho mohli programovať, potrebujete pridať knižnicu Neopixel. 

JavaScript: 

let kruh = neopixel.create(DigitalPin.P0, 8, NeoPixelMode.RGB)
kruh.showRainbow(1, 360)
basic.forever(function () {
   kruh.show()
   kruh.rotate(1)
   basic.pause(100)
})
Zobrazit Galériu

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

Mohlo by Vás zaujímať

Mikrokontroléry

IoT prakticky: Python na ESP32, vývojové dosky, inštalácia Micropythonu

17.10.2019 00:10

Po experimentoch s populárnou „školskou“ mikropočítačovou doskou BBC Micro:bit pre tých, ktorých táto problematika oslovila a chcú sa jej venovať ako hobby, skôr, či neskôr nastane moment, kedy si pol ...

Mikrokontroléry

Robotika – robot s kolesami Mecanum sa môže pohybovať všetkými smermi

15.10.2019 00:10

V našom dlhodobom seriáli venovanom robotickým konštrukciám a podvozkom sme dosiaľ predstavili dva spôsoby manévrovania robotických podvozkov. Robotické podvozky ktoré majú dve samostatne poháňané kol ...

Mikrokontroléry

Robotika: Robotický podvozok Cutebot s Microbitom vhodný aj pre začiatočníkov

07.10.2019 00:01

Prvé, čo vás na tomto robotickom podvozku prekvapí je rýchlosť jeho pohybu, ktorou prekonáva väčšinu robotov, ktoré sme dosiaľ predstavili v našom seriáli. Rýchlosť na jednej strane znamená, že v príp ...

Žiadne komentáre

Vyhľadávanie

ITAPA_2019

Najnovšie videá

SlovakiaTech 2019
MANDAYIT 2019