Cours Raspberry Pi Pico MicroPython : 6 semaines en classe
Cours Raspberry Pi Pico MicroPython : 6 semaines de séances de 40 minutes, projets gratuits, installation de Thonny, matériel pour 24 élèves et séance type.
Tu prépares un cours Raspberry Pi Pico MicroPython ? Voici la réponse courte : 6 semaines, une séance de 40 minutes par semaine, des binômes et une seule nouvelle notion MicroPython chaque semaine. En semaine 1, les élèves allument la LED intégrée avec une seule ligne dans la REPL de Thonny ; viennent ensuite les variables et la temporisation, les fonctions, les boutons et les conditions, le son et un capteur de distance avec la PWM, et la dernière semaine on construit un piano à cinq boutons avec une liste et une boucle for. Le projet de chaque semaine est gratuit dans BlueGrays avec son schéma, sa liste de composants et son code, les élèves n'ont donc pas besoin de Premium. Le plan utilise le Raspberry Pi Pico ou le Pico W avec Thonny et s'adresse à des collégiens et lycéens qui n'ont jamais programmé.
On voit d'abord pourquoi le Pico et MicroPython fonctionnent si bien en classe, puis la préparation avant la première séance : le fichier UF2 de MicroPython, le bouton BOOTSEL, le choix de l'interpréteur dans Thonny et les points de vigilance sur les ordinateurs de l'établissement. Ensuite viennent le plan semaine par semaine avec l'équivalent Arduino C++ de chaque notion, une liste de matériel pour 24 élèves, une séance type minute par minute, trois courts exemples de code, une grille d'évaluation et les solutions aux problèmes les plus fréquents en classe. La version sur 8 semaines de cette approche avec Arduino et des blocs se trouve dans l'article programmation par blocs en classe ; ce plan ne la répète pas et s'adresse aux classes qui veulent commencer directement par du code textuel ou passer à Python après les blocs.

