SpresenseでI2C通信 (Qwiic接続基板/M5StickC Joystick Hat)

導入

Spresenseを購入したのですが、エッジAIとしてはまだうまく使いこなせておらず…
ひとまず、M5Stackシリーズで使っていたI2Cデバイスを使ってみるところから始めてみました。
また、Spresense用のQuiic接続用の基盤も購入したので、そちらも使用してみました。

使用したもの

・Spresenseメインボード
・Spresense拡張ボード

SonyのAI推論も可能な高性能ボードコンピュータです。基本はArduinoと同じように使用可能です。
拡張ボードをつけることで、ArduinoUnoと同様のピン配置で使用することができます。
(今回やる内容では、拡張ボードは不要ですが、取り外すのが手間だったのでつけたまま使用しています。)
www.sony-semicon.com

・M5StickC Joystick Hat
I2C通信で、X,Y軸の変位(-127 - 127)と押し込み(0 or 1)を取得できるジョイスティックです。
docs.m5stack.com

・SPRESENSE用Qwiic接続基板
SpresenseのI2C通信に、Qwiic端子を使用するための基盤です。
SPRESENSE用Qwiic接続基板www.switch-science.com

配線

I2Cなので、4本のケーブルを繋ぐだけです。
まずは、Quiic接続基盤なしで、Spresenseのメインボードに直接ピンを繋いでみました。
Joystick Hatは、M5StickCに接続するためにピンが8本ありますが、実際に使用するのは4本だけです。

Joystick Hat Spresense
GND GND
VCC 3.3V
SDA D14
SCL D15

https://www.sony-semicon.com/ja/products/spresense/index.html

以下のように接続しました。
黄色がGND、紫色が3.3V、緑色がSCL、青色がSDAです。

Spresenseのピンへ直接接続

Qwiic接続基盤を用いて、Qwiic-4ピン(メス)ケーブルで接続すると、以下のようになります。
黒色がGND、赤色が3.3V、黄色がSCL、青色がSDAです。

Qwiic接続基盤を用いて接続

実践

以下のようなコードで、Joystick Hatの値を読み取って、シリアル通信でデータを表示するようにしました。

動作することが確認できました!

シリアルモニタで動作を確認