Seeed Studio XIAO RP2040 con MicroPython
Introducción a MicroPython
MicroPython es un intérprete de Python con una función parcial de compilación a código nativo. Proporciona un subconjunto de las funciones de Python 3.5, implementado para procesadores embebidos y sistemas con recursos limitados. Es diferente de CPython y puedes leer más sobre las diferencias aquí.

Primeros pasos
Primero, vamos a conectar la Serie Seeed Studio XIAO RP2040 al ordenador y subir un código sencillo desde MicroPython para comprobar si la placa funciona correctamente.
Configuración de hardware
- Seeed Studio XIAO RP2040 o Seeed Studio XIAO RP2040 Plus x1
- Cable Type-C x1
- PC x1
Conectar la Serie XIAO RP2040 al PC
- Paso 1. Mantén pulsado el botón BOOT y luego conecta la Serie Seeed Studio XIAO RP2040 al PC mediante el cable Type-C. Si todo funciona bien, aparecerá un disco RPI-RP2 en el PC.

-
Paso 2. Flashear el firmware
Solo tienes que ir a la página oficial y descargar el firmware más reciente, luego arrastrar y soltar el archivo
.uf2en el disco RPI-RP2 para finalizar el flasheo del firmware.
Configuración de software
- Paso 1. Descarga e instala la última versión del editor Thonny de acuerdo con tu sistema operativo

-
Paso 2. Inicia Thonny
-
Paso 3. Haz clic en Tools-->Options para abrir la configuración.

- Paso 4. Elige la interfaz Interpreter y selecciona el dispositivo como MicroPython(generic) y el puerto como Board CDC @ Port

Paso 5. La información de la versión se mostrará en la Shell.

Paso 6. Ve a Files -> New, pega el siguiente código y ejecuta el script.
from machine import Pin, Timer
led = Pin(25, Pin.OUT)
Counter = 0
Fun_Num = 0
def fun(tim):
global Counter
Counter = Counter + 1
print(Counter)
led.value(Counter%2)
tim = Timer(-1)
tim.init(period=1000, mode=Timer.PERIODIC, callback=fun)
- El LED parpadeará a intervalos de 1 segundo.

- La sección de Recursos adicionales contiene firmware de MicroPython y ejemplos relevantes para XIAO RP2040 Plus. Puedes usar estos ejemplos siguiendo los tutoriales de XIAO RP2040, pero asegúrate de reemplazar y modificar los pines correspondientes.
- Para comprobar las diferencias dentro de la serie XIAO RP2040, consulta XIAO RP2040 Series Pin Overview
Pines de la Serie XIAO RP2040
| Nombre de pin en MicroPython | GPIO de XIAO RP2040 | GPIO de XIAO RP2040 Plus | ADC | Función |
|---|---|---|---|---|
| D0 / A0 | GPIO26 | GPIO26 | 0 | GPIO, ADC0 |
| D1 / A1 | GPIO27 | GPIO27 | 1 | GPIO, ADC1 |
| D2 / A2 | GPIO28 | GPIO28 | 2 | GPIO, ADC2 |
| D3 / A3 | GPIO29 | GPIO29 | 3 | GPIO, ADC3 |
| D4 / SDA | GPIO6 | GPIO6 | — | GPIO, I2C SDA |
| D5 / SCL | GPIO7 | GPIO7 | — | GPIO, I2C SCL |
| D6 / TX | GPIO0 | GPIO0 | — | GPIO, UART TX |
| D7 / RX | GPIO1 | GPIO1 | — | GPIO, UART RX |
| D8 / SCK | GPIO2 | GPIO2 | — | GPIO, SPI SCK |
| D9 / MISO | GPIO4 | GPIO4 | — | GPIO, SPI MISO |
| D10 / MOSI | GPIO3 | GPIO3 | — | GPIO, SPI MOSI |
| NEOPIXEL | GPIO12 | GPIO12 | — | Datos WS2812 NeoPixel |
| NEOPIXEL_POWER / NEO_PWR / RGB_EN | GPIO11 | GPIO11 | — | Habilitación de alimentación de NeoPixel (RGB_EN en Plus) |
| LED_G / D23 | GPIO16 | GPIO16 | — | LED RGB verde; Plus D23 |
| LED_R / D24 | GPIO17 | GPIO17 | — | LED RGB rojo; Plus D24 |
| LED_B / LED | GPIO25 | GPIO25 | — | LED RGB azul / LED de usuario |
| D12 | — | GPIO18 | — | GPIO de expansión Plus |
| D13 / SCL1 | — | GPIO21 | — | Plus I2C1 SCL |
| D14 / SDA1 | — | GPIO20 | — | Plus I2C1 SDA |
| D15 | — | GPIO19 | — | GPIO de expansión Plus |
| D16 | — | GPIO22 | — | GPIO de expansión Plus |
| D17 | — | GPIO23 | — | GPIO de expansión Plus |
| D19 | — | GPIO5 | — | GPIO de expansión Plus |
| D20 | — | GPIO13 | — | GPIO de expansión Plus |
| D21 | — | GPIO14 | — | GPIO de expansión Plus |
| D22 | — | GPIO15 | — | GPIO de expansión Plus |
| D25 | — | GPIO10 | — | GPIO de expansión Plus |
| D26 | — | GPIO9 | — | GPIO de expansión Plus |
| D27 | — | GPIO8 | — | GPIO de expansión Plus |
| BAT_EN | — | GPIO24 | — | Habilitación de alimentación de batería Plus |
Encender el LED RGB en el Seeed Studio XIAO RP2040
Hay un LED RGB incorporado en el Seeed Studio XIAO RP2040 y vamos a encenderlo con MicroPython. Se requiere una biblioteca de terceros, así que primero necesitamos añadir una biblioteca adicional.
-
Paso 1. Descarga la biblioteca ws2812.py y ábrela con Thonny.
-
Paso 2. Haz clic en File-->Save as y guarda la biblioteca.

