Pico:ed kompatibilný s Micro:bitom programovateľný v Pythone aj v C/C++

Pre žiakov, študentov a  nadšencoch, ktorých oslovili experimenty s jednodoskovým počítačom BBC Micro:bit, ktorý sa využíva aj na našich školách skôr či neskôr nastane moment, kedy 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 objaviť talenty pre tieto odbory. Talentovaní študenti sa časom začnú obzerať po pokročilejšej a výkonnejšej platforme. Vhodnou alternatívou sú napríklad dosky využívajúce mikrokontroléry  ESP32, alebo RP2040. Alternatívne mikrokontrolérové platformy hardvérovo kompatibilné s Micro:bitom prinášajú dva významné motivačné aspekty. Jednak priamu alternatívu ako pokračovať na pokročilejšej platforme, a taktiež 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.

Video predstavuje jednodoskový mikropočítač Pico:ed

Jednou z možností je začať využívať vývojové dosky s mikrokontrolérom RP 2040 navrhnutým Raspberry Pi Foundation. Tento čoraz populárnejší mikrokontrolér je srdcom jednodoskového mikropočítača Pico:ed, ktorý je rozmerovo aj hardvérovo kompatibilný s Micro:bitom, takže môžete využiť väčšinu rozširujúcich modulov určených pre Micro:bit.

RP 2040 využíva napríklad miniatúrny mikropočítač Raspberry Pi Pico, ktorý je malý a lacný – stojí približne 4 eurá, alebo Arduino Nano RP2040 s podporou WiFi aj bluetooth komunikácie, takže doska Pico:ed by da dala považovať za atraktívny medzistupeň pri migrácii z Micro:bitu na platformy Raspberry, či Arduino.

Porovnanie Pico:ed s Raspberry Pi Pico

Vývojové dosky s mikrokontrolérom RP2040: Zľava doprava Pico:ed, Raspberry Pi Pico, Arduino Nano RP2040

Hardvérová kompatibilita

Vývojová doska Pico:ed má konektor zbernice kompatibilný s Micro:bitom. Na prednej strane má maticový displej 7 x 17 LED, dva tlačidlá označené A a B na rozdiel od Micro:bitu aj jednu LED umiestnenú v logu ako bodka na „i“.  Na porovnanie Micro:bit má maticový displej 8 x 8 LED, ktorý umožňuje súčasne zobraziť len jeden znak. Pico:ed dokáže v matici 7 x 17 bodov zobraziť súčasne až tri číslice, alebo alfanumerické, či iné znaky. Takže môžete napríklad zobraziť trojmiestne číslo. Rolovanie textu keď sa zobrazujú tri znaky je oveľa príjemnejšie, než keď na originálnom Microbite skroluje len jeden znak.  Taktiež matica 7 x 27 umožňuje zobrazovať aj grafický priebeh meranej, či sledovanej veličiny.

Srdcom dosky Pico:ed je dvojjadrový mikrokontrolér Raspberry Pi RP2040 s architektúrou Arm Cortex M0+. Beží na variabilnej taktovacej frekvencii  až do 133 MHz. Aktuálna taktovacia frekvencia sa nastavuje pomocou integrovaného fázového závesu PLL a je odvodená od 12 MHz kryštálu. Čím vyššiu taktovaciu frekvenciu nastavíte, tým bude mať mikrokontrolér vyšší výkon, avšak za cenu vyššej spotreby. Priamo na čipe je k dispozícii 264 kilobajtov pamäti RAM a na doske je 2 MB pamäť flash. Mikrokontrolér má zabudovaný senzor na snímanie teploty.

Na rozdiel od Micro:bitu vývojová doska Pico:ed nepodporuje komunikačné rozhranie Bluetooth. Porty mikrokontroléra sú vyvedené na 25 pinový konektor rozmerovo kompatibilný s Micro:bitom. Mapovanie portov RP2040 na piny zbernice je na obrázku. Väčšina GPIO portov je alternovaná so signálmi komunikačných zberníc SPI, I2C a UART

