Un module est un ensemble de fonctions et d’objets qu’on charge avec import pour s’en servir. En MicroPython, tout l’accès au matériel passe par des modules (machine, time…), et l’on peut aussi organiser son propre code en plusieurs fichiers, chacun devenant un module. Cette fiche couvre les deux formes d’import, les modules intégrés utiles, ses propres fichiers, et l’installation de bibliothèques.

Deux façons d’importer

import machine                 # importe tout le module
led = machine.Pin("LED", machine.Pin.OUT)

ou, plus court, en important seulement ce dont on a besoin :

from machine import Pin        # importe juste Pin
led = Pin("LED", Pin.OUT)

La seconde forme est la plus courante dans les exemples. Les deux sont équivalentes. Elles diffèrent par la façon de nommer ensuite (machine.Pin vs Pin).

Les modules intégrés utiles

MicroPython embarque un sous-ensemble de la bibliothèque Python, plus des modules propres à l’embarqué :

  • machine — l’accès au matériel : Pin, ADC, PWM, I2C, SPI, UART, Timer, WDT… le module central de tout le module ;
  • time — pauses et chronométrage : sleep, sleep_ms, ticks_ms (voir temporiser) ;
  • network — le Wi-Fi, sur les cartes qui en ont (Pico 2 W, ESP32) ;
  • math, random, json, os — calcul, aléa, sérialisation, système de fichiers.

dir(machine) au REPL liste ce qu’offre un module : c’est le réflexe pour explorer sans documentation.

Organiser son code en plusieurs fichiers

Tout fichier .py enregistré sur la carte est importable comme module : son nom est le nom du fichier sans .py. Par exemple, un fichier outils.py sur la carte :

# outils.py
def en_volts(brut):
    return brut * 3.3 / 65535

s’utilise depuis main.py :

# main.py
import outils
print(outils.en_volts(32768))

C’est ainsi qu’on range un projet qui grossit : un fichier par responsabilité, importés dans main.py.

Installer une bibliothèque

Pour un capteur ou un écran, une bibliothèque MicroPython existe souvent. Deux voies :

  • mip — le gestionnaire de paquets MicroPython : depuis une carte connectée au réseau, import mip; mip.install("nom") télécharge la bibliothèque. Thonny propose aussi Outils → Gérer les paquets.
  • Copie manuelle — télécharger le .py de la bibliothèque et l’enregistrer sur la carte (comme un fichier de plus), puis l’importer.

Détaillé dans utiliser une bibliothèque.

Pièges

import machine ≠ from machine import Pin. Avec le premier, on écrit machine.Pin. Avec le second, Pin. Mélanger les deux noms provoque une erreur de nom.

Le module doit être sur la carte. import outils ne marche que si outils.py est enregistré sur le Pico, pas seulement ouvert dans Thonny. Vérifier qu’il est bien dans les fichiers de la carte.

Ne pas écraser un nom intégré. Nommer son fichier time.py ou machine.py masque le module intégré du même nom : import time chargerait alors votre fichier. Choisir des noms distincts.

MicroPython n’a pas toute la bibliothèque Python. C’est un sous-ensemble : certains modules de CPython sont absents ou allégés. Vérifier au REPL (import ...) avant d’en dépendre.

Exercices

Exercice 1 — Deux écritures pour la même LED

Allumez la LED de deux façons : d’abord avec import machine, puis avec from machine import Pin. Qu’est-ce qui change dans le code ?

Exercice 2 — Son propre module

Créez un fichier outils.py sur la carte contenant une fonction moyenne(liste), puis utilisez-la depuis un autre programme.

Voir aussi