Guías · 17 min de lectura

Plan de clase Raspberry Pi Pico: 6 semanas de MicroPython

Plan de clase Raspberry Pi Pico: 6 semanas de MicroPython en sesiones de 40 minutos, proyectos gratis, Thonny, materiales para 24 y una clase de ejemplo.

Si buscas un plan de clase con Raspberry Pi Pico, la respuesta corta es esta: 6 semanas, una clase de 40 minutos por semana, parejas y un solo concepto nuevo de MicroPython cada semana. En la semana 1 el alumnado enciende el LED integrado con una sola línea en la REPL de Thonny; después llegan las variables y los tiempos, las funciones, los botones y las condiciones, el sonido y un sensor de distancia con PWM, y en la última semana se construye un piano de cinco botones con una lista y un bucle for. El proyecto de cada semana es gratuito en BlueGrays con su esquema, su lista de piezas y su código, así que el alumnado no necesita Premium. El plan usa la Raspberry Pi Pico o la Pico W con Thonny y está pensado para estudiantes de secundaria que nunca han programado.

Primero vemos por qué la Pico y MicroPython funcionan tan bien en el aula y luego la preparación previa a la primera clase: el archivo UF2 de MicroPython, el botón BOOTSEL, la elección del intérprete en Thonny y lo que conviene vigilar en los ordenadores del centro. Después tienes el plan semana a semana con el equivalente en Arduino C++ de cada concepto, una lista de materiales para 24 estudiantes, una clase de ejemplo minuto a minuto, tres ejemplos de código cortos, una tabla de evaluación y soluciones a los problemas más habituales en clase. La versión de 8 semanas de este enfoque con Arduino y bloques está en el artículo programación por bloques en el aula; este plan no la repite y está pensado para grupos que quieren empezar directamente con código de texto o pasar a Python después de los bloques.

Placa Raspberry Pi Pico WH con los pines soldados, conector micro USB y el botón blanco BOOTSEL al lado
Pico WH: viene con los pines soldados, así que se pincha directamente en la protoboard. El botón blanco junto al USB es BOOTSEL; lo usarás para instalar MicroPython.

¿Por qué Raspberry Pi Pico y MicroPython?

La Pico es una pequeña placa de microcontrolador que Raspberry Pi fabrica con su propio chip RP2040. No es un ordenador: como un Arduino, ejecuta un único programa una y otra vez. En el aula tiene tres puntos fuertes. El primero es MicroPython, una versión ligera de Python para microcontroladores. Se lee con facilidad y no tiene puntos y coma ni llaves; quien ha visto Python en clase de informática usa el mismo lenguaje para controlar un LED o un zumbador. El segundo es que no hay compilación: en cuanto pulsas Ejecutar en Thonny, el código corre en la placa y no esperas a compilar y subir tras cada pequeño cambio. En una clase de 40 minutos eso significa muchos más intentos en el mismo tiempo. El tercero es la REPL: escribe una sola línea en la Shell de Thonny, pulsa Intro y la placa la ejecuta al instante. Cuando un alumno escribe led.on() y el LED se enciende, entiende en cinco minutos que programar es darle órdenes a la placa. El precio bajo y el hecho de que la placa se pinche directamente en la protoboard hacen posible trabajar en parejas. ¿Cuándo es más cómodo Arduino? Con alumnado muy joven que acaba de aprender a leer, o si casi todo tu kit son módulos de 5 V, empezar con Arduino y bloques da menos sorpresas. Para las características técnicas y el pinout de la placa, mira qué es la Raspberry Pi Pico.

CaracterísticaRaspberry Pi Pico + MicroPythonArduino Uno + C++
Tensión de los pines3,3 V (no tolera 5 V)5 V
Lenguaje y editorMicroPython, ThonnyC++, Arduino IDE
Ejecutar el códigoAl pulsar Ejecutar, sin compilarCompilar y subir tras cada cambio
Pruebas línea a línea (REPL)Sí: >>> en la Shell de ThonnyNo
Entradas analógicas3 pines (GP26–GP28), read_u16() 0–655356 pines (A0–A5), analogRead() 0–1023
Conector USBMicro USBUSB-B (Uno R3)
En la protoboardPico H / WH vienen con pines y se pinchan directamenteLa placa queda fuera, se conecta con cables
PrecioNormalmente bastante más barata que un UnoMás cara
Los pines de la Pico trabajan a 3,3 V y no toleran 5 V. Si conectas a un pin GPIO una salida que entrega 5 V (por ejemplo, el pin ECHO de un HC-SR04 alimentado a 5 V), el pin puede dañarse para siempre; por eso en la semana 5 ponemos en la línea ECHO un divisor de tensión con una resistencia de 1 kΩ y otra de 2 kΩ. En la primera clase enseña los pines VBUS (pin 40, 5 V del USB), VSYS (pin 39) y 3V3(OUT) (pin 36) y escribe la regla en la pizarra: los botones y las salidas de los sensores nunca van a VBUS. Conecta siempre un LED con una resistencia de 220 Ω; a 3,3 V pasan unos 6 mA por un LED rojo. Podéis localizar los pines juntos en la herramienta de pinout.

