Seeeduino XIAOをつかってみた
※本ページには、プロモーション(広告)が含まれています。
Seeeduino XIAOを手に入れたので使ってみました。
M5 Atom(写真右のやつ)よりも、一回りくらい小さいです。
スペック
スペックはこんな感じ。
- CPU:Arm Cortex-M0+ 32ビット 48 MHz(SAMD21G18)
- ストレージ:256 KB Flash、32 KB SRAM
- ピン数:14(入出力 ×11、5 V ×1、3.3 V ×1、GND ×1)
- インターフェース: I2C ×1、UART ×1、SPI ×1
- サイズ:20 × 17.5 × 3.5 mm
スペック情報は、スイッチサイエンスさんのページから引用させていただきました。
Arduino互換機で、スケッチの書き込みにはArduinoIDEが使えます。
USB Type-Cで給電・書き込みができるのは個人的にポイント高いです。
ArduinoIDEの設定
こちらを参考にArduinoIDEを設定しました。
Lチカしてみる
マイコンボードを手に入れたらとりあえずLチカするのが定石なので、今回もLチカしてみました。5つのLEDをランダムに点灯させてみます。
random関数、randomSeed関数については、下のページを参考にさせていただきました。
http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=2901
https://garretlab.web.fc2.com/arduino_reference/language/functions/random_numbers/randomSeed.html
random関数は疑似乱数のため、スケッチを実行するたびに毎回異なる値がほしいときは、未接続のピンの値(ノイズ)等を利用して擬似乱数列を初期化してあげる必要があるのだそう。
正直よくわかってないとこもあるので、間違ってたら教えてください...
今回書いたプログラムでは、Seeeduino XIAOの0ピンを未使用とし、1~5ピンにLEDをつなぎました。
long randNumber; void setup() { Serial.begin(115200); // 115200bpsでシリアルポートを開く randomSeed(analogRead(0)); // 0ピンのノイズを利用 // 1~5ピンを出力に設定 pinMode(1, OUTPUT); pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); } void loop() { randNumber = random(1, 6); // 1以上6未満の乱数を生成 Serial.println(randNumber); // シリアルにプリント digitalWrite(randNumber, HIGH); // LEDを点灯 delay(500); // 0.5秒待つ digitalWrite(randNumber, LOW); // LEDを消灯 }