Skip to main content

Primeros Pasos con Seeed Studio XIAO RP2350 (MicroPython)

Seeed Studio XIAO RP2350


El XIAO RP2350 empaqueta la potencia del Raspberry Pi RP2350 (núcleos duales Cortex-M33 funcionando a 150MHz con FPU, seguridad y cifrado mejorados) en el factor de forma clásico XIAO. Midiendo solo 21x17.8mm, cuenta con 19 GPIOs multifunción, un LED RGB, y un Sistema de Gestión de Batería con consumo ultra bajo de 50μA, alimentación por batería, y medición directa del voltaje de la batería. Gracias al ecosistema XIAO, el XIAO RP2350 es compatible con una amplia gama de complementos, incluyendo pantallas, matriz LED, módulos Grove, CAN Bus, sensores Vision AI, y sensores mmWave. Con soporte nativo para MicroPython, C, y C++, el XIAO RP2350 es perfecto para desarrolladores de todos los niveles que buscan crear aplicaciones compactas alimentadas por batería para control inteligente, wearables, teclados DIY, y más.

Características

  • Placa MCU Potente: Equipada con un chip Raspberry Pi RP2350 que cuenta con doble Arm Cortex-M33 simétrico @ 150MHz con FPU.
  • Características de Seguridad Mejoradas: Arranque seguro integrado y bootloader cifrado aseguran la seguridad de la aplicación.
  • Soporte de Software: Compatible con C/C++ y MicroPython, asegurando desarrollo fácil de proyectos y prototipado.
  • Recursos Integrados Ricos: Integra un LED RGB, 2MB Flash, 520kB SRAM, y 19 GPIOs multifunción (Analógico, Digital, I²C, UART, SPI, PWM).
  • 8 IOs Nuevos Expandidos: Comparado con MCUs XIAO anteriores, la adición de 8 pines IO en la parte trasera soporta aplicaciones más complejas.
  • Diseño de Energía Eficiente: Consumo ultra bajo de solo 50μA en modo de suspensión, habilitando alimentación por batería. Medición directa del voltaje de batería vía IO interno mejora el sistema de gestión de batería (BMS).
  • Diseño Compacto del Tamaño del Pulgar: Midiendo 21 x 17.8mm, adoptando el factor de forma clásico XIAO de Seeed Studio, ideal para aplicaciones conscientes del espacio.
  • Amigable para Producción: Diseño de Dispositivo de Montaje Superficial (SMD) con todos los componentes en el frente y agujeros de estampado en ambos lados, facilitando la producción en masa eficiente.

Especificación

ProductoXIAO RP2040XIAO RP2350
ProcesadorRaspberry Pi RP2040Raspberry Pi RP2350
Dual Cortex-M0+ @ 133MHzDual Cortex-M33 @ 150MHz, FPU
RAM264kB SRAM520kB SRAM
Flash2MB Integrado2MB Flash
LEDs1 LED de usuario(3 colores), 1 LED de alimentación, 1 LED RGB1 LED de usuario, 1 LED de carga(Indicador de Carga de Batería),1 LED RGB
Interfaz11 Pines:4x Analógico,11x Digital, 1x I²C, 1x UART, 1x SPI, Todo PWM19 Pines:3x Analógico,19x Digital, 2x I²C, 2x UART, 2x SPI, Todo PWM
Botón1 botón RESET, 1 botón BOOT
Seguridad - OTP, Secure Boot, Arm TrustZone
Bajo consumo - 4.2V/50uA
Compatibilidad de softwareArduino, PlatformIO, MicroPython, CircuitPython, Zephyr, y más por venirArduino, PlatformIO, MicroPython, CircuitPython, y más por venir
Temperatura de funcionamiento-20°C~70°C
Dimensiones21x17.8 mm

Descripción General del Hardware

Pinout Frontal del XIAO RP2350
XIAO RP2350 Front Pinout
Pinout Trasero del XIAO RP2350
XIAO RP2350 Back Pinout
Componentes del XIAO RP2350
XIAO RP2350 Components

¿Necesitas más detalles sobre los pines? Navega a Recursos y Activos más abajo.

Plataforma Soportada

El XIAO RP2350, alimentado por el RP2350, soporta MicroPython y el SDK de C/C++ proporcionado por Raspberry Pi. Esta flexibilidad permite a los desarrolladores elegir su lenguaje de programación y entorno preferido para prototipado y desarrollo.

SDK C/C++MicroPython
c-cpp logoMicroPython

