česky english Vítejte, dnes je čtvrtek 14. listopad 2024

Mikropočítač BBC micro:bit – nová platforma pro výuku programování

DPS 4/2017 | Články
Autor: doc. Ing. Jan Fischer, CSc., Katedra měření, FEL ČVUT v Praze, Ing. Tomáš Zedníček, Ph.D., Nadační fond micro:la

Úvod

V oblasti mikropočítačů se nyní objevil nový fenomén – miniaturní jednodeskový mikropočítač pro děti označovaný BBC micro:bit [1]. Svým vzhledem se zdá být na hranici mezi hračkou a mikropočítačem. Vznikl ve Velké Británii na popud britské rozhlasové společnosti BBC pro podporu výchovy a vzdělávání. Primárně je určen dětem ze sedmých tříd základních škol. Motivací jeho vývoje bylo přilákat děti od různých elektronických hraček, a především „chytrých“ mobilních telefonů k vlastní tvůrčí činnosti, která by je přivedla k programování a technické práci obecně. BBC micro:bit má zajímavé řešení a začíná se objevovat i na našich školách, proto bychom jej v následujícím článku chtěli blíže představit. BBC micro:bit přináší inspiraci a velkou příležitost, jak nenásilnou formou zaujmout mládež, která se s programováním a elektronikou ještě nesetkala. Prostřednictvím hry a zábavy dokáže přilákat i méně technicky orientované děti, které zatím mají z elektroniky respekt.

Konstrukce kitu BBC micro:bit

Kit BBC micro:bit dle obr. 1 je sice navržen jako výuková pomůcka pro děti, avšak jeho konstrukce je technicky zajímavá a obsahuje obdobné bloky, jako mají i systémy elektroniky k nošení (wearables) nebo standardní vývojové moduly s mikrořadiči. Základem je obvod SoC (System on a Chip) firmy Nordic nRF51822 v pouzdře QFN48. V materiálech ke kitu je pro tuto součástku používáno označení procesor, proto i v dalším textu bude využito toto označení. Obvod nRF51822 využívá procesorové jádro ARM Cortex – M0, obsahuje 256 KB paměti Flash a 16 KB paměti SRAM. Silnou stránkou tohoto obvodu, pro kterou byl asi návrháři BBC micro:bit také zvolen, je blok rádiové komunikace v pásmu 2,4 GHz, který podporuje řadu komunikačních protokolů, mimo jiné také BLE (Bluetooth Low Energy). Současně díky použitému jádru ARM Cortex – M0 se může programovat s využitím nástrojů dostupných pro toto jádro. V blokovém schématu na obr. 2 je procesor označen jako MC1.

Obr. 1, 2

Na desce jsou umístěny další obvody, které lze nalézt také v elektronice k nošení i v mobilních telefonech. Jedná se o senzor magnetického pole (magnetometr) MAG3110 a tříosý akcelerometr MMA8653FC, oba od firmy Freescale (nyní součásti NXP). Procesor MC1 komunikuje s magnetometrem a akcelerometrem prostřednictvím rozhraní IIC bus. Navíc z obou senzorů jsou do procesoru vedeny přerušovací signály. Výstup INT1 z magnetometru signalizuje připravenost nových dat. Akcelerometr poskytuje dva programovatelné přerušovací výstupy INT1, INT2, které mohou být využity nejen pro indikaci připravenosti nových dat, ale i pro signalizaci změny orientace (funkce známá např. z tabletu detekce otočení „vertikálně“ – „horizontálně“), signalizaci volného pádu nebo signalizaci pohybu.

Pro ovládání jsou na desce dvě tlačítka btn_A a btn_B, která jsou připojena přímo na piny procesoru P0.17 a P0.26 proti zemi a jsou doplněna pull-up rezistory 10 kΩ připojenými na napájení +3 V. Pro signalizaci slouží zobrazovací matice 5 × 5 LED. Elektricky jsou LED zapojeny v obvodu do matice 9 × 3. Z toho vyplývá, že současně je možno rozsvítit maximálně ty LED, které jsou připojeny na jeden řádkový vodič. Zobrazení symbolů na matici LED se proto děje pouze dynamicky. Anody jednotlivých LED v řádku jsou připojeny na výstupní pin procesoru. Další piny procesoru budící katody LED jsou na ně připojeny přes rezistory 220 Ω.

