Glossaire¶
- baremetal¶
Un système dépourvu de système d’exploitation (à part entière), par exemple un système basé sur un MCU. Lorsqu’il s’exécute sur un système baremetal, MicroPython fonctionne en fait comme un petit système d’exploitation, exécutant les programmes utilisateur et fournissant un interpréteur de commandes (REPL).
- buffer protocol¶
Tout objet Python pouvant être automatiquement converti en octets, tel que les objets
bytes,bytearray,memoryviewetstr, qui implémentent tous le « protocole tampon » (buffer protocol).- board¶
Cela désigne généralement une carte de circuit imprimé (PCB) contenant un microcontrôleur et des composants de support. Le micrologiciel MicroPython est généralement fourni par carte, car il contient à la fois des fonctionnalités spécifiques au MCU mais aussi des fonctionnalités au niveau de la carte telles que des pilotes ou des noms de broches.
- bytecode¶
Une représentation compacte d’un programme Python générée en compilant le code source Python. C’est ce que la VM exécute réellement. Le bytecode est généralement généré automatiquement à l’exécution et est invisible pour l’utilisateur. Notez que, bien que CPython et MicroPython utilisent tous deux du bytecode, le format est différent. Vous pouvez également précompiler le code source hors ligne à l’aide du cross-compiler.
- callee-owned tuple¶
Il s’agit d’une construction spécifique à MicroPython où, pour des raisons d’efficacité, certaines fonctions ou méthodes intégrées peuvent réutiliser le même objet tuple sous-jacent pour renvoyer des données. Cela évite d’avoir à allouer un nouveau tuple à chaque appel et réduit la fragmentation du heap. Les programmes ne devraient pas conserver de références à des tuples appartenant à l’appelé (callee-owned), mais en extraire uniquement les données (ou en faire une copie).
- CircuitPython¶
Une variante de MicroPython développée par Adafruit Industries.
- CPython¶
CPython est l’implémentation de référence du langage de programmation Python, et la plus connue. Ce n’est toutefois qu’une parmi de nombreuses implémentations (dont Jython, IronPython, PyPy et MicroPython). Bien que l’implémentation de MicroPython diffère sensiblement de CPython, elle vise à maintenir autant de compatibilité que possible.
- cross-compiler¶
Également appelé
mpy-cross. Cet outil s’exécute sur votre PC et convertit un .py file contenant du code MicroPython en un .mpy file contenant du bytecode MicroPython. Cela signifie qu’il se charge plus rapidement (la carte n’a pas à compiler le code) et utilise moins d’espace en mémoire flash (le bytecode est plus économe en espace).- driver¶
Une bibliothèque MicroPython qui implémente la prise en charge d’un composant particulier, tel qu’un capteur ou un écran.
- FFI¶
Acronyme de Foreign Function Interface (interface de fonction étrangère). Un mécanisme utilisé par le MicroPython Unix port pour accéder aux fonctionnalités du système d’exploitation. Il n’est pas disponible sur les portages baremetal.
- filesystem¶
La plupart des portages et cartes MicroPython fournissent un système de fichiers stocké en mémoire flash, accessible au code utilisateur via les API de fichiers Python standard telles que
open(). Certaines cartes rendent également ce système de fichiers interne accessible à l’hôte via le stockage de masse USB.- frozen module¶
Un module Python qui a été compilé de manière croisée et intégré dans l’image du micrologiciel. Cela réduit les besoins en RAM car le code est exécuté directement depuis la mémoire flash.
- Garbage Collector¶
Un processus en arrière-plan qui s’exécute en Python (et MicroPython) pour récupérer la mémoire inutilisée dans le heap.
- GPIO¶
Entrée/sortie à usage général (general-purpose input/output). Le moyen le plus simple de contrôler les signaux électriques (communément appelés « broches ») sur un microcontrôleur. Les GPIO permettent généralement aux broches d’être soit en entrée, soit en sortie, et de définir ou lire leur valeur numérique (« 0 » ou « 1 » logique). MicroPython abstrait l’accès aux GPIO à l’aide des classes
machine.Pinetmachine.Signal.- GPIO port¶
Un groupe de broches GPIO, généralement basé sur les propriétés matérielles de ces broches (par exemple, contrôlables par le même registre).
- heap¶
Une région de la RAM où MicroPython stocke les données dynamiques. Elle est gérée automatiquement par le Garbage Collector. Les différents MCU et cartes disposent de quantités de RAM très variables pour le tas, ce qui aura une incidence sur la complexité que peut atteindre votre programme.
- interned string¶
Une optimisation utilisée par MicroPython pour améliorer l’efficacité du travail avec les chaînes de caractères. Une chaîne internée (interned string) est référencée par son identité (unique) plutôt que par son adresse et peut donc être comparée rapidement par son seul identifiant. Cela signifie également que des chaînes identiques peuvent être dédupliquées en mémoire. L’internement des chaînes est presque toujours invisible pour l’utilisateur.
- MCU¶
Microcontrôleur. Les microcontrôleurs disposent généralement de bien moins de ressources qu’un ordinateur de bureau, un portable ou un téléphone, mais sont plus petits, moins chers et nécessitent beaucoup moins d’énergie. MicroPython est conçu pour être suffisamment petit et optimisé pour fonctionner sur un microcontrôleur moderne moyen.
- micropython-lib¶
MicroPython est (généralement) distribué sous la forme d’un unique fichier exécutable/binaire ne comportant que quelques modules intégrés. Il n’existe pas de bibliothèque standard étendue comparable à celle de CPython. À la place, il existe un projet connexe mais distinct, micropython-lib, qui fournit des implémentations de nombreux modules de la bibliothèque standard de CPython.
Certains de ces modules sont implémentés en pur Python et fonctionnent sur n’importe quel portage ; le micrologiciel OpenMV fige une sélection de ces modules (pilotes de capteurs, réseau et utilitaires) directement dans l’image du micrologiciel afin qu’ils puissent être importés sans rien installer. Un plus petit nombre de modules micropython-lib utilisent la FFI et ne fonctionnent que sur le MicroPython Unix port ; ceux-ci ne sont pas disponibles sur les OpenMV Cam.
Contrairement à la bibliothèque standard de CPython, les modules micropython-lib qui ne sont pas figés dans le micrologiciel sont installés individuellement, soit en les copiant sur le système de fichiers, soit, sur les cartes dotées de capacités réseau, à l’aide de mip.
- MicroPython port¶
MicroPython prend en charge différentes cartes, RTOS et OS, et peut être adapté relativement facilement à de nouveaux systèmes. MicroPython avec la prise en charge d’un système particulier est appelé un « portage » (port) vers ce système. Les différents portages peuvent avoir des fonctionnalités très diverses. Cette documentation se veut une référence des API génériques disponibles sur les différents portages (« cœur MicroPython »). Notez que certains portages peuvent tout de même omettre certaines API décrites ici (par exemple, en raison de contraintes de ressources). De telles différences, ainsi que les extensions spécifiques à un portage au-delà des fonctionnalités du cœur MicroPython, seraient décrites dans la documentation distincte propre à chaque portage.
- MicroPython Unix port¶
Le portage Unix est l’un des principaux portages MicroPython. Il est destiné à fonctionner sur des systèmes d’exploitation compatibles POSIX, comme Linux, MacOS, FreeBSD, Solaris, etc. Il sert également de base au portage Windows. Le portage Unix est très utile pour le développement et le test rapides du langage MicroPython et des fonctionnalités indépendantes de la machine. Il peut également fonctionner d’une manière similaire à l’exécutable
pythonde CPython.- mip¶
Un installateur de paquets pour MicroPython (mip - « mip installs packages »). Il installe des paquets MicroPython depuis micropython-lib, GitHub ou des URL arbitraires. mip peut être utilisé sur l’appareil sur les cartes dotées de capacités réseau, et en interne par des outils tels que mpremote.
Consultez Gestion des paquets pour plus d’informations sur l’utilisation de
mip.- mpremote¶
Un outil pour interagir avec un appareil MicroPython. Consultez Contrôle à distance de MicroPython : mpremote.
- .mpy file¶
La sortie du cross-compiler. Une forme compilée d’un .py file qui contient du bytecode MicroPython au lieu du code source Python.
- native¶
Désigne généralement le « code natif », c’est-à-dire le code machine pour le microcontrôleur cible (ARM Thumb sur les OpenMV Cam basées sur Cortex-M). Le décorateur
@micropython.nativepeut être appliqué à une fonction MicroPython pour générer du code natif au lieu de bytecode pour cette fonction, ce qui sera probablement plus rapide mais utilisera plus de RAM.- port¶
Généralement l’abréviation de MicroPython port, mais peut aussi désigner un GPIO port.
- .py file¶
Un fichier contenant du code source Python.
- pyboard.py¶
Un outil côté hôte désormais remplacé, permettant d’interagir avec une carte MicroPython — exécuter des scripts et accéder au système de fichiers via le REPL brut. Consultez son remplaçant, mpremote.
- REPL¶
Un acronyme de « Read, Eval, Print, Loop » (lire, évaluer, afficher, boucler). Il s’agit de l’invite interactive Python, utile pour le débogage ou le test de courts extraits de code. Les OpenMV Cam rendent le REPL accessible à un PC hôte via USB (un périphérique série USB CDC).
- small integer¶
MicroPython optimise la représentation interne des entiers de sorte que les « petites » valeurs ne prennent pas de place dans le heap, et que les calculs avec celles-ci ne nécessitent pas d’allocation dans le tas. Sur la plupart des portages 32 bits, cela correspond aux valeurs de l’intervalle
-2**30 <= x < 2**30, mais cela doit être considéré comme un détail d’implémentation et il ne faut pas s’y fier.- stream¶
Également connu sous le nom d”« objet de type fichier » (file-like object). Un objet Python qui fournit un accès séquentiel en lecture-écriture aux données sous-jacentes. Un objet flux implémente une interface correspondante, constituée de méthodes telles que
read(),write(),readinto(),seek(),flush(),close(), etc. Un flux est un concept important dans MicroPython ; de nombreux objets d’E/S implémentent l’interface de flux et peuvent ainsi être utilisés de manière cohérente et interchangeable dans différents contextes. Pour plus d’informations sur les flux dans MicroPython, consultez le moduleio.- UART¶
Acronyme de « Universal Asynchronous Receiver/Transmitter » (émetteur-récepteur asynchrone universel). Il s’agit d’un périphérique qui envoie des données sur une paire de broches (TX et RX). De nombreuses cartes incluent un moyen de rendre au moins l’un des UART accessible à un PC hôte en tant que port série via USB.
- upip¶
Un gestionnaire de paquets désormais obsolète pour MicroPython, inspiré de pip de CPython, mais bien plus petit et avec des fonctionnalités réduites. Consultez son remplaçant, mip.
- webrepl¶
Un moyen de se connecter au REPL (et de transférer des fichiers) sur un appareil via Internet depuis un navigateur. Consultez https://micropython.org/webrepl