Seeed Studio XIAO SAMD21 の使い方
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
Seeed Studio XIAO SAMD21 の使い方
Seeed Studio XIAO SAMD21(以前は Seeeduino XIAO と呼ばれていました)は、Arduino 互換の強力な親指サイズの開発ボードシリーズである Seeed Studio XIAO ファミリーの最初の製品です。このボードは低消費電力マイクロコントローラーである ATSAMD21G18A-MU を搭載しています。一方で、この小型ボードは処理性能が高く、消費電力が少ないという特徴があります。小型サイズで設計されており、ウェアラブルデバイスや小規模プロジェクトに使用できます。
Seeed Studio XIAO SAMD21 には 14 本のピンがあり、11 のデジタルインターフェース、11 のアナログインターフェース、10 の PWM インターフェース(d1-d10)、1 つの DAC 出力ピン D0、1 つの SWD パッドインターフェース、1 つの I2C インターフェース、1 つの SPI インターフェース、1 つの UART インターフェース、シリアル通信インジケーター(T/R)、ピン多重化を通じたブリンクライト(L)として使用できます。LED(電源、L、RX、TX)の色は緑、黄、青、青です。さらに、Seeed Studio XIAO SAMD21 には Type-C インターフェースがあり、電源供給とコードのダウンロードが可能です。リセットボタンが 2 つあり、それらを短絡させてボードをリセットできます。
ドキュメント
Seeed Studio XIAO SAMD21 の使用方法に関する 2 つのドキュメントがあり、それぞれ異なる分野に焦点を当てています。以下の表を参考にしてください:
Seeed によるドキュメント | Nanase によるドキュメント |
---|---|
ピン配置図 | インターフェース |
Seeed Studio XIAO SAMD21 の使い方 | Seeed Studio XIAO SAMD21 と MicroSD カード(SPI) |
Seeed Studio XIAO SAMD21 GPIO の使用方法 | Seeed Studio XIAO SAMD21 と GPS(UART) |
Seeed Studio XIAO SAMD21 リソース | シングルサイクル IOBUS |
Seeed Studio XIAO SAMD21 での CircuitPython
特徴
- 強力な CPU: ARM® Cortex®-M0+ 32bit 48MHz マイクロコントローラー(SAMD21G18)を搭載し、256KB フラッシュメモリ、32KB SRAM を備えています。
- 柔軟な互換性: Arduino IDE に対応。
- 簡単なプロジェクト操作: ブレッドボードに対応。
- 小型サイズ: 親指サイズ(21x17.8mm)で、ウェアラブルデバイスや小規模プロジェクトに最適。
- 多様な開発インターフェース: 11 のデジタル/アナログピン、10 の PWM ピン、1 つの DAC 出力、1 つの SWD ボンディングパッドインターフェース、1 つの I2C インターフェース、1 つの UART インターフェース、1 つの SPI インターフェース。
仕様
項目 | 値 |
---|---|
CPU | ARM Cortex-M0+ CPU(SAMD21G18)、最大48MHzで動作 |
フラッシュメモリ | 256KB |
SRAM | 32KB |
デジタルI/Oピン | 11 |
アナログI/Oピン | 11 |
I2Cインターフェース | 1 |
SPIインターフェース | 1 |
QTouch | 7 (A0, A1, A6, A7, A8, A9, A10) |
UARTインターフェース | 1 |
電源供給およびダウンロードインターフェース | Type-C |
電源 | 3.3V/5V DC |
寸法 | 21×17.8×3.5mm |
ハードウェア概要
一般的なI/Oピンについて: MCUの動作電圧は3.3Vです。一般的なI/Oピンに接続される電圧入力が3.3Vを超えると、チップが損傷する可能性があります。
電源供給ピンについて: 内蔵のDC-DCコンバータ回路により、5V電圧を3.3Vに変換できるため、VIN-PINおよび5V-PINを介して5V電源でデバイスを供給できます。
XIAO SAMD21は現在バッテリー電源のみをサポートしており、バッテリー接続中にType-Cを接続することはできません。これは安全上のリスクを引き起こす可能性があります。
使用時には注意し、シールドカバーを持ち上げないでください。
ブートローダーモードに入る
ユーザーのプログラミングプロセスが失敗した場合、Seeed Studio XIAO SAMD21ポートが消えることがあります。この問題は以下の操作で解決できます:
- Seeed Studio XIAO SAMD21をコンピュータに接続します。
- 図に示されたRSTピンをピンセットまたは短い線で2回短絡します。
- オレンジ色のLEDが点滅し、点灯します。
この時点で、チップはブートローダーモードに入り、書き込みポートが再び表示されます。SAMD21チップには2つのパーティションがあり、1つはブートローダー、もう1つはユーザープログラムです。製品は出荷時にシステムメモリにブートローダーコードを焼き付けています。上記の手順を実行することでモードを切り替えることができます。
リセット
Seeed Studio XIAO SAMD21をリセットするには、以下の手順を実行します:
- Seeed Studio XIAO SAMD21をコンピュータに接続します。
- ピンセットまたは短い線を使用してRSTピンを1回だけ短絡します。
- オレンジ色のLEDが点滅し、点灯します。
注意:内蔵LEDの動作はArduinoのものとは逆です。Seeed Studio XIAO SAMD21ではピンをLOWに引き下げる必要がありますが、他のマイクロコントローラーではHIGHに引き上げる必要があります。
割り込み
Seeed Studio XIAO SAMD21のすべてのピンは割り込みをサポートしていますが、5ピンと7ピンは同時に使用できません。割り込みの詳細についてはこちらを参照してください。
ピンの多重化
ピンを自分で設定する必要はありません。ピンを使用した後、関数を直接呼び出すことができます。
デジタル入力と出力
- ピン6をデジタルピンとして使用:
const int buttonPin = 6; // プッシュボタンピンの番号
const int ledPin = 13; // LEDピンの番号
int buttonState = 0; // プッシュボタンの状態を読み取る変数
void setup() {
// LEDピンを出力として初期化
pinMode(ledPin, OUTPUT);
// プッシュボタンピンを入力として初期化
pinMode(buttonPin, INPUT);
}
void loop() {
// プッシュボタンの状態を読み取る
buttonState = digitalRead(buttonPin);
// プッシュボタンが押されているか確認。押されている場合、buttonStateはHIGH
if (buttonState == HIGH) {
// LEDを点灯
digitalWrite(ledPin, HIGH);
} else {
// LEDを消灯
digitalWrite(ledPin, LOW);
}
}
アナログ読み取り
- ピン6をアナログピンとして使用:
void setup() {
// ledPinを出力として宣言
pinMode(ledPin, OUTPUT);
}
void loop() {
// センサーから値を読み取る
sensorValue = analogRead(sensorPin);
// ledPinをオンにする
digitalWrite(ledPin, HIGH);
// プログラムを<sensorValue>ミリ秒停止
delay(sensorValue);
// ledPinをオフにする
digitalWrite(ledPin, LOW);
// プログラムを<sensorValue>ミリ秒停止
delay(sensorValue);
}
シリアル通信
- ピン6をUARTのTXピンとして使用(UARTのRXピンはピン7):
void setup() {
Serial1.begin(115200);
while (!Serial);
}
void loop() {
Serial1.println("Hello,World");
delay(1000);
}
I2C
- ピン5をIICのSCLピンとして使用(IICのSDAピンはピン4):
// Wire Master Writer
// Nicholas Zambetti <http://www.zambetti.com>による
#include <Wire.h>
void setup()
{
Wire.begin(); // I2Cバスに参加(マスターの場合はアドレスはオプション)
}
byte x = 0;
void loop()
{
Wire.beginTransmission(4); // デバイス#4に送信
Wire.write("x is "); // 5バイト送信
Wire.write(x); // 1バイト送信
Wire.endTransmission(); // 送信停止
x++;
delay(500);
}
SPI
- ピン8をSPIのSCKピンとして使用(SPIのMISOピンはピン9、MOSIピンはピン10):
#include <SPI.h>
const int CS = 7;
void setup (void) {
digitalWrite(CS, HIGH); // スレーブセレクトを無効化
SPI.begin ();
SPI.setClockDivider(SPI_CLOCK_DIV8); // クロックを8で分割
}
void loop (void) {
char c;
digitalWrite(CS, LOW); // スレーブセレクトを有効化
// テスト文字列を送信
for (const char * p = "Hello, world!\r" ; c = *p; p++) {
SPI.transfer (c);
}
digitalWrite(CS, HIGH); // スレーブセレクトを無効化
delay(2000);
}
QTouch
QTouchの使用方法については、以下の例プロジェクトを提供しています:Seeed Studio XIAO SAMD21のQ-Touch機能を使用してフルーツピアノを作る方法。
アナログ入力と出力
PWMベースの「アナログ出力」を備えているだけでなく、SAMD21はデジタル-アナログコンバータ(DAC)という形で真のアナログ出力も提供します。このモジュールは0〜3.3Vのアナログ電圧を生成できます。これにより、より自然な音を持つオーディオを生成したり、「デジタルポテンショメータ」としてアナログデバイスを制御することが可能です。
DACはArduinoのピンA0でのみ利用可能で、analogWrite(A0, <value>
)を使用して制御します。DACは最大10ビットの解像度に設定可能です(セットアップでanalogWriteResolution(10)を呼び出すことを忘れないでください)。これにより、0〜1023の値が0〜3.3Vの間の電圧を設定します。
DACに加えて、SAMD21のADCチャネルはATmega328とは異なり、最大12ビットの解像度を備えています。これにより、アナログ入力値は0〜4095の範囲になり、0〜3.3Vの電圧を表します。ADCを12ビットモードで使用するには、セットアップでanalogReadResolution(12)を呼び出してください。
DACのシリアルプロット
以下はDACとADCの両方を示す例です。この実験を設定するには、A0をA1に接続します。A0にアナログ電圧を供給し、それをA1で読み取ります。これはチュートリアルで最も簡単な回路です:

