久しぶりに一目惚れしたArudio互換機のSeeeduino XIAO

じゃんくはっく
じゃんくはっく

可愛すぎて一目惚れしました!

ぽっ! きゃー

ぴー
ぴー
じゃんくはっく
じゃんくはっく

・・・いや、ぴーちゃんの事じゃなくて、SeedのXIAOっていうArduio 互換機のことよ。

こんなチビっこいマシンに負けたのか・・・w

ぴー
ぴー

サムネでもわかるとは思いますが、これ全体のフォルムがかわいいんですよね。あと想像よりもちっさいんです。親指くらいの大きさなんですよ。発売は去年の3〜6月ごろだったみたいですが、今頃発見です。

3個入りパッケージで1,750円!

Wiki Seeeduino Xiaoをはじめよう

https://wiki.seeedstudio.com/jp/Seeeduino-XIAO/

Seeedの日本語版のWikiもありますので、大きさなどはそちらでどうぞ。上の写真は3個入りのをアマゾンからゲットしました。3個入りで1800円弱です。1つ600円ってとこですかね。

中身! 想像より、ちっちゃい!親指に乗りますよ。

ESP32と遊んでからだいぶ月日が経ちましたが、大きさはそのくらいです。ブレッドボードに刺さるのでPinつけてすぐ楽しめますね!

まずはボードをじろじろと見る!

Type-Cコネクタが付いていて、端面がスルーホールになっていて面実装も考慮されていますね。このType-Cコネクタは6ピンタイプじゃなくて12ピンです。あと、LEDらしきものが4つ付いています。

金属のカバーで覆われていますので、その中が気になるところですがまずは、PIN番号が表からわかるようにシールを貼っておきました。なかなか気が利いていますね! Seeedさん、このプロダクトをリリースするにあたりいろいろ気合いが入っているようです。

裏面を見ると、SMD実装したときのVIN,GNDがありますね。4つの丸いのは、なんでしょうか?

調べてみると、英語版Wikiによれば、Newバージョンだとこの丸いのが4つあるようです。

Seeed 英語版Wiki:hardware-overview

Wiki

どうやら、SWCLK (PA30) と SWDIO (PA31) のGPIOのようです。

qita : Seeeduino XIAO 背面パッドをGPIOとして使う

https://qiita.com/nanase/items/37ecca24aee8fbd4492e

だいぶ時間が経過しているので、先輩たちがあれこれ情報をあげていてくれて助かりますね。

やっぱり、Type-C が付いているところがうれしいです。接続しやすいですからね!

動作確認

Type-Cケーブル(スマホでいつも使っているやつね)をPCに繋げて、おもむろにXAIOに繋げてみます。ケーブルのほうが重いので、本体が浮きます! 

オレンジ色のLEDがピカピカしてますね!

とりあえずLチカ

Arudio IDEを使って、Lチカでもやってみます。SeeedのWikiにしたがってIDEは仕込みんでおきます。久しぶりすぎて書き方、だいぶ忘れちゃいました。

この2つのブルーLEDは、RX/TXのLEDなんですがIDEからも定義されているので、光らせることができるようです。デジタル出力だけかなと思っていましたが、アナログでもいけるようですね。

//setup()内の処理は最初の一回だけ行われる
void setup() {
  pinMode(PIN_LED2, OUTPUT );//Pinを出力用に設定
  pinMode(PIN_LED3, OUTPUT);
  int led_pw = 255; // 明るさ(通常とは逆) 明るい0 - 255暗い
}

void loop() {
  rx_led2( 2 ); //明るさ調整ステップ
  rest();
  tx_led3( 2 ); //明るさ調整ステップ
  rest();
}

// RXとLED 基盤側の青LED
void rx_led2(int n){
  int led_pw = 255;
  //点滅周期
  for (int i=0;i < 255;i++ ) {
    analogWrite(PIN_LED2, led_pw );
    led_pw = led_pw + n;
    if( led_pw ==   0 ) n =  n;
    if( led_pw == 255 ) n = -n;
    delay( 5 );//だんだん暗くなる速度
  }
//  digitalWrite(PIN_LED2, HIGH ); //通常とは逆 LOW で点灯、HIGH で消灯
analogWrite(PIN_LED2, 255 );// LED Off 上より暗くなる
}

// TXのLED USBコネクタ側の青LED
void tx_led3(int n){
  int led_pw = 255;
  for (int i=0;i < 255;i++ ) {
    analogWrite(PIN_LED3, led_pw );
    led_pw = led_pw + n;
    if( led_pw ==   0 ) n =  n;
    if( led_pw == 255 ) n = -n;
    delay( 5 );
  }
analogWrite(PIN_LED3, 255 );// LED Off
}

void rest() {
    delay( 500 );
}

いろんな値を書き換えて遊んでみてください。

注意点としては、HIGHとLOWが逆なのと、255が暗く、0が明るい状態となるようです。これは仕様なのかバグなのか? Seeedさん、これは修正してほしいです。

XIAOはどんなスペックなのか?

このボード、一目惚れして速攻買ったのでどんなスペックかまだよくわかっていません。改めて、記載してみます。

製品名称 Seeeduino XIAO
マイコン ARM Cortex-M0+ CPU(SAMD21G18) 
動作電圧 3.3V
デジタル I/O ピン 11
PWM Pins 10
アナログ I/O ピン 11
フラッシュメモリ 256 KB
SRAM 32KB
EEPROM
クロックスピード 48 MHz
大きさ 23.5mm x 17.5mm
価格 $4.90

