Close

MakeCode 2020 Beta aneb Jak se líhne evoluce

MakeCode V3 beta 2020 microbit

/*2024-02-06 odstavec Tovární nastavení micro:bit doplněn o aktuální informace*/

Jsou chvíle, kdy podezřívám vesmír, že zákon schválnosti je hluboce zakotven v tkanině reality! Sotva začnu se sepisováním úvodního kurzu pro MakeCode for micro:bit, oznámí vývojáři veřejný betatest nové verze, která přinese řadu užitečných vylepšení. Nováčci mohou brát tento článek jako dodatek k Něžnému úvodu do programovacího prostředí MakeCode for micro:bit, zkušení mazáci se mohou podívat na výběr novinek, které Update 2020 přinese.

Vezměme to ale popořádku: Microsoft, vývojář prostředí, opečovává MakeCode for micro:bit novou velkou aktualizací zhruba jednou ročně. Současná verze je již třetí podobou, nicméně číslování verzí začíná v duchu informatické tradice od nuly, tedy jde o verzi v2. Pokud se chcete podívat, jak vypadalo prostředí dříve, můžete si spustit předchozí verzi tak, že do URL adresy přidáte na konec (případně před #) jméno verze.1

Je dobré si tuto znalost uložit do paměti, protože se může stát, že update přinese změnu nějaké vnitřní mechaniky, se kterou počítá některé z rozšíření třetích stran, a příklady uvedené v dokumentaci nebudou v nové verzi fungovat. S tím se můžete setkat například na produktových stránkách modulů, které se úspěšně prodávají už několik let.2 Díky přístupu k dřívějším verzím máte možnost zkompilovat a náhrát program do micro:bitu i v dřívější verzi a i úplný začátečník zprovozní rozšíření bez větších problémů.

Update 2020 by měl přijít do ostrého provozu v červnu 2020, pak nejspíš bude přístupný jako veze v3. Do té doby je ve fázi veřejné betaverze, kterou můžete najít na adrese https://makecode.microbit.org/beta#, kde si můžete vyzkoušet novinky, jejichž výběr vám přinášíme níže.

Konec bezejmenných programů!

„Pojmenujte si program, ať víte, o co se jedná, až se k němu příště vrátíte!“ je natolik samozřejmá rada, kterou svým studentům na kroužcích stále opakuji, že jsem ji v minulém díle zapomněl zmínit (ačkoliv jsem ji v uváděných příkladech dodržoval, jen jsem ji explicitně neřekl). Dosud bylo prostředí MakeCode náchylné k uchovávání celé legie nepojmenovaných programů, protože pojmenování jste volili až při uložení.

MakeCode pro microbit V2
Takto může snadno dopadnout úvodní obrazovka v současné verzi prostředí MakeCode

To se v nadcházející verzi změní, protože hned po vytvoření nového programu budete vyzváni k jeho pojmenování! Sláva! Nepojmenované programy odcházejí… přichází éra nicneříkajících pojmenování, protože nic nebrání studentům zadat jména jako „Pepicek1“, „MujProgram“ nebo „JmenoProgramu“. Ale alespoň některé to motivuje k tomu zadat popisné jméno… že jo?

MakeCode microbit V3 2020
Update 2020 nutí uživatele program pojmenovat hned při jeho vytváření

MakeCode představuje Python pro micro:bit

Minule jsme uvedli, že mezi jazyky podporované přímo micro:bit foundation patří i Python. Překlad bloků do tohoto jazyka je součástí Updatu 2020. Navíc jak Python tak JavaScript získal přehledné popisy funkcí! Drobnou vadou na kráse je skutečnost, že nejspíš půjde o nějaký dialekt Pythonu, který nebude možné otevřít v jiném editoru. Rozhodně však jde o vítané rozšíření nabídky, protože Python je stále oblíbenější programovací jazyk pro začátečníky a jeho přímý překlad z bloků tuto jeho pozici ještě posiluje.

MakeCode V3 překlad do Python
V záhlaví si nyní můžete vybrat mezi překladem do jazyka Python

Rozbalovací kód

Teď možná trochu předbíhám, protože praktickou ukázku si uvedeme až v příštím článku, nicméně bych rád zmínil velmi užitečnou novinku, kterou je možnost sbalit bloky událostí a funkcí.3

MakeCode V3 2020 sbalení kódu
Po kliknutí pravým tlačítkem na blok události nyní dostanete možnost sbalit kód do kompaktní podoby

Grafické programovací jazyky jsou zaměřeny primárně na začátečníky, čemuž odpovídá i skutečnost, že bloky zabírají poměrně velkou část pracovního prostoru. To je přehledné, pokud je kód krátký, ale nic vám nebrání napsat tímto způsobem i rozsáhlé programy. Najde se dost lidí, kteří kouzlu těchto jazyků propadli natolik, že v nich píší skutečně komplexní kódy. Názornost bloků, která tak dobře funguje u krátkého kódu, však působí proti celkové přehlednosti u rozsáhlejších programů. Možnost sbalit jednotlivé funkce usnadňuje orientaci v celkové struktuře kódu.

Plnohodnotný debugger pro MakeCode for micro:bit

Někdy bývá znalost programovacího jazyka definována jako propojení mezi syntaxí, sémantikou a stavem programu. Syntax a sémantika je to, na co se zaměřujeme nejčastěji, ale občas je potřeba znát i v jakém stavu jsou aktuálně proměnné v programu, a tomu pomáhá právě nástroj zvaný debugger. Tento nástroj je běžnou součástí profesionálních vývojových prostředí, ale MakeCode for micro:bit má v současné verzi jen režim Slo-Mo (slow motion), který umožňuje krokovat vykonávání programu, ale není plnohodnotným debuggerem. To se změní s novou verzí, už teď si ho ale můžete vyzkoušet ve veřejném betatestu.

MakeCode V3 microbit debugmode
Debugovací režim zapnete pomocí ikonky broučka pod emulátorem micro:bitu

Web USB přináší pohodlí aplikace MakeCode do webového prostředí

Pokud jste dočetli až sem, vězte, že tou nejatraktivnější novinkou Updatu 2020 je technologie zvaná Web USB. Ta umožňuje „spárovat“ vaše USB zařízení přímo s webovým prohlížečem, takže když chcete nahrát nový program, stačí jen kliknout na tlačítko Download a program se rovnou stáhne do vašeho micro:bitu stejně jako v případě aplikace pro Windows 10!

Škoda jen, že v době sepsání tohoto článku je technologie přístupná pouze pro prohlížeče Chrome a Edge.

Jak spárovat micro:bit s Web USB

Vzhledem k tomu, že s nahrávání programu do micro:bitu je naprosto základní úkon, přiblížíme si použití této technologie trochu podrobněji.

Je třeba mít na paměti, že technologie je vystavěná prohlížeči Chromium, tedy funguje jen z něj odvozených browserech. (Pokud tedy preferujete použití programu Microsoft Edge, vězte, že technologii Web USB podporuje jen nová verze, která má jádro vystavěné právě na zmíněném prohlížeči a v současné době není standardní součástí Windows 10, ale je třeba provést ruční stažení aktualizace zde: https://www.microsoft.com/cs-cz/edge)

  1. Všimněte si, že v zápatí máte nyní vedle tlačítka Download i tlačítko , na které klikněte
  2. Zvolte možnost Pair device
  3. Vyskočí nabídka Pair device for one-click downloads, kde znovu zvolte Pair device.
  4. Pokud je vše v pořádku, vyskočí nabídka s nalezeným zařízením. Vyberte ho ze seznamu a zvolte Připojit.
    1. Pokud program žádné zařízení nenalezne, vyzve vás ke kontrole připojení – kromě očividných věcí, jako je kontrola, že používáte funkční datový kabel, je připojena i výzva ke kontrole verze firmwaru. Jak na to si probereme níže.
  5. Po spárování se změní ikonka vedle nápisu na tlačítku Download.

Jak zkontrolovat verzi firmwaru desky micro:bit

Technologii Web USB podporuje firmware 0249 a vyšší, což v době psaní článku znamená, že se s velkou pravděpodobností setkáte s tím, že váš micro:bit bude mít starší verzi. To si ověříte jednoduše:

  • Připojte váš micro:bit k počítači, najeďte na disk MICROBIT.
MakeCode V3 microbit firmware
  • Otevřete soubor Details.txt a zkontrolujte údaj v položce Interface version. Pokud je nižší než 0249, bude potřeba updatovat firmware. Aktuální firmware najdete na stránce microbit firmware.
MakeCode V3 microbit firmware detail

Jak updatovat firmware

  • Nejprve je třeba micro:bit uvést do režimu údržby (MAINTENANCE Mode). Toho dosáhnete tak, že odpojíte micro:bit od PC, stisknete tlačítko RESET na zadní straně desky a aniž byste ho pustili, připojíte usb kabel. V tu chvíli můžete tlačítko pustit a měli byste vidět nově připojený disk MAINTENANCE.
MakeCode V3 microbit firmware maintenance mode
  • V tuto chvíli stačí, abyste na disk nahráli .hex soubor s novou verzí firmwaru. (Pokud byste se potřebovali vrátit ke starší verzi firmwaru, nahrajete ji úplně stejně). Během nahrávání souboru bude blikat žlutá LEDka vedle tlačítka RESET. Jakmile se firmware nahraje, micro:bit se opět připojí jako disk MICROBIT.
makecode usb připojení

Tovární nastavení micro:bit

Někdy se může stát, že budete chtít microbit uvést do továrního nastavení. To znamená aby bylo všechno tak, jako ten den, co jste ho poprvé zapnuli. Bude na vás bzučet a nechá na sobě zahrát i pár her. Pokud vám tohle všechno chybělo, potom si stáhněte Out of box experience.hex nebo novější verzi Meet the micro:bit (cca od června 2023) ze stránky microbit Out of the box experience. Na stránce najdete i kód pro nový Meet the microbit, který můžete editovat v MakeCode a třeba si program upravit a něco se na tom naučit. To v předchozí verzi programu továrního nastavení nešlo.

Za nás není nový úvodní program až tak intuitivní, jako předchozí verze, ale zas o to více vybízí ke zkoumání toho, co microbit umí. Program dokáže třeba i nahrávat zvuky a pak je opakovat.

Může se stát, že váš microbit nefunguje tak, jak by měl, potom je nejlepší do něj nahrát aktuální firmware pro správnou verzi hardware (2.0, 2.2 atd.) a pak uvést microbit do továrního nastavení nahráním souboru továrního nastavení.


1 https://makecode.microbit.org/v0# – původní prostředí, které zřejmě nemělo úvodní menu

https://makecode.microbit.org/v1# – update 2018

https://makecode.microbit.org/v2# – update 2019, v době článku aktuální verze

2 Touto „nemocí z vlastního úspěchu“ občas trpí hardware od ELECFREAKS – například u LED matice 8×16 jsem se potýkal s příklady napsanými ve staré verzi rozšíření. Také mnohé startovací kity mají občas tištěný návod ve starší verzi prostředí. Nelze tvrdit, že jde o špatnou práci ze strany výrobce – manuály se kterými jsem se setkal byly velmi dobře zpracovány, právě naopak, potíž vychází z toho, že kvalitně sestavený starter kit se může prodávat i několik let.

3 Bloky událostí jsou ty, které se na nic nenapojují a na které zároveň nelze nic napojit, minule jsme si představili jejich zástupce <on start> a <forever>.

Emmet BrickHacker

3 Comments on “MakeCode 2020 Beta aneb Jak se líhne evoluce

miklik
26.5.2020 at 20:46

Tak jsem zkusil přepnut blocky, s kódem co jsem dělal synkovy k ovládání armcar bota přes Android apku Kitronik move, do makeblock pythonu a v pohodě. Prográm se nahrál a ovládání přes BT funguje.

armcar bot https://www.ebay.com/itm/Micro-bit-Mechanical-Arm-Smart-Robot-Car-DIY-Toy-Kit-Graphical-Programming-O4E8/283734260763?hash=item420fe13c1b:g:mg4AAOSwsbheE0C8

Kitronik move https://play.google.com/store/apps/details?id=com.kitronik.blemove&hl=cs

A moje kostičky https://makecode.microbit.org/_3VbMYKAzEDqW
Nepřišel jsem na to jak sdílet odkaz na appku aby se otevřel v beta makeblock.

Emmet BrickHacker
28.5.2020 at 5:02

Předně se omlouvám za prodlevu, než jsem schválil příspěvky – nepodařilo se mi zatím zjistit, jak ovládat wordpress z mobilního zařízení a až nyní jsem se dostal k rozhraní z PC.

A taky kouknu, jestli se jim do makecode pythonu vešel BT stack, s uPythonem se do micro:bitu nevešel.
(…)
Prográm se nahrál a ovládání přes BT funguje.

Děkuji za zprávu! Mohu se kdyžtak zeptat, jaké androidí zařízení používáte pro ovládání přes BLE? Mně se nepovedlo spojení přes aplikaci od Samsungu, která je proklamovaná, vůbec rozchodint na mém Xiaomi. O problémech s BLE a pythonem vím, ale že se někomu povedlo podporu zabudovat je zajímavé.
Děkuji i za zprávu o jiné aplici, než je ta zmiňovaná od Samsungu.

Snad bude webUSB v dohledné době i pro FF.

Také mám FF jako primární vyhledávač (ale musím se přiznat, že když potřebuji jiný, raději sáhnu po Edgi než po Chrome).
Nicméně, webUSB je API, která je momentálně stále ve vývoji a aktuálně je v provozu pouze podpora pro jádro chromu. Proto funguje na navé verzi prohlížeče Edge, který je nově chrome-based.
Firefox se sice před pár lety Chromem inspiroval, ale z důvodů, které jsou mi sympatické a které jsou vysvětleny zde, používají vlastní jádro. Bojím se, že tedy bude nějakou dobu trvat než se tato služba implementuje do FF. Ale zajímavou informací je, že Opera je chromium-based a vypadá to, že už má podporu webUSB (ovšem jestli toho umí využít MakeCode, to jsem nezkoušel).

Nepřišel jsem na to jak sdílet odkaz na appku aby se otevřel v beta makeblock.

Vypadá to, že kód se defaultně otevírá v nejnovějším rozhraní – momentálně nejsem schopný najít příklad sdílení ve starém kódu, takže nevím, jestlá náhodou nemá nějakou identifikaci verze, když vytváří odkaz ke sdílení.

miklik
26.5.2020 at 20:16

Snad bude webUSB v dohledné době i pro FF.
A taky kouknu, jestli se jim do makecode pythonu vešel BT stack, s uPythonem se do micro:bitu nevešel.

Napsat komentář