Aller au contenu principal

Faire clignoter une LED

InformatiqueTechnologieSteaMiMicroPython
ProjetDuréeDifficultéÂgeLogiciel STeaMi testé
I-Novmicro #215 minDébutant11-99 ans0.23.1

Matériel et Montage

  • 1 carte STeaMi
  • 1 câble USB de données (micro-USB pour la STeaMi V1, USB-C pour la STeaMi V2).
  • 1 ordinateur sous Windows, macOS ou Linux
  • Un IDE compatible MicroPython : Thonny (voir la fiche Thonny : Prise en main de MicroPython) ou tout autre éditeur compatible (Mu, VS Code, Vittascience, mpremote…).
Faire clignoter une LED

De quoi parle-t-on ?

La LED (light-emitting diode) est un composant électronique qui produit de la lumière lorsqu'un courant la traverse. On la retrouve partout dans le quotidien : pour éclairer, pour signaler un état (réservoir presque vide, machine allumée…), ou simplement comme indicateur visuel.

La STeaMi intègre une LED RGB, accessibles sans aucun câblage, avec trois couleurs : rouge, verte et bleue. C'est le point de départ idéal pour comprendre comment un programme contrôle un composant physique : allumer, éteindre, attendre, recommencer. Le programme que vous allez écrire est le premier programme qu'on écrit quand on découvre l'électronique embarquée (les informaticiens appellent ça un « Hello World »).

Cette fiche reprend l'activité Let's STEAM Faire clignoter une LED, adaptée du couple STM32 IoT Node + MakeCode vers STeaMi + MicroPython.


Objectifs d'apprentissage

  • Comprendre la structure d'un programme MicroPython simple (imports, initialisation, boucle infinie)
  • Contrôler une LED connectée à un microcontrôleur
  • Initialiser une LED en MicroPython avec le module machine et la nommer par son nom de broche
  • Utiliser sleep_ms pour introduire des délais d'attente (parfois qualifié de "pause") dans un programme

Étape 1 : Construire

Ici, « construire » est rapide : la LED RGB est déjà soudée à la carte, aucun câblage additionnel n'est requis.

Localiser les LED sur la carte

La LED RGB de la STeaMi se trouve sur la face avant. Chaque couleur est pilotée individuellement et accessible dans le code via un nom de broche :

Emplacement de la LED RGB sur la carte STeaMi

La LED RGB intégrée à la face avant de la STeaMi.

CouleurNom de broche
RougeLED_RED
VerteLED_GREEN
BleueLED_BLUE

Connecter la carte à l'ordinateur

Brancher la STeaMi à l'ordinateur via le câble USB. Si l'IDE est déjà configuré (voir la fiche Thonny : Prise en main de MicroPython pour la mise en place initiale), la console MicroPython doit afficher >>>.


Étape 2 : Programmer

Le programme est court : on importe deux modules, on initialise la LED, et on entre dans une boucle qui continue sans jamais s'arrêter et qui allume et éteint la LED avec une pause (un délai d'attente) entre chaque étape pour qu'on ait le temps de voir les changements se produire.

Le code

# Testée avec firmware STeaMi 0.23.1
from machine import Pin
from time import sleep_ms

# Initialisation de la LED bleue
led_blue = Pin('LED_BLUE', Pin.OUT)
delay = 500 # durée en millisecondes entre chaque changement d'état

# Boucle infinie : la LED clignote indéfiniment
while True:
led_blue.on()
sleep_ms(delay)
led_blue.off()
sleep_ms(delay)

Comment ça marche ?

  • from machine import Pin importe l'objet Pin du module machine, qui permet de piloter les broches du microcontrôleur.
  • from time import sleep_ms importe la fonction sleep_ms, qui suspend l'exécution du programme pendant un nombre de millisecondes donné.
  • Pin('LED_BLUE', Pin.OUT) crée un objet qui représente la LED bleue, configurée en sortie (la broche envoie un signal, elle ne le lit pas). Le firmware STeaMi expose les composants intégrés sous des noms parlants — pas besoin de mémoriser un numéro de broche.
  • La variable delay fixe la durée de chaque état (allumée ou éteinte) à 500 millisecondes. Modifier cette valeur change directement la vitesse de clignotement.
  • La boucle while True: s'exécute indéfiniment : elle allume la LED, attend delay ms, éteint la LED, attend encore delay ms, et recommence.

Exécution

  • Test rapide : lancer le programme depuis l'IDE (typiquement bouton Run ▶ ou F5). La LED bleue se met immédiatement à clignoter.
  • Programme persistant : enregistrer le fichier sous le nom main.py sur la carte. Il sera relancé automatiquement à chaque démarrage, sans avoir à rouvrir l'éditeur.

Étape 3 : Améliorer

1. Faire clignoter les autres couleurs

La LED RGB possède trois canaux indépendants. Essayez de les faire clignoter les uns après les autres : il suffit de créer trois objets Pin (LED_RED, LED_GREEN, LED_BLUE) et de les allumer/éteindre tour à tour dans la boucle.

Une fois ce séquencement maîtrisé, vous tenez l'embryon d'un feu de signalisation : rouge plusieurs secondes, vert plusieurs secondes, orange (rouge + vert simultanés) en transition.

2. Le projet « temps de réaction »

Une fois le clignotement maîtrisé, une bonne piste pour aller plus loin est de réaliser le projet temps de réaction en une demi-seconde en MicroPython : la LED s'allume à un moment aléatoire, et le joueur doit appuyer sur un bouton le plus vite possible.


Aller plus loin

Pour comprendre

Pour s'inspirer

  • Fête des Lumières de Lyon : 4 jours par an, la ville devient une scène d'installations lumineuses pilotées par des programmes — un exemple à grande échelle de ce qu'un peu de code et beaucoup de LED peuvent produire.
  • The Bay Lights — Leo Villareal : 25 000 LED disposées sur le Bay Bridge de San Francisco, animées par un programme génératif qui ne se répète jamais. Une œuvre d'art urbain visible à des kilomètres.
  • Faire un cube LED de A à Z (GreatScott!, en anglais) : le grand classique maker — 64 ou 512 LED soudées en 3D, multiplexage temporel pour les piloter avec quelques broches seulement, animations volumétriques.
  • Word Clock — l'horloge à mots : une grille de LED qui éclaire des lettres pour écrire l'heure en toutes lettres (« IL EST DIX HEURES VINGT »). Petit projet de programmation + design plein de charme.
  • Adafruit NeoPixel Überguide : les LED RGB adressables WS2812 — un bus de données, des centaines de LED en chaîne, des effets arc-en-ciel et des bandeaux décoratifs à l'infini. La suite logique quand une seule LED ne suffit plus.

Cette fiche fait partie du projet I-Novmicro #2 : Action EXAO. Adaptée du projet Let's STEAM (fiche r1as01-led) sous licence CC BY-SA 4.0.