🛠 Installer MicroPython et écrire main.py
Objectifs
Installer MicroPython (port officiel rp2) sur la Pico et prendre en main le flux de travail complet : flash du firmware en .uf2, console REPL sur le port série USB, édition et sauvegarde de main.py qui démarre automatiquement à la mise sous tension. MicroPython exploite bien les spécificités RP2040 : PWM (16 canaux, duty_u16 sur 0-65535), ADC, PIO via le module rp2.
Matériel
- 1 × Raspberry Pi Pico + câble micro-USB data
- Firmware MicroPython rp2 (
.uf2) depuis micropython.org/download - Un éditeur de fichiers ou un outil type Thonny (recommandé au début : REPL + éditeur intégrés)
Code complet
# main.py — à sauvegarder à la racine du lecteur RPI-RP2 (alias « Pico »)
# respiration LED GP25 + bouton GP2 qui force l'extinction
from machine import Pin, PWM
import time
led = PWM(Pin(25)) # LED embarquée, tranche PWM 12B
led.freq(1000) # fréquence de la tranche
btn = Pin(2, Pin.IN, Pin.PULL_UP) # bouton GP2 -> GND
while True:
for duty in range(0, 65536, 512): # rampe montante
led.duty_u16(duty)
if not btn.value: # appui => extinction
led.duty_u16(0)
time.sleep_ms(5)
for duty in range(65535, -1, -512): # rampe descendante
led.duty_u16(duty)
time.sleep_ms(5)
Vérification attendue
Après flash du firmware, la LED respire en boucle dès que la Pico est alimentée, sans PC à côté — main.py s'exécute au boot. Appuyer sur le bouton éteint la LED pendant la rampe. Dans Thonny/REPL, help('rp2') liste les classes spécifiques (StateMachine, PIO) : le port est bien installé.
Erreurs fréquentes
- Firmware CircuitPython au lieu de MicroPython (ou l'inverse) : les deux se flashent pareil mais ne partagent ni API ni lecteur ; n'en garde qu'un.
- Sauvegarder dans un sous-dossier :
main.pydoit être à la racine du lecteur. - Après un reset brutal, les broches « tirent » ~60 µA en mode sink et faussent les mesures ADC : reconfigure-les en high-Z avant de lire l'ADC (quirk documenté de la quick reference rp2).
- REPL qui ne répond pas : mauvais port série ; le REPL MicroPython accepte le débit auto — rouvre simplement le moniteur.
Ctrl-Cinefficace pendant une boucle : envoie-le plusieurs fois, ou réinitialise avecmachine.reset.- Écraser le firmware par erreur en déposant un vieux
.uf2applicatif : re-flashe le firmware MicroPython, la méthode BOOTSEL est toujours disponible (bootrom en ROM, impossible à briquer).
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-interruption.pyPythonpwm-servo.pyPythonlecture-adc.pyPythonneopixel.pyPythonoled-i2c.pyPython