Saltar al contenido principal

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​

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 .uf2 en 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.

tip
  • 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 MicroPythonGPIO de XIAO RP2040GPIO de XIAO RP2040 PlusADCFunción
D0 / A0GPIO26GPIO260GPIO, ADC0
D1 / A1GPIO27GPIO271GPIO, ADC1
D2 / A2GPIO28GPIO282GPIO, ADC2
D3 / A3GPIO29GPIO293GPIO, ADC3
D4 / SDAGPIO6GPIO6—GPIO, I2C SDA
D5 / SCLGPIO7GPIO7—GPIO, I2C SCL
D6 / TXGPIO0GPIO0—GPIO, UART TX
D7 / RXGPIO1GPIO1—GPIO, UART RX
D8 / SCKGPIO2GPIO2—GPIO, SPI SCK
D9 / MISOGPIO4GPIO4—GPIO, SPI MISO
D10 / MOSIGPIO3GPIO3—GPIO, SPI MOSI
NEOPIXELGPIO12GPIO12—Datos WS2812 NeoPixel
NEOPIXEL_POWER / NEO_PWR / RGB_ENGPIO11GPIO11—Habilitación de alimentación de NeoPixel (RGB_EN en Plus)
LED_G / D23GPIO16GPIO16—LED RGB verde; Plus D23
LED_R / D24GPIO17GPIO17—LED RGB rojo; Plus D24
LED_B / LEDGPIO25GPIO25—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.

Loading Comments...