Comenzando▶️

atención

Esta página se enfoca principalmente en usuarios de MicroPython. Para aquellos interesados en aprender programación con SDK o para usuarios avanzados, pueden comenzar con el SDK de C/C++ para la serie Raspberry Pi Pico. Esta guía te ayudará a configurar el entorno y comenzar con código de ejemplo. Además, puedes visitar XIAO RP2350 con SDK de C/C++ para instrucciones más específicas relacionadas con el XIAO RP2350.

tip

Si descargas el firmware desde el sitio web oficial, necesitas tener la versión 1.26.0 o superior para usarlo.SEEED_XIAO_RP2350

Paso 1: Instalando MicroPython en XIAO RP2350

Para instalar el firmware de MicroPython en el XIAO RP2350, sigue estos pasos:

Paso 1.1. Descargar el Firmware de MicroPython:

  • Navega a la página de Descargas de MicroPython.
  • Descarga el archivo de firmware .uf2 más reciente compatible con el XIAO RP2350.
tip

El firmware predeterminado es para arquitectura ARM, si quieres usar RISC-V, por favor usa la versión de firmware correspondiente en el enlace.

Paso 1.2 Entrar al Modo BOOTSEL:

Puedes entrar al modo BOOTSEL en el XIAO RP2350 usando cualquiera de los dos métodos siguientes:

  1. Presiona y Mantén el Botón BOOT:
    Mientras tu XIAO RP2350 está desconectado de tu computadora, presiona y mantén el botón BOOT.
  2. Conecta a tu Computadora:
    Mientras mantienes presionado el botón BOOT, conecta el XIAO RP2350 a tu computadora usando un cable USB.
  3. Suelta el Botón BOOT:
    Después de que la placa esté conectada a tu computadora, puedes soltar el botón BOOT. El XIAO RP2350 ahora debería estar en modo BOOTSEL, y tu computadora lo reconocerá como un dispositivo de almacenamiento extraíble.
Mantener Boot-> Conectar Cable-> Soltar Boot

Paso 1.3. Instalar el Firmware:

  • Arrastra y suelta el archivo .uf2 descargado en la unidad de almacenamiento extraíble del XIAO RP2350.
  • La placa se reiniciará automáticamente después de que el archivo sea copiado, completando la instalación del firmware.

Paso 2: Instalando Thonny IDE

acerca de MicroPython

MicroPython es un lenguaje interpretado similar a Python. Sin embargo, a diferencia de Python, MicroPython se ejecuta directamente en el hardware (bare-metal), proporcionando un prompt interactivo (REPL) para ejecutar comandos inmediatamente, así como la capacidad de ejecutar e importar scripts desde el sistema de archivos integrado.

Para conectarte a la placa XIAO RP2350 y comenzar a escribir y ejecutar tu código Python, puedes usar cualquier herramienta de terminal que soporte conexiones seriales, como minicom, PuTTY, electerm, warp, y más. Para una experiencia más amigable, puedes usar Thonny por su facilidad de uso, características integradas e interfaz amigable para principiantes. De esta manera, puedes disfrutar escribiendo y ejecutando tu código Python directamente en el dispositivo.

Thonny IDE es un editor de Python amigable para principiantes que es excelente para el desarrollo con MicroPython. Aquí te mostramos cómo instalarlo:

  1. Descargar Thonny:

  2. Instalar Thonny:

    • Ejecuta el instalador descargado.
    • Sigue las instrucciones en pantalla para completar el proceso de instalación.
  3. Configurar Thonny para MicroPython:

    • Abre Thonny IDE.
    • Mira en la esquina inferior derecha de la ventana de Thonny.
    • Haz clic en el área de selección del intérprete.
    • Elige 'MicroPython (RP2040)' del menú desplegable.
    • Asegúrate de que el Puerto correcto esté seleccionado—Thonny típicamente lo detecta automáticamente.

¡Ahora estás listo para escribir y subir código de MicroPython a tu XIAO RP2350 usando Thonny IDE!

Si tu dispositivo está listo con MicroPython, comencemos con un proyecto simple:

¡Hagamos que Parpadee! ✨

Hacer que la placa parpadee un LED es a menudo el primer programa que todos ejecutan. Lo mismo ocurre con el XIAO RP2350.

note

El LED DE USUARIO, el LED amarillo en el XIAO RP2350, está conectado a GPIO25/D19 según el diagrama esquemático. Para todas las placas de la familia XIAO, el LED DE USUARIO se encenderá cuando se establezca a nivel bajo y se apagará cuando se establezca a nivel alto.

