🛠 Faire clignoter la LED embarquée
Objetivos
Descubrir la Raspberry Pi Pico 2, su SoC RP2350 (2 núcleos Arm Cortex-M33 hasta 150 MHz, 520 KB de RAM, 4 MB de flash QSPI) e implementar su primer programa C/C++ con el Pico SDK. Al final, el LED de usuario integrado parpadeará y sabrá cómo compilar y flashear un archivo .uf2.
Material
- 1 × Raspberry Pi Pico 2 (ref. SC1631, o SC1632 con pines macho)
- 1 × cable micro-USB de datos
- PC con Pico SDK ≥ 2.0.0 (primera versión que soporta el RP2350) y toolchain arm-none-eabi-gcc
- Software: no se requieren controladores en Windows para el modo BOOTSEL
Código completo
/* blink.c — Pico 2 : LED utilisateur sur GP25 (définie par boards/pico2.h) */
#include "pico/stdlib.h"
#define LED_PIN 25 /* GP25 = LED utilisateur sur Pico 2 (confirmé datasheet) */
int main(void) {
gpio_init(LED_PIN);
gpio_set_dir(LED_PIN, GPIO_OUT);
while (true) {
gpio_put(LED_PIN, 1);
sleep_ms(250);
gpio_put(LED_PIN, 0);
sleep_ms(750);
}
}
Compilación: cmake -B build -DPICO_BOARD=pico2 .. y luego cmake --build build. Mantenga presionado BOOTSEL, conecte el USB y copie blink.uf2 en la unidad RPI-RP2.
Verificación esperada
El LED parpadea: encendido 250 ms, apagado 750 ms. La unidad RPI-RP2 aparece únicamente cuando se mantiene presionado BOOTSEL al conectar; después de copiar el archivo .uf2, la placa se reinicia sola y el programa se ejecuta sin cable serie.
Errores frecuentes
- Olvidar
-DPICO_BOARD=pico2: el SDK apunta entonces a pico (RP2040) y el binario no funciona correctamente. - Usar un cable micro-USB solo de carga: no hay enumeración USB, la unidad RPI-RP2 nunca aparece.
- Un .uf2 de MicroPython/CircuitPython para RP2040 no se podrá flashear: se necesita firmware específico para RP2350 (MicroPython ≥ 1.24.0).
- Confundir GP25 (LED) con un pin libre: tanto en Pico 2 como en Pico 1, GP25 está conectado internamente al LED.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton-interruption.pyPythonpwm-servo.pyPythonlecture-adc.pyPythonneopixel.pyPythonoled-i2c.pyPython