Ladicí blok DAPlink

Druhý mikrořadič MC2 typu MKL- 26Z128VFM4 (32-Pin QFN) firmy Freescale je pro uživatele „transparentní“ a slouží pro komunikaci s rozhraním USB. Pomocí MC2 se realizuje ladicí blok DAPlink, který s MC1 komunikuje prostřednictvím rozhraní SWD (Serial Wire Debug) standardizovaným firmou ARM. Pomocí SWD se do mikrořadičů s jádrem ARM Cortex M může nahrávat program, krokovat, vypisovat vnitřní stavy, tedy obecně řešit činnosti označované také jako „debugging“. Uživatel, který pracuje se standardními programovými nástroji určenými pro BBC micro:bit, však nemá možnost „debuggingu“. Pomocí MC2 je zajištěno nahrávání programu (soubor typu.HEX) do kitu, který se v PC jeví jako připojené zařízení typu paměť FLASH.

Obvod MC2 však pro uživatele má i jinou velmi výhodnou funkci, totiž funkci převodu komunikace mezi USB a UART. Po nainstalování příslušného ovládače (mbedWinSerial 16466.exe), se po připojení BBC micro:bitu k PC mezi zařízeními „Porty (COM a LPT)“ jako zařízení typu virtual COM port objeví „mbed_Serial Port“. S kitem je pak z hlediska PC možno komunikovat jako se zařízením typu COM port, kde se nabízí řada programů typu „terminál“. Tato funkce virtuální sériové komunikace kitu je velmi výhodná, protože se tak značně rozšiřují možnosti komunikace s procesorem pomocí jeho bloku UART. Jedná se např. o výpisy hodnot změřených převodníkem ADC a hodnot ze zabudovaných senzorů, nebo zadávání hodnot do programu.

Komunikační rozhraní kitu

Kit obsahuje rozhraní – sériovou sběrnici IIC Bus, která se primárně využívá pro spolupráci se senzory. Magnetometr MAG3110 má na sběrnici IIC bus adresu 0x0E, akcelerometr MMA8653FC pak má adresu 0x1D. Signály sběrnice IIC jsou vyvedeny na konektor. Jako další je k dispozici rozhraní SPI, jehož signály jsou rovněž vyvedeny na konektor. Kit také poskytuje sériový kanál typu UART, který je připojen na UART v MC2 sloužící jako můstek UART – USB. Kanál UART je však možno alternativně programově přepojit i na kontakty konektoru. Pak se může např. použít pro výukové účely, kdy se pomocí osciloskopu bude pozorovat průběh signálu na výstupu Tx bloku UART. Blok rádiové komunikace umožňuje spolupráci BBC micro:bit s mobilním telefonem prostřednictvím rozhraní BLE. Velmi zajímavá je také možnost spolupráce kitů prostřednictvím vzájemné rádiové komunikace, kdy se zvolená hodnota předává z kitu do kitu. To umožní realizaci různých her, např. funkci bezdrátového ovládání experimentu, kdy jeden kit může sloužit jako ovladač a druhý jako blok ovládající akční členy (např. motorky vozítka nebo robota). Na trhu se již brzy objeví robotické stavebnice na platformě micro:bit, (např. Merkur nebo Hobby- Robot), které bude možno ovládat mobilním telefonem prostřednictvím BLE, což samo o sobě přinese další úroveň zájmu, a současně i zábavy pro děti.

Napájení

Napájení kitu je možné prostřednictvím rozhraní USB (VBUS) nebo připojením bloku s dvěma bateriemi typu AAA (VBAT) ke konektoru na desce. Při napájení z rozhraní USB se pro vytvoření napětí 3,3 V (označené +3,3 V_IF) dle obr. 3 využívá regulátor zabudovaný MC2. Aby se zamezilo problémům interakce zdrojů při případném současném připojení rozhraní USB i bateriového bloku, přivádí se napětí z regulátoru na procesor a senzory ve formě V_TGT přes Schottkyho diodu D1 typu BAT60A. To však má za následek, že napětí V_TGT je nižší o úbytek na D1 oproti 3,3 V, a navíc se jeho velikost mírně mění s proudovou zátěží, která souvisí s počtem rozsvícených LED. Protože velikost napětí V_TGT určuje rozsah převodníku ADC, jeho změna tedy přímo ovlivňuje hodnotu změřenou při funkci analogového vstupu.

