M5Stack je značka, pod kterou lze koupit velké množství různých elektronických modulů, které lze snadno propojovat a programovat.

Její výrobky je trochu nefér nazvat "elektronickou stavebnicí", ale je to nejsnazší označení. Celý systém tak může fungovat, a i výrobce ho tak propaguje, dokonce si rozumí s Legem Technic. Možnosti využití má ale M5Stack mnohem větší.

V tomto článku se budeme zabývat třemi podobnými produkty: M5Stack Basic, M5GO IoT Kit a M5StickC. Ty mají společné základní parametry, totiž že je pohání procesor (respektive SoC, system on chip) ESP32 od firmy Espressif Systems a mají k dispozici základní periferie, jako barevný displej, tlačítka, mikrofon a baterii. To vše v úhledném profesionálně vypadajícím provedení a se slušnou softwarovou podporou. A ve výsledku se s nimi dá vyrobit a naprogramovat spousta věcí.

Nedávno jste již předplatné aktivoval

Je nám líto, ale nabídku na váš účet v tomto případě nemůžete uplatnit.

Pokračovat na článek

Tento článek pro vás někdo odemknul

Obvykle jsou naše články jen pro předplatitele. Dejte nám na sebe e-mail a staňte se na den zdarma předplatitelem HN i vy!

Navíc pro vás chystáme pravidelný výběr nejlepších článků a pohled do backstage Hospodářských novin.

Zdá se, že už se známe

Pod vámi uvedenou e-mailovou adresou již evidujeme uživatelský účet.

Děkujeme, teď už si užijte váš článek zdarma

Na váš e-mail jsme odeslali bližší informace o vašem předplatném.

Od tohoto okamžiku můžete číst neomezeně HN na den zdarma. Začít můžete s článkem, který pro vás někdo odemknul.

Na váš e-mail jsme odeslali informace k registraci.

V e-mailu máte odkaz k nastavení hesla a dokončení registrace. Je to jen pár kliků, po kterých můžete číst neomezeně HN na den zdarma. Ale to klidně počká, zatím si můžete přečíst článek, který pro vás někdo odemknul.

Pokračovat na článek

Z čistě technického hlediska nepředstavuje platforma M5Stack nic převratného či nového. Ba právě naopak. Staví na rozšířeném a osvědčeném čipu ESP32 a i všechny rozšiřující moduly používají známé a běžně používané součástky. Co je nové, je výborná forma, kdy místo desky tištěných spojů dostanete hezky vypadající krabičku a skvělou dokumentaci.

Systém programovatelných modulů M5Stack
Systém programovatelných modulů M5Stack
Foto: Michal Altair Valášek

Za to si výrobce nechá řádně zaplatit, protože cena samotných součástek by byla asi tak pětinová až desetinová. Nicméně jsou to podle mého názoru velice dobře utracené peníze, které i přes velkou marži nejsou nijak extrémní. Za běžné moduly i tak zákazník zaplatí řádově stokoruny.

Pro platformu M5Stack vidím tři základní způsoby využití. Výrobce sám ji prezentuje jako nástroj pro STEM výuku a vzdělávání. Tomu vyhoví naprosto perfektně, dovedu si představit snadné využití jak doma, tak na základních či středních školách a už se těším, jak kolem této platformy budu stavět nějaký workshop.

Druhou oblast využití vidím pro pohodlné prototypování. Práce s jednotlivými moduly je rychlá a snadná a cena přijatelná, takže je-li těžištěm vašeho zájmu softwarový vývoj, můžete si naskládat co potřebujete, a pak ladit software, zatímco hardware řeší někdo jiný.

Poslední oblastí, kde M5Stack dává smysl, je kusová výroba. Za pár stovek si koupíte krabičku s displejem, tlačítky, baterií, základními senzory a slotem na MicroSD kartu (nebo základ pro wearable zařízení, které můžete nosit na zápěstí). I s použitím 3D tisku vás výroba kompatibilní krabičky bude stát spoustu času (zejména budete-li si ji muset sami navrhnout) a výsledek nebude vypadat zdaleka tak dobře. Zejména čtvercové moduly (testoval jsem dva, ale je jich víc s rozdílnými možnostmi) jsou výborné pro různé ovládání IoT spotřebičů.

Systém programovatelných modulů M5Stack
Systém programovatelných modulů M5Stack
Foto: Michal Altair Valášek

Potíž s DIY elektronikou

Základní problém se samo-domo vyráběnou elektronikou nastává ve chvíli, kdy je nutné prototyp, vytvořený v podobě vrabčího hnízda z drátů na nepájivém kontaktním poli, převést do nějaké trvalejší, oku lahodící a prakticky použitelné formy. Samozřejmě lze navrhnout vlastní desku plošných spojů (což ne každý umí udělat, nechat vyrobit a osadit), ale i tak potřebujete nějakou krabičku, která bude trochu vypadat. Bude mít líbivě osazený displej, nějaká tlačítka...

