Ordlista¶
- baremetal¶
Ett system utan ett (fullfjädrat) operativsystem, till exempel ett MCU-baserat system. När MicroPython körs på ett baremetal-system fungerar det i praktiken som ett litet operativsystem, som kör användarprogram och tillhandahåller en kommandotolk (REPL).
- buffertprotokoll¶
Vilket Python-objekt som helst som automatiskt kan konverteras till bytes, såsom
bytes-,bytearray-,memoryview- ochstr-objekt, vilka alla implementerar ”buffertprotokollet”.- kort¶
Detta avser vanligtvis ett kretskort (PCB) som innehåller en mikrokontroller och tillhörande komponenter. MicroPython-firmware tillhandahålls vanligtvis per kort, eftersom firmware innehåller både MCU-specifik funktionalitet och funktionalitet på kortnivå, såsom drivrutiner eller stiftnamn.
- bytecode¶
En kompakt representation av ett Python-program som genereras genom att kompilera Python-källkoden. Det är detta som den virtuella maskinen faktiskt kör. Bytecode genereras vanligtvis automatiskt vid körtid och är osynlig för användaren. Observera att även om både CPython och MicroPython använder bytecode, så skiljer sig formatet åt. Du kan också förkompilera källkod offline med hjälp av korskompilatorn.
- anropad-ägd tupel¶
Detta är en MicroPython-specifik konstruktion där vissa inbyggda funktioner eller metoder, av effektivitetsskäl, kan återanvända samma underliggande tupelobjekt för att returnera data. Detta undviker att en ny tupel måste allokeras vid varje anrop och minskar fragmentering av heapen. Program bör inte hålla referenser till anropad-ägda tuplar utan i stället endast extrahera data från dem (eller göra en kopia).
- CircuitPython¶
En variant av MicroPython utvecklad av Adafruit Industries.
- CPython¶
CPython är referensimplementationen av programmeringsspråket Python och den mest välkända. Den är dock en av många implementationer (inklusive Jython, IronPython, PyPy och MicroPython). Även om MicroPythons implementation skiljer sig avsevärt från CPython, strävar den efter att bibehålla så mycket kompatibilitet som möjligt.
- korskompilator¶
Även känd som
mpy-cross. Detta verktyg körs på din PC och konverterar en .py-fil som innehåller MicroPython-kod till en .mpy-fil som innehåller MicroPython-bytecode. Detta innebär att den laddas snabbare (kortet behöver inte kompilera koden) och använder mindre utrymme på flashminnet (bytecode är mer utrymmeseffektiv).- drivrutin¶
Ett MicroPython-bibliotek som implementerar stöd för en viss komponent, såsom en sensor eller display.
- FFI¶
Förkortning för Foreign Function Interface. En mekanism som används av MicroPython Unix-porten för att komma åt operativsystemsfunktionalitet. Detta är inte tillgängligt på baremetal-portar.
- filsystem¶
De flesta MicroPython-portar och -kort tillhandahåller ett filsystem lagrat i flashminne som är tillgängligt för användarkod via Pythons vanliga fil-API:er såsom
open(). Vissa kort gör även detta interna filsystem tillgängligt för värden via USB-masslagring.- fryst modul¶
En Python-modul som har korskompilerats och buntats in i firmware-avbildningen. Detta minskar RAM-kraven eftersom koden körs direkt från flashminnet.
- skräpsamlare¶
En bakgrundsprocess som körs i Python (och MicroPython) för att återvinna oanvänt minne i heapen.
- GPIO¶
Generella in-/utgångar (general-purpose input/output). Det enklaste sättet att styra elektriska signaler (vanligen kallade ”stift”) på en mikrokontroller. GPIO gör vanligtvis att stift kan vara antingen ingång eller utgång, och att deras digitala värde (logisk ”0” eller ”1”) kan sättas eller läsas. MicroPython abstraherar GPIO-åtkomst med klasserna
machine.Pinochmachine.Signal.- GPIO-port¶
En grupp GPIO-stift, vanligtvis baserad på dessa stifts hårdvaruegenskaper (t.ex. att de kan styras av samma register).
- heap¶
En region av RAM där MicroPython lagrar dynamiska data. Den hanteras automatiskt av skräpsamlaren. Olika MCU:er och kort har vitt skilda mängder RAM tillgängligt för heapen, så detta påverkar hur komplext ditt program kan vara.
- internerad sträng¶
En optimering som MicroPython använder för att förbättra effektiviteten vid arbete med strängar. En internerad sträng refereras till genom sin (unika) identitet snarare än sin adress och kan därför snabbt jämföras enbart med hjälp av sin identifierare. Det innebär också att identiska strängar kan avdupliceras i minnet. Stränginternering är nästan alltid osynlig för användaren.
- MCU¶
Mikrokontroller. Mikrokontroller har vanligtvis betydligt färre resurser än en stationär dator, bärbar dator eller telefon, men är mindre, billigare och kräver mycket mindre ström. MicroPython är utformat för att vara tillräckligt litet och optimerat för att kunna köras på en genomsnittlig modern mikrokontroller.
- micropython-lib¶
MicroPython distribueras (vanligtvis) som en enda körbar/binär fil med bara ett fåtal inbyggda moduler. Det finns inget omfattande standardbibliotek jämförbart med CPythons. I stället finns ett relaterat men separat projekt, micropython-lib, som tillhandahåller implementationer av många moduler från CPythons standardbibliotek.
Vissa av modulerna är implementerade i ren Python och körs på vilken port som helst; OpenMV-firmwaren fryser in ett urval av dessa (sensordrivrutiner, nätverk och hjälpverktyg) direkt i firmware-avbildningen så att de kan importeras utan att något installeras. Ett mindre antal micropython-lib-moduler använder FFI och fungerar endast på MicroPython Unix-porten; dessa är inte tillgängliga på OpenMV Cam.
Till skillnad från CPythons standardbibliotek installeras de micropython-lib-moduler som inte är infrysta individuellt - antingen genom att kopiera dem till filsystemet eller, på nätverkskapabla kort, med hjälp av mip.
- MicroPython-port¶
MicroPython stöder olika kort, RTOS:er och OS:er, och kan relativt enkelt anpassas till nya system. MicroPython med stöd för ett visst system kallas en ”port” till det systemet. Olika portar kan ha vitt skild funktionalitet. Den här dokumentationen är avsedd att vara en referens för de generella API:er som är tillgängliga över olika portar (”MicroPython core”). Observera att vissa portar fortfarande kan utelämna en del av de API:er som beskrivs här (t.ex. på grund av resursbegränsningar). Sådana skillnader, och portspecifika utökningar utöver MicroPythons kärnfunktionalitet, beskrivs i den separata portspecifika dokumentationen.
- MicroPython Unix-porten¶
Unix-porten är en av de större MicroPython-portarna. Den är avsedd att köras på POSIX-kompatibla operativsystem, som Linux, MacOS, FreeBSD, Solaris osv. Den utgör även grunden för Windows-porten. Unix-porten är mycket användbar för snabb utveckling och testning av MicroPython-språket och maskinoberoende funktioner. Den kan också fungera på ett liknande sätt som CPythons körbara
python-program.- mip¶
En paketinstallerare för MicroPython (mip - ”mip installs packages”). Den installerar MicroPython-paket antingen från micropython-lib, GitHub eller godtyckliga URL:er. mip kan användas på enheten på nätverkskapabla kort, och internt av verktyg som mpremote.
Se Pakethantering för mer information om hur du använder
mip.- mpremote¶
Ett verktyg för att interagera med en MicroPython-enhet. Se MicroPython fjärrstyrning: mpremote.
- .mpy-fil¶
Utdata från korskompilatorn. En kompilerad form av en .py-fil som innehåller MicroPython-bytecode i stället för Python-källkod.
- native¶
Avser vanligtvis ”native-kod”, dvs. maskinkod för målmikrokontrollern (ARM Thumb på de Cortex-M-baserade OpenMV Cam). Dekoratorn
@micropython.nativekan appliceras på en MicroPython-funktion för att generera native-kod i stället för bytecode för den funktionen, vilket sannolikt blir snabbare men använder mer RAM.- port¶
Vanligtvis kort för MicroPython-port, men kan också avse GPIO-port.
- .py-fil¶
En fil som innehåller Python-källkod.
- pyboard.py¶
Ett numera ersatt verktyg på värdsidan för att interagera med ett MicroPython-kort — köra skript och komma åt filsystemet över den råa REPL:en. Se dess ersättning, mpremote.
- REPL¶
En förkortning för ”Read, Eval, Print, Loop”. Detta är den interaktiva Python-prompten, användbar för felsökning eller testning av korta kodavsnitt. OpenMV Cam gör REPL:en tillgänglig för en värddator via USB (en USB CDC-seriell enhet).
- litet heltal¶
MicroPython optimerar den interna representationen av heltal så att ”små” värden inte upptar utrymme på heapen, och beräkningar med dem inte kräver heap-allokering. På de flesta 32-bitarsportar motsvarar detta värden i intervallet
-2**30 <= x < 2**30, men detta bör betraktas som en implementationsdetalj och inte litas på.- ström¶
Även känd som ett ”fil-liknande objekt”. Ett Python-objekt som ger sekventiell läs- och skrivåtkomst till underliggande data. Ett strömobjekt implementerar ett motsvarande gränssnitt, som består av metoder som
read(),write(),readinto(),seek(),flush(),close()osv. En ström är ett viktigt begrepp i MicroPython; många I/O-objekt implementerar strömgränssnittet och kan därmed användas konsekvent och utbytbart i olika sammanhang. För mer information om strömmar i MicroPython, se modulenio.- UART¶
Förkortning för ”Universal Asynchronous Receiver/Transmitter”. Detta är en kringutrustning som skickar data över ett par stift (TX och RX). Många kort har ett sätt att göra åtminstone en av UART:erna tillgänglig för en värddator som en seriell port via USB.
- upip¶
En numera föråldrad pakethanterare för MicroPython, inspirerad av CPythons pip, men mycket mindre och med reducerad funktionalitet. Se dess ersättning, mip.
- webrepl¶
Ett sätt att ansluta till REPL:en (och överföra filer) på en enhet över internet från en webbläsare. Se https://micropython.org/webrepl