Antes de la primera clase: MicroPython y Thonny

  1. Identifica tu placa: la Pico, la Pico W, la Pico 2 y la Pico 2 W necesitan cada una un archivo de MicroPython distinto. Mira lo que pone en la placa y descarga de la página oficial de MicroPython el archivo .uf2 más reciente para esa placa exacta. Con el archivo equivocado la placa no arranca o el Wi-Fi no funciona.
  2. Conecta con BOOTSEL pulsado: mantén pulsado el botón blanco BOOTSEL junto al USB mientras conectas el cable al ordenador y luego suéltalo. En el ordenador aparece una unidad llamada RPI-RP2 (en la Pico 2 se llama RP2350).
  3. Copia el archivo UF2: arrastra el archivo .uf2 a esa unidad. La placa se reinicia en unos segundos y la unidad desaparece; no es un error, significa que MicroPython está instalado. MicroPython se queda en la placa, no tienes que instalarlo en cada clase.
  4. Elige el intérprete en Thonny: en Tools > Options > Interpreter selecciona "MicroPython (Raspberry Pi Pico)" y deja el puerto en detección automática. Puedes hacer lo mismo pulsando en la esquina inferior derecha de la ventana de Thonny.
  5. Prueba la conexión: en la Shell de abajo deberías ver el símbolo >>>. Escribe print("hola") y pulsa Intro; si llega la respuesta, la placa está lista para la clase.

No dejes la instalación en los ordenadores del centro para la propia clase; habla con el equipo de informática una semana antes. Thonny funciona en Windows, macOS y Linux y trae su propio Python, así que no hace falta instalar Python aparte. Para Windows existe además una versión portable que no necesita instalación, y en aulas restringidas donde solo informática puede instalar programas facilita mucho las cosas. Windows 10 y 11 reconocen la Pico como puerto serie (COM) sin controladores adicionales. Algunos centros bloquean las memorias USB; entonces la unidad RPI-RP2 puede no aparecer en los equipos del alumnado, pero si instalaste MicroPython antes en tu propio ordenador no pasa nada, porque en clase solo se usa la conexión serie. Por último, enseña las dos opciones del diálogo de guardar de Thonny: "This computer" guarda el archivo en el ordenador y "Raspberry Pi Pico" lo guarda en la placa. Las parejas que no saben cuál eligieron no encontrarán su código en la semana 6.

Para dejar la preparación lista de una vez, instala tú MicroPython en todas las placas antes del curso, numera placas y cables del 1 al 13 y haz que cada pareja reciba el mismo número todas las semanas. El enlace "Install or update MicroPython" de la ventana del intérprete de Thonny encuentra la placa en modo BOOTSEL y te pide elegir la variante correcta, así que también puedes instalar sin descargar el UF2. Si al probar una placa ves >>> en la Shell, esa pareja de placa y cable está lista.

Plan de clase de 6 semanas con Raspberry Pi Pico

Cada clase está pensada para 40 minutos y parejas. Todos los proyectos de la tabla son gratuitos en BlueGrays y los de las tres primeras semanas tienen además una vista en bloques junto al código. El orden es intencionado: primero salida (LED), luego variables y tiempos, funciones, después entrada y condiciones, sonido y sensor con PWM y, al final, listas y bucles. Cada semana añade una sola idea nueva sobre la anterior. La última columna muestra el mismo concepto en Arduino C++ y sirve de puente para quien pase a Arduino más adelante; para ver el lado de C++ en detalle, consulta los fundamentos de programación de Arduino.

