Skip to main content

Seeed Studio XIAO RP2350入門(MicroPython)

Seeed Studio XIAO RP2350


XIAO RP2350は、Raspberry Pi RP2350(150MHzで動作するデュアルCortex-M33コア、FPU、強化されたセキュリティと暗号化機能を搭載)の力を、クラシックなXIAOフォームファクターに詰め込んでいます。わずか21x17.8mmのサイズで、19個の多機能GPIO、RGB LED、50μAの超低消費電力、バッテリー電源供給、直接バッテリー電圧測定機能を備えたバッテリー管理システムを特徴としています。XIAOエコシステムのおかげで、XIAO RP2350は、ディスプレイ、LEDマトリックス、Groveモジュール、CAN Bus、Vision AIセンサー、mmWaveセンサーなど、幅広いアドオンと互換性があります。MicroPython、C、C++のネイティブサポートにより、XIAO RP2350は、スマート制御、ウェアラブル、DIYキーボードなどのコンパクトでバッテリー駆動のアプリケーションを作成したいあらゆるレベルの開発者に最適です。

特徴

  • 強力なMCUボード: FPU搭載のRaspberry Pi RP2350チップを搭載し、対称デュアルArm Cortex-M33 @ 150MHzを特徴としています。
  • 強化されたセキュリティ機能: 内蔵のセキュアブートと暗号化ブートローダーがアプリケーションのセキュリティを確保します。
  • ソフトウェアサポート: C/C++とMicroPythonに対応し、簡単なプロジェクト開発とプロトタイピングを保証します。
  • 豊富なオンボードリソース: RGB LED、2MBフラッシュ、520kB SRAM、19個の多機能GPIO(アナログ、デジタル、I²C、UART、SPI、PWM)を統合しています。
  • 拡張された8つの新しいIO: 以前のXIAO MCUと比較して、背面に8つのIOピンが追加され、より複雑なアプリケーションをサポートします。
  • 効率的な電源設計: スリープモードでわずか50μAの超低消費電力により、バッテリー電源供給を可能にします。内部IOを介した直接バッテリー電圧測定により、バッテリー管理システム(BMS)を強化します。
  • コンパクトな親指サイズ設計: 21 x 17.8mmのサイズで、Seeed StudioのクラシックなXIAOフォームファクターを採用し、スペースを重視するアプリケーションに理想的です。
  • 量産対応: 表面実装デバイス(SMD)設計で、すべてのコンポーネントが前面にあり、両側にスタンプホールがあり、効率的な大量生産を促進します。

仕様

製品XIAO RP2040XIAO RP2350
プロセッサRaspberry Pi RP2040Raspberry Pi RP2350
デュアル Cortex-M0+ @ 133MHzデュアル Cortex-M33 @ 150MHz、FPU
RAM264kB SRAM520kB SRAM
Flash2MB オンボード2MB Flash
LED1 ユーザーLED(3色)、1 電源LED、1 RGB LED1 ユーザーLED、1 充電LED(バッテリー充電インジケーター)、1 RGB LED
インターフェース11 ピン:4x アナログ、11x デジタル、1x I²C、1x UART、1x SPI、全PWM19 ピン:3x アナログ、19x デジタル、2x I²C、2x UART、2x SPI、全PWM
ボタン1 RESETボタン、1 BOOTボタン
セキュリティ - OTP、セキュアブート、Arm TrustZone
低消費電力 - 4.2V/50uA
ソフトウェア互換性Arduino、PlatformIO、MicroPython、CircuitPython、Zephyr、その他多数Arduino、PlatformIO、MicroPython、CircuitPython、その他多数
動作温度-20°C~70°C
寸法21x17.8 mm

ハードウェア概要

XIAO RP2350 フロントピン配置
XIAO RP2350 Front Pinout
XIAO RP2350 バックピン配置
XIAO RP2350 Back Pinout
XIAO RP2350 コンポーネント
XIAO RP2350 Components

ピン配置の詳細が必要ですか?下記のアセットとリソースをご覧ください。

サポートされているプラットフォーム

RP2350を搭載したXIAO RP2350は、MicroPythonとRaspberry Piが提供するC/C++ SDKをサポートしています。この柔軟性により、開発者はプロトタイピングと開発において好みのプログラミング言語と環境を選択できます。

C/C++ SDKMicroPython
c-cpp logoMicroPython

はじめに▶️

attention

