Pular para o conteúdo principal

Seeed Studio XIAO RP2350 com MicroPython

Seeed Studio XIAO RP2350


O XIAO RP2350 reúne a potência do Raspberry Pi RP2350 (dois núcleos Cortex-M33 rodando a 150 MHz com FPU, segurança e criptografia aprimoradas) no clássico formato XIAO. Medindo apenas 21 x 17,8 mm, ele conta com 19 GPIOs multifuncionais, um LED RGB e um Sistema de Gerenciamento de Bateria com consumo ultrabaixo de 50 μA, alimentação por bateria e medição direta da tensão da bateria. Graças ao ecossistema XIAO, o XIAO RP2350 é compatível com uma ampla variedade de complementos, incluindo displays, matriz de LEDs, módulos Grove, barramento CAN, sensores de Visão com IA e sensores mmWave. Com suporte nativo para MicroPython, C e C++, o XIAO RP2350 é perfeito para desenvolvedores de todos os níveis que desejam criar aplicações compactas alimentadas por bateria para controle inteligente, vestíveis, teclados DIY e muito mais.

Plataformas compatíveis

O XIAO RP2350, alimentado pelo RP2350, oferece suporte ao MicroPython e ao SDK de C/C++ fornecido pela Raspberry Pi. Essa flexibilidade permite que os desenvolvedores escolham sua linguagem e ambiente de programação preferidos para prototipagem e desenvolvimento.

C/C++ SDKMicroPython
c-cpp logoMicroPython

Primeiros Passos▶️

attention

Esta página se concentra principalmente em usuários de MicroPython. Para quem tem interesse em aprender programação com SDK ou para usuários avançados, vale a pena começar pelo Raspberry Pi Pico-series C/C++ SDK. Este guia ajudará você a configurar o ambiente e começar com exemplos de código. Além disso, você pode visitar XIAO RP2350 with C/C++ SDK para instruções mais específicas relacionadas ao XIAO RP2350.

Etapa 1: Instalando o MicroPython no XIAO RP2350

Para instalar o firmware MicroPython no XIAO RP2350, siga estas etapas:

Etapa 1.1. Baixe o firmware MicroPython:

  • Acesse a página MicroPython Downloads.
  • Baixe o arquivo de firmware .uf2 mais recente compatível com o XIAO RP2350.
dica
  1. O firmware padrão é para arquitetura ARM; se você quiser usar RISC-V, utilize a versão de firmware correspondente no link.

  2. Certifique-se de estar usando a versão mais recente do firmware, pois versões mais antigas podem conter diversas vulnerabilidades de software.

Etapa 1.2. Entrar no modo BOOTSEL:

Você pode entrar no modo BOOTSEL no XIAO RP2350 usando qualquer um dos dois métodos abaixo:

  1. Pressione e segure o botão BOOT:
    Enquanto o seu XIAO RP2350 estiver desconectado do computador, pressione e segure o botão BOOT.
  2. Conecte ao computador:
    Mantendo o botão BOOT pressionado, conecte o XIAO RP2350 ao computador usando um cabo USB.
  3. Solte o botão BOOT:
    Depois que a placa estiver conectada ao computador, você pode soltar o botão BOOT. O XIAO RP2350 agora deve estar em modo BOOTSEL e o computador o reconhecerá como um dispositivo de armazenamento removível.
Segure Boot-> Conecte o cabo-> Solte Boot

Etapa 1.3. Instalar o firmware:

  • Arraste e solte o arquivo .uf2 baixado na unidade de armazenamento removível do XIAO RP2350.
  • A placa será reiniciada automaticamente após a cópia do arquivo, concluindo a instalação do firmware.

Etapa 2: Instalando o Thonny IDE

about MicroPython

MicroPython é uma linguagem interpretada semelhante ao Python. No entanto, diferente do Python, o MicroPython roda diretamente no hardware (bare-metal), fornecendo um prompt interativo (REPL) para executar comandos imediatamente, além da capacidade de rodar e importar scripts do sistema de arquivos interno.

Para conectar à placa XIAO RP2350 e começar a escrever e executar seu código Python, você pode usar qualquer ferramenta de terminal que suporte conexões seriais, como minicom, PuTTY, electerm, warp e outras. Para uma experiência mais amigável, você pode usar o Thonny por sua facilidade de uso, recursos integrados e interface acessível para iniciantes. Assim, você pode aproveitar para escrever e executar seu código Python diretamente no dispositivo.

O Thonny IDE é um editor de Python amigável para iniciantes e excelente para desenvolvimento com MicroPython. Veja como instalá-lo:

  1. Baixar o Thonny:

    • Visite a página de download do Thonny.
    • Escolha o instalador apropriado para o seu sistema operacional (Windows, macOS ou Linux) e faça o download.
  2. Instalar o Thonny:

    • Execute o instalador baixado.
    • Siga as instruções exibidas na tela para concluir o processo de instalação.
  3. Configurar o Thonny para MicroPython:

    • Abra o Thonny IDE.
    • Observe o canto inferior direito da janela do Thonny.
    • Clique na área de seleção do interpretador.
    • Escolha 'MicroPython (RP2040)' na lista.
    • Certifique-se de que a Porta correta esteja selecionada — o Thonny geralmente a detecta automaticamente.