SemanaObjetivoProyecto gratuito de BlueGraysNuevo concepto de MicroPythonEquivalente en Arduino C++
1Conocer la Pico, primer programa, salida digitalParpadeo LED Integrado Raspberry Pi Pico (Pico y Pico W), Encendido de un LED externo con la Raspberry Pi Pico (GP14 + placa de pruebas)REPL (>>>), from machine import Pin, Pin(14, Pin.OUT), led.on() / led.off(), time.sleep(0.5), while True:, sangríapinMode(14, OUTPUT); digitalWrite(14, HIGH); delay(500); void loop()
2Variables, tiempos, dos salidasRaspberry Pi Pico Dos LEDs alternos (Flip-Flop, GP14 + GP13), Raspberry Pi Pico Efecto Luces Policía (Rojo + Azul Estroboscopio, GP11 + GP12)WAIT_MS = 300 (variable), led.value(1), led.toggle(), sleep_ms(300)int waitMs = 300; digitalWrite(13, !digitalRead(13)); delay(waitMs);
3Menos repetición: funcionesSimulador de Semáforo Raspberry Pi Pico (3 LEDs Secuenciales, GP11/GP12/GP13)def all_off():, llamar a una función, segundos decimales con sleep(1.5)void allOff() { … } ; delay(1500);
4Entrada, condiciones y estadoSemáforo Raspberry Pi Pico con selector de 4 modos (máquina de estados, 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()
5Sensor y sonidoSensor de aparcamiento con Raspberry Pi Pico (HC-SR04 + 3 LED + zumbador)PWM(Pin(17)), freq(), duty_u16(), time_pulse_us(), def … returntone(17, 1200); pulseIn(); return
6Listas, bucle for, proyecto finalPiano de botones con Raspberry Pi Pico (5 botones + zumbador + grabadora)NOTE_HZ = (523, 587, 659, 698, 784), for … in, cinco botones con el mismo códigoint notes[] = {523, 587, 659, 698, 784}; for (int i = 0; i < 5; i++)
Bloques en español del proyecto Semáforo con Raspberry Pi Pico: función all_off, GP11, GP12 y GP13 como salidas y bloques de escribir y esperar segundos dentro del bucle infinito
Semana 3: Semáforo. El bloque de la función all_off apaga los tres LED y se llama tres veces en el bucle; los bloques de espera de 4, 1,5, 3 y 1 segundos coinciden uno a uno con las líneas sleep() del código.

Al aplicar el plan, convierte en norma que al final de cada semana se cambie un solo valor. En la semana 1, el proyecto del LED integrado llama al LED por el nombre "LED", así que funciona igual en la Pico y en la Pico W; el LED externo va a GP14, que es el pin físico 19, y el pin 18 justo al lado es GND. En la semana 2, bajar WAIT_MS de 300 a 80 en el Efecto Luces Policía muestra que una sola variable cambia a la vez el ritmo de los dos LED. En la semana 3, el Semáforo llama tres veces a all_off() dentro del bucle; pide al alumnado que borre la función y escriba lo mismo a mano, y cuando vean acumularse nueve líneas te dirán ellos mismos para qué sirven las funciones. La semana 4 es un proyecto de nivel intermedio: el botón está conectado con PULL_UP, así que al pulsarlo se lee 0, y cada pulsación cambia el modo entre normal, solo rojo, amarillo intermitente y apagado. El código es largo, así que leedlo primero con los pasos de la pestaña Entender el código. En la semana 5, el HC-SR04 funciona a 5 V, no olvides conectar ECHO a través del divisor; jugar con los valores GREEN_CM 100, YELLOW_CM 50, RED_CM 25 y STOP_CM 10 transmite la idea de umbral. Cómo funciona el sensor lo tienes en el artículo del sensor de distancia HC-SR04 y cómo generar sonido con PWM en qué es un zumbador; usa un zumbador pasivo, porque el proyecto cambia la frecuencia. En la semana 6, el piano toca cinco notas de DO a SOL entre 523 y 784 Hz, y al mantener pulsada la tecla DO durante un segundo empieza a grabar una melodía. El código completo es largo para este nivel; en lugar de pedir que lo copien entero, pide que cambien las frecuencias de la lista NOTE_HZ y creen su propia escala.

Preguntas de salida para cada semana

  • Semana 1: ¿Qué pasa si intercambias las líneas led.on() y time.sleep(0.5)? ¿Por qué las líneas bajo while True: empiezan más a la derecha?
  • Semana 2: ¿Cómo cambian las luces si subes WAIT_MS de 300 a 1000? ¿Qué dos líneas sustituye toggle() por sí solo?
  • Semana 3: ¿Cuántas líneas más escribirías sin la función all_off()? ¿Qué diferencia hay entre definir una función y llamarla?
  • Semana 4: ¿Por qué button.value() devuelve 0 al pulsar un botón con PULL_UP? Si mode vale 3 y pulsas el botón, ¿cuánto vale mode?
  • Semana 5: ¿Por qué no conectamos el pin ECHO del HC-SR04 directamente a la Pico? ¿Qué hace la línea duty_u16(0) con el zumbador?
  • Semana 6: ¿Qué listas del código tendrías que cambiar para añadir una sexta tecla al piano?

Lista de materiales para una clase de 24

Si divides a 24 estudiantes en parejas salen 12 grupos; con uno de reserva, prepara 13 kits. Como la Pico es barata, en la mayoría de los centros se puede trabajar en parejas en lugar de tríos y cada estudiante pasa más tiempo con el teclado; si haces grupos de tres, baja a 9 kits. Cada grupo necesita un ordenador, porque Thonny se comunica con la Pico por USB. El móvil o la tableta sirve para tener abiertos en BlueGrays el proyecto de la semana, el esquema y la pestaña Entender el código. No hay que soldar nada: todo se pincha en la protoboard.

MaterialPor grupoPara la clase (12 grupos + 1 de reserva)Semana
Raspberry Pi Pico H o Pico WH (pines soldados)113Todas
Cable micro USB de datos113Todas
Protoboard (400 u 830 puntos)113Todas
Cables de puente macho-macho20unos 260Todas
LED de 5 mm (rojo, amarillo, verde, azul)4unos 601–5
Resistencia de 220 Ω4unas 601–5
Pulsador (4 patas)5unos 704, 6
Zumbador pasivo1135, 6
Sensor de distancia ultrasónico HC-SR041135
Resistencias de 1 kΩ y 2 kΩ (divisor de ECHO)1 + 113 + 135
Ordenador con Thonny112Todas
Potenciómetro de 10 kΩ (opcional, para ADC)113Grupos rápidos
Al comprar placas, elige la Pico H, la Pico WH o una versión con los pines ya soldados. Una Pico sin pines no entra en la protoboard y soldar 40 pines en 13 placas te lleva un fin de semana; si quieres incluir la soldadura en el curso a propósito, mira cómo soldar. Asegúrate de que los cables son de datos: los cables micro USB baratos de solo carga alimentan la placa, pero el ordenador nunca ve la Pico, y es el problema que más tiempo se come en la primera clase. Guarda las resistencias en cajas separadas por valor; podéis comprobar las bandas de color con la calculadora del código de colores y el valor adecuado para un LED con la calculadora de resistencia para LED.

Clase de ejemplo: semana 1, el primer programa

El desarrollo siguiente es para la semana 1. La primera clase es la más arriesgada, porque es donde aparecen los problemas de instalación. Damos por hecho que ya instalaste MicroPython en las placas y que Thonny está instalado en los ordenadores. Puedes usar el mismo esqueleto en las demás semanas: activación, lectura conjunta, predicción, circuito, ejecución, cambiar un valor y pregunta de salida. Si tienes una sesión doble de 80 minutos, alarga la fase de "cambiar un valor" y pide a las parejas que presenten su respuesta a la pregunta de salida.

TiempoFase¿Qué se hace?
0–5 minActivaciónPregunta: ¿qué hay que decirle a una placa para que "encienda el LED"? Las respuestas van a la pizarra. Se reparten las placas y se señalan el botón BOOTSEL y el conector USB.
5–12 minPrimera orden en la REPLShell de Thonny en el proyector: from machine import Pin, led = Pin("LED", Pin.OUT), led.on(). Las parejas escriben las mismas tres líneas en su ordenador y luego lo apagan con led.off().
12–18 minLectura conjunta del proyectoSe abre en BlueGrays el proyecto Parpadeo LED Integrado. Primero se leen los bloques con Ver en bloques activado y después el código; se habla de while True y de la sangría.
18–22 minEjecuciónSe pega el código en Thonny y se pulsa Ejecutar (F5). El LED parpadea cada 0,5 segundos. Se enseña el botón Stop para detenerlo.
22–32 minCircuito con LED externoSe desconecta el USB. GP14 (pin 19) → 220 Ω → pata larga del LED, pata corta → GND (pin 18). Se ejecuta el código del proyecto del LED externo. Roles: montaje y revisión.
32–37 minCambiar un valortime.sleep(0.5) pasa a 0.1 y luego a 2. Quien quiera mueve el LED a GP15 y cambia 14 por 15 en el código.
37–40 minPregunta de salidaUna pregunta en papel: ¿qué pasaría si las líneas bajo while True: no tuvieran sangría? Se desconectan las placas y vuelven a sus cajas numeradas.

Tres ejemplos cortos de MicroPython para la clase

El LED integrado es lo que más confusión crea entre la Pico y la Pico W. En la Pico clásica el LED está conectado a GP25, por eso los ejemplos antiguos usan Pin(25). En la Pico W el LED va conectado al chip Wi-Fi y no tiene un pin GP numerado, así que Pin(25) no lo enciende. Lo que funciona en las dos es llamar al LED por su nombre: Pin("LED"). Las versiones actuales de MicroPython definen ese nombre para la Pico, la Pico W y la Pico 2, y por eso lo usa el proyecto del LED integrado de BlueGrays. Si en tu clase hay placas mezcladas, puedes repartir el mismo código a todo el mundo. Si un firmware antiguo no reconoce el nombre "LED", la solución es actualizar el archivo UF2.

MicroPython
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
12

El código del LED externo usa el mismo esqueleto; solo cambia el número de pin. Aquí hemos llevado el tiempo de espera a una variable llamada WAIT, que será la primera línea que el alumnado cambie en la semana 2. La variable count y la línea print() escriben un número en la Shell de Thonny cada vez que se enciende el LED, así el alumnado ve en pantalla que el bucle realmente está girando. El 14 del código es un número GP, no el número del pin físico; es lo que más se confunde.

MicroPython
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)
17