Obr. 3, 4

Hranový konektor

Signály kitu jsou dle obr. 4 vyvedeny na přímý zlacený konektor s rastrem 1,27 mm a 2 × 40 kontakty, který je v dokumentaci označen jako „hranový konektor“. Aby se snížilo riziko zkratu, jsou signály přivedeny pouze na kontakty na horní straně desky (míněna strana s maticí LED). Reálně je zde nakonec k dispozici jen 19 signálů napojených na piny procesoru, což však pro experimenty postačuje. Pět kontaktů je širokých a jsou též vybaveny prokoveným otvorem o průměru 4 mm umožňujícím zastrčení standardního banánku. Široké a dobře dostupné kontaktní plošky jsou využity pro GND (zem) a pro kontakt označený 3 V, s napětím cca 3,2 V (V_TGT), z kterého se může odebírat proud v řádu několika desítek mA (teoreticky až 90 mA) pro napájení vnějších obvodů. Hlavní a na konektoru nejlépe dostupné signály jsou na třech širokých kontaktech označených jako P0, P1, P2, na něž jsou připojeny piny P0.03, P0.02 a P0.01 procesoru. Mohou být využity jako digitální vstupně/výstupní piny nebo jako analogové vstupy vnitřního 10bitového převodníku ADC. Využití dalších signálů, které jsou přivedeny na úzké kontaktní plošky, je možné jedině za pomoci příslušného konektoru („protikusu“) nastrčeného na desku. Sem jsou připojeny signály rozhraní IIC bus, SPI, dále piny procesoru se sériově zapojenými rezistory 220 Ω pro buzení sloupců s připojenými katodami LED pod označením COL.

Ochrana kitu před poškozením

Všechny obvody v BBC jsou vyrobeny technologií CMOS. S tím je spojena citlivost na působení statické elektřiny. Použité součástky sice mají jistý stupeň ochrany proti účinkům statické elektřiny, avšak při opakované práci a dotyku ruky na konektor a následném výboji může dojít k poškození kitu. Proto by lektor měl v kurzu upozornit na toto nebezpečí. Před kontaktem s kitem je vhodné se vybít dotykem na kovové uzemněné díly, např. na kovový kryt počítače nebo radiátor ústředního topení. Nebezpečí poškození kitu hrozí zvláště v zimě, kdy je v místnostech suchý vzduch a snadno dochází k nabití těla při pohybu.

Další nebezpečí poškození kitu hrozí při připojování vnějších obvodů. Na obr. 5 je elektrické náhradní schéma pinu procesoru z hlediska přítomnosti přechodů PN. Dioda D1 představuje substrátové diody přítomné v obvodu CMOS ze samé podstaty. Každý vstupně výstupní pin pak obsahuje diodu D2 proti zemi a jistou formu diody D3 proti napájení. Přivedením záporného napětí Vin na kontakt se D2 dostane do vodivého stavu a může být poškozena velkým proudem. Podobně přivedením vstupního napětí Vin většího než napájecí napětí V_TGT na pin bude diodou D3 protékat proud a hrozí poškození daného pinu, případně i destrukce celého obvodu. Jmenovité napájecí napětí v provozu je cca +3 V. Musí tedy platit, že 0 < Vin < V_TGT. Při provozu se tedy nesmí na kontakt připojit napětí větší než V_TGT = 3 V.

Obr. 5

Podmínka, že se na pin nesmí připojit napětí větší než napájecí, však platí i v situaci, kdy kit nemá napájení, tedy z hlediska obvodu působením vnitřních bloků je V_TGN = 0. Přivedení např. napětí Vin = +3 V na pin se tato podmínka poruší a proud poteče do obvodu přes pin a příslušný ekvivalent diody D3. Opět hrozí poškození obvodů procesoru. Řešením je připojovat signály na piny vždy přes ochranné rezistory o velikosti několika tisíc ohmů, kterými se omezí velikost případného proudu. Pokud se pin používá jako výstupní, je potřeba omezit proud tekoucí pinem na limitní velikost do 5 mA. Vždy je vhodné při použití vstupně výstupního pinu použít ochranný rezistor o odporu alespoň 470 Ω, kterým omezí velikost proudu tekoucího pinem, a tak se také sníží riziko poškození kitu.

