Sanasto

baremetal

Järjestelmä ilman (täysimittaista) käyttöjärjestelmää, esimerkiksi MCU-pohjainen järjestelmä. Baremetal-järjestelmässä toimiessaan MicroPython käytännössä toimii kuin pieni käyttöjärjestelmä, suorittaen käyttäjän ohjelmia ja tarjoten komentotulkin (REPL).

buffer protocol

Mikä tahansa Python-objekti, joka voidaan automaattisesti muuntaa tavuiksi, kuten bytes-, bytearray-, memoryview- ja str-objektit, jotka kaikki toteuttavat ”buffer protocol” -rajapinnan.

board

Tyypillisesti tämä viittaa painettuun piirilevyyn (PCB), joka sisältää mikrokontrollerin ja tukikomponentteja. MicroPython-laiteohjelmisto tarjotaan tyypillisesti korttikohtaisesti, sillä laiteohjelmisto sisältää sekä MCU-kohtaista toiminnallisuutta että korttitason toiminnallisuutta kuten ajureita tai nastojen nimiä.

bytecode

Pythonin lähdekoodin kääntämisessä syntyvä kompakti esitysmuoto Python-ohjelmasta. Tämän VM todellisuudessa suorittaa. Tavukoodi muodostetaan tyypillisesti automaattisesti ajonaikaisesti ja on käyttäjälle näkymätön. Huomaa, että vaikka sekä CPython että MicroPython käyttävät tavukoodia, niiden muoto on erilainen. Voit myös esikääntää lähdekoodin offline-tilassa käyttäen cross-compiler -työkalua.

callee-owned tuple

Tämä on MicroPython-kohtainen rakenne, jossa tehokkuussyistä jotkin sisäänrakennetut funktiot tai metodit saattavat käyttää uudelleen samaa taustalla olevaa tuple-objektia datan palauttamiseen. Tämä välttää uuden tuplen varaamisen jokaisella kutsulla ja vähentää heap-pirstoutumista. Ohjelmien ei tulisi säilyttää viittauksia callee-owned tupleihin, vaan ainoastaan poimia niistä data (tai tehdä kopio).

CircuitPython

MicroPythonin muunnos, jonka on kehittänyt Adafruit Industries.

CPython

CPython on Python-ohjelmointikielen viitetoteutus ja tunnetuin sellainen. Se on kuitenkin yksi monista toteutuksista (mukaan lukien Jython, IronPython, PyPy ja MicroPython). Vaikka MicroPythonin toteutus eroaa huomattavasti CPythonista, se pyrkii säilyttämään mahdollisimman paljon yhteensopivuutta.

cross-compiler

Tunnetaan myös nimellä mpy-cross. Tämä työkalu toimii PC:lläsi ja muuntaa MicroPython-koodia sisältävän .py file -tiedoston MicroPython-bytecode-tavukoodia sisältäväksi .mpy file -tiedostoksi. Tämä tarkoittaa, että se latautuu nopeammin (kortin ei tarvitse kääntää koodia) ja käyttää vähemmän tilaa flash-muistissa (tavukoodi on tilatehokkaampaa).

driver

MicroPython-kirjasto, joka toteuttaa tuen tietylle komponentille, kuten sensorille tai näytölle.

FFI

Lyhenne sanoista Foreign Function Interface. Mekanismi, jota MicroPython Unix port käyttää käyttöjärjestelmän toiminnallisuuden käyttämiseen. Tämä ei ole saatavilla baremetal-porteissa.

filesystem

Useimmat MicroPython-portit ja -kortit tarjoavat flash-muistiin tallennetun tiedostojärjestelmän, joka on käyttäjäkoodin käytettävissä Pythonin tavanomaisten tiedosto-API:en kuten open() kautta. Jotkin kortit tekevät tästä sisäisestä tiedostojärjestelmästä myös isännän käytettävissä olevan USB-massamuistin kautta.

frozen module

Python-moduuli, joka on ristikäännetty ja niputettu laiteohjelmiston levykuvaan. Tämä vähentää RAM-vaatimuksia, koska koodi suoritetaan suoraan flash-muistista.

Garbage Collector

Taustaprosessi, joka toimii Pythonissa (ja MicroPythonissa) vapauttaakseen käyttämätöntä muistia heap-keosta.

GPIO