Para un botón hay dos formas de conectarlo y merece la pena enseñar las dos. Con PULL_UP, una pata del botón va a GP15 y la pata opuesta a GND; una resistencia interna de la Pico lleva el pin a 3,3 V, al pulsar el pin queda unido a GND y se lee 0. Todos los proyectos con botón de la Pico en BlueGrays usan esta forma, porque no hace falta ningún cable extra. Con PULL_DOWN, la pata opuesta va al pin 3V3(OUT) (pin 36) y al pulsar se lee 1; la lógica parece más natural, pero es fácil conectar el cable a VBUS (pin 40, 5 V) por error. Qué patas de las cuatro del botón están unidas entre sí lo explicamos en el artículo de conexión de un botón. Puedes empezar la semana 4 con el código corto de abajo y pasar después al selector de modos.

MicroPython
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
15

Cómo usar BlueGrays en una clase con la Pico

  • Guía de código, ruta de MicroPython: la Guía de código de la sección Aprende ofrece, junto a la ruta de Arduino C++, una ruta de MicroPython con 18 tarjetas: import, print, pin de salida, pin de entrada (PULL_UP, PULL_DOWN), time.sleep, while True, sangría, variables, if / elif / else, for y range, listas, def y return, ADC, PWM, ticks_ms, Pin.irq, try / except e I2C. Cada tarjeta tiene ¿Para qué sirve?, Sintaxis, un ejemplo con pestañas Bloques · Arduino · MicroPython, Error frecuente y un minitest. Recomienda las tarjetas del concepto de la semana para leer entre clases; cada estudiante ve su progreso MicroPython x/18 en la pantalla Mi nivel.
  • Verlo en proyectos: este enlace al final de cada tarjeta lista los proyectos en cuyo código aparece la orden, de fácil a difícil. Quien ha leído una orden en la tarjeta pasa desde aquí a encontrarla en el código de un proyecto real.
  • Preguntas del día: el ajuste "Lenguaje de código de las preguntas" ofrece Ambos, Arduino y MicroPython. Si das clase con la Pico, pide al alumnado que elija MicroPython; las preguntas generales sin código aparecen con cualquier opción. Cada día hay una tanda de unos 3 minutos, una prueba de nivel de 15 preguntas y 6 niveles de A1 a C2, un buen hábito de repaso diario entre clases.
  • Ver en bloques: cinco de los proyectos gratuitos de la Pico (LED integrado, LED externo, dos LED alternos, Semáforo y Luces Policía) tienen vista en bloques junto al código. Enseñar primero los bloques y luego el código del mismo programa a quien ve Python por primera vez construye la idea "misma lógica, distinta escritura"; este paso lo explicamos con detalle en de los bloques a MicroPython. Los bloques son para leer: en la app no se editan y a la placa siempre se sube el código MicroPython.
  • Entender el código y Solución de problemas: todos los proyectos gratuitos de la Pico los tienen. La pestaña Entender el código empieza con el resumen ¿Qué hace este código?, sigue con la explicación Paso a paso y termina con Si te atascas y la tarea Pruébalo tú. Con el código largo de las semanas 4 y 6 es tu mayor ayuda para las parejas que aún no leen rápido.
  • Hagámoslo juntos y Copiar enlace: el modo guiado avanza en cuatro pasos y, en el paso del código, recuerda elegir el intérprete MicroPython en Thonny. Copiar enlace en el código fuente da un enlace para abrir el código en el ordenador, así nadie tiene que copiar a mano en Thonny el código del móvil.

