Skip to main content

Introducción al 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, Bus CAN, 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 dual 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 Nuevos IOs 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 la 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 Onboard2MB Flash
LEDs1 user LED(3 colors), 1 power LED, 1 RGB LED1 user LED, 1 charge LED(Battery Charging Indicator),1 RGB LED
Interfaz11 Pins:4x Analog,11x Digital, 1x I²C, 1x UART, 1x SPI, All PWM19 Pins:3x Analog,19x Digital, 2x I²C, 2x UART, 2x SPI, All 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 XIAO RP2350
XIAO RP2350 Front Pinout
Pinout Trasero XIAO RP2350
XIAO RP2350 Back Pinout
Componentes XIAO RP2350
XIAO RP2350 Components

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

Plataforma Soportada

El XIAO RP2350, alimentado por el RP2350, soporta MicroPython y el SDK 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

Introducción▶️

attention

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

tip

Actualmente, la función ADC puede no funcionar correctamente cuando se usa el firmware oficial. Por favor descarga y usa nuestro firmware modificado primero. Una vez que el pull request sea fusionado, actualizaremos el contenido relevante en la Wiki en consecuencia.

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 por defecto 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 en Modo BOOTSEL:

Puedes entrar en modo BOOTSEL en el XIAO RP2350 usando cualquiera de los dos métodos a continuación:

  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 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 removible.
Mantener Boot-> Conectar Cable-> Soltar Boot

Paso 1.3. Instalar el Firmware:

  • Arrastra y suelta el archivo .uf2 descargado en la unidad de almacenamiento removible 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

about 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 serie, 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 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 USER LED, 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 USER LED 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 Thonny IDE, como se muestra en la imagen de abajo, simplemente haz clic en el botón Run current script o presiona F5. Esto ejecutará el fragmento de código y verás el LED en el XIAO RP2350 comenzar 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, simplificando tu diseño y desarrollo. Solo recuerda establecer 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 Raspberry Pi. Esto abre un mundo de posibilidades para que personalices 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 mucho más, 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 disponibles, nuevos periféricos y placas seguirán llegando, aprovechando 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 del 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 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, webinars 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 proporcionan 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...