Skip to main content

Seeed Studio XIAO SAMD21 with MicroPython

MicroPython の紹介

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

はじめに

まず、Seeed Studio XIAO SAMD21をコンピューターに接続し、MicroPythonから簡単なコードをアップロードして、ボードが正常に動作しているかを確認します。

ハードウェアセットアップ

ソフトウェアセットアップ

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

  • ステップ 3. "Tools-->Options" をクリックして設定を開きます。

  • ステップ 4. "Interpreter"インターフェースを選択し、デバイスを "MicroPython(generic)" として、ポートを "Try to detect port automatically" として選択します

Seeed Studio XIAO SAMD21をPCに接続して点灯させる

  • ステップ 1. "BOOT"ボタンを押し続けながら、Type-CケーブルでSeeed Studio XIAO SAMD21をPCに接続します。正常に動作すると、PC上に"Arduino"デスクが表示されます。
  • ステップ 2. ファームウェアをフラッシュします

公式リンクにアクセスして、最新のファームウェアをダウンロードしてください

セキュリティを確保し、最新機能をサポートするために独自のファームウェアをコンパイルすることも可能ですが、これは必須ではありません。

ソフトウェア開発

SEEED XIAO SAMD21 ピン配置表

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

コードをアップロードする

「Run current script」ボタンをクリックしてコードをアップロードします。初回時、Thonnyはコードファイルの保存場所を尋ねます。This ComputerMicroPython deviceのどちらでも構いません。

プログラムをオフラインで使用したい場合は、プログラムをXIAO SAMD21に保存する必要があります

Ctrl + Shift + Sを同時に長押しし、MicroPython deviceへの保存を選択します

GPIO テスト (LED)

準備するもの:

以下のコードをThonnyにコピーします。

青いRX_LEDが点灯し、1秒に1回点滅することが確認できます

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)

GPIO リレー制御

準備するもの:

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)

自動制御のための人体検出

準備するもの:

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)

I2Cサポート

from machine import Pin, SoftI2C

i2c = SoftI2C(scl=Pin(9), sda=Pin(8), freq=100000)
devices = i2c.scan()
for device in devices:
print("Decimal address: ",device," | Hexa address: ",hex(device))

i2c.writeto(0x51, 'b')
print(i2c.readfrom(0x51, 4)) # read 4 bytes from device with address 0x51
i2c.writeto(0x51, 'a') # write 'a' to device with address 0x51
print(i2c.readfrom(0x51, 4)) # read 4 bytes from device with address 0x51
i2c.writeto(0x51, 'b')
print(i2c.readfrom(0x51, 4))

MicroPythonに慣れることで、より多くのことができるようになります。私たちはあなたにより多くの価値を創造することを楽しみにしています。あなたのプロジェクトもぜひ私たちと共有してください!

DAC サポート

コードを提出してくださったAleksei Tertychnyiに感謝します。関連するすべての機能は彼によって開発され、貢献されました。

from machine import Pin, Timer, DAC

led = Pin(18, Pin.OUT)
counter = 0

dac = DAC(0) #DAC on A0 output

def loop(tim):
global counter
led.value(counter%2)
print('DAC value: ', end =" ")
print(counter)
dac.write(counter%1024)
counter = counter + 1

tim = Timer(-1)
tim.init(period=1000, mode=Timer.PERIODIC, callback=loop)

ピンA0の電圧は徐々に増加し始め、約3.3Vで最大値に達した後、0Vまで下がり、このサイクルが繰り返されます。

MicroPython デバイスコンソール

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

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

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

Loading Comments...