BBC micro:bit jako nástroj technického vzdělávání (nejen) dětí

Na základě prvních vlastních zkušeností je možno prohlásit, že se kit BBC micro:bit povedl. Jeho síla není ani tak v jeho obvodovém řešení, jako v obrovské programové nadstavbě. Bariéru mezi hraním a programováním u dětí překonává nenásilnou formou použitím grafického programování. Uživatel při výuce pomocí myši formou skládání grafických bloků v editoru PXT [2] velice rychle vytvoří svůj první vlastní program a může u dané problematiky zůstat. Koncepce kitu a práce s ním je promyšlená a je vidět, že kit, a především balík programového vybavení vznikaly (a stále se ještě rozvíjejí) s jasným cílem.

V současné době se projevuje nedostatek technicky vzdělaných pracovníků se středoškolským i vysokoškolským vzděláním, protože je málo mládeže studujících technické obory. Navíc, nejde jen o to, aby někdo studoval technický obor, ale aby pro věc byl zaujat a věc měl za svého koníčka. Na středních školách je řada studentů, kteří do školy „jen chodí“, ale o techniku se přímo nezajímají a v podstatě by mohli studovat cokoliv, jen aby absolvovali školu, pokud možno bez velkého úsilí. (Jako příklad pro dokreslení mohou sloužit diskuze kolem povinné maturity z matematiky.) To se pak bohužel následně částečně projevuje i na vysokých technických školách, kde je méně uchazečů, protože technické studium je náročné. Kdo však má techniku rád a studuje se zájmem, přinese mu to uspokojení a po ukončení školy především dobré pracovní uplatnění nejen v tuzemsku, ale i v zahraničí. (Pokud bychom to velmi zjednodušili, Ohmův zákon, stejně jako i ostatní přírodní zákony, platí u nás stejně, jako v zahraničí, a navíc se s časem nemění.) Proto je snahou zaujmout problematikou elektroniky a programování i studenty nižších ročníků středních škol, kteří se za čas budou rozhodovat o svém budoucím směrování. Jádro problému je však nutné hledat již u dětí mezi 10 a 15 lety, kdy je třeba je na základních školách zaujmout pro techniku a vlastní tvůrčí činnost. Je to třeba ale dělat nenásilnou formou podle Komenského zásady „Schola ludus“.

Tento problém trápí více lidí a někteří se jej snaží i sami, nezávisle na státní struktuře, řešit. Nadační fond micro:la [3] má za svůj hlavní cíl přivést k samostatné technické tvůrčí činnosti děti zejména na základních školách a v odborných kroužcích. Jako prostředek si vybral kit BBC micro:bit, o jehož rozšíření a propagaci v ČR se snaží. Mimo to připravuje hotové kurzy pro děti a učitele, které jsou zdarma dostupné na www stránkách. Nadační fond micro:la hledá sponzory, kteří by finančně podpořili myšlenku pořízení kitů do škol obecně, nebo i přímo adresně ve svém regionu. Současně navazuje kontakty s dalšími partnery, kteří by se v této oblasti také angažovali. Již dnes fond spolupracuje s pěti vysokými školami v ČR a organizací British Council. S firmou Merkurtoys spolupracuje na vývoji dalších aplikací a podpoře šíření BBC micro:bit v ČR. Tak se do této aktivity zapojila také Fakulta elektrotechnická ČVUT v Praze, kde se řeší vzorové úlohy orientované na HW a současně se připravují školení pro učitele gymnázií a středních škol.

