Pojmovnik¶
- baremetal¶
Sustav bez (potpunog) operacijskog sustava, primjerice sustav temeljen na MCU. Pri radu na baremetal sustavu MicroPython zapravo funkcionira kao mali operacijski sustav, izvodeći korisničke programe i pružajući naredbeni interpretator (REPL).
- buffer protocol¶
Bilo koji Python objekt koji se može automatski pretvoriti u bajtove, poput objekata
bytes,bytearray,memoryviewistr, koji svi implementiraju „buffer protocol”.- board¶
Obično se odnosi na tiskanu pločicu (PCB) koja sadrži mikrokontroler i prateće komponente. MicroPython firmware obično se isporučuje po pločici, jer firmware sadrži kako funkcionalnost specifičnu za MCU, tako i funkcionalnost na razini pločice poput upravljačkih programa ili naziva pinova.
- bytecode¶
Kompaktni prikaz Python programa koji se generira prevođenjem Python izvornog koda. To je ono što VM zapravo izvršava. Bytecode se obično generira automatski tijekom izvođenja i nevidljiv je korisniku. Imajte na umu da, iako CPython i MicroPython oba koriste bytecode, format je različit. Izvorni kod možete i unaprijed prevesti izvan mreže koristeći cross-compiler.
- callee-owned tuple¶
Ovo je konstrukcija specifična za MicroPython gdje, iz razloga učinkovitosti, neke ugrađene funkcije ili metode mogu ponovno koristiti isti temeljni objekt n-torke za vraćanje podataka. Time se izbjegava alokacija nove n-torke za svaki poziv i smanjuje fragmentacija gomile. Programi ne bi smjeli zadržavati reference na n-torke u vlasništvu pozvanog (callee-owned), već iz njih samo izvlačiti podatke (ili izraditi kopiju).
- CircuitPython¶
Inačica MicroPythona koju razvija Adafruit Industries.
- CPython¶
CPython je referentna implementacija programskog jezika Python i najpoznatija je. Međutim, jedna je od mnogih implementacija (uključujući Jython, IronPython, PyPy i MicroPython). Iako se MicroPython implementacija znatno razlikuje od CPythona, nastoji zadržati što je moguće veću kompatibilnost.
- cross-compiler¶
Poznat i kao
mpy-cross. Ovaj alat radi na vašem računalu i pretvara .py datoteku koja sadrži MicroPython kod u .mpy datoteku koja sadrži MicroPython bytecode. To znači da se učitava brže (pločica ne mora prevoditi kod) i koristi manje prostora na flash memoriji (bytecode je prostorno učinkovitiji).- driver¶
MicroPython biblioteka koja implementira podršku za određenu komponentu, poput senzora ili zaslona.
- FFI¶
Kratica za Foreign Function Interface (sučelje stranih funkcija). Mehanizam koji koristi MicroPython Unix port za pristup funkcionalnosti operacijskog sustava. Nije dostupan na baremetal portovima.
- filesystem¶
Većina MicroPython portova i pločica pruža datotečni sustav pohranjen u flash memoriji koji je dostupan korisničkom kodu putem standardnih Python API-ja za datoteke poput
open(). Neke pločice ovaj interni datotečni sustav također čine dostupnim glavnom računalu putem USB masovne pohrane.- frozen module¶
Python modul koji je unakrsno preveden i ugrađen u sliku firmwarea. Time se smanjuju zahtjevi za RAM-om jer se kod izvršava izravno iz flash memorije.
- Garbage Collector¶
Pozadinski proces koji se izvodi u Pythonu (i MicroPythonu) radi povrata neiskorištene memorije u gomili.
- GPIO¶
Ulaz/izlaz opće namjene (general-purpose input/output). Najjednostavniji način upravljanja električnim signalima (obično nazivanim „pinovi”) na mikrokontroleru. GPIO obično omogućuje da pinovi budu ili ulazni ili izlazni te postavljanje ili očitavanje njihove digitalne vrijednosti (logička „0” ili „1”). MicroPython apstrahira pristup GPIO-u koristeći klase
machine.Pinimachine.Signal.- GPIO port¶
Skupina GPIO pinova, obično na temelju hardverskih svojstava tih pinova (npr. mogućnost upravljanja istim registrom).
- heap¶
Područje RAM-a u kojem MicroPython pohranjuje dinamičke podatke. Njime automatski upravlja Garbage Collector. Različiti MCU-ovi i pločice imaju vrlo različite količine RAM-a dostupne za gomilu, pa će to utjecati na to koliko vaš program može biti složen.
- interned string¶
Optimizacija koju MicroPython koristi za poboljšanje učinkovitosti rada sa stringovima. Interniran string referencira se svojim (jedinstvenim) identitetom, a ne adresom, te se stoga može brzo usporediti samo po svom identifikatoru. To također znači da se identični stringovi mogu deduplicirati u memoriji. Interniranje stringova gotovo je uvijek nevidljivo korisniku.
- MCU¶
Mikrokontroler. Mikrokontroleri obično imaju daleko manje resursa od stolnog računala, prijenosnika ili telefona, ali su manji, jeftiniji i zahtijevaju mnogo manje energije. MicroPython je dizajniran da bude dovoljno malen i optimiziran da radi na prosječnom modernom mikrokontroleru.
- micropython-lib¶
MicroPython se (obično) distribuira kao jedna izvršna/binarna datoteka sa samo nekoliko ugrađenih modula. Ne postoji opsežna standardna biblioteka usporediva s onom u CPythonu. Umjesto toga, postoji povezan, ali zaseban projekt micropython-lib koji pruža implementacije mnogih modula iz CPythonove standardne biblioteke.
Neki su moduli implementirani u čistom Pythonu i rade na svakom portu; OpenMV firmware zamrzava odabir tih modula (upravljački programi senzora, mrežne funkcije i pomoćni alati) izravno u sliku firmwarea kako bi se mogli uvesti bez ikakve instalacije. Manji broj micropython-lib modula koristi FFI i radi samo na MicroPython Unix portu; oni nisu dostupni na OpenMV Cam uređajima.
Za razliku od CPython stdlib-a, micropython-lib moduli koji nisu zamrznuti instaliraju se pojedinačno - bilo kopiranjem na datotečni sustav ili, na pločama s mrežnim mogućnostima, koristeći mip.
- MicroPython port¶
MicroPython podržava različite pločice, RTOS-ove i OS-ove te se može relativno lako prilagoditi novim sustavima. MicroPython s podrškom za određeni sustav naziva se „port” za taj sustav. Različiti portovi mogu imati znatno različitu funkcionalnost. Ova dokumentacija namijenjena je kao referenca za generičke API-je dostupne na različitim portovima („MicroPython core”). Imajte na umu da neki portovi i dalje mogu izostaviti neke ovdje opisane API-je (npr. zbog ograničenja resursa). Sve takve razlike, kao i proširenja specifična za port izvan funkcionalnosti MicroPython core-a, bila bi opisana u zasebnoj dokumentaciji specifičnoj za port.
- MicroPython Unix port¶
Unix port jedan je od glavnih MicroPython portova. Namijenjen je radu na operacijskim sustavima kompatibilnim s POSIX-om, poput Linuxa, MacOS-a, FreeBSD-a, Solarisa itd. Također služi kao osnova za Windows port. Unix port vrlo je koristan za brzi razvoj i testiranje MicroPython jezika i značajki neovisnih o stroju. Može funkcionirati i na sličan način kao CPython-ova izvršna datoteka
python.- mip¶
Instalacijski program paketa za MicroPython (mip - „mip installs packages”). Instalira MicroPython pakete bilo iz micropython-lib, s GitHuba ili s proizvoljnih URL-ova. mip se može koristiti na samom uređaju na pločama s mrežnim mogućnostima, te interno od strane alata poput mpremote.
Pogledajte Upravljanje paketima za više informacija o korištenju
mip.- mpremote¶
Alat za interakciju s MicroPython uređajem. Pogledajte Daljinsko upravljanje MicroPythonom: mpremote.
- .mpy file¶
Izlaz cross-compilera. Prevedeni oblik .py datoteke koji sadrži MicroPython bytecode umjesto Python izvornog koda.
- native¶
Obično se odnosi na „native kod”, tj. strojni kod za ciljani mikrokontroler (ARM Thumb na OpenMV Cam uređajima temeljenim na Cortex-M). Dekorator
@micropython.nativemože se primijeniti na MicroPython funkciju kako bi se za tu funkciju generirao native kod umjesto bytecodea, što će vjerojatno biti brže, ali će koristiti više RAM-a.- port¶
Obično skraćeno za MicroPython port, ali se može odnositi i na GPIO port.
- .py file¶
Datoteka koja sadrži Python izvorni kod.
- pyboard.py¶
Sada zastarjeli alat na strani glavnog računala za interakciju s MicroPython pločom — pokretanje skripti i pristup datotečnom sustavu preko sirovog REPL-a. Pogledajte njegovu zamjenu, mpremote.
- REPL¶
Kratica za „Read, Eval, Print, Loop” (čitaj, izvrednuj, ispiši, ponovi). To je interaktivni Python upit, koristan za otklanjanje pogrešaka ili testiranje kratkih isječaka koda. OpenMV Cam uređaji čine REPL dostupnim glavnom računalu putem USB-a (USB CDC serijski uređaj).
- small integer¶
MicroPython optimizira interni prikaz cijelih brojeva tako da „male” vrijednosti ne zauzimaju prostor na gomili, a izračuni s njima ne zahtijevaju alokaciju gomile. Na većini 32-bitnih portova to odgovara vrijednostima u intervalu
-2**30 <= x < 2**30, no to treba smatrati implementacijskim detaljem na koji se ne treba oslanjati.- stream¶
Poznat i kao „objekt nalik datoteci”. Python objekt koji pruža sekvencijalni pristup za čitanje i pisanje temeljnim podacima. Objekt toka implementira odgovarajuće sučelje, koje se sastoji od metoda poput
read(),write(),readinto(),seek(),flush(),close()itd. Tok je važan koncept u MicroPythonu; mnogi I/O objekti implementiraju sučelje toka i stoga se mogu dosljedno i zamjenjivo koristiti u različitim kontekstima. Za više informacija o tokovima u MicroPythonu pogledajte modulio.- UART¶
Kratica za „Universal Asynchronous Receiver/Transmitter”. To je periferija koja šalje podatke preko para pinova (TX i RX). Mnoge pločice uključuju način da barem jedan od UART-ova bude dostupan glavnom računalu kao serijski port putem USB-a.
- upip¶
Sada zastarjeli upravitelj paketa za MicroPython, nadahnut CPython-ovim pip-om, ali mnogo manji i smanjene funkcionalnosti. Pogledajte njegovu zamjenu, mip.
- webrepl¶
Način povezivanja s REPL-om (i prijenosa datoteka) na uređaju putem interneta iz preglednika. Pogledajte https://micropython.org/webrepl