Tento problém částečně řeší 3D tiskárna, ale navrhnout a vyrobit rozumnou krabičku je i s ní úkol, který ne každý zvládne. A to vytváří prostor pro systémy, jako je m5Stack. 

Testovaný hardware 

Hrál jsem si celkem se třemi moduly M5Stack. Jak již bylo řečeno, základem všech tří je čip ESP32. Je dvoujádrový, s taktovací frekvencí 240 MHz, 520 kB SRAM a EPROM o velikosti 16 MB nebo 4 MB. Podporuje wi-fi na frekvenci 2,4 GHz a Bluetooth/BLE. Na poměry mikrokontrolerů je to poměrně nadupaný a výkonný systém, s řádově většími možnostmi než klasické Arduino desky založené na procesorech ATmega.

M5Stack Basic je kostka o rozměru 54 x 54 milimetrů, tloušťka je 18 mm. V této krabičce se skrývá barevný dvoupalcový displej s rozlišením 320 x 240 (které je při této úhlopříčce dostatečně jemné), tři uživatelsky programovatelná tlačítka (plus jedno pro zapnutí, vypnutí a reset), konektor USB-C, 150 mAh baterie, čtečka MicroSD karet, reproduktor (nebo spíš pípátko, žádné hi-fi od něj nečekejte) a sbírka různých pinů v podobě standardních Dupont hlaviček s roztečí 2,54 mm a jeden konektor Grove I2C.

M5GO IoT Kit je sada, která obsahuje základní kostku s příslušenstvím. Základní kostka je o něco silnější (má tloušťku 21 mm) a obsahuje větší baterii (500 mAh), a má navíc mikrofon, gyroskop s akcelerometrem, kompas a dvě sady RGB LED po stranách. Výstupy nemá vyvedené na klasické hlavičky, ale na tři Grove zásuvky, I2C, UART a obecný I/O port. Krabička je také uzpůsobená k tomu, aby ji bylo možné zapojit do stavebnice Lego pomocí Technic pinů a kostek.

K základnové stanici patří i I/O moduly a senzory, připojitelné pomocí Grove konektorů:

  • PIR je klasické pohybové čidlo.
  • ENV II obsahuje čidlo teploty, vlhkosti a atmosférického tlaku.
  • RGB obsahuje tři programovatelné RGB LED.
  • ANGLE je potenciometr.
  • IR obsahuje infračervený vysílač a přijímač, může emulovat IR dálkové ovládání anebo se jím nechat ovládat.
  • HUB je prostý rozbočovač - roztrojka z jednoho Grove portu na tři.

V kitu se dále nachází Grove kabely, USB-C kabel, kostky Lega a speciální magnetický konektor, který má nejspíš fungovat jako stojánek. Moc mě neuchvátil, protože magnet je slabý a stojánek se musí přišroubovat miniaturním šroubkem, který buďto v balení nebyl, nebo jsem ho obratem ztratil, protože jsem jeho přítomnost nepředpokládal. Tento problém jsem vyřešil tím, že jsem si navrhl univerzální a lepší stojánek pro tisk na 3D tiskárně.

Systém programovatelných modulů M5Stack
Systém programovatelných modulů M5Stack
Foto: Michal Altair Valášek

M5StickC je nejmenší, má rozměr 48 x 26 x 14 mm, jenom 4 MB flash paměti a 0,96palcový displej s rozlišením 80 x 160 bodů. Krabička obsahuje USB-C konektor, 95 mAh baterii, mikrofon, gyroskop a akcelerometr, hodiny reálného času, IR senzor, LED, dvě uživatelská tlačítka (plus jedno pro zapnutí, vypnutí a reset), piny pro rozšíření a jeden Grove konektor. Existuje k němu i adaptér na zápěstí jako "chytré hodinky".

Rozšiřitelnost

K základní jednotce lze připojit rozličné další součástky. Nejjednodušší to bude s moduly, které dodává přímo M5Stack a jsou k nim dodávány i odpovídající komunikační knihovny.

Lze použít i Grove senzory od jiných výrobců. Grove je standard vytvořený společností Seeed, který umožňuje snadné připojování modulů k základnám, pomocí standardizovaných konektorů.

Vposledku pak lze připojit jakékoliv další senzory a součástky, pro které je k dispozici podpora pro čip ESP32 a Arduino nebo Python.

Dále pak je uvnitř k dispozici standardní konektor pro baterii, kterým lze rozšířit malou kapacitu těch vestavěných.

Programování

Moduly M5Stack lze programovat třemi základními způsoby. V první řadě je k dispozici vlastní prostředí M5Stacku jménem UIFlow. To je vizuální programovací jazyk (podobně jako třeba Scratch a další), kde se programuje tím způsobem, že se myší přetahují barevné bloky a řadí se za sebe. Tím se generuje kód v populárním jazyku Python. Jeho přímé psaní je další způsob, jak lze M5Stack programovat. Třetí podporovaný způsob je pomocí Arduino IDE.

