Ani nevím odkud začít - třeba jak jsme si na Robotickém dnu v roce 2015 dělali legraci, že britské ministerstvo školství rozdává mladým, muslimům časovače k bombám, nebo jak se mě jistý kolega na letošním robotickém dni ptal : "děláš ještě roboty nebu už jen psy a děti ?" Výsledek byl ten, že jsem paní Kubáčové v zácpě na D1 cestou do Frydku suše oznámil: "Koupím si nové procesory a nebudeme o tom diskutovat !!"
Než se tedy dostaneme k Micro:Bitu neboli těm "novým procesorům" - zde lehká zmínka o "Arduínu" neboli "starému procesoru" jehož móda mě zcela minula. Někdy v roce 2000 jsem hledal který mikrokontrolér budu používat do svých tehdy ještě nepostavených robotů. Na výběr tehdy byly Microchip PIC a Atmel AVR. Vybral jsem si AVR, protože svojí konstrukcí silně přimomíná "na 8 bitů ořezané velké RISCocé procesory" a má kráásný školsky jednoduchý assembler. Takže jsem do všech robotů strkal AVR a mezitím nějací Taliání vymysleli Arduíno a strčili do něj AVR taky. Takže jsem se pak dostával do zvláštních situací, kdy se mě různí joudové ptali : "A je váš robot kompatibilní s Arduínem ?" Na to jsem odpovídal "Uvnitř není Arduíno, ale je tam stejný procesor" a na to oni ode mně utíkali jako od prašivého : "Ani Arduíno neumí používat !!".
Jenom taková poznámka Michrochip koupil Atmel takže dneska PIC i AVR jsou "stejná firma". Kromě příšerných PIC 16 dnes těžíště "picek" je v daleko programovatelnějších PIC 18 a dokonce si můžete koupit PIC32 což je jediný 32 bitový MIPS procesor, který sežene v trafopájkou pájitelném DIL pouzdře. Navíc mám neblahou tuchu, že Microchip se bude snažit AVR postupně zbavit, takže dnes by volba PIC, nebo AVR nebyla zdaleka tak jednoduchá, ale o tom dnešní pohádka není.
Tam kde žáčci v komunistickém česku zápasili s doutnajícím klunkrem IQ151 tam mají Angličani mají dlouhou tradici kvalitních "školních počítačů" BBC Micro s procesorem 6502, potom Acorn Archimedes - "otec architektury ARM", Raspberry Pi, které nebylo pod patronací dvojice firem ARM + BBC a možná právě proto teď je na řadě Microbit, též psáno jako Micro:Bit. Co tedy dostanete za necelou pětistovku : 16 MHz 32 bitový ARM procesor na destičce s legračním displejem 5x5 "pixelů" z červených LEDek + 2 tlačítka + Akcelerometr + Magnetometr alias "elektronický kompas" + Bluetooth verze 4 + jednoduchý teploměr a indikátor intenzity světla - vše jako preriferie toho 16 MHz ARMu to vše na destičce velikosti poloviny papírové vizitky s konektorem na který se dají "přicvaknout" krokodýlky a dokonce se do něj dají zastrčit banánky.
Je nutné poznamenat, že BBC + ARM + Univerzita v Lancasteru udělaly maximum, aby Micro:Bit byl maximálně přístupný žáčkům školáčkům.
Způsob programování : ZDE si klinkěte na "vývojové prostředí" a začněte psát program. Až budte mít napsáno "v obrázkovém programovacím jazyku" prostě připojíte svůj microbit k USB portu, ten se přihlásí jako USB Flash disk, na který nahrajete *.HEX soubor, který si stáhnete s "vývojového prostředí" a vše je naprogramováno. Vskutku Micro:Bit má online "cloudové" vývojové prostředí a "javascriptový" kompilátor kódu. Ba dokonce zdrojový text programu je uložen v samotém *.HEX souboru, který je tedy jediným souborovým formátem, se kterým žáčci pracují, takže rádi odpustíme, že "blikání LEDkou" má 560 kiloByte a že délka tohoto HEX souboru se s délkou programu prakticky nemění.
Pokud by se vám nelíbil obrázkový programovací jazyk ( je skvělý ) můžete programovat ještě v JavaScriptu a Pythonu. "Velcí ajťáci" asi více milují Python, ale ten je interpretovaný, pomalý a tak-tak se do Microbitu vejde, protože zdrojový text k interpretaci se ukládá do RAM, které nemá Micro:Bit nazbyt. My vidlácí máme mnohem raději Java Scritpt, který je kompilovaný, a spolu s runtime knihovnami ( proto má HEX pořád 560 kB ) se ukládá do FLASH paměti, kde je místa více.
Když jsem dopsal sem ujasnilo se mi proč můj vztah k Arduinu je o tolik méně vřelý než k Micro:bitu. Arduino je totiž prakticky holé AVR s USB portem s Bootloaderem a s "takovými těmi ajťáckými perireriemi", kterým veřejnost nerozumí jako je I2C, SPI, UART atd. Tedy Arduino je uděláno přesně k tomu účelu, který má plnit - to jest svádí k nákupu "čtyřdírkových modulů" z Číny. Teprve jejich připojením k Arduínu - chumlem drátů - něco vznikne. Micro:bit je pravý opak - pan učitel vám dá destičku s procesorem, na které je tolik perfierií, že si vyhrajete celý školní rok a můžete vytvářet programy ve stylu "blikající srdíčko" a vzhledem k onlinovém vývjovému prostředí a způsobu programování "jako Flah Disk" můžete tyto blbůstky velice rychle programovat třeba i na návštěvě u známých.
Stálí čtenářové mého blogu právě vrtí hlavami - jak si přítel "holého železa" a nepřítel "softwarových serepetiček" může koupit školní hravý rádoby-počítač velikosti 4x5 cm ? V mém případě byl rozdhodující asi tyto faktory :
- Bluetooth 4.0 a snadnost jeho použítí v softwaru pro Micro:bit. Už dlouhou dobu válčím s bezdrátovým interfacem pro roboty i další elektroniku, který by bezešvým způsobem zapadl do mých zapojení.
- Dostatečný výpočetní výkon na palubě, abyste k bezdrátovém přenosu nemuseli hned přídávat "Arduíno" nebo v mém případě AVR jako u modulů typu HC-05.
- Spotřeba ve špičkovém provozu 13,5 mA při 3V. 2 tužkové baterky vydrží 180 hodin "plného provozu" - na rozdíl třeba od WIFI modulu s ESP2866 který skýtá bezdrátovou konektivitu i výpočetní výkon na palubě ovšem za cenu 350 mA trvalé a 1A špičkové spotřeby.
- Velice rozumná cena srovnatelná s ( nepadělanými ) moduly pro Bluetooth nebo Zig-Bee.
- Dostatek periferií, které se dají použít k lecčemus - řízení robota náklonem akcelerometru, jednoduchá indikace na displeji, počítačová hra, digitální hrací kostka atd.
Následuje odstavec - chvála 32 bitových Timerů. Ano časovač je "Ajťácká periferie, které veřejnost nerozumí" ale pokud porovnáme 32 bitový timer v Microbitu (ARMu) se 16 bitovým timerem v AVR - nebe a duddy. Zejména pokud si hrajete s analogovou elektronikou a mrcha piezzoelement vám rezonuje na nějaké nemožné frekvenci ve stylu 40.073 KHz a vy už jste popsali dvě stránky Excelových tabulek úvahami jak nastavit Timer v AVR aby tuto frekvenci vyrobil s přijatelnou chybou. Zde prostě nastavíte jedním příkazem frekvenci s maximální chybou 1/232 a pokud chcete ještě nejaké divoke plnění PWM ve stylu 39,9% taky není problém. Možná vypadám jako blb, ale 32 bitové timery na mně udělaly dojem ve stylu "neuvěří, kdo nevyzkoušel" a pokud vezmeme v úvahu, že k microbitu se dají připojit banánky a krokodýlky - jednoduchoučký generátor přesných frekvencí je otázkou pár minut programování v "obrázkovém jazyku".
Následuje odstavec - Hana Micro:Bitu : Microbit má zvláštní konektor, ke kterému je těžké sehnat protikus. Navíc z 80 pinového konektoru vám leze jen 19 výstupů, což je způsobeno tím, že celá jedna strana konektoru Micro:Bitu není nikam zapojená což je "blbuvzdornost proti zasunutí Micro:Bitu obráceně" Na internetu najdete obrázky jak žáčci mají microbit "přibitý hřebíky" do svého obvodu. Za nevýhodu se též považuje 3,3V "palubní napětí". Jako člověk, který vyrábí vlastní většinou analogové periferie to nepovažuju za problém, co mě ale štve je zatížitelnost pinů 0,5 mA, pouze 3 piny přepnuté do režimu "High current" - jehož aktivace není nikde pořádně popsaná mohou dávat 5mA. Obojí je pro "vidláckou elektroniku" směšně málo.
Tedy abych nějak skončil - Zkoumáte-li jak mají děcka zapojené roboty na Robotickém dnu - zjistíte že to je chaotická směs různých modulů původně vymyšlených v Evropě a USA za $19.9 nyní však nedokonale číňanem padělaných za $1.99 spojených přes kontaktní pole zvonkovým drátem. Nepřítomnost promyšleného konceptu z toho sívítí na kilometry. Zde jsem se po dlouhé době setkal s "Anglickou konstrukční elegancí" ve stylu stíhačky de Havillandu Mosquito, nebo prvních ARMů a navíc je tato konstrukční elegance zabalena do formy, která neuvěřitelně svádí ke hraní i elektro-dědky stižené syndromem vyhoření ( =mně ), což je doufám dostatečná chvála, abyste tuto blbůsku taky vyzkoušeli.