Elige Raspberry Pi Pico como la ubicación donde guardamos.

Asegúrate de que el nombre del archivo guardado sea ws2812.py, de lo contrario no funcionará.

- Paso 3. Copia los siguientes códigos en Thonny.
from ws2812 import WS2812
import utime
import machine
power = machine.Pin(11,machine.Pin.OUT)
power.value(1)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
YELLOW = (255, 150, 0)
GREEN = (0, 255, 0)
CYAN = (0, 255, 255)
BLUE = (0, 0, 255)
PURPLE = (180, 0, 255)
WHITE = (255, 255, 255)
COLORS = (BLACK, RED, YELLOW, GREEN, CYAN, BLUE, PURPLE, WHITE)
led = WS2812(12,1)#WS2812(pin_num,led_count)
while True:
print("Beautiful color")
for color in COLORS:
led.pixels_fill(color)
led.pixels_show()
utime.sleep(0.2)
- Paso 4. Sube los códigos haciendo clic en el botón "Run current script". La primera vez, Thonny te preguntará dónde quieres guardar tu archivo de código. Tanto This Computer como Raspberry Pi Pico están bien.

Si todo funciona bien, verás que el LED RGB cambia y hace parpadear las luces. Y la salida del texto "Beautiful Color" también se mostrará en la Shell.

Conectar Seeed Studio XIAO RP2040 con pantalla mediante IIC
En este proyecto, vamos a conectar Grove - OLED Display 0.96" (SSD1315) a través de la interfaz IIC para demostrar la función IIC en el Seeed Studio XIAO RP2040.
Conexión de hardware

-
Paso 1. Descarga la biblioteca ssd1306.py y ábrela con Thonny.
-
Paso 2. Haz clic en "File-->Save as" y guarda la biblioteca en la "Raspberry Pi Pico"

Elige "Raspberry Pi Pico" como la ubicación donde guardamos.

Asegúrate de que el nombre del archivo guardado sea "ssd1306.py", de lo contrario no funcionará.

- Paso 3. Copia los siguientes códigos en Thonny.
from ssd1306 import SSD1306_I2C
from machine import Pin, I2C
from time import sleep
i2c = I2C(1, scl=Pin(7), sda=Pin(6), freq=200000)#Grove - OLED Display 0.96" (SSD1315)
oled = SSD1306_I2C(128, 64, i2c)
while True:
oled.fill(0)#clear
oled.text("Hello,World!",0,0)
oled.show()
#sleep(0.5)
- Paso 4. Sube los códigos haciendo clic en el botón "Run current script". La primera vez, Thonny te preguntará dónde quieres guardar tu archivo de código. Tanto This Computer como Raspberry Pi Pico están bien.

Si todo funciona bien, verás el texto "Hello,World!" mostrado en la pantalla.

Consola de dispositivo MicroPython
Nuestro socio Neil ha escrito un programa de consola de línea de comandos para XIAO usando MicroPython. Con este programa puedes subir, descargar y borrar archivos fácilmente. ¡Le agradecemos su contribución a XIAO!
Recursos adicionales
Algunas bibliotecas adicionales y códigos de ejemplo están aquí:
Soporte técnico y debate sobre el producto
Gracias por elegir nuestros productos. Estamos aquí para ofrecerte diferentes tipos de soporte y garantizar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a distintas preferencias y necesidades.