Pourquoi le Raspberry Pi Pico et MicroPython ?
Le Pico est une petite carte à microcontrôleur conçue par Raspberry Pi autour de sa propre puce RP2040. Ce n'est pas un ordinateur : comme un Arduino, il exécute un seul programme en boucle. En classe, il a trois atouts. Le premier, c'est MicroPython, une version allégée de Python pour microcontrôleurs. Il se lit facilement, sans points-virgules ni accolades ; un élève qui a vu Python en cours d'informatique utilise le même langage pour piloter une LED ou un buzzer. Le deuxième, c'est qu'il n'y a pas de compilation : dès que tu appuies sur Exécuter dans Thonny, le code tourne sur la carte, et tu n'attends pas une compilation et un téléversement après chaque petite modification. Dans une séance de 40 minutes, cela fait beaucoup plus d'essais dans le même temps. Le troisième, c'est la REPL : tape une seule ligne dans la Shell de Thonny, appuie sur Entrée, et la carte l'exécute aussitôt. Quand un élève tape led.on() et que la LED s'allume, il comprend en cinq minutes que programmer, c'est donner des ordres à la carte. Le prix bas et le fait que la carte s'enfiche directement sur la plaque d'essai rendent les binômes réalistes. Quand l'Arduino est-il plus simple ? Avec de jeunes élèves qui savent à peine lire, ou si ton kit se compose surtout de modules 5 V, démarrer avec l'Arduino et les blocs réserve moins de surprises. Pour les caractéristiques techniques et le brochage de la carte, consulte qu'est-ce que le Raspberry Pi Pico.
| Caractéristique | Raspberry Pi Pico + MicroPython | Arduino Uno + C++ |
|---|---|---|
| Tension des broches | 3,3 V (ne tolère pas 5 V) | 5 V |
| Langage et éditeur | MicroPython, Thonny | C++, Arduino IDE |
| Exécuter le code | Immédiatement avec Exécuter, sans compilation | Compiler et téléverser après chaque modification |
| Tester ligne par ligne (REPL) | Oui : >>> dans la Shell de Thonny | Non |
| Entrées analogiques | 3 broches (GP26–GP28), read_u16() 0–65535 | 6 broches (A0–A5), analogRead() 0–1023 |
| Port USB | Micro USB | USB-B (Uno R3) |
| Sur la plaque d'essai | Pico H / WH livrés avec connecteurs, enfichage direct | Carte à côté, reliée par des fils |
| Prix | En général nettement moins cher qu'un Uno | Plus cher |
Avant la première séance : MicroPython et Thonny
- Identifie ta carte : le Pico, le Pico W, le Pico 2 et le Pico 2 W ont chacun leur propre fichier MicroPython. Regarde l'inscription sur la carte et télécharge sur la page officielle de MicroPython le fichier .uf2 le plus récent pour cette carte précise. Avec le mauvais fichier, la carte ne démarre pas ou le Wi-Fi ne fonctionne pas.
- Branche en maintenant BOOTSEL : maintiens enfoncé le bouton blanc BOOTSEL à côté du port USB pendant que tu branches le câble à l'ordinateur, puis relâche-le. Un lecteur nommé RPI-RP2 apparaît sur l'ordinateur (sur le Pico 2, il s'appelle RP2350).
- Copie le fichier UF2 : fais glisser le fichier .uf2 sur ce lecteur. La carte redémarre en quelques secondes et le lecteur disparaît ; ce n'est pas une erreur, cela montre que MicroPython est installé. MicroPython reste sur la carte, inutile de le réinstaller à chaque séance.
- Choisis l'interpréteur dans Thonny : dans Tools > Options > Interpreter, sélectionne "MicroPython (Raspberry Pi Pico)" et laisse le port en détection automatique. Tu peux faire le même choix en cliquant en bas à droite de la fenêtre de Thonny.
- Teste la connexion : tu dois voir l'invite >>> dans la Shell en bas. Tape print("bonjour") et appuie sur Entrée ; si la réponse s'affiche, la carte est prête pour le cours.
Ne garde pas l'installation sur les ordinateurs de l'établissement pour la séance elle-même ; parles-en au service informatique une semaine avant. Thonny fonctionne sous Windows, macOS et Linux et embarque son propre Python, inutile donc d'installer Python à part. Pour Windows, il existe aussi une version portable qui ne demande aucune installation, ce qui simplifie beaucoup les choses dans les salles verrouillées où seul le service informatique peut installer des logiciels. Windows 10 et 11 reconnaissent le Pico comme port série (COM) sans pilote supplémentaire. Certains établissements bloquent les clés USB ; le lecteur RPI-RP2 peut alors ne pas apparaître sur les postes élèves, mais si tu as installé MicroPython à l'avance sur ton propre ordinateur, ce n'est pas un problème, car le cours n'utilise que la liaison série. Enfin, montre aux élèves les deux options de la fenêtre d'enregistrement de Thonny : "This computer" enregistre le fichier sur l'ordinateur, "Raspberry Pi Pico" sur la carte. Les binômes qui ne savent pas laquelle ils ont choisie ne retrouveront pas leur code en semaine 6.
Le plan de cours Raspberry Pi Pico sur 6 semaines
Chaque séance est prévue pour 40 minutes en binômes. Tous les projets du tableau sont gratuits dans BlueGrays, et ceux des trois premières semaines ont aussi une vue en blocs à côté du code. L'ordre est voulu : d'abord la sortie (LED), puis les variables et la temporisation, les fonctions, ensuite l'entrée et les conditions, le son et un capteur avec la PWM, et pour finir les listes et les boucles. Chaque semaine ajoute une seule idée nouvelle à la précédente. La dernière colonne montre la même notion en Arduino C++ et fait le pont pour les élèves qui passeront plus tard à l'Arduino ; pour le côté C++ en détail, vois les bases de la programmation Arduino.
| Semaine | Objectif | Projet BlueGrays gratuit | Nouvelle notion MicroPython | Équivalent Arduino C++ |
|---|---|---|---|---|
| 1 | Découvrir le Pico, premier programme, sortie numérique | Clignotement LED Intégrée Raspberry Pi Pico (Pico et Pico W), Allumage d'une LED externe sur le Raspberry Pi Pico (GP14 + plaque d'essai) | REPL (>>>), from machine import Pin, Pin(14, Pin.OUT), led.on() / led.off(), time.sleep(0.5), while True:, indentation | pinMode(14, OUTPUT); digitalWrite(14, HIGH); delay(500); void loop() |
| 2 | Variables, temporisation, deux sorties | Raspberry Pi Pico Deux LEDs alternées (Flip-Flop, GP14 + GP13), Raspberry Pi Pico Effet Gyrophare Police (Rouge + Bleu Stroboscope, GP11 + GP12) | WAIT_MS = 300 (variable), led.value(1), led.toggle(), sleep_ms(300) | int waitMs = 300; digitalWrite(13, !digitalRead(13)); delay(waitMs); |
| 3 | Moins de répétition : les fonctions | Simulateur de Feu de Circulation Raspberry Pi Pico (3 LEDs séquentielles, GP11/GP12/GP13) | def all_off():, appeler une fonction, secondes décimales avec sleep(1.5) | void allOff() { … } ; delay(1500); |
| 4 | Entrée, conditions et état | Feu de signalisation Raspberry Pi Pico avec sélecteur à 4 modes (machine à états, GP11-13 + GP4) | Pin(4, Pin.IN, Pin.PULL_UP), if / elif / else, mode = (mode + 1) % 4, time.ticks_ms() | pinMode(4, INPUT_PULLUP); if / else if / else; millis() |
| 5 | Capteur et son | Radar de recul avec Raspberry Pi Pico (HC-SR04 + 3 LED + buzzer) | PWM(Pin(17)), freq(), duty_u16(), time_pulse_us(), def … return | tone(17, 1200); pulseIn(); return |
| 6 | Listes, boucle for, projet final | Piano à boutons avec Raspberry Pi Pico (5 boutons + buzzer + enregistreur) | NOTE_HZ = (523, 587, 659, 698, 784), for … in, cinq boutons avec le même code | int notes[] = {523, 587, 659, 698, 784}; for (int i = 0; i < 5; i++) |

