Seeeduino XIAOのデジタル出力

Seeed K.K. エンジニアブログにも記事をポストしていますが、雑多な感じのものはこっちの個人ブログへポストすることにします。

Seeeduino XIAO、ちっちゃカワイイので、のんびりじっくりと時間をかけて楽しもうと思っています。

f:id:matsujirushix:20200418162027p:plain

www.seeedstudio.com

さっそく、基本中の基本、デジタル出力を確認しましょう。

ハードウェア

下図の「D〇」のピンがデジタル入出力で使えるみたい。

f:id:matsujirushix:20200418162232p:plain

ということは、、、つまり、(電源を除いた)どのピンでもデジタル入出力可能!!
ほほー。

ってことで、D0とD1に、LED-電流制限抵抗-GNDの流れを結線しました。

f:id:matsujirushix:20200418162540p:plain

ソフトウェア

LED1が点灯(0.2秒)、LED2が点灯(0.2秒)、消灯(1秒)を繰り返すコードを作成しました。

constexpr int LED1 = 0; // D0
constexpr int LED2 = 1; // D1

void setup()
{
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
}

void loop()
{
  digitalWrite(LED1, HIGH);
  digitalWrite(LED2, LOW);
  delay(200);
  
  digitalWrite(LED1, LOW);
  digitalWrite(LED2, HIGH);
  delay(200);
  
  digitalWrite(LED1, LOW);
  digitalWrite(LED2, LOW);
  delay(1000);
}

実行!

えー、点滅しました。(動画は割愛w)

デジタル出力のピン番号って不思議ですよね?

Seeeduino XIAOの回路図を見ると、D0はSAMD21マイコンのPA2に接続されています。

f:id:matsujirushix:20200418163106p:plain

f:id:matsujirushix:20200418164413p:plain

でも、digitalWrite()に指定するピン番号は2ではなくて0...。

どこかで番号を変換(マッピング)していると思われるので、探しました。

定義しているのはココ。Platformのvariants\XIAO_m0\variant.cppでした。

f:id:matsujirushix:20200418163851p:plain

そして、これを使っている箇所は、、、色々w
デジタル出力のときは、cores\arduino\wiring_digital.cでした。

f:id:matsujirushix:20200418164112p:plain

ESP32-Azure IoT Kit ハード編

Microsoftのブログをつらつらと見ていたところ、ESP-WROOM-02やESP32-WROOM-32でお馴染みの、Espressifのデバイスが簡単にAzure IoTへ接続できるよ!という記事が。

techcommunity.microsoft.com

続きを読む

MediaTek MT3620 M4 Driverを(ざっくり)調べた

Azure Sphere MT3620のCortex-A7(HLApp)に対しては、Azure Sphere SDKライブラリが含まれていますが、Cortex-M4(RTApp)に対してはライブラリが提供されていません。軽く作るならgithubに公開されているサンプルコードを流用、ちゃんと作るならNDA契約の下、M4データシートを入手して様々なレジスタと格闘することになります。

そんな状況がしばらく続いていましたが、先日、MT3620を製造するMediaTekから、M4向けライブラリがオープンソースで(!)公開されました。

techcommunity.microsoft.com

そこで、このMediaTek MT3620 M4 Driverがどんな雰囲気のものなのか調べました。

続きを読む

IoT Hubへ接続するときの認証やキーなど

2017年に書いた「Azure IoT HubのSASトークンについて」が、いまでもまぁまぁなアクセス数があります。

matsujirushi.hatenablog.jp

Azure IoT SDKsを使わずに、Azure IoT HubにMQTT, AMQP, HTTPSなどで接続するにはSASトークという文字列を渡さなければいけないのだが、このSASトークが一体何者か良く分からない。

この記事では、SASトークにフォーカスして書いていましたが、、、
2年経って、ようやく理解できた(!)ので、少し広い視野で、IoT Hubへ接続するときの認証やキーなどを、体系立てて書いてみたいと思います。

続きを読む