🛠 Installer MicroPython et écrire main.py
Objetivos
Instalar MicroPython (puerto oficial rp2) en la Pico y familiarizarse con el flujo de trabajo completo: flasheo del firmware en .uf2, consola REPL en el puerto serie USB, edición y guardado de main.py que se inicia automáticamente al encender. MicroPython aprovecha las especificidades de RP2040: PWM (16 canales, duty_u16 sobre 0-65535), ADC, PIO a través del módulo rp2.
Material
- 1 × Raspberry Pi Pico + cable micro-USB de datos
- Firmware MicroPython rp2 (
.uf2) desde micropython.org/download - Un editor de archivos o una herramienta tipo Thonny (recomendado al principio: REPL + editor integrados)
Código completo
# 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)
Verificación esperada
Tras flashear el firmware, el LED respira en bucle en cuanto la Pico está alimentada, sin PC cerca — main.py se ejecuta al arrancar. Pulsar el botón apaga el LED durante la rampa. En Thonny/REPL, help('rp2') lista las clases específicas (StateMachine, PIO): el puerto está correctamente instalado.
Errores frecuentes
- Firmware CircuitPython en lugar de MicroPython (o viceversa): ambos se flashean igual pero no comparten ni API ni lector; quédate solo con uno.
- Guardar en una subcarpeta:
main.pydebe estar en la raíz del lector. - Tras un reinicio brusco, los pines «tirán» ~60 µA en modo sink y distorsionan las mediciones ADC: reconfigúralos en alta impedancia (high-Z) antes de leer el ADC (peculiaridad documentada en la quick reference rp2).
- REPL que no responde: puerto serie incorrecto; el REPL de MicroPython acepta la velocidad en automático — simplemente vuelve a abrir el monitor.
Ctrl-Cineficaz durante un bucle: envíalo varias veces, o reinicia conmachine.reset.- Sobrescribir el firmware por error al colocar un viejo
.uf2de aplicación: vuelve a flashear el firmware MicroPython, el método BOOTSEL siempre está disponible (bootrom en ROM, imposible de inutilizar).
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton-interruption.pyPythonpwm-servo.pyPythonlecture-adc.pyPythonneopixel.pyPythonoled-i2c.pyPython