Szójegyzék

baremetal

Operációs rendszer (teljes értékű) nélküli rendszer, például egy MCU alapú rendszer. Egy baremetal rendszeren futtatva a MicroPython gyakorlatilag egy kis operációs rendszerként működik, futtatja a felhasználói programokat és parancsértelmezőt (REPL) biztosít.

buffer protocol

Bármely Python objektum, amely automatikusan bájtokká alakítható, mint például a bytes, bytearray, memoryview és str objektumok, amelyek mind megvalósítják a „buffer protocol”-t.

board

Ez jellemzően egy nyomtatott áramköri lapra (PCB) utal, amely egy mikrokontrollert és kiegészítő komponenseket tartalmaz. A MicroPython firmware-t jellemzően kártyánként biztosítják, mivel a firmware mind MCU-specifikus funkciókat, mind kártyaszintű funkciókat (például illesztőprogramokat vagy lábneveket) tartalmaz.

bytecode

A Python program kompakt reprezentációja, amelyet a Python forráskód lefordításával állítanak elő. Ezt hajtja végre ténylegesen a VM. A bytecode jellemzően automatikusan generálódik futásidőben, és a felhasználó számára láthatatlan. Vedd figyelembe, hogy bár a CPython és a MicroPython is bytecode-ot használ, a formátum eltérő. A forráskódot előre is lefordíthatod offline a cross-compiler használatával.

callee-owned tuple

Ez egy MicroPython-specifikus konstrukció, amelyben hatékonysági okokból egyes beépített függvények vagy metódusok ugyanazt az alapul szolgáló tuple objektumot újrahasználhatják az adatok visszaadására. Ezzel elkerülhető, hogy minden híváshoz új tuple-t kelljen lefoglalni, és csökken a heap töredezettsége. A programok nem tarthatnak hivatkozásokat a callee-owned tuple-ökre, hanem csak ki kell nyerniük belőlük az adatokat (vagy másolatot kell készíteniük).

CircuitPython

A MicroPython egy változata, amelyet az Adafruit Industries fejlesztett.

CPython

A CPython a Python programozási nyelv referenciaimplementációja, és a legismertebb is. Ugyanakkor csak egy a sok implementáció közül (beleértve a Jythont, IronPythont, PyPy-t és a MicroPythont). Bár a MicroPython implementációja jelentősen eltér a CPythontól, igyekszik a lehető legnagyobb kompatibilitást fenntartani.

cross-compiler

mpy-cross néven is ismert. Ez az eszköz a PC-n fut, és egy MicroPython kódot tartalmazó .py file-t egy MicroPython bytecode-ot tartalmazó .mpy file-vá alakít. Ez azt jelenti, hogy gyorsabban töltődik be (a kártyának nem kell lefordítania a kódot), és kevesebb helyet foglal a flash memórián (a bytecode helytakarékosabb).

driver

Egy MicroPython könyvtár, amely egy adott komponens, például egy érzékelő vagy kijelző támogatását valósítja meg.

FFI

A Foreign Function Interface rövidítése. Egy mechanizmus, amelyet a MicroPython Unix port használ az operációs rendszer funkcióinak eléréséhez. Ez nem érhető el a baremetal portokon.

filesystem

A legtöbb MicroPython port és kártya egy flash memóriában tárolt fájlrendszert biztosít, amely a felhasználói kód számára a szabványos Python fájl API-kon, például az open()-en keresztül érhető el. Néhány kártya ezt a belső fájlrendszert USB tömegtárolón keresztül a gazda számára is elérhetővé teszi.

frozen module

Egy Python modul, amelyet keresztfordítottak és a firmware-képbe csomagoltak. Ez csökkenti a RAM-igényt, mivel a kód közvetlenül a flash memóriából fut.

Garbage Collector

Egy háttérfolyamat, amely a Pythonban (és a MicroPythonban) fut, hogy visszanyerje a heap-en lévő nem használt memóriát.

GPIO

