Slovník pojmů¶
- baremetal¶
Systém bez (plnohodnotného) operačního systému, například systém založený na MCU. Při běhu na baremetal systému funguje MicroPython prakticky jako malý operační systém, který spouští uživatelské programy a poskytuje příkazový interpret (REPL).
- buffer protocol¶
Jakýkoli objekt Pythonu, který lze automaticky převést na bajty, například objekty
bytes,bytearray,memoryviewastr, jež všechny implementují „buffer protocol“.- board¶
Obvykle se tím myslí deska plošných spojů (PCB) obsahující mikrokontrolér a podpůrné součástky. Firmware MicroPythonu se obvykle poskytuje pro jednotlivé desky, protože firmware obsahuje jak funkce specifické pro MCU, tak funkce na úrovni desky, jako jsou ovladače nebo názvy pinů.
- bytecode¶
Kompaktní reprezentace programu v Pythonu, která vzniká kompilací zdrojového kódu Pythonu. To je to, co VM ve skutečnosti vykonává. Bytecode se obvykle generuje automaticky za běhu a je pro uživatele neviditelný. Pamatujte, že ačkoli CPython i MicroPython používají bytecode, jeho formát se liší. Zdrojový kód můžete také předkompilovat offline pomocí cross-compiler.
- callee-owned tuple¶
Jde o konstrukci specifickou pro MicroPython, kdy mohou některé vestavěné funkce nebo metody z důvodu efektivity opakovaně používat tentýž podkladový objekt tuple pro vracení dat. Tím se předejde nutnosti alokovat nový tuple při každém volání a snižuje se fragmentace heap. Programy by si neměly uchovávat odkazy na callee-owned tuples, ale pouze z nich extrahovat data (nebo si pořídit kopii).
- CircuitPython¶
Varianta MicroPythonu vyvíjená společností Adafruit Industries.
- CPython¶
CPython je referenční implementace programovacího jazyka Python a ta nejznámější. Je však jednou z mnoha implementací (mezi něž patří Jython, IronPython, PyPy a MicroPython). Ačkoli se implementace MicroPythonu od CPythonu podstatně liší, snaží se zachovat co největší kompatibilitu.
- cross-compiler¶
Známý také jako
mpy-cross. Tento nástroj běží na vašem PC a převádí .py file obsahující kód MicroPythonu na .mpy file obsahující bytecode MicroPythonu. To znamená rychlejší načítání (deska nemusí kód kompilovat) a menší obsazení flash paměti (bytecode je úspornější co do místa).- driver¶
Knihovna MicroPythonu, která implementuje podporu pro konkrétní součástku, například senzor nebo displej.
- FFI¶
Zkratka pro Foreign Function Interface. Mechanismus používaný MicroPython Unix port pro přístup k funkcím operačního systému. Není dostupný na baremetal portech.
- filesystem¶
Většina portů a desek MicroPythonu poskytuje souborový systém uložený ve flash paměti, který je dostupný uživatelskému kódu prostřednictvím standardních API Pythonu pro práci se soubory, jako je
open(). Některé desky tento vnitřní souborový systém zpřístupňují hostiteli také přes USB mass storage.- frozen module¶
Modul Pythonu, který byl zkompilován cross-kompilátorem a zabudován do obrazu firmwaru. Tím se snižují nároky na RAM, protože kód se vykonává přímo z flash paměti.
- Garbage Collector¶
Proces běžící na pozadí v Pythonu (a MicroPythonu), který uvolňuje nepoužívanou paměť v heap.
- GPIO¶
Univerzální vstup/výstup (general-purpose input/output). Nejjednodušší prostředek pro řízení elektrických signálů (běžně označovaných jako „piny“) na mikrokontroléru. GPIO obvykle umožňuje, aby piny byly buď vstupní, nebo výstupní, a aby se nastavovala či zjišťovala jejich digitální hodnota (logická „0“ nebo „1“). MicroPython abstrahuje přístup ke GPIO pomocí tříd
machine.Pinamachine.Signal.- GPIO port¶
Skupina pinů GPIO, obvykle daná hardwarovými vlastnostmi těchto pinů (např. ovladatelných tímtéž registrem).
- heap¶
Oblast RAM, kam MicroPython ukládá dynamická data. Je spravována automaticky prostřednictvím Garbage Collector. Různé MCU a desky mají k dispozici velmi rozdílné množství RAM pro heap, což ovlivní, jak složitý může váš program být.
- interned string¶
Optimalizace používaná MicroPythonem ke zvýšení efektivity práce s řetězci. Internovaný řetězec je odkazován svou (jedinečnou) identitou namísto adresy, a lze jej proto rychle porovnávat pouze podle jeho identifikátoru. Znamená to také, že identické řetězce lze v paměti deduplikovat. Internování řetězců je pro uživatele téměř vždy neviditelné.
- MCU¶
Mikrokontrolér. Mikrokontroléry mají obvykle mnohem méně prostředků než stolní počítač, notebook nebo telefon, ale jsou menší, levnější a vyžadují mnohem méně energie. MicroPython je navržen tak, aby byl dostatečně malý a optimalizovaný, aby běžel na běžném moderním mikrokontroléru.
- micropython-lib¶
MicroPython je (obvykle) distribuován jako jeden spustitelný/binární soubor s pouhými několika vestavěnými moduly. Neexistuje žádná rozsáhlá standardní knihovna srovnatelná s tou v CPython. Místo toho existuje příbuzný, ale samostatný projekt micropython-lib, který poskytuje implementace mnoha modulů ze standardní knihovny CPythonu.
Některé z modulů jsou implementovány v čistém Pythonu a běží na libovolném portu; firmware OpenMV zamrazuje výběr z nich (ovladače senzorů, síťové funkce a pomocné nástroje) přímo do obrazu firmwaru, takže je lze importovat bez instalace čehokoli. Menší počet modulů micropython-lib používá FFI a funguje pouze na MicroPython Unix port; ty na OpenMV Cam nejsou dostupné.
Na rozdíl od standardní knihovny CPython se moduly micropython-lib, které nejsou zamrazené, instalují jednotlivě – buď jejich zkopírováním na souborový systém, nebo, na deskách s podporou sítě, pomocí mip.
- MicroPython port¶
MicroPython podporuje různé desky, RTOSy a OSy a lze jej poměrně snadno přizpůsobit novým systémům. MicroPython s podporou konkrétního systému se nazývá „port“ na tento systém. Různé porty mohou mít značně odlišnou funkcionalitu. Tato dokumentace má být referencí obecných API dostupných napříč různými porty („jádro MicroPythonu“). Pamatujte, že některé porty mohou některá zde popsaná API přesto vynechávat (např. kvůli omezeným prostředkům). Veškeré takové rozdíly i rozšíření specifická pro daný port nad rámec funkcionality jádra MicroPythonu by byly popsány v samostatné dokumentaci specifické pro daný port.
- MicroPython Unix port¶
Unix port je jedním z hlavních portů MicroPythonu. Je určen pro běh na operačních systémech kompatibilních s POSIX, jako jsou Linux, MacOS, FreeBSD, Solaris atd. Slouží také jako základ pro Windows port. Unix port je velmi užitečný pro rychlý vývoj a testování jazyka MicroPython a funkcí nezávislých na hardwaru. Může také fungovat podobně jako spustitelný soubor
pythonv CPython.- mip¶
Instalátor balíčků pro MicroPython (mip – „mip installs packages“). Instaluje balíčky MicroPythonu buď z micropython-lib, z GitHubu, nebo z libovolných URL. mip lze používat přímo v zařízení na deskách s podporou sítě a interně jej využívají nástroje jako mpremote.
Více informací o používání
mipnajdete v Správa balíčků.- mpremote¶
Nástroj pro interakci se zařízením MicroPython. Viz Vzdálené ovládání MicroPythonu: mpremote.
- .mpy file¶
Výstup cross-compiler. Zkompilovaná podoba .py file, která obsahuje bytecode MicroPythonu místo zdrojového kódu Pythonu.
- native¶
Obvykle odkazuje na „nativní kód“, tj. strojový kód pro cílový mikrokontrolér (ARM Thumb na OpenMV Cam založených na Cortex-M). Dekorátor
@micropython.nativelze aplikovat na funkci MicroPythonu, aby pro tuto funkci generovala nativní kód místo bytecode, což bude pravděpodobně rychlejší, ale spotřebuje více RAM.- port¶
Obvykle zkratka pro MicroPython port, ale může také odkazovat na GPIO port.
- .py file¶
Soubor obsahující zdrojový kód Pythonu.
- pyboard.py¶
Nyní již nahrazený nástroj na straně hostitele pro interakci s deskou MicroPython — spouštění skriptů a přístup k souborovému systému přes surový REPL. Viz jeho náhrada, mpremote.
- REPL¶
Zkratka pro „Read, Eval, Print, Loop“. Jde o interaktivní příkazovou řádku Pythonu, užitečnou pro ladění nebo testování krátkých úryvků kódu. OpenMV Cam zpřístupňují REPL hostitelskému PC přes USB (sériové zařízení USB CDC).
- small integer¶
MicroPython optimalizuje interní reprezentaci celých čísel tak, aby „malé“ hodnoty nezabíraly místo v heap a aby výpočty s nimi nevyžadovaly alokaci na heapu. Na většině 32bitových portů to odpovídá hodnotám v intervalu
-2**30 <= x < 2**30, ale to je třeba považovat za implementační detail a nespoléhat se na to.- stream¶
Známý také jako „objekt podobný souboru“ (file-like object). Objekt Pythonu, který poskytuje sekvenční přístup pro čtení a zápis k podkladovým datům. Objekt typu stream implementuje odpovídající rozhraní, které se skládá z metod jako
read(),write(),readinto(),seek(),flush(),close()atd. Stream je v MicroPythonu důležitý koncept; mnoho I/O objektů implementuje rozhraní stream, a lze je tak konzistentně a zaměnitelně používat v různých kontextech. Více informací o streamech v MicroPythonu najdete v moduluio.- UART¶
Zkratka pro „Universal Asynchronous Receiver/Transmitter“. Jde o periferii, která posílá data přes dvojici pinů (TX a RX). Mnoho desek nabízí způsob, jak zpřístupnit alespoň jeden z UARTů hostitelskému PC jako sériový port přes USB.
- upip¶
Nyní již zastaralý správce balíčků pro MicroPython, inspirovaný nástrojem pip z CPython, ale mnohem menší a s omezenou funkcionalitou. Viz jeho náhrada, mip.
- webrepl¶
Způsob připojení k REPL (a přenosu souborů) na zařízení přes internet z prohlížeče. Viz https://micropython.org/webrepl