En appliquant le plan, fais-en une règle : à la fin de chaque semaine, les élèves modifient une seule valeur. En semaine 1, le projet de la LED intégrée appelle la LED par le nom "LED", il fonctionne donc de la même façon sur le Pico et le Pico W ; la LED externe va sur GP14, c'est-à-dire la broche physique 19, et la broche 18 juste à côté est GND. En semaine 2, faire passer WAIT_MS de 300 à 80 dans l'Effet Gyrophare Police montre qu'une seule variable change en même temps le rythme des deux LED. En semaine 3, le Feu de circulation appelle all_off() trois fois dans la boucle ; demande aux élèves de supprimer la fonction et d'écrire la même chose à la main, et quand ils voient neuf lignes s'accumuler, ils te diront eux-mêmes à quoi servent les fonctions. La semaine 4 est un projet de niveau intermédiaire : le bouton est câblé avec PULL_UP, il renvoie donc 0 quand on appuie, et chaque appui fait passer le mode entre normal, rouge seul, orange clignotant et éteint. Le code est long, lisez-le d'abord avec les étapes de l'onglet Comprendre le code. En semaine 5, le HC-SR04 fonctionne en 5 V, n'oublie donc pas de relier ECHO à travers le pont diviseur ; jouer avec les valeurs GREEN_CM 100, YELLOW_CM 50, RED_CM 25 et STOP_CM 10 donne aux élèves l'idée de seuil. Le fonctionnement du capteur est expliqué dans l'article sur le capteur de distance HC-SR04 et la production de son par PWM dans qu'est-ce qu'un buzzer ; prends un buzzer passif, car le projet change la fréquence. En semaine 6, le piano joue cinq notes de DO à SOL entre 523 et 784 Hz, et maintenir la touche DO une seconde lance l'enregistrement d'une mélodie. Le code complet est long pour ce niveau ; au lieu de le faire recopier, demande aux élèves de changer les fréquences de la liste NOTE_HZ pour créer leur propre gamme.
Questions de sortie pour chaque semaine
- Semaine 1 : que se passe-t-il si tu inverses les lignes led.on() et time.sleep(0.5) ? Pourquoi les lignes sous while True: commencent-elles plus à droite ?
- Semaine 2 : comment change le gyrophare si tu passes WAIT_MS de 300 à 1000 ? Quelles deux lignes toggle() remplace-t-il à lui seul ?
- Semaine 3 : combien de lignes de plus écrirais-tu sans la fonction all_off() ? Quelle est la différence entre définir une fonction et l'appeler ?
- Semaine 4 : pourquoi button.value() renvoie-t-il 0 quand on appuie sur un bouton en PULL_UP ? Si mode vaut 3 et que tu appuies, combien vaut mode ?
- Semaine 5 : pourquoi ne relions-nous pas la broche ECHO du HC-SR04 directement au Pico ? Que fait la ligne duty_u16(0) au buzzer ?
- Semaine 6 : quelles listes du code faut-il modifier pour ajouter une sixième touche au piano ?
Liste du matériel pour une classe de 24 élèves
En répartissant 24 élèves en binômes, tu obtiens 12 groupes ; avec un kit de réserve, prépare 13 kits. Comme le Pico coûte peu, les binômes plutôt que les trinômes sont possibles dans la plupart des établissements, et chaque élève passe plus de temps au clavier ; si tu fais des groupes de trois, descends à 9 kits. Chaque groupe a besoin d'un ordinateur, car Thonny communique avec le Pico par USB. Le téléphone ou la tablette sert à garder ouverts dans BlueGrays le projet de la semaine, le schéma et l'onglet Comprendre le code. Aucune soudure : tout s'enfiche sur la plaque d'essai.
| Matériel | Par groupe | Pour la classe (12 groupes + 1 de réserve) | Semaine |
|---|---|---|---|
| Raspberry Pi Pico H ou Pico WH (connecteurs soudés) | 1 | 13 | Toutes |
| Câble micro USB de données | 1 | 13 | Toutes |
| Plaque d'essai (400 ou 830 points) | 1 | 13 | Toutes |
| Fils de connexion mâle-mâle | 20 | environ 260 | Toutes |
| LED 5 mm (rouge, jaune, verte, bleue) | 4 | environ 60 | 1–5 |
| Résistance 220 Ω | 4 | environ 60 | 1–5 |
| Bouton-poussoir (4 pattes) | 5 | environ 70 | 4, 6 |
| Buzzer passif | 1 | 13 | 5, 6 |
| Capteur de distance à ultrasons HC-SR04 | 1 | 13 | 5 |
| Résistances 1 kΩ et 2 kΩ (pont diviseur ECHO) | 1 + 1 | 13 + 13 | 5 |
| Ordinateur avec Thonny | 1 | 12 | Toutes |
| Potentiomètre 10 kΩ (facultatif, pour l'ADC) | 1 | 13 | Groupes rapides |
Séance type : semaine 1, le premier programme
Le déroulé ci-dessous concerne la semaine 1. La première séance est la plus risquée, car c'est là que surgissent les problèmes d'installation. On suppose que MicroPython est déjà installé sur les cartes et Thonny sur les ordinateurs. Tu peux reprendre le même squelette les autres semaines : mise en route, lecture commune, prédiction, circuit, exécution, modification d'une valeur et question de sortie. Si tu as une séance double de 80 minutes, allonge la phase "modifier une valeur" et fais présenter aux binômes leur réponse à la question de sortie.
| Durée | Phase | Que fait-on ? |
|---|---|---|
| 0–5 min | Mise en route | Question : que faut-il dire à une carte pour qu'elle "allume la LED" ? Les réponses vont au tableau. On distribue les cartes et on montre le bouton BOOTSEL et le port USB. |
| 5–12 min | Première commande dans la REPL | Shell de Thonny au vidéoprojecteur : from machine import Pin, led = Pin("LED", Pin.OUT), led.on(). Les binômes tapent les trois mêmes lignes sur leur ordinateur puis éteignent avec led.off(). |
| 12–18 min | Lecture commune du projet | On ouvre dans BlueGrays le projet Clignotement LED Intégrée. On lit d'abord les blocs avec Voir en blocs activé, puis le code ; on parle de while True et de l'indentation. |
| 18–22 min | Exécution | On colle le code dans Thonny et on appuie sur Exécuter (F5). La LED clignote toutes les 0,5 seconde. On montre le bouton Stop pour l'arrêter. |
| 22–32 min | Circuit avec LED externe | On débranche l'USB. GP14 (broche 19) → 220 Ω → patte longue de la LED, patte courte → GND (broche 18). On exécute le code du projet de LED externe. Rôles : monteur et vérificateur. |
| 32–37 min | Modifier une valeur | time.sleep(0.5) passe à 0.1, puis à 2. Les binômes qui le souhaitent déplacent la LED sur GP15 et remplacent 14 par 15 dans le code. |
| 37–40 min | Question de sortie | Une question sur papier : que se passerait-il si les lignes sous while True: n'étaient pas indentées ? On débranche les cartes et on les range dans leurs boîtes numérotées. |
Trois courts exemples MicroPython pour la classe
La LED intégrée est ce qui crée le plus de confusion entre le Pico et le Pico W. Sur le Pico classique, la LED est reliée à GP25, c'est pourquoi les anciens exemples utilisent Pin(25). Sur le Pico W, la LED est reliée à la puce Wi-Fi et n'a pas de broche GP numérotée, donc Pin(25) ne l'allume pas. Ce qui marche sur les deux, c'est d'appeler la LED par son nom : Pin("LED"). Les versions actuelles de MicroPython définissent ce nom pour le Pico, le Pico W et le Pico 2, et c'est pour cela que le projet de LED intégrée de BlueGrays l'utilise. Si ta classe mélange les cartes, tu peux distribuer le même code à tout le monde. Si un ancien firmware ne connaît pas le nom "LED", il suffit de mettre à jour le fichier UF2.
1from machine import Pin
2import time
3
4# "LED" adı Pico, Pico W ve Pico 2'de karttaki LED'i bulur / The name "LED" finds the onboard LED on Pico, Pico W and Pico 2
5led = Pin("LED", Pin.OUT)
6# Eski firmware'li klasik Pico'da: Pin(25, Pin.OUT) / Classic Pico with old firmware: Pin(25, Pin.OUT)
7# Pico W'de Pin(25) LED'i yakmaz / On the Pico W, Pin(25) does not light the LED
8
9while True:
10 led.toggle() # Durumu tersine çevir / Flip the state
11 time.sleep(0.5) # 0,5 saniye bekle / Wait 0.5 seconds
12Le code de la LED externe reprend le même squelette ; seul le numéro de broche change. Ici, le temps d'attente est placé dans une variable nommée WAIT, qui sera la première ligne que les élèves modifieront en semaine 2. La variable count et la ligne print() écrivent un nombre dans la Shell de Thonny à chaque allumage, ainsi les élèves voient à l'écran que la boucle tourne vraiment. Le 14 du code est un numéro GP, pas un numéro de broche physique ; c'est le point que les élèves confondent le plus souvent.
1from machine import Pin
2import time
3
4LED_PIN = 14 # LED'in bağlı olduğu GP pini (fiziksel pin 19) / GP pin the LED is wired to (physical pin 19)
5WAIT = 0.5 # Bekleme süresi, saniye / Wait time in seconds
6
7led = Pin(LED_PIN, Pin.OUT) # Pini çıkış yap / Make the pin an output
8count = 0 # Kaç kez yandığını say / Count how many times it lit
9
10while True:
11 led.on() # LED'i yak / Turn the LED on
12 count = count + 1
13 print("LED", count) # Thonny Shell'e yaz / Print to the Thonny Shell
14 time.sleep(WAIT)
15 led.off() # LED'i söndür / Turn the LED off
16 time.sleep(WAIT)
17Il y a deux façons de câbler un bouton, et les deux méritent d'être montrées. Avec PULL_UP, une patte du bouton va sur GP15 et la patte opposée sur GND ; une résistance interne du Pico tire la broche vers 3,3 V, un appui relie la broche à GND et on lit 0. Tous les projets Pico à bouton de BlueGrays utilisent cette méthode, car elle ne demande aucun fil supplémentaire. Avec PULL_DOWN, la patte opposée va sur la broche 3V3(OUT) (broche 36) et on lit 1 à l'appui ; la logique paraît plus naturelle, mais il est facile de brancher le fil sur VBUS (broche 40, 5 V) par erreur. Quelles pattes du bouton sont reliées entre elles, nous l'expliquons dans l'article sur le branchement d'un bouton. Tu peux commencer la semaine 4 avec le court code ci-dessous puis passer au sélecteur de modes.
1from machine import Pin
2import time
3
4led = Pin(14, Pin.OUT) # GP14 -> 220 ohm -> LED -> GND / GP14 -> 220 ohm -> LED -> GND
5button = Pin(15, Pin.IN, Pin.PULL_UP) # Buton GP15 ile GND arasında / Button between GP15 and GND
6# PULL_DOWN: Pin(15, Pin.IN, Pin.PULL_DOWN), buton GP15 ile 3V3(OUT) arasında / button between GP15 and 3V3(OUT)
7# PULL_DOWN ile koşul == 1 olur / With PULL_DOWN the condition becomes == 1
8
9while True:
10 if button.value() == 0: # PULL_UP: basınca 0 okunur / PULL_UP: reads 0 when pressed
11 led.on()
12 else:
13 led.off()
14 time.sleep_ms(10) # Döngüyü biraz yavaşlat / Slow the loop down a little
15Comment utiliser BlueGrays dans un cours sur le Pico
- Guide du code, parcours MicroPython : le Guide du code de la section Apprendre propose, à côté du parcours Arduino C++, un parcours MicroPython de 18 fiches : import, print, broche en sortie, broche en entrée (PULL_UP, PULL_DOWN), time.sleep, while True, indentation, variables, if / elif / else, for et range, listes, def et return, ADC, PWM, ticks_ms, Pin.irq, try / except et I2C. Chaque fiche contient À quoi ça sert ?, Syntaxe, un exemple avec les onglets Blocs · Arduino · MicroPython, Erreur fréquente et un mini-test. Conseille les fiches de la notion de la semaine à lire entre les séances ; chaque élève voit sa propre progression MicroPython x/18 dans l'écran Mon niveau.
- Voir dans les projets : ce lien en bas de chaque fiche liste les projets dont le code utilise la commande, du plus facile au plus difficile. L'élève qui a lu une commande sur la fiche passe de là à la retrouver dans le code d'un vrai projet.
- Questions du jour : le réglage "Langage de code des questions" propose Les deux, Arduino et MicroPython. Si tu enseignes avec le Pico, fais choisir MicroPython aux élèves ; les questions générales sans code apparaissent quel que soit le choix. Chaque jour, il y a une série d'environ 3 minutes, un test de positionnement de 15 questions et 6 niveaux de A1 à C2, une bonne habitude de révision quotidienne entre les séances.
- Voir en blocs : cinq des projets Pico gratuits (LED intégrée, LED externe, deux LED alternées, Feu de circulation et Gyrophare) ont une vue en blocs à côté du code. Montrer d'abord les blocs puis le code du même programme à un élève qui découvre Python installe l'idée "même logique, autre écriture" ; nous détaillons cette étape dans passer des blocs à MicroPython. Les blocs servent à lire : on ne les modifie pas dans l'application et c'est toujours le code MicroPython qui va sur la carte.
- Comprendre le code et Dépannage : tous les projets Pico gratuits ont les deux. L'onglet Comprendre le code commence par le résumé Que fait ce code ?, continue avec l'explication Étape par étape et se termine par Si tu bloques et la tâche À toi de jouer. Avec le code long des semaines 4 et 6, c'est ton principal appui pour les binômes qui ne lisent pas encore vite.
- Construisons-le ensemble et Copier le lien : le mode guidé avance en quatre étapes et, à l'étape du code, rappelle de choisir l'interpréteur MicroPython dans Thonny. Copier le lien dans le code source donne un lien pour ouvrir le code sur l'ordinateur, les élèves n'ont donc pas à recopier dans Thonny le code affiché sur le téléphone.
Évaluation et différenciation
| Critère | 1 – Débute | 2 – En progrès | 3 – Maîtrise |
|---|---|---|---|
| Montage du circuit | Monte avec aide, oublie GND | Monte d'après le schéma, relie le numéro GP au code | Distingue broches physiques et numéros GP, repère l'erreur d'un camarade |
| Lecture du code | Lit les lignes sans expliquer ce qu'elles font | Explique globalement ce que fait le programme | Explique chaque ligne et le sens de l'indentation |
| Modifier et tester | Change une valeur sans expliquer l'effet | Prédit le résultat avant d'essayer | Si la prédiction échoue, trouve la cause grâce au message d'erreur de la Shell |
| Lien avec le C++ | Ne fait pas le lien | Relie Pin, sleep et while True | Relie aussi if, for et les fonctions |
- Groupes rapides, lecture analogique : le plan ne prévoit pas de semaine sur l'ADC ; les binômes qui finissent tôt relient le curseur d'un potentiomètre de 10 kΩ à GP26, lisent une valeur entre 0 et 65535 avec ADC(26).read_u16() et s'en servent pour régler la vitesse du gyrophare de la semaine 2. Pour un défi plus grand, le projet gratuit Feu de camp LED avec Raspberry Pi Pico (Matrice NeoPixel 8x8 + Potentiomètre + Buzzer) pilote une matrice NeoPixel 8x8 avec le même potentiomètre.
- Groupes rapides, combiner : ajouter le bouton de la semaine 4 au radar de recul de la semaine 5 pour écrire un "mode silencieux" qui coupe et rétablit le son est un premier vrai pas vers l'écriture de leur propre code.
- Groupes plus lents : donne-leur le circuit déjà monté ou pose le schéma imprimé en grand sur la table. Qu'ils avancent étape par étape avec l'onglet Comprendre le code et ne visent ce jour-là qu'à modifier une seule valeur ; c'est déjà un acquis réel.
Problèmes fréquents et solutions rapides
| Problème | Cause probable | Solution |
|---|---|---|
| L'ordinateur ne voit pas du tout le Pico | Câble de charge seulement, faux contact, hub USB | Essaie un câble de données connu, branche la carte directement sur l'ordinateur, essaie un autre port USB. |
| Le lecteur RPI-RP2 s'ouvre à chaque branchement | Pas de MicroPython sur la carte ou BOOTSEL reste enfoncé | Copie le fichier UF2 sur le lecteur ; rebranche sans appuyer sur le bouton. |
| RPI-RP2 n'apparaît jamais | BOOTSEL a été pressé après le branchement | Débranche, maintiens BOOTSEL en rebranchant, puis relâche. |
| Thonny ne se connecte pas, "Device is busy" ou erreur de port | Mauvais interpréteur ou port, port ouvert dans un autre programme, code en cours occupé | Choisis "MicroPython (Raspberry Pi Pico)" en bas à droite, appuie sur Stop/Restart, ferme une deuxième fenêtre Thonny, débranche et rebranche l'USB. |
| No module named 'machine' | Le code tourne dans le Python de l'ordinateur | Règle l'interpréteur sur MicroPython (Raspberry Pi Pico). |
| IndentationError ou SyntaxError | Indentation mélangée, deux-points manquants | Va au numéro de ligne indiqué ; les lignes while, if et def finissent par deux-points et les lignes en dessous ont 4 espaces. |
| Le code tourne mais la LED reste éteinte | LED à l'envers, pas de GND, numéro GP du code différent du circuit, Pin(25) sur un Pico W | Patte longue côté résistance (côté GP), vérifie le fil de GND, utilise Pin("LED") pour la LED intégrée. |
| Débranché de l'ordinateur, le code ne tourne plus | Fichier enregistré sur l'ordinateur ou pas nommé main.py | Dans Thonny, choisis enregistrer > Raspberry Pi Pico et nomme-le main.py ; le code démarre alors tout seul dès que la carte est alimentée. |
| main.py tourne en boucle infinie et Thonny ne reprend pas la main | Le code démarre dès la mise sous tension | Appuie plusieurs fois sur Stop ou fais Ctrl+C dans la Shell ; sinon, efface la mémoire avec le flash_nuke.uf2 officiel et réinstalle MicroPython (tous les fichiers de la carte sont supprimés). |
Liste de vérification avant la séance
- MicroPython est installé sur toutes les cartes, cartes et câbles sont numérotés de 1 à 13.
- Thonny s'ouvre sur chaque ordinateur avec "MicroPython (Raspberry Pi Pico)" comme interpréteur.
- Chaque couple carte-câble a été testé et affiche >>> dans la Shell.
- Les résistances sont rangées par valeur dans des boîtes séparées : 220 Ω, 1 kΩ, 2 kΩ.
- Le projet de la semaine est ouvert dans BlueGrays au vidéoprojecteur ; les trois premières semaines, Voir en blocs est prêt.
- Les fiches de question de sortie sont imprimées et les rôles (monteur, vérificateur) attribués.
- Avant la semaine 5, les résistances du pont diviseur du HC-SR04 sont mises de côté pour chaque groupe.
- En fin de séance, les câbles USB sont débranchés et les composants comptés dans les boîtes numérotées.
Tu peux ouvrir gratuitement dans l'application BlueGrays tous les projets de ces six semaines, avec le schéma, la liste des composants, le code MicroPython et l'onglet Comprendre le code ; il devient ainsi facile de mener la séance au vidéoprojecteur pendant que les élèves suivent sur leur propre téléphone. Si, après six semaines, tu veux passer aux projets Premium pour le Pico avec la luminosité d'une LED en PWM, un servo, un écran OLED ou un clavier matriciel, tu peux distribuer des codes enseignant plutôt que des abonnements individuels ; ils s'achètent en une fois et ne se renouvellent pas automatiquement.
Questions fréquentes
Comment faire cours avec le Raspberry Pi Pico ?
Mets une seule notion nouvelle par séance et range-les ainsi : sortie, variables, fonctions, entrée et conditions, PWM et capteurs, puis listes et boucles. Chaque séance suit le même squelette : mise en route, lecture commune, prédiction, circuit, exécution, modification d'une valeur et question de sortie. Le plan de 6 semaines de cet article est construit ainsi, avec des projets gratuits.
Comment installer MicroPython sur un Raspberry Pi Pico ?
Maintiens le bouton BOOTSEL pendant que tu branches le Pico à l'ordinateur en USB ; un lecteur nommé RPI-RP2 apparaît. Copie dessus le fichier .uf2 de MicroPython correspondant à ta carte, et la carte redémarre. Tu peux aussi l'installer avec l'option "Install or update MicroPython" dans les réglages de l'interpréteur de Thonny.
Thonny ne détecte pas mon Raspberry Pi Pico, que faire ?
Vérifie d'abord que ton câble USB transmet les données, car avec un câble de charge seulement l'ordinateur ne voit pas la carte. Règle ensuite l'interpréteur de Thonny sur "MicroPython (Raspberry Pi Pico)" et appuie sur Stop/Restart. Si le lecteur RPI-RP2 s'ouvre à chaque branchement, la carte n'a pas encore MicroPython : installe le fichier UF2.
Raspberry Pi Pico ou Arduino pour l'école ?
Les deux sont un bon point de départ ; le choix dépend du langage et des élèves. Si tu enseignes Python ou veux tester vite sans attendre une compilation, le Pico avec MicroPython est confortable. Avec de jeunes élèves, pour commencer par des blocs ou si ton kit est fait de modules 5 V, l'Arduino réserve moins de surprises.
Comment faire tourner du code sur le Pico sans ordinateur ?
Dans Thonny, enregistre le code sur la carte avec l'option "Raspberry Pi Pico" sous le nom main.py. Le Pico exécute main.py tout seul à chaque mise sous tension, un chargeur USB ou une batterie externe suffit. Pour arrêter le code, reconnecte la carte à Thonny et appuie sur Stop.
Y a-t-il une différence en classe entre le Pico et le Pico W ?
Tous les projets de ce plan fonctionnent sur les deux avec les mêmes broches ; seule la LED intégrée diffère. Sur le Pico classique, elle est reliée à GP25, sur le Pico W à la puce Wi-Fi, utilise donc Pin("LED"), qui marche sur les deux. Le Pico W a en plus le Wi-Fi et le Bluetooth, mais tu n'en auras pas besoin pendant les six premières semaines.
Projets à réaliser après cet article
Voir tous les projets
Clignotement LED Intégrée Raspberry Pi Pico (Pico et Pico W)
Le projet d'ouverture de la série Raspberry Pi Pico ! Nous faisons clignoter la LED verte intégrée pour vérifier que la carte fonctionne — une première expérience classique "Hello World". AUCUN composant externe, juste Pico et câble USB. Le code est écrit en MicroPython (le langage officiellement soutenu par la Raspberry Pi Foundation). Apprends la classe machine.Pin, le mode Pin.OUT, les méthodes led.on()/off() et time.sleep() dans Thonny IDE. Suis chaque basc

Allumage d'une LED externe sur le Raspberry Pi Pico (plaque d'essai)
Après la LED intégrée du Pico : connecter une LED externe à la maquette et la contrôler via la broche GP14. Ce projet vous permet d’apprendre comment utiliser n’importe quelle broche GPIO à usage général du Pico en sortie, de comprendre la polarité de la LED (grande patte = anode/+, petite patte = cathode/–) et de découvrir pourquoi une résistance de limitation de courant (220 Ω) est indispensable. Si vous n'installez pas cette résistance, un courant excessif traversera la LED et celle-ci risque

