メインコンテンツまでスキップ

Seeed Studio XIAO RP2040 と MicroPython

MicroPython の概要​

MicroPython は、一部にネイティブコードコンパイル機能を備えた Python インタプリタです。組み込みプロセッサや制約のあるシステム向けに実装された、Python 3.5 機能のサブセットを提供します。これは CPython とは異なり、その違いについてはこちらで詳しく読むことができます。

はじめに​

まず、Seeed Studio XIAO RP2040 シリーズをコンピュータに接続し、MicroPython から簡単なコードを書き込んで、ボードが正常に動作しているか確認します。

ハードウェアの準備​

XIAO RP2040 シリーズを PC に接続する​

  • Step 1. BOOT ボタンを押し続けたまま、Type-C ケーブルを使って Seeed Studio XIAO RP2040 シリーズを PC に接続します。正常に動作していれば、PC 上に RPI-RP2 ディスクが表示されます。
  • Step 2.ファームウェアを書き込む

    公式サイトにアクセスして最新のファームウェアをダウンロードし、.uf2 ファイルを RPI-RP2 ディスクにドラッグ&ドロップするだけで、ファームウェアの書き込みが完了します。

ソフトウェアの準備​

  • Step 1. お使いのオペレーティングシステムに応じて、Thonny editor の最新バージョンをダウンロードしてインストールします
  • Step 2. Thonny を起動します

  • Step 3. Tools-->Options をクリックして設定画面を開きます。

  • Step 4. Interpreter タブを選択し、デバイスを MicroPython(generic)、ポートを Board CDC @ Port に設定します

Step 5. Shell にバージョン情報が表示されます。


Step 6. Files -> New に進み、以下のコードを貼り付けてスクリプトを実行します。

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)
  • LED が 1 秒間隔で点滅します。

ヒント
  • Additional Resources セクションには、XIAO RP2040 Plus 用の MicroPython ファームウェアと関連するサンプルが含まれています。これらのサンプルは XIAO RP2040 のチュートリアルに従って使用できますが、対応するピンを置き換えて修正することを忘れないでください。
  • XIAO RP2040 シリーズ間の違いを確認するには、XIAO RP2040 Series Pin Overview を参照してください

XIAO RP2040 シリーズのピン​

MicroPython ピン名XIAO RP2040 GPIOXIAO RP2040 Plus GPIOADC機能
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—WS2812 NeoPixel データ
NEOPIXEL_POWER / NEO_PWR / RGB_ENGPIO11GPIO11—NeoPixel 電源イネーブル(Plus では RGB_EN)
LED_G / D23GPIO16GPIO16—RGB LED 緑、Plus D23
LED_R / D24GPIO17GPIO17—RGB LED 赤、Plus D24
LED_B / LEDGPIO25GPIO25—RGB LED 青 / ユーザー LED
D12—GPIO18—Plus 拡張 GPIO
D13 / SCL1—GPIO21—Plus I2C1 SCL
D14 / SDA1—GPIO20—Plus I2C1 SDA
D15—GPIO19—Plus 拡張 GPIO
D16—GPIO22—Plus 拡張 GPIO
D17—GPIO23—Plus 拡張 GPIO
D19—GPIO5—Plus 拡張 GPIO
D20—GPIO13—Plus 拡張 GPIO
D21—GPIO14—Plus 拡張 GPIO
D22—GPIO15—Plus 拡張 GPIO
D25—GPIO10—Plus 拡張 GPIO
D26—GPIO9—Plus 拡張 GPIO
D27—GPIO8—Plus 拡張 GPIO
BAT_EN—GPIO24—Plus バッテリー電源イネーブル

Seeed Studio XIAO RP2040 の RGB LED を点灯する​

Seeed Studio XIAO RP2040 には RGB LED が搭載されており、これを MicroPython で点灯させます。サードパーティ製ライブラリが必要なため、まず追加のライブラリを導入する必要があります。

  • Step 1. ws2812.py ライブラリをダウンロードし、Thonny で開きます。

  • Step 2. File-->Save as をクリックしてライブラリを保存します。

保存先として Raspberry Pi Pico を選択します。

保存したファイル名が必ず ws2812.py になっていることを確認してください。そうでない場合は動作しません。

  • Step 3. 以下のコードを 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)
  • Step 4. "Run current script" ボタンをクリックしてコードをアップロードします。初回のみ、コードファイルの保存先をどこにするか Thonny から尋ねられます。This Computer と Raspberry Pi Pico のどちらを選んでも構いません。

正常に動作すれば、RGB LED の色が切り替わりながら点滅するのが確認できます。また、Shell には "Beautiful Color" というテキスト出力も表示されます。

Seeed Studio XIAO RP2040 とディスプレイを IIC で接続する​

このプロジェクトでは、Grove - OLED Display 0.96" (SSD1315) を IIC インターフェース経由で接続し、Seeed Studio XIAO RP2040 上での IIC 機能をデモンストレーションします。

ハードウェア接続

  • Step 1. ssd1306.py ライブラリをダウンロードし、Thonny で開きます。

  • Step 2. "File-->Save as" をクリックし、"Raspberry Pi Pico" にライブラリを保存します

"Raspberry Pi Pico" を保存先として選択します。

保存したファイル名が "ssd1306.py" になっていることを確認してください。そうでない場合は動作しません。

  • Step 3. 以下のコードを 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)
  • Step 4. "Run current script" ボタンをクリックしてコードをアップロードします。初回のみ、コードファイルの保存先をどこにするか Thonny から尋ねられます。This Computer と Raspberry Pi Pico のどちらを選んでも構いません。

正常に動作すれば、画面に "Hello,World!" というテキストが表示されます。

MicroPython デバイスコンソール​

パートナーの Neil が、MicroPython を使って XIAO 用のコマンドラインコンソールプログラムを作成してくれました。このプログラムを使うと、ファイルのアップロード、ダウンロード、削除を簡単に行うことができます。XIAO への貢献に感謝します。

追加リソース​

追加のライブラリとサンプルコードはこちらにあります:

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

弊社製品をお選びいただきありがとうございます。私たちは、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに応じてお選びいただける、複数のコミュニケーションチャネルをご用意しています。

Loading Comments...