Microbit – úvod a displej

Obľúbený mikrokontrolér vyvinutý v Británií spoločnosťou BBC ako nástroj pre popularizáciu programovania a robotiky na britských školách sa rozšíril do celého sveta. Na jeho programovanie sa obvykle používa prostredie MAKECODE, ale je možné použiť aj PYTHON. A táto séria článkov sa zaoberá práve ním.

Najprv je potrebné stiahnuť program, kde budeme písať program. A to konkrétne MU Editor.

Môžete ho stiahnuť tu: https://codewith.mu/en/download

Po nainštalovaní je potrebné pri spustení v prvom okne, ktoré sa objaví zvoliť Microbit ako používaný mikrokontrolér.

Potom pripojte Microbit pomocou USB kábla k počítača a hotovo.

Na Microbite je “displej” tvorený maticou LEDiek 5×5. Začneme tým, že si na ňom niečo zobrazíme.

Do prvého riadku programu napíšeme vždy:

from microbit import * 

Tento príkaz priradí do programu všetky knižnice príkazov, ktoré budeme používať. A teraz môžeme napísať prvý príkaz. Tento zobrazí na displeji “AHOJ”:

from microbit import * 
display.show("Ahoj") 

Program odošlete do microbitu stlačením tlačidla FLASH v MU editore.

Keďže je displej malinký tak sa zobrazí text ako jedno písmenko za druhým. Čo nieje práve moc dobré. Preto príkaz display.show budeme používať na zobrazenie textov a grafiky vhodnej k veľkosti displeja. Ako napríklad jeden znak alebo písmeno alebo:

from microbit import * 
display.show(Image.HAPPY) 

Na displeji sa zobrazí obrázok smajlíka – “Image.HAPPY”. Na microbite môžete zobrazovať obrázky s tejto ponuky – stačí ich názvy vpísať namiesto Image.HAPPY:

Image.HEARTImage.HEART_SMALL
Image.HAPPYImage.SMILEImage.SADImage.CONFUSEDImage.ANGRYImage.ASLEEPImage.SURPRISEDImage.SILLYImage.FABULOUSImage.MEHImage.YESImage.NO
Image.ARROW_NImage.ARROW_NEImage.ARROW_EImage.ARROW_SEImage.ARROW_SImage.ARROW_SWImage.ARROW_WImage.ARROW_NW
Image.MUSIC_CROTCHETImage.MUSIC_QUAVERImage.MUSIC_QUAVERS
Image.XMASImage.PACMANImage.TARGETImage.ROLLERSKATEImage.STICKFIGUREImage.GHOSTImage.SWORDImage.UMBRELLA
Image.RABBITImage.COWImage.DUCKImage.HOUSEImage.TORTOISE,
Image.BUTTERFLYImage.GIRAFFEImage.SNAKE 

Na zobrazovanie dlhších textov je vhodnejší príkaz:

from microbit import * 
display.scroll("TEXT TEXT") 

Text sa bude pomaly skrolovať sprava doľava na displeji. Prikaz má aj užitočné možnosti:

from microbit import * 
display.scroll("TEXT TEXT", delay = 300, loop = True)

Parameter delay určuje rýchlosť skrolovania a parameter loop určuje či sa skrolovanie bude opakovať (TRUE) alebo nie (FALSE).

Na displeji je možné zobraziť aj ľubovoľný pixel takto:

from microbit import * 
display.set_pixel(0, 0, 9)        
display.set_pixel(1, 0, 9) 

Program zobrazí prvý a druhý pixel v prvom riadku displeja. Prvé číslo v zátvorke určuje poradie pixelu v riadku, druhé určuje ktorý riadok to bude a tretie číslo intenzitu (od 0-nesvieti do 9-svieti s max. intenzitou). Uvedomte si, že v Pythone sa všetko čísluje od nuly.

Tiež je možné si vytvoriť vlastný obrázok:

from microbit import * 
lodka = Image("05500:"                 
              "05050:"                 
              "05005:"                 
              "99999:"                 
              "09990") 
display.show(lodka) 

V zátvorkách je možné presne určiť , ktorá LEDka na displeji bude rozsvietená a aj s akou intenzitou (od 0-nesvieti do 9-svieti s max. intenzitou).

Ďalej je možné zobraziť aj dve animácie Image.ALL_CLOCKS a Image.ALL_ARROWS a to takto:

 from microbit import * 
display.show(Image.ALL_CLOCKS, delay = 100, loop = True ) 

Animácie si môžete vytvoriť aj vlastné:

 from microbit import * 
ciara1 = Image("20000:"               
               "03050:"               
               "00500:"               
               "00070:"               
               "00009") 
ciara2 = Image("00002:"               
               "00030:"               
               "00500:"               
               "07000:"               
               "90000") 
while True:
    ciara = [ciara1, ciara2] 
    display.show(ciara, delay=200) 

No a nakoniec ak potrebujete vymazať displej tak použite tento príkaz:

display.clear()