Skip to main content

XIAO SAMD21 de Seeed Studio con MicroPython

Introducción a MicroPython

MicroPython es un intérprete de Python con una característica de compilación de código nativo parcial. Ofrece un subconjunto de las características 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í.

Empezando

Primero, vamos a conectar la Seeed Studio XIAO SAMD21 al computador y cargar un código simple desde MicroPython para verificar si la placa funciona correctamente.

Configuración de Hardware

Configuración de Software

  • Paso 1. Descarga e instala la versión más reciente del editor Thonny según tu sistema operativo.
  • Paso 2. Inicia Thonny.

  • Paso 3. Haz clic en "Herramientas-->Opciones" para abrir la configuración.

  • Paso 4. Elige la interfaz "Intérprete" y selecciona el dispositivo como "MicroPython (genérico)" y el puerto como "Intentar detectar el puerto automáticamente".

Conectar la Seeed Studio XIAO SAMD21 al PC y encenderla

  • Paso 1. Mantén presionado el botón "BOOT" y luego conecta la Seeed Studio XIAO SAMD21 al PC mediante el cable Tipo-C. Si todo funciona correctamente, debería aparecer un escritorio llamado "Arduino" en el PC.
  • Paso 2. Flashear el firmware

Para Windows:

Copia el firmware de Seeed XIAO SAMD21 para soporte de MicroPython y colócalo en esta carpeta.

Para Linux:

wget "https://micropython.org/resources/firmware/SEEED_XIAO-20220618-v1.19.1.uf2"
cp SEEED_XIAO-20220618-v1.19.1.uf2 /media/$USER/Arduino/

También es posible compilar tu propio firmware para asegurar la seguridad y soporte de las últimas características, pero esto no es necesario.

Desarrollo de Software

Tabla de asignación de pines de SEEED XIAO SAMD21

PinGPIONombre de Pines de XIAOIRQADC
2PA02020
4PA04144
10PA1021018
11PA1131119
8PA084*16
9PA095917
40PB082682
41PB09793
7PA07877
5PA05955
6PA061066
18PA18RX_LED2*
30PA30SWCLK10*
31PA31SWDIO11*
19PA19TX_LED3*

Cargar tu código

Carga el código haciendo clic en el botón "Ejecutar script actual". La primera vez, Thonny te preguntará dónde deseas guardar el archivo del código. Tanto Este Computador como Dispositivo MicroPython son válidos.

Si deseas usar el programa sin conexión, deberías guardar el programa en el XIAO SAMD21.

Mantén presionadas las teclas Ctrl + Shift + S al mismo tiempo, luego selecciona guardar en Dispositivo MicroPython.

PRUEBA GPIO (LED)

Necesitamos preparar:

Copia el siguiente código en Thonny.

Podemos ver que el LED azul RX_LED se enciende y parpadea una vez por segundo.

from machine import Pin, Timer

led = Pin(18, 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=500, mode=Timer.PERIODIC, callback=fun)

Control GPIO con Relés

Necesitamos preparar:

from machine import Pin, Timer

output_4 = Pin(8, Pin.OUT)
detect_1 = Pin(4, Pin.IN, Pin.PULL_UP)
output_value = Pin(2, Pin.OUT)
Counter = 0

def fun(tim):
global Counter
Counter = Counter + 1
output_4.value(Counter%2)
print(Counter%2,detect_1.value())
if detect_1.value() :
output_value.value(1)
else:
output_value.value(0)

tim = Timer(-1)
tim.init(period=200, mode=Timer.PERIODIC, callback=fun)

Detección de humanos para control automático

Necesitamos preparar:

from machine import Pin, Timer

led = Pin(8, Pin.OUT)

input_value_1 = Pin(4, Pin.IN, Pin.PULL_UP)
input_value_2 = Pin(10, Pin.IN, Pin.PULL_UP)
output_value = Pin(2, Pin.OUT)

Counter = 0
Fun_Num = 0

def fun(tim):
global Counter
Counter = Counter + 1
led.value(Counter%2)
print(input_value_1.value(),input_value_2.value())
if input_value_1.value() :
output_value.value(1)
else:
output_value.value(0)

tim = Timer(-1)
tim.init(period=50, mode=Timer.PERIODIC, callback=fun)

Compatibilidad I2C

from machine import Pin, SoftI2C

i2c = SoftI2C(scl=Pin(9), sda=Pin(8), freq=100000)
devices = i2c.scan()
for device in devices:
print("Dirección decimal: ",device," | Dirección hexadecimal: ",hex(device))

i2c.writeto(0x51, 'b')
print(i2c.readfrom(0x51, 4)) # leer 4 bytes del dispositivo con dirección 0x51
i2c.writeto(0x51, 'a') # escribir 'a' al dispositivo con dirección 0x51
print(i2c.readfrom(0x51, 4)) # leer 4 bytes del dispositivo con dirección 0x51
i2c.writeto(0x51, 'b')
print(i2c.readfrom(0x51, 4))

La familiaridad con MicroPython te permite hacer mucho más, ¡esperamos crear más valor para ti! No dudes en compartir tus proyectos con nosotros también.

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 cargar, descargar y eliminar archivos fácilmente. ¡Le agradecemos su contribución a XIAO!

Soporte Técnico y Discusión de Productos

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

Loading Comments...