Yleiskäyttöinen sisään-/ulostulo (general-purpose input/output). Yksinkertaisin tapa ohjata sähköisiä signaaleja (joihin viitataan yleisesti nimellä ”nastat”) mikrokontrollerissa. GPIO mahdollistaa tyypillisesti nastojen asettamisen joko sisään- tai ulostuloksi sekä niiden digitaalisen arvon (looginen ”0” tai ”1”) asettamisen tai lukemisen. MicroPython abstrahoi GPIO-käytön machine.Pin- ja machine.Signal-luokkien avulla.

GPIO port

Ryhmä GPIO-nastoja, jotka perustuvat yleensä näiden nastojen laitteistollisiin ominaisuuksiin (esim. saman rekisterin ohjattavissa).

heap

RAM-alue, johon MicroPython tallentaa dynaamista dataa. Sitä hallitsee automaattisesti Garbage Collector. Eri MCU:illa ja korteilla on hyvin erilaiset määrät RAM-muistia käytettävissä keolle, joten tämä vaikuttaa siihen, kuinka monimutkainen ohjelmasi voi olla.

interned string

MicroPythonin käyttämä optimointi merkkijonojen kanssa työskentelyn tehostamiseksi. Sisäistettyyn (interned) merkkijonoon viitataan sen (yksilöivän) identiteetin eikä osoitteen perusteella, ja siksi sitä voidaan verrata nopeasti pelkän tunnisteensa avulla. Se tarkoittaa myös, että identtiset merkkijonot voidaan poistaa muistista kaksoiskappaleina. Merkkijonojen sisäistäminen on lähes aina käyttäjälle näkymätöntä.

MCU

Mikrokontrolleri. Mikrokontrollereilla on yleensä paljon vähemmän resursseja kuin pöytäkoneella, kannettavalla tai puhelimella, mutta ne ovat pienempiä, halvempia ja vaativat huomattavasti vähemmän virtaa. MicroPython on suunniteltu riittävän pieneksi ja optimoiduksi toimimaan tavanomaisessa nykyaikaisessa mikrokontrollerissa.

micropython-lib

MicroPython jaetaan (yleensä) yhtenä suoritettavana/binaaritiedostona, jossa on vain muutama sisäänrakennettu moduuli. CPython-kielen kanssa verrattavaa laajaa standardikirjastoa ei ole. Sen sijaan on olemassa erillinen mutta liittyvä projekti micropython-lib, joka tarjoaa toteutukset monille CPythonin standardikirjaston moduuleille.

Jotkin moduuleista on toteutettu puhtaalla Pythonilla ja ne toimivat millä tahansa portilla; OpenMV-laiteohjelmisto jäädyttää valikoiman näistä (sensoriajurit, verkkotoiminnot ja apuvälineet) suoraan laiteohjelmiston levykuvaan, jotta ne voidaan tuoda asentamatta mitään. Pienempi joukko micropython-lib-moduuleja käyttää FFI-rajapintaa ja toimii vain MicroPython Unix port -portissa; ne eivät ole saatavilla OpenMV Cameissa.

Toisin kuin CPython-standardikirjasto, micropython-lib-moduulit, joita ei ole jäädytetty mukaan, asennetaan yksitellen — joko kopioimalla ne tiedostojärjestelmään tai verkkoyhteyteen kykenevillä korteilla käyttäen mip-työkalua.

MicroPython port

MicroPython tukee erilaisia kortteja, RTOS-järjestelmiä ja käyttöjärjestelmiä, ja se voidaan suhteellisen helposti sovittaa uusiin järjestelmiin. MicroPythonia, joka tukee tiettyä järjestelmää, kutsutaan ”portiksi” kyseiseen järjestelmään. Eri porteilla voi olla hyvin erilainen toiminnallisuus. Tämä dokumentaatio on tarkoitettu eri porteissa saatavilla olevien yleisten API:en (”MicroPython core”) referenssiksi. Huomaa, että jotkin portit saattavat silti jättää pois joitakin tässä kuvattuja API:ta (esim. resurssirajoitusten vuoksi). Kaikki tällaiset erot sekä MicroPython coren ylittävät porttikohtaiset laajennukset kuvataan erillisessä porttikohtaisessa dokumentaatiossa.

MicroPython Unix port

