🌟

M5Dialの開発手順(M2 Mac環境)

2023/10/22に公開

数年ぶりにM5Stack系の開発をしたら、素直に動かなかったので、開発手順をメモ。

USBドライバを入れる

https://github.com/WCHSoftGroup/ch34xser_macos
M2 Macの場合はこれを CH341SER_MAC.ZIP をダウンロードする。
解凍して CH34xVCPDriver.dmg を実行する。

VSCodeにPlatformIO IDEを入れる

拡張機能からPlatformIO IDEをインストールする

プロジェクトを作成する

PlatformIOの画面からプロジェクトを作成する

  • Board: M5Stack StampS
  • Framework: Arduino

ライブラリを追加する

PlatformIOのサイドメニューのLibrariesを開き、M5Unifiedを検索して選択、Add to Projectボタンを押す。M5Dialも同様に検索して追加する。

  • M5Unified
  • M5Dial

sslモジュールの警告は無視していい

ターミナルに以下の警告が出るけど、無視していい。注意文を表示してるだけ。
プロジェクトの作成には時間がかかるので、この警告で失敗してると判断せず、作成完了を待つ。

/Users/morita/.platformio/penv/lib/python3.9/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020
  warnings.warn(

not declaredエラーが発生したら...

プロジェクト作成完了し、簡単なコードでビルドするとエラーで失敗する。
エラー内容を抜粋すると以下の通り。

error: 'SCK' was not declared in this scope
error: 'MISO' was not declared in this scope
error: 'MOSI' was not declared in this scope
error: 'SS' was not declared in this scope

解消方法:platformio.iniにplatform_packagesを追加する

このイシューコメントの方法で解消できた。
https://github.com/espressif/arduino-esp32/pull/8187#issuecomment-1683001064
この1行を追加するとエラーが解消される。

platform_packages = framework-arduinoespressif32 @ https://github.com/bsergei/arduino-esp32.git#issue-8185

追加後のplatformio.iniはこんな感じ。

[env:m5stack-stamps3]
platform = espressif32
board = m5stack-stamps3
framework = arduino
platform_packages = framework-arduinoespressif32 @ https://github.com/bsergei/arduino-esp32.git#issue-8185
lib_deps = 
	m5stack/M5Dial@^1.0.1
	m5stack/M5Unified@^0.1.10

今後 espressif32 が更新されれば、この手順は不要になるのだと思う。
2023年10月22日現在のバージョンは6.4.0

簡単なコード例

画面に0.5秒ごとに文字列を表示する。
main.cpp

#include <M5Unified.h>

void setup()
{
  M5.begin();
}

void loop()
{
  M5.Display.print("Hello World!");
  M5.delay(500);
}

M5Dialの機能を使うサンプルコードはGitHubにある。
https://github.com/m5stack/M5Dial/tree/master/examples/Basic
回転機能を使う例
https://github.com/m5stack/M5Dial/blob/master/examples/Basic/encoder/encoder.ino

実行方法

ウィンドウ左下で操作する。

  • ✔️ボタン:ビルド
  • →ボタン:ビルド&転送

Discussion