Seeed Studio XIAO SAMD21拡張ボードを使用するSeeed Studio XIAO SAMD21
このスケッチはA0に0〜3.3Vの範囲の正弦波出力を生成します。その後、A1を使用してその出力をADCに読み取り、0〜3.3Vの電圧に変換します。
もちろん、シリアルモニタを開いて電圧値のストリームを確認することができます。しかし、正弦波がテキストで視覚化しにくい場合は、Arduinoの新しいシリアルプロッタを使用してみてください。Tools > Serial Plotterに移動します。


DAC
コードを提供してくれたAleksei Tertychnyiに感謝します。関連するすべての機能は彼によって開発および提供されました。
#define DAC_PIN A0 // コードを少し読みやすくする
float x = 0; // sinを取る値
float increment = 0.02; // xを各回増加させる値
int frequency = 440; // 正弦波の周波数
void setup()
{
analogWriteResolution(10); // アナログ出力解像度を最大値の10ビットに設定
analogReadResolution(12); // アナログ入力解像度を最大値の12ビットに設定
Serial.begin(9600);
}
void loop()
{
// 0〜1023の間の電圧値を生成
// 正弦波をこれらの値の間でスケールする:
// 511.5でオフセットし、sinを511.5倍する。
int dacVoltage = (int)(511.5 + 511.5 * sin(x));
x += increment; // xの値を増加
// 0〜3.3Vの間の電圧を生成
// 0= 0V, 1023=3.3V, 512=1.65Vなど。
analogWrite(DAC_PIN, dacVoltage);
// A1(A0に接続)を読み取り、12ビットADC値を
// 0〜3.3Vの電圧に変換
float voltage = analogRead(A1) * 3.3 / 4096.0;
Serial.println(voltage); // 電圧を出力
delay(1); // 1msの遅延
}
結果
はじめに
ハードウェア
必要な材料
- Seeed Studio XIAO SAMD21 x1
- コンピュータ x1
- USB Type-C ケーブル x1
一部のUSBケーブルは電力供給のみ可能で、データ転送ができない場合があります。USBケーブルをお持ちでない場合や、使用中のUSBケーブルがデータ転送可能かどうかわからない場合は、seeed USB type C support USB 3.1をご確認ください。
ステップ 1. Seeed Studio XIAO SAMD21 と Type-C ケーブルを準備します。
ステップ 2. Seeed Studio XIAO SAMD21 をコンピュータに接続します。その後、黄色の電源LEDが点灯するはずです。
ソフトウェア
Arduinoを初めて使用する場合は、Arduinoの使い方を参照することを強くお勧めします。
- ステップ 1. Arduinoソフトウェアをインストールします。
Arduinoアプリケーションを起動する
以前にダウンロードしたArduinoアプリケーション(arduino.exe)をダブルクリックします。
Arduinoソフトウェアが別の言語で読み込まれる場合は、設定ダイアログで言語を変更できます。詳細はArduinoソフトウェア(IDE)ページをご覧ください。
- ステップ 2. Blinkの例を開く
LED点滅の例スケッチを開きます:File > Examples > 01.Basics > Blink。
- ステップ 3. Arduino IDEにSeeeduinoを追加する
File > Preference をクリックし、以下のURLを「Additional Boards Manager URLs」に入力します:
https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
Tools-> Board-> Boards Manager... をクリックし、検索欄に "Seeed Studio XIAO SAMD21" と入力します。「Seeed SAMD Boards」が表示されますので、これをインストールします。
- ステップ 4. ボードとポートを選択する
ボードをインストールした後、Tools-> Board をクリックし、 "Seeed Studio XIAO" を見つけて選択します。これで、Arduino IDE用にSeeed Studio XIAO SAMD21のボード設定が完了しました。
Arduinoボードのシリアルデバイスを Tools | Serial Port メニューから選択します。通常、COM3以上が該当します(COM1 と COM2 は通常ハードウェアシリアルポート用に予約されています)。確認するには、Arduinoボードを切断してメニューを再度開き、消えたエントリを確認してください。それがArduinoボードです。再接続してそのシリアルポートを選択します。
- ステップ 5. プログラムをアップロードする
環境内で「Upload」ボタンをクリックします。数秒待つと、アップロードが成功した場合、ステータスバーに「Done uploading.」というメッセージが表示されます。
アップロードが完了して数秒後、ボード上のピン13(L)LEDが点滅(オレンジ色)を開始するはずです。点滅した場合、おめでとうございます!Arduinoのセットアップが完了しました。問題がある場合は、トラブルシューティングの提案を参照してください。
フラッシュの最大サイズは8KBです。詳細はリソース内のATSAMD218A-MUデータシートをご覧ください。
サンプルアプリケーション
Raspberry Pi を使用して壊れた XIAO を復旧する方法。John_Doe さんの共有に感謝します。
リソース
[PDF] ATSAMD218A-MU データシート
[電子書籍] XIAO: Big Power, Small Board Mastering Arduino and TinyML
🔗 [Kicad] Seeed Studio XIAO SAMD21 フットプリント
コースリソース

技術サポート & 製品ディスカッション
当社の製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。お客様の好みやニーズに応じた複数のコミュニケーションチャネルをご用意しています。