Általános célú be-/kimenet (general-purpose input/output). A legegyszerűbb eszköz az elektromos jelek (közismert nevén „lábak”) vezérlésére egy mikrokontrolleren. A GPIO jellemzően lehetővé teszi, hogy a lábak bemenetek vagy kimenetek legyenek, valamint hogy beállítsák vagy lekérdezzék a digitális értéküket (logikai „0” vagy „1”). A MicroPython a GPIO-hozzáférést a machine.Pin és machine.Signal osztályokkal absztrahálja.

GPIO port

Egy csoport GPIO láb, amely általában ezeknek a láboknak a hardveres tulajdonságain alapul (pl. ugyanazzal a regiszterrel vezérelhetők).

heap

A RAM egy olyan területe, ahol a MicroPython a dinamikus adatokat tárolja. Ezt automatikusan a Garbage Collector kezeli. A különböző MCU-k és kártyák rendkívül eltérő mennyiségű RAM-mal rendelkeznek a heap számára, így ez befolyásolja, hogy a programod mennyire lehet összetett.

interned string

Egy optimalizáció, amelyet a MicroPython használ a stringekkel végzett munka hatékonyságának javítására. Egy interned stringre annak (egyedi) azonosítója alapján hivatkozik, nem pedig a címe alapján, így gyorsan összehasonlítható pusztán az azonosítója alapján. Ez azt is jelenti, hogy az azonos stringek deduplikálhatók a memóriában. A string interning szinte mindig láthatatlan a felhasználó számára.

MCU

Mikrokontroller. A mikrokontrollerek általában jóval kevesebb erőforrással rendelkeznek, mint egy asztali gép, laptop vagy telefon, de kisebbek, olcsóbbak és sokkal kevesebb energiát igényelnek. A MicroPython úgy lett megtervezve, hogy elég kicsi és optimalizált legyen ahhoz, hogy egy átlagos modern mikrokontrolleren fusson.

micropython-lib

A MicroPython (általában) egyetlen futtatható/bináris fájlként kerül terjesztésre, mindössze néhány beépített modullal. Nincs a CPython szabványos könyvtárához hasonlítható kiterjedt szabványos könyvtár. Ehelyett létezik egy kapcsolódó, de különálló projekt, a micropython-lib, amely a CPython szabványos könyvtárából számos modul implementációját biztosítja.

Néhány modul tiszta Pythonban van megvalósítva, és bármely porton fut; az OpenMV firmware ezek egy válogatását (érzékelő-illesztőprogramok, hálózatkezelés és segédprogramok) közvetlenül a firmware-képbe fagyasztja, hogy bármi telepítése nélkül importálhatók legyenek. A micropython-lib modulok egy kisebb része FFI-t használ, és csak a MicroPython Unix port-on működik; ezek nem érhetők el az OpenMV Cameken.

A CPython szabványos könyvtárával ellentétben azok a micropython-lib modulok, amelyek nincsenek befagyasztva, egyenként kerülnek telepítésre - vagy a fájlrendszerre másolva, vagy a hálózati képességekkel rendelkező kártyákon a mip használatával.

MicroPython port

A MicroPython különböző kártyákat, RTOS-eket és OS-eket támogat, és viszonylag könnyen adaptálható új rendszerekhez. Egy adott rendszer támogatásával rendelkező MicroPythont az adott rendszerre szóló „port”-nak nevezzük. A különböző portok funkcionalitása nagyban eltérhet. Ez a dokumentáció a különböző portokon elérhető általános API-k („MicroPython core”) referenciájaként szolgál. Vedd figyelembe, hogy egyes portok továbbra is kihagyhatnak néhány itt leírt API-t (pl. erőforráskorlátok miatt). Az ilyen eltéréseket, valamint a MicroPython magfunkcionalitásán túli, portspecifikus bővítményeket a különálló, portspecifikus dokumentáció írja le.

MicroPython Unix port