Evaluación y atención a la diversidad

Criterio1 – Inicial2 – En desarrollo3 – Logrado
Montaje del circuitoMonta con ayuda, olvida GNDMonta siguiendo el esquema, relaciona el número GP con el códigoDistingue pines físicos y números GP, detecta errores ajenos
Lectura de códigoLee las líneas, no sabe explicar qué hacenExplica en general qué hace el programaExplica cada línea y el sentido de la sangría
Cambiar y probarCambia un valor, no explica el efectoPredice el resultado antes de probarSi la predicción falla, encuentra la causa en el mensaje de error de la Shell
Relación con C++No relacionaRelaciona Pin, sleep y while TrueTambién relaciona if, for y funciones
  • Grupos rápidos, lectura analógica: el plan no tiene semana de ADC; las parejas que terminan antes conectan la pata central de un potenciómetro de 10 kΩ a GP26, leen un valor entre 0 y 65535 con ADC(26).read_u16() y lo usan para ajustar la velocidad de las luces de la semana 2. Para un reto mayor, el proyecto gratuito Fogata LED con Raspberry Pi Pico (Matriz NeoPixel 8x8 + Potenciómetro + Zumbador) controla una matriz NeoPixel de 8x8 con el mismo potenciómetro.
  • Grupos rápidos, combinar: añadir el botón de la semana 4 al sensor de aparcamiento de la semana 5 y escribir un "modo silencio" que active y desactive el sonido es el primer paso real hacia escribir su propio código.
  • Grupos que necesitan más tiempo: entrégales el circuito ya montado o pon en la mesa el esquema impreso en grande. Que avancen paso a paso con la pestaña Entender el código y que ese día solo se propongan cambiar un valor; eso ya es un logro.

