M5NanoC6でできること 〜M5NanoC6の使い方

「M5NanoC6」という製品を購入しました。

「M5NanoC6」は「ESP32-C6FH4」というマイコンを搭載したデバイスで、RGB LEDやGROVE端子、USB Type-Cポートなどが搭載されています。
特筆すべきはその「価格」と「大きさ」です。
2024年7月時点で、「M5NanoC6」のスイッチサイエンスでの販売価格は 1,155円 となっています。「M5Stack Basic(6,743円)」や「ATOMS3(2,783円)」などのM5Stack社製品よりも大幅に安く、USBポートのない「M5Stamp Pico(1,144円)」と並び、M5Stack社製マイコンデバイスの中では非常に安価です。
また、「M5NanoC6」のサイズは、これまでとても小さいと感じていた「ATOM」シリーズのさらに半分程度の大きさです。これだけ小さいにも関わらず、USBポートやGROVE端子が搭載されており、IoTデバイスとしても使いやすそうです。
低価格で小さいことから、大量のIoTデバイスを設置するような用途に適していると思われます。

左端の青いデバイスが「M5NanoC6」です。

実はこの「M5NanoC6」を購入したのはもう何ヶ月も前のことになるのですが、その時点ではまだ「Arduino IDE」での開発環境があまり整っていなかったため、封も開けずに放置してありました。
最近になって開発環境も整備されてきたようなので、ようやく「M5NanoC6」の動作確認を行ってみることにしました。

今回は「MacBook Pro」を使って動作確認を行います。また、使用する「Arduino IDE」のバージョンは「1.8.19」です。
「M5NanoC6」用のArduino IDE環境を構築することによって、他のマイコンデバイスの利用に影響が出るのも嫌なので、今回はMacBook Pro上で、普段使用しているのとは異なるアカウントを新たにつくり、そのアカウントで新規に「M5NanoC6」用のArduino IDE環境構築を行うことにします。

環境構築の手順は以下のとおりです。

  • Arduino IDEを起動します(利用しているバージョンは「1.8.19」です)。
  • 「Arduino」>「Settings…」をクリックします。
  • 「環境設定」ウィンドウが表示されるので、「追加のボードマネージャのURL」に以下を追加して「OK」をクリックします。
https://espressif.github.io/arduino-esp32/package_esp32_index.json
  • 「ツール」>「ボード:」>「ボードマネージャ…」をクリックします。
  • 「ボードマネージャ」ウィンドウが表示されるので、検索窓に「esp32」と入力します。
  • 検索された「esp32 by Espressif Systems」で「インストール」をクリックします。なお「M5NanoC6」を使うためには、ここで「3.0.0」以降のバージョンをインストールしなければいけないようです。今回は「3.0.3」をインストールしました。インストールが完了したら「閉じる」をクリックしてウィンドウを閉じます。
  • 「ツール」>「ボード:」>「ESP32 Arduino」>「ESP32C6 Dev Module」を選択します。
  • 「ツール」>「ライブラリを管理…」をクリックします。
  • 「ライブラリマネージャ」ウィンドウが表示されるので、検索窓に「m5nanoc6」と入力します。
  • 検索された「M5NanoC6 by M5Stack」で「インストール」をクリックします。インストールが完了したら「閉じる」をクリックしてウィンドウを閉じます。
  • USBケーブルでMacと「M5NanoC6」を接続し、「ツール」>「シリアルポート」で対応するデバイスを選択します(私の環境では「/dev/cu.usbmodemXXXX(ESP32 Family Device)」と表示されました)。
「M5NanoC6」では、USBシリアル変換機能が「ESP32-C6」に内蔵されているため、例えばデバイスがディープスリープしている時などはスケッチの書き込みができないようです。
 このような場合、「M5NanoC6」の前面ボタンを押しながらPCと接続することでダウンロードモードになり、スケッチを書き込むことができるようになります。

これで環境構築は完了です。

それでは、あらかじめ準備されているサンプルスケッチをいくつか試してみようと思います。
まずは「led」です。

  • 「ファイル」>「スケッチ例」>「M5NanoC6」>「Basic」>「led」を選択します。
  • 「led」スケッチウィンドウが表示されるので、「→」をクリックして「M5NanoC6」に書き込みます。
  • 書き込みが完了すると、「M5NanoC6」裏面にある青色LEDが1秒間隔で点滅します。

次に「button」というサンプルを試してみます。

  • 「ツール」>「USB CDC On Boot」を「Enabled」に切り替えておきます。
  • 「ツール」>「シリアルモニタ」をクリックしてシリアルモニタを開きます。
  • 「ファイル」>「スケッチ例」>「M5NanoC6」>「Basic」>「button」を選択します。
  • 「button」スケッチウィンドウが表示されるので、「→」をクリックして「M5NanoC6」に書き込みます。
  • 書き込みが完了した後、「M5NanoC6」前面にあるボタンを押すと、シリアルモニタに「Button A was pressed」「Button A was hold」「Button A was released」といったメッセージが表示されます。

もうひとつ「rgb_led」というサンプルも試してみます。このスケッチを利用するためには「Adafruit NeoPixel」というライブラリをインストールしておく必要があります。

  • 「ツール」>「ライブラリを管理…」をクリックします。
  • 「ライブラリマネージャ」ウィンドウが表示されるので、検索窓に「neopixel」と入力します。
  • 検索された「Adafruit NeoPixel by Adafruit」で「インストール」をクリックします。インストールが完了したら「閉じる」をクリックしてウィンドウを閉じます。
  • 「ファイル」>「スケッチ例」>「M5NanoC6」>「Basic」>「rgb_led」を選択します。
  • 「rgb_led」スケッチウィンドウが表示されるので、「→」をクリックして「M5NanoC6」に書き込みます。
  • 書き込みが完了すると、「M5NanoC6」前面にあるRGB LEDの色が0.1秒間隔で切り替わります。

「M5NanoC6」用のArduino IDE環境構築と動作確認が問題なく実施できました。
やはりとても扱いやすそうなので、今後いろいろな用途に使っていこうと思います。


なお、私がM5Stack、M5StickCの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。


ごく基本的なところから、かなり複雑なスケッチや、ネットワーク接続など、比較的高度なものまで、つまづかずに読み進めていけるような構成になっており、大変わかりやすい本です。


このサイトで書いている、M5Stackシリーズ(M5Stack、M5StickCなど)に関するブログ記事を、「さとやまノート」という別のブログページに、あらためて整理してまとめました。

他のM5Stackシリーズの記事にも興味のある方は「さとやまノート」をご覧ください。