Découvrir MicroPython avec votre premier script

L’une des choses les plus faciles à faire sur une nouvelle carte est de faire clignoter la LED intégrée. C’est l’équivalent du fameux texte Hello World que l’on fait afficher dans la console lors de la découverte d’un nouveau langage de programmation. Voici un script qui fait clignoter la LED intégrée toutes les secondes. L’idée ici est de vous montrez un aperçu de la programmation en MicroPython.

from machine import Pin
import time

pin_led = Pin(25, mode=Pin.OUT)

while True:

    pin_led.on()
    time.sleep(1)
    pin_led.off()
    time.sleep(1)

Note

Il est recommandé de connaître les bases de la syntaxe de Python avant de se lancer dans MicroPython.

Exécuter le script MicroPython sur votre carte

Assurez-vous tout d’abord, d’avoir bien configuré votre logiciel IDE pour votre carte. Voici, si nécessaire, la procédure à suivre pour configurer la Raspberry Pi Pico dans Thonny IDE

Sur Thonny IDE, il est préférable d’enregistrer le code sur l’ordinateur et non directement sur la carte. Lors de l’exécution du script Thonny IDE enverra directement le code à l’interpréteur MicroPython (via le REPL). Pour enregistrer après coup le script sur la carte, il suffit d’aller dans File > Save as …

Vous noterez que le script Python ne se lance pas automatiquement lors de la mise sous tension de la carte . Pour y remédier, il faut enregistrer le script sur la carte avec un nom spécifique main.py . Ce n’est pas gênant en général lors des phases de développement mais c’est à savoir lors d’utilisation définitive d’un script MicroPython sur une carte.

Explication détaillée d’un script MicroPython

La structure d’un script MicroPython est la suivante :

structure MicroPython

Structure d’un script MicroPython

Chaque script MicroPython commence par une phase d’importation des modules nécessaires pour le bon fonctionnement de celui-ci. C’est équivalant aux #include du code Arduino IDE pour les librairies externes : #include <SPI.h> , #include <SD.h>

La différence avec MicroPython est que même les objets de bases doivent être importés . Pour rappel, Python est un langage orienté objet : tout éléments en Python est considéré comme un objet. Par exemple les pins entrée/sortie des cartes seront vus et manipulés comme des objets. Les objets MicroPython s’emploient naturellement sans être expert en programmation orientée objet.

Dans le script d’exemple, on importe depuis le module machine le sous-module Pin . Le module machine comporte la plupart des objets propres à MicroPython . Le module Pin est en fait une classe qui définit le fonctionnement d’une broche entrée/sortie (GPIO). C’est pourquoi on crée un objet pin_led qui correspond à la broche qui permet de contrôler la LED intégrée. On définit cette broche en tant que sortie électrique. L’objet Pin que l’on a créé, possède des fonctions pour modifier son état : .on() on allume la LED et .off() on éteint la LED.

Note

Le numéro de la broche qui est reliée sur la LED intégrée est :
  • 25 sur la Raspberry Pi Pico

  • 2 sur l’ESP32

Il faut donc penser à changer le numéro si vous utilisez une carte ESP32.

Pour voir visuellement le clignotement, on ajoute un délai d’une seconde avec la fonction sleep() du module time .

Le code qui fait clignoter la LED est contenu dans une bouche infinie pour clignoter … à l’infini.

Vous remarquerez si vous aviez l’habitude d’utiliser du code Arduino qu’il n’y a pas plus les fonctions setup() et loop() : le script s’exécute une seule fois de bas en haut. Il ne faut donc pas oublier la boucle infinie pour avoir un comportement similaire au croquis Arduino. Un code est disponible pour avoir la même structure qu’en code Arduino avec une fonction setup() et une fonction loop() .