Na porovnanie procesor v prvej verzii i 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äti flash. Inak povedané, RP2040 v porovnaní s Micro:bitom V2 môže bežať na dvojnásobnej taktovacej frekvencii a má dvojnásobnú kapacitu RAM a štvornásobnú kapacitu flash pamäti, takže na tejto doske môžete realizovať náročnejšie algoritmy, vrátane jednoduchého strojového učenia a AI.

Softvérová (ne) kompatibilita

Pico:ed je hardvérovo kompatibilný s Micro:bitom, softvérovo však kompatibilný nie je, takže nemôžete použiť grafické vývojové prostredie MakeCode ani existujúci softvér v tomto vývojovom prostredí. Tento klon Micro:bitu je viac kompatibilný s Raspberry Pi Pico, prípadne s Arduino Nano RP204, čiže s vývojovými doskami, ktoré využívajú rovnaký mikrokontrolér, takže ho môžete programovať v programovacom jazyku MicroPython, alebo c C/C++ vo vývojových prostrediach pre Python, napríklad Thonny, alebo Arduino IDE. 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.

Najčastejšie sa na programovanie bude využívať populárny programovací jazyk Python, konkrétne verzia MicroPython určená pre mikrokontroléry. 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ť.

Mimochodom 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 USB kábel k počítaču. Doska RPi Pico sa bude voči počítaču tváriť ako externé pamäťové zariadenie. Následne na toto virtuálne pamäťové zariadenie skopírujete UF2 súbor. Tlačidlo BOOTSEL prepína bootovanie z flash pamäti na bootovanie z USB.

Na programovanie odporúčame vývojové prostredie Thonny IDE, ktoré si môžete stiahnuť z webu thonny.org a je k dispozícii pre Windows, MacOS aj Linux. Podporu pre Raspberry Pi Pico doinštalujete pomocou menu Tools – Options v záložke Interpreter.  Ešte je potrebné 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

Príklad na 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

Samozrejme môžete pripojiť aj rôzne zariadenie cez komunikačné zbernice, napríklad OLED displej umožňujúci súčasné zobrazenie väčšieho množstva údajov. Na zobrazovanie textov na OLED displeji využijeme vhodnú knižnicu napríklad  https://github.com/stlehmann/micropython-ssd1306 ktorú pridáte priamo z vývojového prostredia. Keď si pozriete zdrojové súbory knižnice, tak sa veľa naučíte o obsluhe displejov pripojených cez komunikačné rozhrania I2C a SPI a pozorní čitatelia si všimnú, že táto knižnica bola vytvorená v roku 2019, keď o doske Pico:ed, ani  Raspberry Pi Pico ešte nikto netušil. Knižnica bola vytvorená a odladená pre MicroPython na mikrokontroléri ESP 32. Nakoľko MicroPython je interpreter, fungovanie knižníc nebude obmedzené pre konkrétny mikrokontrolér ani dosku, ale pre akúkoľvek hardvérovú platformu, ktorú je možné programovať v programovacom jazyku Micropython a má implementované príslušné komunikačné rozhranie, v tomto prípade rozhranie I2C. V programe využívajúcim príslušnú knižnicu potom pri inicializácii priradíte piny, na ktorých sú signály tohto rozhrania.

Microbit a klony. Zľava doprava: Micro:bit V1.5, Micro:bit V2, Mbits s ESP32, Pico:ed, MXChip Microsoft Azure IoT Developer Kit

Doske Pico:ed sa budeme venovať aj v dlhodobom seriáli IoT a robotika na našom webe, kde nájdete viac príkladov aj s videami demonštrujúcim rôzne zapojenia a ich fungovanie.

Podrobnosti o MicroPythone pre RP2040 nájdete na https://docs.micropython.org/en/latest/library/rp2.html


Článek byl převzat z webu Nextech se souhlasem autora.