Mikropočítač Pico:ed kompatibilný s Micro:bitom, programovateľný v Pythone aj v C/C++
Pre žiakov, študentov a hobby nadšencov, ktorých oslovili experimenty s populárnym jednodoskovým počítačom BBC Micro:bit, používaným aj v mnohých našich školách pri výučbe informatiky, skôr či neskôr nastane moment, keď si položia otázku: „Ako ďalej?“ Micro:bit je koncipovaný ako entry-level platforma, ktorá má vo vekovej kategórii mladších aj starších žiakov vzbudiť záujem o programovanie, robotiku a mikroelektroniku a umožniť objaviť talenty pre tieto odbory. Talentovaní študenti aj hobby nadšenci sa časom začnú obzerať po pokročilejšej a výkonnejšej platforme. Vhodnou alternatívou sú napríklad dosky využívajúce moderné mikrokontroléry ESP32 alebo RP2040. Aj preto sú k dispozícii hardvérové klony Micro:bitu s týmito čipmi. Vývojovú dosku Mbits s čipom ESP32, ktorý podporuje komunikáciu cez Wi-Fi a bluetooth, sme už v našom magazíne predstavili a ďalšiu zaujímavú dosku Pico:ed predstavíme v tomto článku. Alternatívne mikrokontrolérové platformy hardvérovo kompatibilné s Micro:bitom prinášajú niekoľko významných motivačných aspektov. Jednak možnosť pokračovať na pokročilejšej platforme, ale aj istotu, že hobby nadšenci robotiky môžu začať vytvárať a ladiť svoj hardvérový výtvor s Micro:bitom, a ak im táto doska z nejakého dôvodu prestane vyhovovať, majú k dispozícii výkonnejšiu hardvérovo kompatibilnú alternatívu. Navyše s týmito doskami môžu využiť väčšinu rozširujúcich modulov a ďalšieho príslušenstva.

Popis pinov
Pico:ed
Srdcom mikropočítačovej dosky Pico:ed, rozmerovo aj hardvérovo kompatibilnej s Micro:bitom, je dvojjadrový mikrokontrolér Raspberry Pi RP2040 navrhnutý v Raspberry Pi Foundation. Tento výkonný a zároveň úsporný mikrokontrolér bol prvýkrát použitý vo vývojovej doske Raspberry Pi Pico a neskôr v Arduino Nano RP2040 s podporou komunikácie Wi-Fi aj bluetooth, takže doska Pico:ed by sa dala považovať za atraktívny medzistupeň pri migrácii z Micro:bitu na platformy Raspberry či Arduino.
Mikrokontrolér RP2040 využíva architektúru ARM Cortex M0+. Beží na variabilnej taktovacej frekvencii až do 133 MHz. Samozrejme, platí, že čím vyššiu taktovaciu frekvenciu nastavíte, tým bude mať mikrokontrolér vyšší výkon, ale za cenu vyššej spotreby. Priamo na čipe je k dispozícii 264 kilobajtov pamäte RAM a na doske sú 2 MB pamäte flash. Mikrokontrolér má zabudovaný senzor na snímanie teploty.
Na porovnanie, procesor v prvej verzii Micro:bitu je taktovaný na 16 MHz a má k dispozícii 16 kB RAM a 256 kB flash. Micro:bit V2 má procesor taktovaný na 64 MHz, 128 kB RAM a 512 kB pamäte flash. Inak povedané, RP2040 v porovnaní s Micro:bitom V2 môže bežať na dvojnásobnej taktovacej frekvencii, má dvojnásobnú kapacitu RAM a štvornásobnú kapacitu flash pamäte, takže na tejto doske môžete realizovať náročnejšie algoritmy vrátane jednoduchého strojového učenia a AI v programovacom jazyku Python.
Na prednej strane dosky je maticový displej 7 × 17 LED, dve tlačidlá označené A a B a na rozdiel od Micro:bitu aj jedna LED umiestnená v logu ako bodka na i. Na porovnanie, Micro:bit má maticový displej 8 × 8 LED, ktorý umožňuje naraz zobraziť len jeden znak. Pico:ed dokáže v matici 7 × 17 bodov zobraziť súčasne až tri číslice alebo alfanumerické či iné znaky. Môžete napríklad zobraziť nameranú hodnotu ako trojmiestne číslo. Keď sa zobrazujú tri znaky, posúvanie textu je oveľa príjemnejšie, než keď na originálnom Micro:bite roluje len jeden znak. Takisto matica 7 × 27 umožňuje zobrazovať aj grafický priebeh meranej či sledovanej veličiny.
Kľúčové informácie ohľadne hardvérovej kompatibility sú identické rozmery a kompatibilita pinov konektora s Micro:bitom. V praxi to znamená, že Pico:ed môže priamo nahradiť Micro:bit v akejkoľvek konštrukcii, napríklad v súprave na experimentovanie s hardvérom alebo v robotickom podvozku. Mapovanie portov RP2040 na piny konektora je na obrázku. Väčšina portov GPIO je alternovaná so signálmi komunikačných zberníc SPI, I2C a UART. Na rozdiel od Micro:bitu vývojová doska Pico:ed nepodporuje komunikačné rozhranie bluetooth ani vzájomnú komunikáciu medzi viacerými doskami.

