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- jastr-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- jamachine.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ä saatio-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