Na ČVUT FEL je technický kroužek wITches (písmena IT v logu nejsou zvýrazněna náhodně) [4] zaměřený na elektroniku a programování, který vedou a organizují studentky z ČVUT FEL pro děti z druhého stupně základních škol. Také zde na podzim 2017 započne kurz programování kitů BBC micro:bit. Pokud rodiče mají možnost posílat nebo vodit děti do takového kroužku, je to dobré. Avšak to není vždy možné (ať již z důvodu vzdálenosti, nebo času). Na základě poznatků z propagačních akcí ČVUT FEL pro mládež se ukazuje, že důležitá jako cílová skupina jsou též rodiče, kteří mají zájem o to, aby se jejich děti vzdělávaly, současně však nemají v okolí vhodný kroužek. Situaci by chtěli řešit, ale nevědí jak. Zde je opět místo nadačního fondu micro:la ve spolupráci se školami a dalšími organizacemi, které by jim měly ukázat cestu. Perspektiva kitu BBC micro:bit je také v tom, že rodiče, kteří mají zájem o budoucnost a vzdělání svých dětí, jim mohou kit pořídit, a třeba se i sami s nimi začít doma učit základům programování, zejména pokud v okolí není škola ani kroužek, který by tuto možnost nabízel. Informace na www stránkách fondu micro:la s připravenými kurzy jim v tom mohou také pomoci.

Na tomto místě si dovolíme ještě jednu myšlenku, která vychází z poznatků z popularizačně technických akcí, které také navštěvují děti se svými prarodiči. Do důchodového věku se totiž dostává také skupina lidí, kteří se sice třeba přímo nemuseli věnovat programování, ale mají technické myšlení, jsou stále aktivní a mají zájem o techniku, a třeba mají zájem se i dále rozvíjet a současně se chtějí věnovat vnoučatům, na které mají více času než jejich rodiče. I zde by mohl být dárek ve formě kitu BBC micro:bit začátkem nové činnosti a kontaktu starší a nejmladší generace v rodině.

Perspektiva použití kitu

Na základě prvních poznatků kitu je možno jej charakterizovat výrokem: „BBC micro:bit roste se svým uživatelem“. Tedy v počátcích může sloužit jako hračka, do níž se nahraje program, který vytvořil někdo jiný, pak uživatel přejde k vlastnímu programování v grafické formě, následně i k programování v textové formě s využitím například MicroPython [5]. Postupně je možno využívat více obvodových (HW) prostředků umožňujících komunikaci s okolím i prostřednictvím dalších elektrických a elektromechanických bloků, a pronikat tak do problematiky vestavných (embedded) systémů. V dalším kroku pak může kit programovat v C/C++ s využitím online IDE mbed [6]. V této fázi je pak již snadný přechod i na jiné moduly i samostatné procesory s jádrem ARM, které mbed podporuje.

Obr. 6

Tak je možno program napsaný pomocí mbed pro BBC micro:bit přenést pro jiný mikrořadič na desce podporované mbed. Jako příklad může sloužit mikrořadič STM32F042F6P6 zapájený na levném adaptoru, který se následně zapojí na nepájivém kontaktním poli dle obr. 6. Vytvořený program se pak do mikrořadiče nahraje prostřednictvím rozhraní USB v režimu boot mikrořadiče. Na www stánkách [7] jsou příklady, jak se podobný postup při realizaci přístrojů používá na ČVUT FEL v klubu ETC (Embedded Technology Club) organizovaném pro zájemce z řad středoškolských i vysokoškolských studentů.

Závěr

Cílem tohoto článku bylo prezentovat kit BBC micro:bit jako novou platformu výuky programování ve školách a v zájmových kroužcích pro děti. Nicméně nemusí se skončit jen u toho. Na seminářích organizovaných na ČVUT FEL pro učitele z gymnázií a středních škol bude také prezentace možností využití kitu jako jednoduchého prostředku pro laboratorní experimenty z fyziky s využitím vnitřních senzorů na kitu (např. měření magnetického pole cívky) i s možností připojení dalších vnějších obvodů.

Příkladem může být měření odporu nebo určování polohy pomocí odporového snímače. Jako další problém současné mládeže totiž autoři vidí menší zájem o fyziku, která je však základem techniky a inženýrské práce obecně. I zde by použití kitu BBC micro:bit mohlo vyvolat zájem a zlepšení stavu, a to plošně v celé ČR nezávisle na tom, kde děti vyrůstají.