from machine import Pin # Import the Pin class from the machine module
from time import sleep # Import the sleep function from the time module

# Initialize GPIO25 as an output pin, which controls the USER LED
led = Pin(25, Pin.OUT)

# Turn off the LED initially
led.value(1) # led.on() -> high level -> light off
sleep(0.5) # Wait for 0.5 seconds

# Turn on the LED
led.value(0) # led.off() -> low level -> light on
sleep(0.5) # Wait for 0.5 seconds

# Enter an infinite loop
while True:
# Toggle the LED state (on to off or off to on)
led.toggle()
# Print the current state of the LED
print(f"LED {'ON' if led.value() == 0 else 'OFF'}")
sleep(0.5) # Wait for 0.5 seconds before the next toggle

Una vez que hayas copiado el código en el IDE de Thonny, como se muestra en la imagen a continuación, simplemente haz clic en el botón Run current script o presiona F5. Esto ejecutará el fragmento de código y verás que el LED en el XIAO RP2350 comienza a parpadear.

Jugar con LEDs RGB

El XIAO RP2350 viene con un LED RGB integrado que puedes controlar usando MicroPython. A continuación se muestra un ejemplo de cómo alternar entre diferentes colores:

import array, time, random
from machine import Pin
import rp2

NUM_LEDS = 1
LED_PIN = 22 # PICO_DEFAULT_WS2812_PIN
POWER_PIN = 23 # PICO_DEFAULT_WS2812_POWER_PIN

# Global brightness variable (0.0 to 1.0)
BRIGHTNESS = 0.1

@rp2.asm_pio(sideset_init=rp2.PIO.OUT_LOW, out_shiftdir=rp2.PIO.SHIFT_LEFT, autopull=True, pull_thresh=24)
def ws2812():
T1 = 2
T2 = 5
T3 = 3
wrap_target()
label("bitloop")
out(x, 1) .side(0) [T3 - 1]
jmp(not_x, "do_zero") .side(1) [T1 - 1]
jmp("bitloop") .side(1) [T2 - 1]
label("do_zero")
nop() .side(0) [T2 - 1]
wrap()

# Set up the power pin
power_pin = Pin(POWER_PIN, Pin.OUT)
power_pin.value(1) # Turn on power to the LED

# Create the StateMachine with the ws2812 program, outputting on LED_PIN
sm = rp2.StateMachine(0, ws2812, freq=8_000_000, sideset_base=Pin(LED_PIN))

# Start the StateMachine, it will wait for data on its FIFO.
sm.active(1)

def set_led_color(color):
sm.put(array.array("I", [color]), 8)

def random_color():
return random.randint(0, 255) | (random.randint(0, 255) << 8) | (random.randint(0, 255) << 16)

def interpolate(color1, color2, factor):
r1, g1, b1 = color1 & 255, (color1 >> 8) & 255, (color1 >> 16) & 255
r2, g2, b2 = color2 & 255, (color2 >> 8) & 255, (color2 >> 16) & 255
r = int(r1 + factor * (r2 - r1))
g = int(g1 + factor * (g2 - g1))
b = int(b1 + factor * (b2 - b1))
return (b << 16) | (g << 8) | r

def apply_brightness(color, brightness):
r, g, b = color & 255, (color >> 8) & 255, (color >> 16) & 255
r = int(r * brightness)
g = int(g * brightness)
b = int(b * brightness)
return (b << 16) | (g << 8) | r

print("Starting random color transitions with adjustable brightness...")

# Main loop
current_color = random_color()
while True:
next_color = random_color()
for i in range(100): # 100 steps for smooth transition
transition_color = interpolate(current_color, next_color, i / 100)
final_color = apply_brightness(transition_color, BRIGHTNESS)
set_led_color(final_color)
time.sleep_ms(20) # Adjust this value to change transition speed
current_color = next_color

# Optionally, you can change the brightness here for demo purposes
# BRIGHTNESS = random.random() # This will set a random brightness each cycle

Batería y Gestión de Energía

¿Es posible leer el voltaje de la batería sin componentes adicionales? Sí, con el XIAO RP2350, es más fácil que nunca. En miembros anteriores de la familia XIAO, como el XIAO ESP32C3, leer el voltaje de la batería requería conectar manualmente a A0 con una resistencia.