このページは主にMicroPythonユーザーに焦点を当てています。SDK プログラミングの学習に興味がある方や上級ユーザーの方は、Raspberry Pi Pico-series C/C++ SDKから始めることをお勧めします。このガイドは環境のセットアップとサンプルコードの使用開始に役立ちます。また、XIAO RP2350に関するより具体的な手順については、XIAO RP2350 with C/C++ SDKをご覧ください。

tip

公式ウェブサイトからファームウェアをダウンロードする場合は、バージョン1.26.0以上を使用する必要があります。SEEED_XIAO_RP2350

ステップ1:XIAO RP2350にMicroPythonをインストールする

XIAO RP2350にMicroPythonファームウェアをインストールするには、以下の手順に従ってください:

ステップ1.1. MicroPythonファームウェアをダウンロードする:

  • MicroPython Downloadsページに移動します。
  • XIAO RP2350と互換性のある最新の.uf2ファームウェアファイルをダウンロードします。
tip

デフォルトのファームウェアはARMアーキテクチャ用です。RISC-Vを使用したい場合は、リンク内の対応するファームウェアバージョンを使用してください。

ステップ1.2 BOOTSELモードに入る:

以下の2つの方法のいずれかを使用してXIAO RP2350をBOOTSELモードに入れることができます:

  1. BOOTボタンを押し続ける
    XIAO RP2350がコンピューターから切断されている状態で、BOOTボタンを押し続けます
  2. コンピューターに接続する
    BOOTボタンを押し続けながら、USBケーブルを使用してXIAO RP2350をコンピューターに接続します。
  3. BOOTボタンを離す
    ボードがコンピューターに接続された後、BOOTボタンを離すことができます。XIAO RP2350はBOOTSELモードになり、コンピューターはそれをリムーバブルストレージデバイスとして認識します。
Bootを押し続ける→ケーブルを接続→Bootを離す

ステップ1.3. ファームウェアをインストールする:

  • ダウンロードした.uf2ファイルをXIAO RP2350のリムーバブルストレージドライブにドラッグアンドドロップします。
  • ファイルがコピーされた後、ボードは自動的に再起動し、ファームウェアのインストールが完了します。

ステップ2:Thonny IDEをインストールする

MicroPythonについて

MicroPythonPythonに似たインタープリター言語です。しかし、Pythonとは異なり、MicroPythonはハードウェア上で直接実行され(ベアメタル)、コマンドを即座に実行するためのインタラクティブプロンプト(REPL)と、内蔵ファイルシステムからスクリプトを実行およびインポートする機能を提供します。

XIAO RP2350ボードに接続してPythonコードの記述と実行を開始するには、minicom、PuTTY、electerm、warpなど、シリアル接続をサポートする任意のターミナルツールを使用できます。よりユーザーフレンドリーな体験のために、使いやすさ、統合機能、初心者向けのインターフェースを理由に**Thonny**を使用できます。これにより、デバイス上で直接Pythonコードを記述して実行することを楽しめます。

Thonny IDEはMicroPython開発に優れた初心者向けのPythonエディターです。インストール方法は以下の通りです:

  1. Thonnyをダウンロードする:

    • Thonny Download Pageにアクセスします。
    • お使いのオペレーティングシステム(Windows、macOS、またはLinux)に適したインストーラーを選択してダウンロードします。
  2. Thonnyをインストールする:

    • ダウンロードしたインストーラーを実行します。
    • 画面の指示に従ってインストールプロセスを完了します。
  3. MicroPython用にThonnyを設定する:

    • Thonny IDEを開きます
    • Thonnyウィンドウの右下角を確認します。
    • インタープリター選択エリアをクリックします。
    • ドロップダウンから**'MicroPython (RP2040)'**を選択します。
    • 正しいポートが選択されていることを確認します—Thonnyは通常自動検出します。

これで、Thonny IDEを使用してXIAO RP2350にMicroPythonコードを記述およびアップロードする準備が整いました!

デバイスがMicroPythonで準備できたら、簡単なプロジェクトから始めましょう:

LEDを点滅させてみよう! ✨

ボードでLEDを点滅させることは、多くの人が最初に実行するプログラムです。XIAO RP2350でも同様です。

note

XIAO RP2350の黄色いLEDであるUSER LEDは、回路図によるとGPIO25/D19に接続されています。 すべてのXIAOファミリーボードでは、USER LEDローレベルに設定すると点灯し、ハイレベルに設定すると消灯します。

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

