可愛すぎて一目惚れしました!
ぽっ! きゃー
・・・いや、ぴーちゃんの事じゃなくて、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 (ポブラニアン):画像や図形を組み合わせて空中にお好みの絵を投影する装置
これ作りたいなー!
ツールのUSB Stack は、 TinyUSBを選択とな。ほほー。
あれこれ調査していると、PlatformIOも対応しているようです。まだ試していませんが、メモしておきます。
開発環境:PlatformIO Seeeduino XIAO
SeeedのWikiにあるやつですが、リンク先だけメモしておきます。
いろいろありますねー。こんなこともできるみたいです。
Seeeduino XIAO マイコンで TOPPERS を始めよう
TOPPERS/R2CAというマルチタスク処理ができる
Seeeduino_XIAOでArduino Keyboard.h互換ライブラリを利用してMicrosoft Teamsミュートキーを作製する
楽しそうなのがいっぱいありますね。
XIAOを組み込んでいるハードウェア作家さんもいましたよ!
XIAO DAP
https://sites.google.com/view/chikoidac/home/xiao_dap
Seeeduino XIAO をメインコントローラとした、DigitalAudioPlayer
まだ販売はされていないとのことですが、販売されたら組み立てKITを買ってみたいです!
まとめ
今回、なんとなくわかったのは以下となります。
・XIAOはコスパ最高でないか!
・Type-Cが良い!
・Arduino IDE 互換で、SAMD21系のarduino
・本家では、Arduino Zero・M0 Proに使われている
・3.3v動作でクロックが速く、フラッシュメモリも多い
・しかしEEPROMがないようです フラッシュメモリに保存する?
・USB関連のプロダクトやシリアル通信系の応用とか相性良さそう
・SMD実装がやりやすい(ので、基板設計して使うのとか良いですね)
あとがき
このボード、本当に小さくて応用次第では面白い組込ができそうだなーと感じています。まずは3つあるので、何か実用的な何かを1、2つ作ってみたいですね。1つは、開発用にしておいて残りは実験的に何か実際に作ってみようと思います。まずは、できそうなことからやってみましょうか!
著者にメッセージ
間違いのご指摘など、コメントじゃなくて、個人的にやりとりしたい場合はこちらからどうぞ。お返事が遅くなるときもありますが、ご了承を。