Pero con el XIAO RP2350, este proceso se simplifica. Ahora puedes usar directamente el pin A3/GPIO29 para leer el nivel de voltaje de la batería, optimizando tu diseño y desarrollo. Solo recuerda configurar el pin GPIO19 en alto, ya que es necesario para habilitar la lectura del nivel de batería.

Sigue este fragmento de código para leer el voltaje de la batería usando el Pico SDK:

from machine import Pin, ADC
import time

# Function to initialize the GPIO pin for enabling battery voltage reading
def init_gpio():
enable_pin = Pin(19, Pin.OUT)
enable_pin.value(1) # Set the pin to high to enable battery voltage reading

def main():
print("ADC Battery Example - GPIO29 (A3)")

init_gpio() # Initialize the enable pin
adc = ADC(Pin(29)) # Initialize the ADC on GPIO29

conversion_factor = 3.3 / (65535) # Conversion factor for 12-bit ADC and 3.3V reference

while True:
result = adc.read_u16() # Read the ADC value
voltage = result * conversion_factor * 2 # Calculate the voltage, considering the voltage divider (factor of 2)
print("Raw value: 0x{:03x}, voltage: {:.2f} V".format(result, voltage))
time.sleep(0.5) # Delay for 500 milliseconds

if __name__ == '__main__':
main()

Recursos y Activos

El XIAO RP2350 aprovecha el poder del Raspberry Pi RP2350, utilizando una gran cantidad de recursos compartidos de la comunidad de Raspberry Pi. Esto abre un mundo de posibilidades para que puedas personalizar tus proyectos en esta pequeña placa con creatividad ilimitada. A continuación se presentan recursos y activos esenciales para ayudarte a comenzar.

Hojas de Datos y Esquemas

Recursos Relacionados

Expansión y Aplicaciones

La serie XIAO tiene una amplia gama de periféricos y accesorios periféricos para que aprendas y uses, ya sea que quieras una pantalla colorida que permita una interacción perfecta, una placa integrada con luces RGB brillantes y simples, y así sucesivamente, solo esperando a ser explorados.

Como miembro de la familia XIAO, el XIAO RP2350 hace lo mismo. Por supuesto, para hacer un mejor uso de los pines adicionales extraídos, nuevos periféricos y placas seguirán llegando, utilizando completamente el rendimiento para el cual fue creado.

  • 🌟 Expandiendo con Accesorios
    Descubre la amplia gama de complementos y módulos compatibles con la Familia XIAO, desde pantallas y matrices LED hasta módulos Grove y sensores, y aprende cómo pueden mejorar tus proyectos.

Comunidad y Aprendizaje

Además, sumérgete en la vibrante comunidad de Raspberry Pi para expandir tu conocimiento y descubrir nuevas ideas de proyectos. Aprovecha los recursos compartidos por la comunidad, foros y tutoriales para mejorar tu experiencia con el XIAO RP2350. Además de la Wiki de Seeed Studio, aquí hay algunos otros lugares recomendados para aprender:

  • Documentación de Raspberry Pi: Obtén información confiable y actualizada sobre el RP2350.
  • Foros de Raspberry Pi: Interactúa con otros entusiastas, haz preguntas y comparte tus proyectos.
  • Repositorio GitHub de XIAO: Explora el repositorio oficial de XIAO para obtener documentación más centralizada y más interacción con nuestro equipo, ¡Únete a Nosotros!
  • r/embedded en Reddit: Únete a la comunidad de sistemas embebidos, comparte ideas y discute varios temas.
  • Tema Pico en GitHub: Explora repositorios y discusiones relacionadas con el Pico.
  • Hackster.io: Descubre proyectos y tutoriales relacionados con varias plataformas de hardware, incluyendo XIAO y Raspberry Pi.
  • Instructables: Encuentra proyectos DIY y guías paso a paso para crear con XIAO y otro hardware.
  • Comunidad Element14: Participa en discusiones, seminarios web y proyectos relacionados con electrónica y sistemas embebidos.

Y más, siempre eres bienvenido a compartir tus proyectos en nuestro Discord de Seeed Studio y Foro de Seeed Studio. Estas plataformas brindan una excelente oportunidad para conectar con otros makers, obtener retroalimentación y encontrar inspiración. Ya sea que necesites ayuda para solucionar un problema, quieras mostrar tu última creación, o simplemente desees ser parte de una comunidad de apoyo, el Discord y Foro de Seeed Studio son los lugares perfectos para participar y colaborar.

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.

Loading Comments...