Raspberry Pi Pico Deux LEDs alternées (Flip-Flop)
L'étape suivante après la LED unique sur le Pico : deux LEDs clignotent alternativement dans un motif flip-flop classique. Deux LEDs de couleurs différentes (rouge sur GP14, verte sur GP13) échangent leur état toutes les 500ms. Pin.toggle() de MicroPython rend le code court. Base des feux de circulation, gyrophares.

Simulateur de Feu de Circulation Raspberry Pi Pico (3 LEDs séquentielles)
Nous simulons un vrai feu de circulation avec des LEDs rouge, jaune et verte. Vert 4 sec "passez", jaune 1,5 sec "préparez", rouge 3 sec "arrêtez" et rouge+jaune 1 sec "départ" (motif européen). Apprends la définition de fonction, la logique de machine à états et la synchronisation multi-GPIO. Circuit simple : 3 LEDs sur GP11/GP12/GP13, chacune avec 220Ω.

Raspberry Pi Pico Effet Gyrophare Police (Rouge + Bleu Stroboscope)
Nous simulons la rampe lumineuse d'une voiture de police avec un Raspberry Pi Pico, dans sa version la plus simple ! Les LED rouge et bleue s'allument à tour de rôle (flip-flop) : quand la rouge est allumée, la bleue est éteinte, et elles s'échangent toutes les 0,3 seconde, sans fin. Le code écrit les deux étapes directement dans une seule boucle while True ; la vitesse se règle avec la constante WAIT_MS.

