Proyecto 1: LED parpadeante con patrones personalizados (para principiantes)
Configuración del hardware
Para este proyecto, necesitarás una Raspberry Pi Pico, una placa de pruebas, un LED, una resistencia de 220 ohmios y cables puente. Conecta el ánodo del LED al pin GPIO 25 a través de la resistencia y el cátodo a la toma de tierra de la Pico. Esta configuración garantiza que el LED esté protegido contra sobrecorriente por la resistencia y correctamente conectado al pin GPIO de la Pico para su control.

Implementación de código
Usando MicroPython, crearemos un programa para que el LED parpadee en diferentes patrones. Primero, importaremos los módulos necesarios:
from machine import Pin, Timer
Luego, inicialice el pin LED:
led = Pin(25, Pin.OUT)
tim = Timer()
def tick(timer):
led.toggle()
tim.init(freq=2, mode=Timer.PERIODIC, callback=tick)
Pruebas y personalización
Proyecto 2: Sistema de Monitoreo de Temperatura (Intermedio)
Requisitos de hardware

Desarrollo de código
import machine
import onewire
import ds18x20
import time
ds_pin = machine.Pin(18)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
roms = ds_sensor.scan()
print('Found DS devices: ', roms)
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
print(ds_sensor.read_temp(rom))
time.sleep(2)
Registro y visualización de datos
from machine import I2C, Pin
import ssd1306
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
oled = ssd1306.SSD1306_I2C(128, 32, i2c)
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
temp = ds_sensor.read_temp(rom)
print(temp)
oled.fill(0)
oled.text(f"Temp: {temp} C", 0, 0)
oled.show()
time.sleep(2)
file = open('temperatures.txt', 'w')
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
temp = ds_sensor.read_temp(rom)
print(temp)
file.write(f"{time.time()},{temp}\n")
file.flush()
time.sleep(2)
Proyecto 3: Cargador de datos de IoT (avanzado)
Configuración del hardware

Integración de código e IoT
import network
ssid = 'your_SSID'
password = 'your_PASSWORD'
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
while not wlan.isconnected():
pass
print('Connected to WiFi')
import bme280_i2c
i2c = machine.I2C(0, sda=machine.Pin(8), scl=machine.Pin(9))
bme = bme280_i2c.BME280_I2C(i2c)
import urequests
def upload_data(temperature, humidity, pressure):
url = 'https://industrial.api.ubidots.com/api/v1.6/devices/your_device_label'
headers = {'X-Auth-Token': 'your_token', 'Content-Type': 'application/json'}
data = '{"temperature": %s, "humidity": %s, "pressure": %s}' % (temperature, humidity, pressure)
response = urequests.post(url, headers=headers, data=data)
if response.status_code == 200:
print('Data uploaded successfully')
else:
print('Error uploading data')
response.close()
while True:
temperature, pressure, humidity = bme.values
temperature = float(temperature.strip(' C'))
humidity = float(humidity.strip(' %'))
pressure = float(pressure.strip(' hPa'))
upload_data(temperature, humidity, pressure)
time.sleep(60)
Pruebas y escalabilidad
Proyectos con Pico para aprender PIO, USB, sensores y control
Los proyectos útiles enseñan un concepto de hardware cada vez y permiten medir si funciona. Elija primero la placa exacta de la familia Pico, pues cambian procesador, funciones inalámbricas, memoria, pines y soporte; diseñe después las interfaces según los límites lógicos documentados de 3,3 V.
- Empiece por adquirir: registre un sensor calibrado con marcas de tiempo e intervalo definido.
- Explore PIO: genere o capture una interfaz sensible al tiempo y verifíquela en pines de prueba.
- Cree un dispositivo USB: implemente una función de interfaz humana o serie con reconexión clara.
- Añada control cerrado: regule velocidad, luz o temperatura en un sistema seguro y con salida limitada.
- Diseñe el prototipo: incluya desacoplo, adaptación de nivel, protección, puntos de prueba y compilación reproducible.