Problemas frecuentes y soluciones rápidas

ProblemaCausa probableSolución
El ordenador no detecta la PicoCable solo de carga, mala conexión, hub USBPrueba un cable de datos conocido, conecta la placa directamente al ordenador, prueba otro puerto USB.
La unidad RPI-RP2 se abre cada vez que conectasLa placa no tiene MicroPython o BOOTSEL se queda pulsadoCopia el archivo UF2 en la unidad; vuelve a conectar sin pulsar el botón.
RPI-RP2 no aparece nuncaSe pulsó BOOTSEL después de conectarDesconecta, mantén BOOTSEL pulsado mientras vuelves a conectar y luego suéltalo.
Thonny no conecta, "Device is busy" o error de puertoIntérprete o puerto incorrecto, puerto abierto en otro programa, código en marcha ocupadoElige "MicroPython (Raspberry Pi Pico)" abajo a la derecha, pulsa Stop/Restart, cierra una segunda ventana de Thonny, desconecta y conecta el USB.
No module named 'machine'El código se ejecuta en el Python del ordenadorCambia el intérprete a MicroPython (Raspberry Pi Pico).
IndentationError o SyntaxErrorSangría mezclada, faltan los dos puntosVe al número de línea del error; las líneas while, if y def llevan dos puntos al final y las de debajo, 4 espacios.
El código funciona pero el LED no se enciendeLED al revés, sin GND, el número GP del código no coincide con el circuito, Pin(25) en una Pico WPata larga hacia la resistencia (lado GP), revisa el cable de GND, usa Pin("LED") para el LED integrado.
Al desconectar del ordenador el código no funcionaArchivo guardado en el ordenador o no se llama main.pyEn Thonny elige guardar > Raspberry Pi Pico y llámalo main.py; el código arrancará solo cada vez que la placa reciba alimentación.
main.py está en un bucle infinito y Thonny no puede entrarEl código arranca nada más encenderPulsa Stop varias veces o Ctrl+C en la Shell; si no funciona, borra la memoria con el flash_nuke.uf2 oficial y reinstala MicroPython (se borran todos los archivos de la placa).

