Glosar¶
- baremetal¶
Un sistem fără un sistem de operare (complet), de exemplu un sistem bazat pe MCU. Când rulează pe un sistem baremetal, MicroPython funcționează efectiv ca un mic sistem de operare, rulând programele utilizatorului și oferind un interpretor de comenzi (REPL).
- buffer protocol¶
Orice obiect Python care poate fi convertit automat în octeți, cum ar fi obiectele
bytes,bytearray,memoryviewșistr, care implementează toate „buffer protocol”.- board¶
De obicei, acest termen se referă la o placă cu circuite imprimate (PCB) care conține un microcontroler și componente auxiliare. Firmware-ul MicroPython este de obicei furnizat per placă, deoarece firmware-ul conține atât funcționalitate specifică MCU-ului, cât și funcționalitate la nivel de placă, cum ar fi drivere sau nume de pini.
- bytecode¶
O reprezentare compactă a unui program Python care este generată prin compilarea codului sursă Python. Aceasta este ceea ce execută efectiv mașina virtuală (VM). Bytecode-ul este de obicei generat automat în timpul execuției și este invizibil pentru utilizator. Rețineți că, deși atât CPython, cât și MicroPython folosesc bytecode, formatul este diferit. De asemenea, puteți precompila codul sursă offline folosind cross-compiler.
- callee-owned tuple¶
Aceasta este o construcție specifică MicroPython în care, din motive de eficiență, unele funcții sau metode încorporate pot reutiliza același obiect tuple subiacent pentru a returna date. Acest lucru evită necesitatea de a aloca un nou tuple pentru fiecare apel și reduce fragmentarea heap-ului. Programele nu ar trebui să păstreze referințe la tuple deținute de apelat, ci doar să extragă date din ele (sau să facă o copie).
- CircuitPython¶
O variantă a MicroPython dezvoltată de Adafruit Industries.
- CPython¶
CPython este implementarea de referință a limbajului de programare Python și cea mai cunoscută. Este, totuși, una dintre numeroasele implementări (inclusiv Jython, IronPython, PyPy și MicroPython). Deși implementarea MicroPython diferă substanțial de CPython, aceasta urmărește să mențină cât mai multă compatibilitate posibilă.
- cross-compiler¶
Cunoscut și sub numele de
mpy-cross. Acest instrument rulează pe PC-ul dumneavoastră și convertește un fișier .py care conține cod MicroPython într-un fișier .mpy care conține bytecode MicroPython. Acest lucru înseamnă că se încarcă mai rapid (placa nu trebuie să compileze codul) și folosește mai puțin spațiu pe memoria flash (bytecode-ul este mai eficient din punctul de vedere al spațiului).- driver¶
O bibliotecă MicroPython care implementează suport pentru o anumită componentă, cum ar fi un senzor sau un afișaj.
- FFI¶
Acronim pentru Foreign Function Interface. Un mecanism utilizat de MicroPython Unix port pentru a accesa funcționalitatea sistemului de operare. Acesta nu este disponibil pe porturile baremetal.
- filesystem¶
Majoritatea porturilor și plăcilor MicroPython oferă un sistem de fișiere stocat în memoria flash, disponibil codului utilizatorului prin API-urile standard Python pentru fișiere, cum ar fi
open(). Unele plăci fac, de asemenea, acest sistem de fișiere intern accesibil gazdei prin stocarea în masă USB.- frozen module¶
Un modul Python care a fost cross-compilat și inclus în imaginea firmware-ului. Acest lucru reduce cerințele de RAM, deoarece codul este executat direct din memoria flash.
- Garbage Collector¶
Un proces de fundal care rulează în Python (și MicroPython) pentru a recupera memoria neutilizată din heap.
- GPIO¶
General-purpose input/output (intrare/ieșire de uz general). Cel mai simplu mijloc de a controla semnalele electrice (denumite în mod obișnuit „pini”) de pe un microcontroler. GPIO permite de obicei ca pinii să fie fie de intrare, fie de ieșire, și să le seteze sau să le citească valoarea digitală (logic „0” sau „1”). MicroPython abstractizează accesul GPIO folosind clasele
machine.Pinșimachine.Signal.- GPIO port¶
Un grup de pini GPIO, de obicei bazat pe proprietățile hardware ale acestor pini (de exemplu, controlabili de același registru).
- heap¶
O regiune de RAM în care MicroPython stochează datele dinamice. Este gestionată automat de Garbage Collector. Diferite MCU-uri și plăci au cantități extrem de diferite de RAM disponibile pentru heap, așa că acest lucru va afecta cât de complex poate fi programul dumneavoastră.
- interned string¶
O optimizare folosită de MicroPython pentru a îmbunătăți eficiența lucrului cu șirurile de caractere. Un șir intern este referențiat prin identitatea sa (unică) mai degrabă decât prin adresa sa și poate fi astfel comparat rapid doar prin identificatorul său. De asemenea, înseamnă că șirurile identice pot fi deduplicate în memorie. Internarea șirurilor este aproape întotdeauna invizibilă pentru utilizator.
- MCU¶
Microcontroler. Microcontrolerele au de obicei mult mai puține resurse decât un computer de birou, un laptop sau un telefon, dar sunt mai mici, mai ieftine și necesită mult mai puțină energie. MicroPython este conceput să fie suficient de mic și de optimizat pentru a rula pe un microcontroler modern obișnuit.
- micropython-lib¶
MicroPython este (de obicei) distribuit ca un singur fișier executabil/binar cu doar câteva module încorporate. Nu există o bibliotecă standard extinsă comparabilă cu cea a CPython. În schimb, există un proiect înrudit, dar separat, micropython-lib care oferă implementări pentru multe module din biblioteca standard a CPython.
Unele dintre module sunt implementate în Python pur și rulează pe orice port; firmware-ul OpenMV îngheață o selecție dintre acestea (drivere de senzori, rețelistică și utilitare ajutătoare) direct în imaginea firmware-ului, astfel încât să poată fi importate fără a instala nimic. Un număr mai mic de module micropython-lib folosesc FFI și funcționează doar pe MicroPython Unix port; acestea nu sunt disponibile pe OpenMV Cam.
Spre deosebire de biblioteca standard CPython, modulele micropython-lib care nu sunt înghețate sunt instalate individual - fie prin copierea lor pe sistemul de fișiere, fie, pe plăcile cu capabilități de rețea, folosind mip.
- MicroPython port¶
MicroPython acceptă diferite plăci, RTOS-uri și sisteme de operare și poate fi adaptat relativ ușor la sisteme noi. MicroPython cu suport pentru un anumit sistem este numit un „port” pe acel sistem. Diferite porturi pot avea funcționalități foarte diferite. Această documentație este menită să fie o referință a API-urilor generice disponibile pe diferite porturi („nucleul MicroPython”). Rețineți că unele porturi pot totuși omite unele API-uri descrise aici (de exemplu, din cauza constrângerilor de resurse). Orice astfel de diferențe, precum și extensiile specifice portului dincolo de funcționalitatea nucleului MicroPython, ar fi descrise în documentația separată specifică portului.
- MicroPython Unix port¶
Portul Unix este unul dintre principalele porturi MicroPython. Este destinat să ruleze pe sisteme de operare compatibile POSIX, cum ar fi Linux, MacOS, FreeBSD, Solaris etc. De asemenea, servește drept bază pentru portul Windows. Portul Unix este foarte util pentru dezvoltarea și testarea rapidă a limbajului MicroPython și a caracteristicilor independente de mașină. Poate funcționa, de asemenea, într-un mod similar cu executabilul
pythonal CPython.- mip¶
Un instalator de pachete pentru MicroPython (mip - „mip installs packages”). Instalează pachete MicroPython fie din micropython-lib, fie din GitHub, fie din URL-uri arbitrare. mip poate fi folosit pe dispozitiv pe plăcile cu capabilități de rețea și intern de către instrumente precum mpremote.
Consultați Gestionarea pachetelor pentru mai multe informații despre utilizarea
mip.- mpremote¶
Un instrument pentru interacțiunea cu un dispozitiv MicroPython. Consultați Control la distanță MicroPython: mpremote.
- .mpy file¶
Rezultatul cross-compiler-ului. O formă compilată a unui fișier .py care conține bytecode MicroPython în loc de cod sursă Python.
- native¶
Se referă de obicei la „cod nativ”, adică cod mașină pentru microcontrolerul țintă (ARM Thumb pe OpenMV Cam bazate pe Cortex-M). Decoratorul
@micropython.nativepoate fi aplicat unei funcții MicroPython pentru a genera cod nativ în loc de bytecode pentru acea funcție, ceea ce va fi probabil mai rapid, dar va folosi mai mult RAM.- port¶
De obicei, prescurtarea de la MicroPython port, dar se poate referi și la GPIO port.
- .py file¶
Un fișier care conține cod sursă Python.
- pyboard.py¶
Un instrument de pe partea gazdei, acum depășit, pentru interacțiunea cu o placă MicroPython — rularea scripturilor și accesarea sistemului de fișiere prin REPL-ul brut. Consultați înlocuitorul său, mpremote.
- REPL¶
Un acronim pentru „Read, Eval, Print, Loop”. Aceasta este promptul interactiv Python, util pentru depanarea sau testarea unor fragmente scurte de cod. OpenMV Cam pun REPL-ul la dispoziția unui PC gazdă prin USB (un dispozitiv serial USB CDC).
- small integer¶
MicroPython optimizează reprezentarea internă a numerelor întregi astfel încât valorile „mici” să nu ocupe spațiu în heap, iar calculele cu acestea să nu necesite alocare de heap. Pe majoritatea porturilor pe 32 de biți, aceasta corespunde valorilor din intervalul
-2**30 <= x < 2**30, dar acest lucru ar trebui considerat un detaliu de implementare și nu trebuie să vă bazați pe el.- stream¶
Cunoscut și sub denumirea de „obiect de tip fișier”. Un obiect Python care oferă acces secvențial de citire-scriere la datele subiacente. Un obiect flux implementează o interfață corespunzătoare, care constă din metode precum
read(),write(),readinto(),seek(),flush(),close()etc. Un flux este un concept important în MicroPython; multe obiecte I/O implementează interfața de flux și astfel pot fi folosite consecvent și interschimbabil în diferite contexte. Pentru mai multe informații despre fluxuri în MicroPython, consultați modululio.- UART¶
Acronim pentru „Universal Asynchronous Receiver/Transmitter”. Acesta este un periferic care trimite date printr-o pereche de pini (TX și RX). Multe plăci includ o modalitate de a pune cel puțin unul dintre UART-uri la dispoziția unui PC gazdă ca port serial prin USB.
- upip¶
Un manager de pachete acum învechit pentru MicroPython, inspirat de pip-ul CPython, dar mult mai mic și cu funcționalitate redusă. Consultați înlocuitorul său, mip.
- webrepl¶
O modalitate de conectare la REPL (și de transferare a fișierelor) pe un dispozitiv prin internet dintr-un browser. Consultați https://micropython.org/webrepl