ANTIK_2024 ANTIK_2024 ANTIK_2024

IoT prakticky: BBC micro:bit - jednoduché pokusy s pripojeným hardvérom

Technológie
1

V predchádzajúcej časti seriálu venovanom platforme micro:bit sme podrobne popísali zbernicu tejto hlavne medzi žiakmi a študentmi veľmi populárnej dosky. Len na zopakovanie: konektor na okraji plošného spoja má päť širokých kontaktov s pokovenými otvormi do ktorých je možné pripnúť vodiče s krokosvorkami, alebo zasunúť „banánikové“ konektory s priemerom 4 mm. Medzi nimi je 20 ďalších úzkych kontaktov. Tie je možné využiť, keď vložíte BBC micro: bit do vhodného adaptéra, umožňujúcom realizovať zapojenie na doske s prepojovacím poľom. A práve na takejto doske zrealizujeme pripojenie LED diód, tlačidla, potenciometra vo funkcii deliča napätia a fotorezistora. Všetky príklady sú názorne ukázané vo videu

Popis pinov a konektor na pripojenie k prepojovaciemu poľu:

Námetom prvého pokusu bude pre mikrokontroléry klasická aplikácia Blinky, ktorej cieľom je rozblikať dve LED diódy pripojené k portom P0 a P1. LED diódy nie sú pripojené priamo na porty, ale cez odpory 100 Ohmov, ktoré obmedzujú prúd prechádzajúci diódami. 

Ledky rozblikáte tak, že na príslušných portoch budete striedavo prepínať hodnoty logická 1 (3,3 V) a logická 0 (0 V). 

Pripomínam, že kód sa vytvára priamo na stránke https://makecode.microbit.org. Pripojte vývojovú dosku do USB portu počítača. Počítač̌ rozpozná́ zariadenie ako bežný́ USB kľúč - otvorí́ sa priečinok s názvom ​MICROBIT. Po vytvorení programu ho viete vo forme .hex súboru stiahnuť a nahrať do svojho zariadenia microbit kliknutím na tlačidlo “Stiahnuť”.Hex súbor uložte do priečinka MICROBIT. Počas nahrávania na zariadení bliká LEDka pri USB konektore Keď sa nový súbor s programom nahrá́ do zariadenia, LEDka prestane blikať a program sa ihneď spustí. Zároveň sa súbor .hex z priečinka vymaže. Už nie je potrebný, pretože jeho obsah je už nahratý v pamäti mikrokontroléra, kde sa vykonáva. Všimnite si v hornej časti prepínač Bloky / JavaScript. Po prepnutí na JavaScript sa zobrazí kód v tomto programovacom jazyku, ktorý ste vytvorili pomocou blokov. Pri každom príklade ukážeme nielen grafické blokové znázornenie algoritmu, ale aj kód v JavaScripte.

JavaScript: 

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

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)
       pins.digitalWritePin(DigitalPin.P1, 1)
       basic.pause(500)
       pins.digitalWritePin(DigitalPin.P0, 1)
       pins.digitalWritePin(DigitalPin.P1, 0)
       basic.pause(500)
    }
})

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

 Blokový kód softvéru bude:

JavaScript

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

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

V poslednom príklade zostane rovnaké hardvérové zapojenie, no zmení sa softvér. Bude rozlišovať dve hodnoty osvetlenia. Po štarte sa aplikácia skalibruje, čiže do premennej „kalibrácia“ sa zapíše aktuálna hodnota osvetlenia. Ak bude intenzita okolitého svetla väčšia, alebo rovná tejto hodnote zmenšenej o 2 zobrazí sa na displeji jedna z preddefinovaných ikon. Ak bude hodnota úrovne osvetlenia menšia, zobrazí sa iná ikona.

JavaScript

let svetlo = 0
let kalibracia = 0
kalibracia = pins.analogReadPin(AnalogPin.P0)
 
basic.forever(function (){    
   svetlo = pins.analogReadPin(AnalogPin.P0)    
   if (svetlo < kalibracia - 2) {        
     basic.showIcon(IconNames.Heart)    } else {           
     basic.showIcon(IconNames.Square)    
}})

V budúcom pokračovaní ukážeme pripojenie a softvérovú obsluhu RGB LED diódy, senzoru na meranie teploty, ovládanie jednosmerného motora a servomotora, generovanie zvuku a taktiež obsluhu udalostí generovaných hardvérom

 

Zobrazit Galériu

Luboslav Lacko

Všetky autorove články
IoT internet veci micro:bit hardver bastlenie

1 komentár

dakujem reakcia na: IoT prakticky: BBC micro:bit - jednoduché pokusy s pripojeným hardvérom

4.4.2019 14:04
dakujem za perfektnu seriu clankov o micro:bit
Reagovať

Pridať komentár