コードをThonny IDEにコピーしたら、下の画像に示すように、単にRun current scriptボタンをクリックするかF5を押してください。これによりコードスニペットが実行され、XIAO RP2350のLEDが点滅し始めるのを確認できます。

RGB LEDで遊ぶ

XIAO RP2350には内蔵のRGB LEDが搭載されており、MicroPythonを使用して制御できます。以下は異なる色を循環させる方法の例です:

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

バッテリーと電源管理

追加のコンポーネントなしでバッテリー電圧を読み取ることは可能でしょうか?はい、XIAO RP2350では、これまで以上に簡単になりました。XIAO ESP32C3などの以前のXIAOファミリーメンバーでは、バッテリー電圧を読み取るには抵抗を使って手動でA0に接続する必要がありました。

しかし、XIAO RP2350では、このプロセスが簡素化されています。A3/GPIO29ピンを直接使用してバッテリー電圧レベルを読み取ることができるようになり、設計と開発が合理化されます。バッテリーレベルの読み取りを有効にするためにGPIO19ピンをハイに設定することが必要であることを覚えておいてください。

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()

アセット & リソース

XIAO RP2350 は Raspberry Pi RP2350 の力を活用し、Raspberry Pi コミュニティの豊富な共有リソースを活用しています。これにより、この小さなボードで無限の創造性を持ってプロジェクトをカスタマイズする可能性の世界が開かれます。以下は、開始に役立つ重要なリソースとアセットです。

データシートと回路図

関連リソース

拡張とアプリケーション

XIAO シリーズには、学習と使用のための膨大な範囲の周辺機器と周辺アクセサリがあります。完璧なインタラクションを可能にするカラフルなスクリーン、明るくシンプルな RGB ライトを備えた統合ボードなど、チェックアウトを待っているものがあります。

XIAO ファミリーのメンバーとして、XIAO RP2350 も同様です。もちろん、引き出された追加のピンをより良く活用するために、新しい周辺機器とボードが継続的に登場し、作成された性能を完全に活用します。

  • 🌟 アクセサリによる拡張
    ディスプレイや LED マトリックスから Grove モジュールやセンサーまで、XIAO ファミリーと互換性のある幅広いアドオンとモジュールを発見し、それらがプロジェクトをどのように強化できるかを学びます。

コミュニティと学習

さらに、活気に満ちた Raspberry Pi コミュニティに飛び込んで知識を広げ、新しいプロジェクトアイデアを発見してください。コミュニティ共有リソース、フォーラム、チュートリアルを活用して、XIAO RP2350 での体験を向上させてください。Seeed Studio Wiki に加えて、学習におすすめの他の場所をいくつか紹介します:

  • Raspberry Pi ドキュメント: RP2350 に関する信頼性の高い最新情報を入手してください。
  • Raspberry Pi フォーラム: 他の愛好家と交流し、質問し、プロジェクトを共有してください。
  • XIAO GitHub リポジトリ: より集中化されたドキュメントと私たちのチームとのより多くのインタラクションのために、公式 XIAO リポジトリを探索してください。参加してください!
  • Reddit の r/embedded: 組み込みシステムコミュニティに参加し、洞察を共有し、様々なトピックについて議論してください。
  • GitHub の Pico トピック: Pico に関連するリポジトリと議論を探索してください。
  • Hackster.io: XIAO や Raspberry Pi を含む様々なハードウェアプラットフォームに関連するプロジェクトとチュートリアルを発見してください。
  • Instructables: XIAO や他のハードウェアでの作成のための DIY プロジェクトとステップバイステップガイドを見つけてください。
  • Element14 コミュニティ: エレクトロニクスと組み込みシステムに関連する議論、ウェビナー、プロジェクトに参加してください。

さらに、私たちの Seeed Studio DiscordSeeed Studio フォーラム でプロジェクトを共有することをいつでも歓迎します。これらのプラットフォームは、他のメーカーとつながり、フィードバックを得て、インスピレーションを見つける優れた機会を提供します。問題のトラブルシューティングでヘルプが必要な場合、最新の作品を披露したい場合、または単にサポートコミュニティの一員になりたい場合、Seeed Studio の Discord とフォーラムは参加と協力のための完璧な場所です。

技術サポート & 製品ディスカッション

弊社製品をお選びいただき、ありがとうございます!お客様の製品体験を可能な限りスムーズにするため、さまざまなサポートを提供いたします。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルをご用意しております。

Loading Comments...