Agora você está pronto para escrever e enviar código MicroPython para o seu XIAO RP2350 usando o Thonny IDE!

Se o seu dispositivo já estiver pronto com MicroPython, vamos começar com um projeto simples:

Vamos fazê-lo piscar! ✨

Fazer o LED da placa piscar costuma ser o primeiro programa que todo mundo executa. O mesmo vale para o XIAO RP2350.

nota

O USER LED, o LED amarelo do XIAO RP2350, está conectado ao GPIO25/D19 de acordo com o diagrama esquemático. Para todas as placas da família XIAO, o USER LED acende quando definido em low level e apaga quando definido em high level.

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

Depois de copiar o código para o Thonny IDE, como mostrado na imagem abaixo, basta clicar no botão Run current script ou pressionar F5. Isso executará o trecho de código e você verá o LED no XIAO RP2350 começar a piscar.

Brinque com LEDs RGB

O XIAO RP2350 vem com um LED RGB integrado que você pode controlar usando MicroPython. Abaixo está um exemplo de como alternar entre diferentes cores:

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

Bateria e Gerenciamento de Energia

É possível ler a tensão da bateria sem componentes extras? Sim, com o XIAO RP2350, isso é mais fácil do que nunca. Em membros anteriores da família XIAO, como o XIAO ESP32C3, ler a tensão da bateria exigia conexão manual ao A0 com um resistor.

Mas com o XIAO RP2350, esse processo foi simplificado. Agora você pode usar diretamente o pino A3/GPIO29 para ler o nível de tensão da bateria, simplificando seu design e desenvolvimento. Apenas lembre-se de configurar o pino GPIO19 para nível alto, pois isso é necessário para habilitar a leitura do nível da bateria.

Siga este trecho de código para ler a tensão da bateria usando o 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()

Expansão e Aplicações

A série XIAO possui uma enorme variedade de periféricos e acessórios de periféricos para você aprender e usar, seja uma tela colorida que permite uma interação perfeita, uma placa integrada com luzes RGB simples e brilhantes e assim por diante, apenas esperando para serem explorados.

Como membro da família XIAO, o XIAO RP2350 faz o mesmo. Claro que, para aproveitar melhor os pinos extras disponibilizados, novos periféricos e placas continuarão surgindo, utilizando totalmente o desempenho para o qual ele foi criado.

  • 🌟 Expandindo com Acessórios
    Descubra a ampla variedade de complementos e módulos compatíveis com a família XIAO, desde displays e matrizes de LED até módulos Grove e sensores, e aprenda como eles podem aprimorar seus projetos.

Comunidade e Aprendizado

Além disso, mergulhe na vibrante comunidade Raspberry Pi para expandir seu conhecimento e descobrir novas ideias de projetos. Aproveite os recursos compartilhados pela comunidade, fóruns e tutoriais para enriquecer sua experiência com o XIAO RP2350. Além do Wiki da Seeed Studio, aqui estão alguns outros lugares recomendados para aprender:

  • Raspberry Pi Documentation: Obtenha informações confiáveis e atualizadas sobre o RP2350.
  • Raspberry Pi Forums: Interaja com outros entusiastas, faça perguntas e compartilhe seus projetos.
  • XIAO GitHub Repository: Explore o repositório oficial do XIAO para documentação mais centralizada e mais interação com nossa equipe, Junte-se a nós!
  • r/embedded on Reddit: Junte-se à comunidade de sistemas embarcados, compartilhe ideias e discuta diversos tópicos.
  • Pico Topic on GitHub: Explore repositórios e discussões relacionadas ao Pico.
  • Hackster.io: Descubra projetos e tutoriais relacionados a várias plataformas de hardware, incluindo XIAO e Raspberry Pi.
  • Instructables: Encontre projetos DIY e guias passo a passo para criar com XIAO e outros hardwares.
  • Element14 Community: Participe de discussões, webinars e projetos relacionados a eletrônica e sistemas embarcados.

E muito mais, você é sempre bem-vindo para compartilhar seus projetos em nosso Seeed Studio Discord e Seeed Studio Forum. Essas plataformas oferecem uma excelente oportunidade para se conectar com outros makers, receber feedback e encontrar inspiração. Seja para obter ajuda na solução de um problema, mostrar sua última criação ou simplesmente fazer parte de uma comunidade acolhedora, o Discord e o Fórum da Seeed Studio são os lugares perfeitos para interagir e colaborar.

Suporte Técnico & Discussão de Produtos

Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes formas de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...