Unix-portti on yksi suurimmista MicroPython-porteista. Se on tarkoitettu toimimaan POSIX-yhteensopivissa käyttöjärjestelmissä, kuten Linux, MacOS, FreeBSD, Solaris jne. Se toimii myös Windows-portin perustana. Unix-portti on erittäin hyödyllinen MicroPython-kielen ja laitteistoriippumattomien ominaisuuksien nopeaan kehitykseen ja testaukseen. Se voi myös toimia samalla tavalla kuin CPython-kielen python-suoritettava ohjelma.

mip

MicroPythonin paketinasennusohjelma (mip - ”mip installs packages”). Se asentaa MicroPython-paketteja joko micropython-lib-kirjastosta, GitHubista tai mielivaltaisista URL-osoitteista. mip:iä voidaan käyttää laitteessa verkkoyhteyteen kykenevillä korteilla sekä sisäisesti työkaluissa kuten mpremote.

Katso Pakettien hallinta saadaksesi lisätietoja mip-työkalun käytöstä.

mpremote

Työkalu MicroPython-laitteen kanssa vuorovaikuttamiseen. Katso MicroPythonin etäohjaus: mpremote.

.mpy file

cross-compiler -työkalun tuotos. Käännetty muoto .py file -tiedostosta, joka sisältää MicroPython-bytecode-tavukoodia Pythonin lähdekoodin sijaan.

native

Viittaa yleensä ”natiivikoodiin”, eli kohdemikrokontrollerin konekoodiin (ARM Thumb Cortex-M-pohjaisissa OpenMV Cameissa). @micropython.native-koristelijaa voidaan soveltaa MicroPython-funktioon natiivikoodin muodostamiseksi bytecode-tavukoodin sijaan kyseiselle funktiolle, mikä on todennäköisesti nopeampaa mutta käyttää enemmän RAM-muistia.

port

Yleensä lyhenne sanasta MicroPython port, mutta voi viitata myös GPIO port.

.py file

Pythonin lähdekoodia sisältävä tiedosto.

pyboard.py

Nykyään korvattu isäntäpuolen työkalu MicroPython-kortin kanssa vuorovaikuttamiseen — skriptien suorittamiseen ja tiedostojärjestelmän käyttöön raa’an REPL-tilan kautta. Katso sen korvaaja mpremote.

REPL

Lyhenne sanoista ”Read, Eval, Print, Loop”. Tämä on interaktiivinen Python-kehote, joka on hyödyllinen lyhyiden koodinpätkien virheenkorjaukseen tai testaukseen. OpenMV Cam tekevät REPL:n saataville isäntä-PC:lle USB:n kautta (USB CDC -sarjalaite).

small integer

MicroPython optimoi kokonaislukujen sisäisen esitysmuodon siten, että ”pienet” arvot eivät vie tilaa heap-keossa, eivätkä niillä tehtävät laskutoimitukset vaadi keon varaamista. Useimmissa 32-bittisissä porteissa tämä vastaa arvoja välillä -2**30 <= x < 2**30, mutta tätä tulisi pitää toteutuksen yksityiskohtana, eikä siihen tule luottaa.

stream

Tunnetaan myös nimellä ”file-like object” (tiedoston kaltainen objekti). Python-objekti, joka tarjoaa peräkkäisen luku-kirjoituspääsyn taustalla olevaan dataan. Stream-objekti toteuttaa vastaavan rajapinnan, joka koostuu metodeista kuten read(), write(), readinto(), seek(), flush(), close() jne. Stream on tärkeä käsite MicroPythonissa; monet I/O-objektit toteuttavat stream-rajapinnan ja niitä voidaan siten käyttää johdonmukaisesti ja keskenään vaihdettavasti eri yhteyksissä. Lisätietoja MicroPythonin streameistä saat io-moduulista.

UART

Lyhenne sanoista ”Universal Asynchronous Receiver/Transmitter”. Tämä on oheislaite, joka lähettää dataa nastaparin (TX & RX) kautta. Monet kortit sisältävät tavan tehdä ainakin yksi UART:eista saataville isäntä-PC:lle sarjaporttina USB:n kautta.

upip

Nykyään vanhentunut MicroPythonin paketinhallintaohjelma, joka on saanut innoituksensa CPython-kielen pip:istä, mutta on paljon pienempi ja toiminnallisuudeltaan rajatumpi. Katso sen korvaaja mip.

webrepl

Tapa muodostaa yhteys laitteen REPL-tilaan (ja siirtää tiedostoja) internetin kautta selaimesta. Katso https://micropython.org/webrepl