Vľavo displej klasického Micro:bitu, vpravo displej Pico:ed
Softvérová (ne)kompatibilita
Pico:ed nie je s Micro:bitom softvérovo kompatibilný, takže nemôžete použiť grafické vývojové prostredie MakeCode ani existujúci softvér v tomto vývojovom prostredí. Rovnako nemôžete použiť ani microbitové knižnice pre programovací jazyk MicroPython. Tento odsek by sme mohli začať aj v štýle: „Zlá správa je, že Pico:ed nie je s Micro:bitom softvérovo kompatibilný,“, ibaže to až taká zlá správa nie je. Po doske Pico:ed siahnete najčastejšie vtedy, ak chcete skúsiť niečo nové, čo by vás posunulo dopredu. Takže ohľadne softvérovej kompatibility v podstate máme pre vás len dobré správy. Pico:ed rovnako ako čoraz populárnejšia doska Raspberry Pi Pico využíva mikrokontrolér RP2040, takže je softvérovo kompatibilný s touto doskou. Pico:ed teda môžete programovať v programovacom jazyku MicroPython a priamo využiť interpreter pre RPI Pico alebo môžete programy vytvárať aj v programovacom jazyku C/C++. Ako vývojové prostredie pre MicroPython môžete použiť Thony a na vývoj v „céčku“ vývojové prostredie Arduino IDE. Zdôrazňujeme, že ani kód v programovacom jazyku Python nie je priamo prenosný. Musíte ho prispôsobiť hardvérovým špecifikám Pico:ed, hlavne čo sa týka mapovania portov na piny konektora zbernice. MicroPython pre platformu RP2040 a Python vo všeobecnosti je interpretačný jazyk, to znamená, že mikrokontrolér vykonáva príkazy napísané v Pythone bez toho, aby ich kompiloval. Preto v pamäti flash musí byť aj interpreter jazyka MicroPython, v tomto prípade pre Raspberry Pi Pico. Doska Pico:ed má tento interpreter už zavedený, takže môžete hneď začať programovať. Vývojové prostredie Thonny IDE, ktoré si môžete stiahnuť z webu thonny.org a je k dispozícii pre Windows, Mac OS aj Linux. Podporu pre Raspberry Pi Pico doinštalujete pomocou menu Tools – Options v záložke Interpreter. Ešte treba stiahnuť z webu www.elecfreaks.com/learn-en/pico-ed/pico_ed_python.html a zaviesť do Pico:ed knižničný súbor Pico_ed.py, ktorý obsahuje definíciu alfanumerických a číselných znakov a mapovanie portov, takže keď do svojho programu importujete tento súbor, môžete používať konvenciu portov a príkazy na zobrazovanie textových reťazcov ako v MicroPythone pre Micro:bit. Postup zavedenia tohto súboru ukazuje video. Aj postup zavedenia interpretera je veľmi jednoduchý. Zo stránok Raspberry Pi Pico si stiahnete súbor s príponou UF2. Následne na doske stlačíte a držíte tlačidlo BOOTSEL (boot select) a pripojíte kábel USB k počítaču. Doska RPi Pico sa bude vzhľadom na počítač javiť ako externé pamäťové zariadenie. Následne na toto virtuálne pamäťové zariadenie skopírujete súbor UF2. Tlačidlo BOOTSEL prepína bootovanie z flash pamäte na bootovanie z USB.