Feu de signalisation Raspberry Pi Pico avec sélecteur à 4 modes (machine à états)
4 modes différents pour le feu tricolore avec un seul bouton ! À chaque pression sur le bouton, le mode change : Cycle normal (rouge → orange → vert dans cet ordre), Rouge uniquement (ordre d'arrêt), Orange clignotant (attention/mode nuit), Éteint (entretien). Notions : state machine (machine à états — la variable mode détermine le comportement à adopter), modulo mod cycling ((mode + 1) % 4 → 0→1→2→3→0, boucle infinie), synchronisation non bloquante (les phases de

Raspberry Pi Pico LED Contrôlée par Bouton (Push)
Premier projet entrée avec Pico — lecture bouton ! LED s'allume tant que le bouton est pressé. Apprends Pin.IN, Pin.PULL_UP et button.value(). GP14 LED, GP2 bouton avec PULL_UP interne. Pressé = 0, relâché = 1 — standard.

Raspberry Pi Pico PWM LED Fade (Effet Respiration)
La LED ne clignote plus — elle respire ! Grâce au PWM (modulation de largeur d'impulsion) du Raspberry Pi Pico, la luminosité monte puis descend lentement. Apprends la classe machine.PWM, duty_u16() (luminosité 16 bits 0–65535), la fréquence PWM, les boucles range() et la sortie quasi analogique. Base du mélange de couleurs RGB, du contrôle moteur, des servos et du buzzer.
Autres articles
Application BlueGrays
Réalise ce montage pas à pas sur ton téléphone
Schéma, code et liste des composants sur un seul écran. Plus de 200 projets Arduino, ESP32 et Pico à réaliser.
Scanne avec ton téléphone
Pointe l’appareil photo vers le code : la boutique d’applications de ton téléphone s’ouvre.
ou ouvre la boutique

