M5UnifiedでM5Stackの環境構築
M5Stack買いました
爆買いしました。
購入はスイッチサイエンスさんからです。
色々なM5Stackがあります。M5Stackの開発環境、今までは機種によってバラバラだったのが、スーパーエンジニアらびやん氏により、共通のライブラリM5Unifiedが開発されました。詳しくは以下参照ください。
M5Unified環境構築
導入方法は以下の公式サイト情報が分かりやすいです。
ただ、私の環境では、最後に以下のようにエラーが発生してしまいました。
Serial port /dev/cu.usbserial-140
Connecting......................................
A fatal error occurred: Failed to connect to ESP32: No serial data received.
For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html
*** [upload] Error 2
====================================================================== [FAILED] Took 12.99 seconds ======================================================================
* ターミナル プロセス "platformio 'run', '--target', 'upload'" が終了コード 1 で終了しました。
* ターミナルはタスクで再利用されます、閉じるには任意のキーを押してください。
エラーメッセージをみると、シリアルポートが間違っているようですね。あるあるですね。というわけでDeviceのSerialからデバイス名を確認します。M5StackのUSBケーブルを差したり抜いたりして、増えたり減ったりするやつがM5Stackのシリアルです。
デバイス名(ポート)を変える方法は、画面上部に丁寧に以下のような注意書きがしてあるので、そのとおりに記載します。
PlatformIO automatically detects upload port by default. You can configure a custom port using upload_port option in platformio.ini.
具体的にはplatformio.ini
の最後の行に以下のようにupload_port
を追記しました。
※ デバッグを考慮するとmonitor_port
も追記した方が良いので追記しています。書き込むだけならupload_port
だけでも問題ありません。
[env:m5stack-core2]
platform = espressif32
board = m5stack-core2
framework = arduino
lib_deps = m5stack/M5Unified@^0.1.7
upload_port = /dev/cu.usbserial-556E0301081
monitor_port = /dev/cu.usbserial-556E0301081
再度ビルドして転送すると、今度は問題なく動きました。
やったね!
M5Unifiedハンズオン
ハンズオンに参加しました。
資料
ハンズオンのコード
以下ハンズオンでのメモ。
ハンズオン成果物(?)
チャタリング防止の設定変更
btn.setDebounceThresh();
サイズ異なるモニタで同じ絵を表示するテクニック
以下参考
差分のみを記載することで表示高速化
以下参考
描画の高速化テクニック
以下参照
以下のように明示的に初期化処理startWrite();
と終了処理を書くendWrite();
M5.Display.startWrite();
for(int i=0;i<100;++i){
M5.Display.fillRect(i,0,10,10);
}
M5.Display.endWrite();
極端な例としては、SPI通信を描画以外(SDカード通信等)に一切使わないなら、最初に一発startWrite();
してendWrite();
しないという使い方もあり。
その他、スプライトを使った2面持ち、メモリへのダイレクト転送などで高速化(ちょっと自信無し、後でコード確認)。
まとめ
M5Stack、過去に結構バージョンとかでハマってうまく動かないこと多かったのですが、あっさり動いて嬉しいですね。
M5Stackで色々作ってみたいなと思います。
参考リンク
関連記事
変更履歴
- 2023/06/16 M5Unifiedハンズオンに関して追記
Discussion
M5UnifiedでCore3のカメラを使用する方法が分からず、motohさんのtweetのリンクがとても参考になりました。ありがとうございます。