Mikrokontrolér RP2040 využíva aj populárna doska Raspberry Pi Pico (vpravo)
Ako prvé odporúčame vyskúšať dva jednoduché príklady. Prvý demonštruje zobrazovanie textových reťazcov na displeji
from Pico_ed import *
from machine import Pin
while True:
if ButtonA.is_pressed():
display.show("abcdefghi1234567890")
if ButtonB.is_pressed():
display.show("NXT")
Ak vám tento program bude fungovať, máte istotu, že máte Pico:ed správne pripojený k vývojárskemu počítaču, funguje interpreter a máte zavedený aj knižničný súbor Pico_ed.py.
V ďalšom príklade ukážeme obsluhu portu P1 a zabudovanej LED, ktorá je v bodke nad i. V súbore Pico_ed.py ľahko nájdete, že táto LED je pripojená na pin 25.
from Pico_ed import *
from machine import Pin
p1 = Pin(pin.P1, Pin.OUT) # Pin P1 jako výstupný
while True:
if ButtonA.is_pressed():
p1.value(1) #P1 pin logická 1
led.on() #LED svieti
if ButtonB.is_pressed():
p1.value(0) #P1 pin logická nula
led.off() #LED nesvieti
Pico:ed sme testovali s doskami Elecfreak Sensor:bit a aj s dvojicou dosiek Edge I/O Adapter pre Micro:bit a Micro:bit Connector Board od českej firmy jederobot.cz a obsluha portov vrátane generovania signálov PWM pre servomotory fungovala bez problémov. Mimochodom, výhoda spomínanej dvojice dosiek je v tom, že sú navzájom prepojené plochým káblom, takže každá z nich môže byť vo vašej konštrukcii umiestnená inde. Pico:ed podobne ako Micro:bit sa do konštrukčných riešení najčastejšie umiestňuje tak, aby bol dobre viditeľný displej na doske. Dosku Micro:bit Connector Board, ku ktorej sa pripájajú senzory, servomotory, relé a ďalšie periférie, je zas výhodné umiestniť vnútri konštrukcie. Pre zaujímavosť, rozširujúca doska Edge I/O Adapter pre Micro:bit je kompatibilná s rozširujúcou doskou Kitronik Edge Connector Breakout Board a súpravou Kitronik Inventor's Kit.

Pico:ed zasunutý v rozširujúcej doske Sensor:bit
Samozrejme, môžete pripojiť aj rôzne zariadenia cez komunikačné zbernice, napríklad OLED displej umožňujúci súčasné zobrazenie väčšieho množstva údajov. Na obsluhu zobrazovania potrebujete vhodnú knižnicu, ktorú do projektu pridáte priamo z vývojového prostredia Thony. Keď si pozriete zdrojové súbory knižnice, veľa sa naučíte o obsluhe displejov pripojených cez komunikačné rozhrania I2C a SPI a pozorní čitatelia si pri niektorých knižniciach všimnú, že boli vytvorené pred niekoľkými rokmi, keď o doske Pico:ed ani Raspberry Pi Pico ešte nikto netušil. Knižnice boli vytvorené napríklad pre mikrokontrolér ESP32. Keďže MicroPython je interpreter, fungovanie knižníc nebude obmedzené na konkrétny mikrokontrolér ani dosku, ale budú pre akúkoľvek hardvérovú platformu, ktorú možno programovať v programovacom jazyku MicroPython a má implementované príslušné komunikačné rozhranie, v tomto prípade rozhranie I2C. V programe využívajúcom príslušnú knižnicu potom pri inicializácii priradíte piny, na ktorých sú signály tohto rozhrania.
Zobrazit Galériu