Programování pomocí UIFlow a Pythonu je velice jednoduché a přátelské. Nevyžaduje instalaci žádného softwaru a vše se děje po síti a přes webový prohlížeč. Řídicí jednotku stačí připojit k napájení (přes USB-C konektor) a k wi-fi síti (klasicky vytvoří AP, na který se lze připojit z mobilu a vybrat síť a zadat heslo). Vygeneruje "API klíč", který stačí zadat na webu. Program se pak píše v grafickém uživatelském prostředí nebo v Pythonu, a to ve webovém prohlížeči a lze ho do jednotky nahrát přes internet. V jednotce je základní firmware, který zajišťuje tuto funkčnost. Kromě firmwaru můžete do modulu nahrát další programy a po resetu si vybrat, který se má spustit.

Existuje samozřejmě i desktopový klient, který umožňuje nahrávat programy bez připojení k internetu přes USB rozhraní.

Systém programovatelných modulů M5Stack
Systém programovatelných modulů M5Stack
Foto: Michal Altair Valášek

UIFlow je prostředí vhodné pro děti a začátečníky. Nepíše se v něm žádný kód, jenom se sestavují funkční bloky. Nicméně vytvářet v něm trochu složitější programy je velmi nepohodlné. I takto poskládaný kód lze zobrazit v Pythonu a potom ho modifikovat už tradičními prostředky. Bohužel to funguje jenom jedním směrem, jakmile kód jenom triviálně pozměníte, nelze se už vrátit do grafické podoby. Resp. lze, ale pak se kód vrátí do toho stavu, ve kterém byl původně, a ručně provedené změny jsou ztraceny.

Programování tohoto typu je poměrně vysokoúrovňové. Pro všechny standardní moduly jsou k dispozici knihovny, takže nemusíte řešit, co je na jaký pin připojeno, a funguje to automaticky, což usnadňuje použití ve školách.

Poslední možnost je programovat pomocí klasického Arduino IDE v jazyce C. Je třeba si do něj nainstalovat podporu pro platformu ESP32 a knihovnu pro M5Stack, která opět zpřístupňuje dostupné komponenty. Kód se pak nahrává pomocí USB připojení přes virtuální sériový port.

Lze samozřejmě použít i některý z mnoha jiných vývojových nástrojů a platforem, které ESP32 podporuje, od výrobce jsou ale oficiální ty výše uvedené. 

Co je nutné vypíchnout jako pozitivum je kvalita dokumentace. Ta je na poměry běžných vývojových desek naprosto dokonalá. Co se týče hardwaru, vše je popsáno a barevně označeno, a to jak na výrobku samotném, tak v přiloženém malém letáku - a samozřejmě na webu. Co se týče softwaru, je k dispozici rozsáhlá dokumentace se spoustou příkladů. Vývojových kitů založených na ESP32 (nebo jeho předchůdci ESP8266) jsou minimálně desítky, spíše stovky, ale tak luxusní dokumentaci jsem zatím neviděl nikde.

Ve výsledku jsou možnosti využití hodně široké. Začínají u různých typů digitálních hodin a budíků přes systémy zobrazování dat z nejrůznějších zdrojů, ať už jde o počet sledujících na Twitteru nebo o data z rozhraní automobilu, až po miniaturní herní konzole. Nebo můžete stejnou elektroniku a programovací nástroje použít k vytvoření přes internet ovládané sexuální hračky.

Technické parametry

Všechny tři modely pohání SoC ESP32 (240MHz dual core, 600 DMIPS, 520KB SRAM, 2,4 GHz wi-fi, dual mode Bluetooth)

 

Název

M5Stack Basic

M5GO + M5GO Bottom

M5StickC

Flash

16 MB

16 MB

4 MB

Displej

320 x 240 px, 2 in

320 x 240 px, 2 in

80 x 160 px, 0,96 in

Baterie

150 mAh

500 mAh

95 mAh

Velikost

54 x 54 x 18 mm

54 x 54 x 21 mm

48,2 x 25,5 x 13,7 mm

Váha

47,2 g

65,4 g

15,1 g

Výbava

MicroSD, reproduktor, USB-C konektor, 3 tlačítka + power/reset, GROVE konektor, GPIO piny

MicroSD, mikrofon, reproduktor, gyroskop + akcelerometr MPU6886, kompas BMM150, 2x5 RGB LED, USB-C konektor, magnetický konektor, 3 tlačítka + power/reset, GROVE konektory

mikrofon, gyroskop + akcelerometr MPU6886, RTC BM8563, PMU AXP192, USB-C konektor, 2 tlačítka + power/reset, GROVE konektor, GPIO piny, IR

Cena

805 Kč

1899 Kč

389 Kč

 

Za zapůjčení k recenzi děkujeme internetovému obchodu RPiShop.