だいぶarduinoから離れていて、このあたり疎いのですがどうやら ATSAMD21は、アーキテクチャーはARM Cortex-M0+ CPU(SAMD21G18) のようです。Arduino Zero・M0 Proっていうボードにも使われているやつみたいですね。SAMD21系のarduinoとか表現されている感じです。または、単にSAMD系Arduinoとか。

ARM CORTEX-M0+

https://www.arm.com/ja/products/silicon-ip-cpu/cortex-m/cortex-m0-plus

メジャーなArduino との比較表です。自分は、Nanoシリーズ互換機か、Pro Miniが好きです。安いからw

ボード マイコン 動作電圧 Digital I/O PWM Analog I/O Flash Memory SRAM EEPROM クロックスピード 大きさ 価格
Arduino Nano v3 ATmega328 5V 22 6 8 32KB 2KB 1KB 16MHz 45 mm x 18 mm $45.90
Seeeduino Nano ATmega328 5V 22 6 8 32KB 2KB 1KB 16MHz 45 mm x 18 mm $6.90
Arduino Micro ATmega32u4 5V 20 7 12 32KB 2.5KB 1KB 16MHz 48 mm x 18 mm $24.90
Arduino Pro Mini ATmega328 5V / 3.3V 14 6 6 32KB 2KB 1KB 8 /16MHz 33 mm x 18 mm $9.95
Trinket M0 ATSAMD21 3.3V 5 2 3 256KB 32KB 48MHz 27mm x 15.3 mm $8.95
Seeeduino XIAO
ATSAMD21
3.3V 11 10 11 256KB 32KB 48MHz 23.5mm x 17.5mm $4.90

NanoやProMiniの互換機は、アリエクで200〜300円くらいなんですが、それと比べると600円は高いかもしれませんが、倍以上のスペックはありますね。

こうして比較してみると、コスパがいいんじゃないでしょうか。まぁ、こんな高スペックは必要ないっていう用途もあるんで使い所次第ですかね。

今後に備え応用例や試したことなどメモ

発売からもうすぐ1年経過するので、どんな応用例があるかリサーチしてみました。また、開発する上で役立ちそうなメモをしておきます。

Seeed:Seeeduino XIAO Resources Roundup. What will be your next project idea made by Seeeduino XIAO?

リンク

まず、オフィシャルのSeeedのブログでいくつか紹介されています。その中から独断と偏見で面白そうなプロジェクトをピックアップ。

MIDIをコントロールできるので、オリジナルコントローラとかセンサー駆動の楽器とか?

サイトでは、違うボードを使っていますがXIAOでも同じことが可能。画像や図形を組み合わせて空中にお好みの絵を投影する装置。

PovRanian 装置

PovRanian (ポブラニアン):画像や図形を組み合わせて空中にお好みの絵を投影する装置

これ作りたいなー!

エアロバイクでストリートビュー進みたい!! (その3)(Seeeduino XIAO化してみた)

ツールのUSB Stack は、 TinyUSBを選択とな。ほほー。

あれこれ調査していると、PlatformIOも対応しているようです。まだ試していませんが、メモしておきます。

開発環境:PlatformIO Seeeduino XIAO

USBホストライブラリSAMD

SeeedのWikiにあるやつですが、リンク先だけメモしておきます。

Seeeduino XIAOをUSBデバイス(TinyUSB)として使う

Seeeduino XIAO の使い方

カムロボの顔用基板を作ってみた [Xiao版]

Seeeduino XIAOを使って二酸化炭素測定する SparkFunライブラリVer

fritzingのパーツ

Seeeduino XIAOのタッチ入力

Seeeduino XIAOのデジタル入力

Seeeduino XIAOのデジタル出力

Arduinoで超音波センサHC-SR04の使い方【距離測定】

ArduinoでOLED

シリアルLED(WS2812B)をArduinoで制御

【Seeeduino XIAO】RS232cから受信した信号をUSB HIDで送信してみる

Seeeduino XIAO でPWM調光のLチカとI2CのLCDを使ってみる

いろいろありますねー。こんなこともできるみたいです。

Seeeduino XIAO マイコンで TOPPERS を始めよう

TOPPERS/R2CAというマルチタスク処理ができる

Seeeduino_XIAOでArduino Keyboard.h互換ライブラリを利用してMicrosoft Teamsミュートキーを作製する

楽しそうなのがいっぱいありますね。

XIAOを組み込んでいるハードウェア作家さんもいましたよ!

XIAO DAP
Seeeduino XIAO をメインコントローラとした、DigitalAudioPlayer

https://sites.google.com/view/chikoidac/home/xiao_dap

まだ販売はされていないとのことですが、販売されたら組み立てKITを買ってみたいです!

まとめ

今回、なんとなくわかったのは以下となります。

・XIAOはコスパ最高でないか!
・Type-Cが良い!
・Arduino IDE 互換で、SAMD21系のarduino
・本家では、Arduino Zero・M0 Proに使われている
・3.3v動作でクロックが速く、フラッシュメモリも多い
・しかしEEPROMがないようです フラッシュメモリに保存する?
・USB関連のプロダクトやシリアル通信系の応用とか相性良さそう
・SMD実装がやりやすい(ので、基板設計して使うのとか良いですね)

あとがき

このボード、本当に小さくて応用次第では面白い組込ができそうだなーと感じています。まずは3つあるので、何か実用的な何かを1、2つ作ってみたいですね。1つは、開発用にしておいて残りは実験的に何か実際に作ってみようと思います。まずは、できそうなことからやってみましょうか!

著者にメッセージ

間違いのご指摘など、コメントじゃなくて、個人的にやりとりしたい場合はこちらからどうぞ。お返事が遅くなるときもありますが、ご了承を。