MicroPython
Présentation
MicroPython est une réécriture complète de Python 3 optimisée pour des microcontrôleurs créée par le physicien Damien George. Contrairement à d’autres solutions telles que Nanpy ou PyFirmata pour Arduino, un programme MicroPython s’exécute directement sur le microcontrôleur de façon autonome.
La programmation d’un microcontrôleur en MicroPython se fait de deux manières :
- En mode console (avec ordinateur) : les instructions sont envoyées à distance au microcontrôleur par intermédiaire d’une console REPL. MicroPython interprète ces instructions sur le microcontrôleur puis retourne les résultats à la même console si cela est nécessaire.
- En mode autonome (sans ordinateur): le programme MicroPython est enregistré dans la mémoire flash du microcontrôleur et s’exécute en interne lors de la mise sous tension ou d’une remise à zéro de ce dernier.
Ce type de fonctionnement impose l’installation d’un firmware (distribution MicroPython) en mémoire de microcontrôleur. La plupart du temps, ce firmware est présent d’origine sur la carte.
MicroPython sous licence MIT est un projet libre. D’autres distributions comme Micro:bit MicroPython ou CircuitPython se basent sur MicroPython.
Pour quels microcontrôleurs ?
Le fonctionnement de MicroPython nécessite un microcontrôleur performant avec suffisamment de mémoire. Porté à l’origine sur les architectures ARM Cortex M, la distribution se retrouve aujourd’hui sur d’autres architectures comme ESP32. Par contre, l’Arduino UNO n’est pas compatible !
Voici une liste non-exhaustive de cartes de développement programmables en MicroPython :
Le langage
Le langage MicroPython est basé sur Python 3. L’espace mémoire étant réduit sur un microcontrôleur, seules les principales librairies sont implémentées (ex. math, time, …) avec des versions spécifiques.
Pour ce qui est de la gestion des fonctions du microcontrôleur, une librairie spécifique est disponible pour chaque type de carte :
- la librairie
pyb
pour la Pyboard ou cartes équivalentes (Plug’uino Py, Feather STM32F405 Express, STM32 Nucleo, …) ;
- la librairie
microbit
pour la Micro:bit ;
- la librairie
esp32
pour les cartes à base d’ESP32 (SoproLab, M5Stack, …).
Par contre, la librairie machine
apporte des fonctionnalités communes à tous les microcontrôleurs (gestion du bus I2C, …).
Environnement de développement
Plusieurs outils existent pour le développement de microcontrôleurs sous MicroPython comme :
- Mu, un éditeur simpliste pour la Micro:bit.
Introduction Le module Grove MPX5700AP est un capteur de pression absolue délivrant une tension analogique compatible 5 V (Arduino) ou 3,3 V (Pyboard, Micro:bit, …). Pour rappel, la logique 3,3 V est devenue la norme dans le domaine des microcontrôleurs. Présentation du MPX5700AP Le circuit MPX5700AP est un capteur de… Lire la suite →
Une CTN est un capteur résistif à coefficient de température négatif dont l’évolution de la résistance en fonction de la température est donnée par la figure suivante : Principe de mesure d’une résistance La plupart des modules pour capteur résistif utilise un pont diviseur de tension pour la mesure de la résistance… Lire la suite →
L’installation du firmware MicroPython sur une carte Pyboard se fait assez facilement à condition de respecter les différentes étapes. Téléchargement du firmware MicroPython La micro-distribution MicroPython est archivée dans un fichier binaire au format DFU. Le tableau ci-dessous donne les liens de téléchargement des firmware pour différentes cartes Pyboard. Placer… Lire la suite →
Cet article résume les bases de la programmation d’une carte Pyboard officielle en langage MicroPython. IDE de développement Thonny reste un des meilleurs outils de développement pour les cartes microcontrôleurs sous MicroPython. Noms des broches Sur la Pyboard, les broches de GPIO sont divisées en deux groupes symétriques de X1… Lire la suite →
Cet article se base sur une carte Feather STM32F405 Express d’Adafruit. Il s’agit au final d’une «PyBoard» au format Feather utilisant une notation du type Arduino pour ces broches à un tarif très intéressant ! Cette carte de développement est disponible chez Mouser.fr pour un peu plus de 20 €… Lire la suite →
Cet article résume les bases de la programmation d’une carte Micro:bit en langage MicroPython. IDE de développement Thonny Thonny est un environnement de développement assez complet pour MicroPython. Il a l’avantage de gérer la plupart des cartes : PyBoard, ESP32, Micro:bit, … Trouvez ici une documentation sur l’utilisation de Thonny… Lire la suite →
Montage Le montage est basé sur une carte Feather STM32F405 Express d’Adafruit (idem Pyboard) et d’un module pour capteur capacitif compatible Grove. Afin d’utiliser un uniquement câble Grove, la broche A0 est définie en sortie digitale ! Programme MicroPython Le programme suivant utilise le timer du microcontrôleur pour réaliser une… Lire la suite →
Cet article met en évidence la loi de Mariotte avec un microcontrôleur PyBoard et un capteur pression absolue MPRLS (0 à 25 PSI) de chez Adafruit. Montage Un seringue de 60 mL est nécessaire pour cette expérience. Programme MicroPython Le programme suivant s’exécute en mode REPL (interfaçage par USB). Les… Lire la suite →
Présentation MPRLS est une série de capteur de pression I2C (et SPI) de la marque Honeywell. Ces capteurs piézo-résistifs (calibrés et compensés) proposent une résolution de 24 bit avec une précision de 1,25%. La carte breakout MPRLS pressure d’Adafruit est basée sur une version MPRLS0025PA. Il s’agit d’un capteur de… Lire la suite →
Adafruit propose depuis peu une nouvelle carte de développement Feather STM32F405 Express avec le même microcontrôleur que la Pyboard officielle. Cette carte est programmable en MicroPython. Une solution intéressante (prix et performance) pour les sciences physiques au lycée en associant cette carte à un Shield Grove Featherwing. Caractéristiques principales STM32F405… Lire la suite →