Lista de comprobación antes de clase

  • MicroPython está instalado en todas las placas, y placas y cables están numerados del 1 al 13.
  • Thonny se abre en todos los ordenadores con "MicroPython (Raspberry Pi Pico)" como intérprete.
  • Cada pareja de placa y cable está probada y muestra >>> en la Shell.
  • Las resistencias están en cajas separadas por valor: 220 Ω, 1 kΩ, 2 kΩ.
  • El proyecto de la semana está abierto en BlueGrays en el proyector; en las tres primeras semanas, Ver en bloques está listo.
  • Las hojas con la pregunta de salida están impresas y los roles (montaje, revisión) repartidos.
  • Antes de la semana 5, las resistencias del divisor del HC-SR04 están apartadas para cada grupo.
  • Al terminar la clase, los USB están desconectados y las piezas contadas en sus cajas numeradas.

Puedes abrir gratis en la app BlueGrays todos los proyectos de estas seis semanas, con su esquema, su lista de piezas, el código MicroPython y la pestaña Entender el código; así es fácil dar la clase desde el proyector mientras el alumnado sigue en su propio móvil. Si después de seis semanas quieres pasar a proyectos Premium de la Pico con brillo de LED por PWM, servos, pantalla OLED o teclado, puedes repartir códigos para docentes en lugar de suscripciones individuales; se compran en un único pago y no se renuevan automáticamente.

Preguntas frecuentes

¿Cómo dar clase con la Raspberry Pi Pico?

Pon un solo concepto nuevo en cada clase y ordénalos así: salida, variables, funciones, entrada y condiciones, PWM y sensores y, al final, listas y bucles. Que cada clase siga el mismo esqueleto: activación, lectura conjunta, predicción, circuito, ejecución, cambiar un valor y pregunta de salida. El plan de 6 semanas de este artículo está hecho así y con proyectos gratuitos.

¿Cómo instalar MicroPython en la Raspberry Pi Pico?

Mantén pulsado el botón BOOTSEL mientras conectas la Pico al ordenador por USB; aparece una unidad llamada RPI-RP2. Copia en ella el archivo .uf2 de MicroPython para tu placa y la placa se reinicia. También puedes instalarlo con la opción "Install or update MicroPython" en los ajustes del intérprete de Thonny.

Thonny no detecta mi Raspberry Pi Pico, ¿qué hago?

Primero comprueba que usas un cable USB de datos, porque con un cable solo de carga el ordenador no ve la placa. Después pon en Thonny el intérprete "MicroPython (Raspberry Pi Pico)" y pulsa Stop/Restart. Si la unidad RPI-RP2 se abre cada vez que conectas, la placa aún no tiene MicroPython: instala el archivo UF2.

¿Raspberry Pi Pico o Arduino para el colegio?

Las dos son un buen comienzo; la elección depende del lenguaje y del alumnado. Si enseñas Python o quieres probar rápido sin esperar a compilar, la Pico con MicroPython es cómoda. Con alumnado más joven, si quieres empezar con bloques o si tu kit es de módulos de 5 V, Arduino da menos sorpresas.

¿Cómo funciona el código en la Pico sin ordenador?

Guarda el código en la placa desde Thonny con la opción "Raspberry Pi Pico" y el nombre main.py. La Pico ejecuta main.py sola cada vez que recibe alimentación, basta con un cargador USB o una batería externa. Para detener el código, vuelve a conectar la placa a Thonny y pulsa Stop.

¿Hay diferencia en clase entre la Pico y la Pico W?

Todos los proyectos de este plan funcionan en las dos con los mismos pines; la única diferencia es el LED integrado. En la Pico clásica está en GP25 y en la Pico W en el chip Wi-Fi, así que usa Pin("LED"), que funciona en ambas. La Pico W tiene además Wi-Fi y Bluetooth, pero no los necesitarás en las seis primeras semanas.

Ver todos los proyectos
Parpadeo LED Integrado Raspberry Pi Pico (Pico y Pico W)
#147Principiante

Parpadeo LED Integrado Raspberry Pi Pico (Pico y Pico W)

¡El proyecto de apertura de la serie Raspberry Pi Pico! Hacemos parpadear el LED verde integrado para verificar que la placa funciona — un experimento clásico "Hello World". SIN componentes externos, solo Pico y cable USB. El código está escrito en MicroPython (el lenguaje oficialmente respaldado por la Raspberry Pi Foundation). Aprende la clase machine.Pin, el modo Pin.OUT, los métodos led.on()/off() y time.sleep() en Thonny IDE. Sigue cada cambio en vivo en l

