小指サイズM5Stack NanoC6のファーストタッチをしてみた

M5 Stackシリーズで、新しく小指サイズのM5Stack NanoC6が販売されたので、Arduino IDEでファーストタッチしてみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/6ae706fb-3a7f-499e-2e1e-a5b863fb4cb1.png)


https://www.switch-science.com/products/9570

SoCは、ESP32-C6ということでRISC-Vです。Wi-Fi 6 (2.4GHz)、Zigbee 3.0、Thread 1.3、Matterに対応しているとのこと。（Bluetoothは無い？）
フルカラーLEDと青LED、ボタン、赤外線LEDがそれぞれ１つずつ搭載されていて、外部モジュール接続用にGrove互換コネクタ、PCとの接続や電源用にUSB Type-Cが用意されています。

パッケージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/cf8ef1b2-c373-1310-95fa-4219d80ad77b.png)

表にはボタンとGrove互換コネクタ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/7ffd856c-df3e-55a1-6f16-48e7155e402d.png)

裏には、それぞれのポート名が書かれています。技適マークも書かれてます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/11b60f32-0833-7649-b78e-449adef48561.png)

ATOM Liteとの比較。ATOM Liteでも十分小さいと思ってましたが、その半分無いぐらいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/d6332b64-91e8-102a-ec55-442a90515776.png)

## Arduino IDEの設定
Arduino IDEのボード定義で、ESP32が追加されていない場合は、以下の手順で追加します。すでに登録している場合は、５から実施する。

１. 「ファイル」⇒「基本設定」を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/a3540ba2-7027-c40a-94ea-2fb9555d668f.png)

２. 追加のボードマネージャのURLを編集するボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/b5dfc03d-f9d3-56e7-e835-f12cdb33e119.png)

３. 以下のボードマネージャのURLを追記して、「OK」をクリック

```
https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/fdb7a430-cde9-3f1a-4e81-ee7b13116dda.png)

４. ボードマネージャを開き、`ESP32`で検索。「esp32」をインストール

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/1fbab2d0-5de1-12fe-061b-d06e92c1b725.png)

５．「ツール」⇒「ボード」⇒「esp32」⇒「ESP32C6 Dev Module」を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/e7c095f8-e5f0-3a9a-7f73-45ecf84eedfe.png)

これで、Arduino IDEの設定は完了です。

## M5Stack NanoC6用のライブラリをインストール
ピンの定義や初期化処理が用意されているM5Stack NanoC6用のライブラリをインストールすればファーストタッチが簡単です。

１. 以下のURLにアクセスし、ZIP形式のパッケージをダウンロードします。

https://github.com/m5stack/M5NanoC6

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/22a61e0d-959d-e85c-3285-c971d3767883.png)

２. 「スケッチ」⇒「ライブラリをインクルード」⇒「ZIP形式のライブラリをインストール」からダウンロードしたZIPファイルを選択すればインストールできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/ddc58f42-be88-e8aa-568c-7eea05630826.png)

## Lチカ
ライブラリの中にLチカのサンプルがあるので、それをM5Stack NanoC6に書き込みます。

１. M5Stack NanoC6をUSBでPCに接続するとシリアルポートとして認識されますので、それを「ツール」⇒「ポート」で選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/f6052914-2af5-0b75-8aeb-8a2ee6202d80.png)

２. 「ファイル」⇒「スケッチ例」⇒「M5NanoC6」⇒「Basic」⇒「led」を開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/d34bc30c-0c4e-403c-213d-a9453404dc81.png)

３．書き込みをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/e23f6dd3-04e5-6d59-4bc2-b4301382cd37.png)

書き込みが完了すると以下のように表示されますが、書き込みが完了した時点で書き込んだスケッチが動作します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/77f8462d-993a-a7bc-4c35-7e509cce8fc0.png)

M5NanoC6裏の青いLEDが点滅します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/573cf2d6-e3fc-94f0-d9b8-472fa9ed9db3.png)

## ボタンをお試し
M5NanoC6には、ボタンが付いているのこれの読み込みも試してみます。
サンプルスケッチは、「button」を使用しました。

ボタンを押したり、離したり、長押し、したりするとそれに応じたメッセージがシリアルモニタに出力されるスケッチですが、シリアルモニタへの出力を行う際に「USB CDC On Boot」を`Enable`にする必要があります。

「ツール」⇒「USB CDC On Boot」⇒`Enable`を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/915d3460-dbbd-9580-c35d-954a161ac085.png)

設定後、スケッチを書き込むとボタンの状態に応じたメッセージがシリアルモニタに表示されることが確認できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109992/e1195100-6fef-3a85-df49-df426d743d3c.png)

## 最後に
まずはファーストタッチで手軽に触ってみましたが、[ATOM LiteやMatrixで試したようなこと](https://qiita.com/jksoft/items/fa92281f90bcbc32929c)は、同じ様にできるはずなのとMatterに対応してるとのことなので、Amazon Echoとの連携とかもできそうですね。
だいぶ小型なので、ちょっとしたところにも仕込めそうですので、いろいろ試してみたいと思います。