A unix port az egyik fő MicroPython port. POSIX-kompatibilis operációs rendszereken, például Linuxon, MacOS-en, FreeBSD-n, Solarison stb. való futtatásra szolgál. Emellett a Windows port alapjául is szolgál. A Unix port nagyon hasznos a MicroPython nyelv és a géptől független funkciók gyors fejlesztéséhez és teszteléséhez. A CPython python futtatható fájljához hasonló módon is működhet.

mip

A MicroPython csomagtelepítője (mip - „mip installs packages”). MicroPython csomagokat telepít akár a micropython-lib-ből, a GitHubról vagy tetszőleges URL-ekről. A mip a hálózati képességekkel rendelkező kártyákon eszközön belül használható, valamint belsőleg olyan eszközök által is, mint az mpremote.

A mip használatáról további információkért lásd: Csomagkezelés.

mpremote

Egy eszköz a MicroPython eszközzel való interakcióhoz. Lásd: MicroPython távoli vezérlés: mpremote.

.mpy file

A cross-compiler kimenete. Egy .py file lefordított formája, amely Python forráskód helyett MicroPython bytecode-ot tartalmaz.

native

Általában „natív kódra” utal, azaz a célmikrokontroller gépi kódjára (ARM Thumb a Cortex-M alapú OpenMV Cameken). A @micropython.native dekorátor alkalmazható egy MicroPython függvényre, hogy az adott függvényhez bytecode helyett natív kódot generáljon, ami valószínűleg gyorsabb lesz, de több RAM-ot használ.

port

Általában a MicroPython port rövidítése, de utalhat a GPIO port-ra is.

.py file

Egy Python forráskódot tartalmazó fájl.

pyboard.py

Egy mára meghaladott, gazda oldali eszköz a MicroPython kártyával való interakcióhoz — szkriptek futtatásához és a fájlrendszer eléréséhez a nyers REPL-en keresztül. Lásd a helyettesítőjét, az mpremote-ot.

REPL

A „Read, Eval, Print, Loop” rövidítése. Ez az interaktív Python prompt, amely hasznos a hibakereséshez vagy rövid kódrészletek teszteléséhez. Az OpenMV Camek a REPL-t USB-n keresztül (USB CDC soros eszközként) elérhetővé teszik egy gazda PC számára.

small integer

A MicroPython úgy optimalizálja az egész számok belső reprezentációját, hogy a „kis” értékek ne foglaljanak helyet a heap-en, és a velük végzett számítások ne igényeljenek heap-lefoglalást. A legtöbb 32 bites porton ez a -2**30 <= x < 2**30 intervallumba eső értékeknek felel meg, de ezt implementációs részletnek kell tekinteni, és nem szabad rá hagyatkozni.

stream

„File-szerű objektum” néven is ismert. Egy Python objektum, amely szekvenciális olvasási-írási hozzáférést biztosít az alapul szolgáló adatokhoz. Egy stream objektum egy megfelelő interfészt valósít meg, amely olyan metódusokból áll, mint a read(), write(), readinto(), seek(), flush(), close() stb. A stream egy fontos fogalom a MicroPythonban; sok I/O objektum megvalósítja a stream interfészt, így következetesen és felcserélhetően használhatók különböző kontextusokban. A MicroPython streamekről további információkért lásd az io modult.

UART

A „Universal Asynchronous Receiver/Transmitter” rövidítése. Ez egy periféria, amely egy lábpáron (TX és RX) keresztül küld adatokat. Sok kártya tartalmaz egy módot arra, hogy legalább az egyik UART-ot soros portként elérhetővé tegye egy gazda PC számára USB-n keresztül.

upip

A MicroPython egy mára elavult csomagkezelője, amelyet a CPython pip-je ihletett, de annál jóval kisebb és csökkentett funkcionalitású. Lásd a helyettesítőjét, a mip-et.

webrepl

Egy módszer egy eszköz REPL-jéhez való csatlakozáshoz (és fájlok átviteléhez) az interneten keresztül egy böngészőből. Lásd: https://micropython.org/webrepl