5.0(1)
10
Encendido de un LED externo con la Raspberry Pi Pico (placa de pruebas)
#148Principiante

Encendido de un LED externo con la Raspberry Pi Pico (placa de pruebas)

El siguiente paso tras el LED integrado de Pico: conectar un LED externo a la placa de pruebas y controlarlo a través del pin GP14. Con este proyecto aprenderás a utilizar cualquier pin GPIO de uso general del Pico como salida, la polaridad del LED (patilla larga = ánodo/+, patilla corta = cátodo/–) y por qué es imprescindible utilizar una resistencia limitadora de corriente (220 Ω). Si no colocas la resistencia, el LED recibirá una corriente excesiva y podría quemarse. El circuito es muy sencil

4.5(2)
7
Raspberry Pi Pico Dos LEDs alternos (Flip-Flop)
#149Principiante

Raspberry Pi Pico Dos LEDs alternos (Flip-Flop)

El siguiente paso después del LED único en el Pico: dos LEDs parpadean alternativamente en un patrón flip-flop clásico. Dos LEDs de diferentes colores (rojo en GP14, verde en GP13) intercambian estados cada 500ms. Pin.toggle() de MicroPython hace el código corto. Base de semáforos, luces de policía.

5.0(2)
19
Simulador de Semáforo Raspberry Pi Pico (3 LEDs Secuenciales)
#150Principiante

Simulador de Semáforo Raspberry Pi Pico (3 LEDs Secuenciales)

Simulamos un semáforo real con LEDs rojo, amarillo y verde. Verde 4 seg "pase", amarillo 1,5 seg "prepárese", rojo 3 seg "detenga" y rojo+amarillo 1 seg "arranque" (patrón europeo). Aprende definición de función, lógica de máquina de estados y sincronización multi-GPIO. Circuito simple: 3 LEDs en GP11/GP12/GP13.

4.0(1)
12
Raspberry Pi Pico Efecto Luces Policía (Rojo + Azul Estroboscopio)
#151Principiante

Raspberry Pi Pico Efecto Luces Policía (Rojo + Azul Estroboscopio)

¡Simulamos la barra de luces de un coche de policía con una Raspberry Pi Pico en su forma más sencilla! Los LED rojo y azul se turnan (flip-flop): mientras el rojo está encendido el azul está apagado, y cada 0,3 segundos se intercambian, sin fin. El código escribe los dos pasos directamente en un único bucle while True; la velocidad se ajusta con la constante WAIT_MS.

4.7(3)
10
Semáforo Raspberry Pi Pico con selector de 4 modos (máquina de estados)
#158Intermedio

Semáforo Raspberry Pi Pico con selector de 4 modos (máquina de estados)

¡4 modos diferentes para el semáforo con un solo botón! Cada vez que se pulsa el botón, cambia el modo: Ciclo normal (rojo → ámbar → verde en ese orden), Solo rojo (señal de parada), Ámbar intermitente (atención/modo nocturno), Apagado (mantenimiento). Conceptos: máquina de estados (la variable mode determina qué comportamiento se ejecutará), ciclo de modos por módulo ((mode + 1) % 4 → 0→1→2→3→0, ciclo infinito), sincronización sin bloqueo (las fases de los LED se

5.0(1)
15
Raspberry Pi Pico LED Controlado por Botón (Push)
#155Principiante
Premium

Raspberry Pi Pico LED Controlado por Botón (Push)

¡Primer proyecto de entrada con Pico — lectura de botón! LED se enciende mientras el botón está presionado. Aprende Pin.IN, Pin.PULL_UP y button.value(). GP14 LED, GP2 botón con PULL_UP interno. Presionado = 0, liberado = 1 — estándar.

0.0(0)
11
Raspberry Pi Pico PWM LED Fade (Efecto Respiración)
#160Principiante

Raspberry Pi Pico PWM LED Fade (Efecto Respiración)

¡El LED ya no solo parpadea — respira! Con el PWM (modulación por ancho de pulso) del Raspberry Pi Pico, el brillo sube y baja lentamente. Aprende la clase machine.PWM, duty_u16() (brillo de 16 bits 0–65535), la frecuencia PWM, bucles range() y salida tipo analógica. Base para mezcla de color RGB, control de motores, servos y buzzer.

0.0(0)
4