M1 MacでM5Stack Core2始め方ガイド2021-04

メインマシンをM1 Macbook Airに乗り換えました。

というわけで、前回のWindows10で作ったM5Stack Core2開発環境は作り直しです。

このエントリで書くこと

  • M5Stack Core2で動かすプログラム開発の環境構築方法:M1 Macbook Air、macOS Big Sur(11.2.3)、VS Code、PlatformIO、C++

※作業環境がM1 Macbook Air、macOSになった以外は前回のWindows10で作ったM5Stack Core2開発環境と同じ

用意したもの

構築した環境

  • プログラミング言語:C++
    • 選択肢はC++かmicropythonらしい
    • micropythonはM5Stack Core2自身をWebサーバにしてWeb IDEを起動するっぽくて、開発環境作りに手間がかかりそうだったのでC++を選択
  • 開発環境:VS Code + PlatformIO
    • (自分の中の)選択肢はArduinoIDE or PlatformIO
    • 普段使っているvimでもよかったんだけど、心機一転新しい環境にしてみる
    • ArduinoIDEでコンパイル→転送にものすごく時間がかかって耐えられなかったのでPlatformIOに

バージョン

  • macOS Big Sur(11.2.3)
  • ArduinoIDE 1.8.13(brew install arduino
  • Processing 3.5.4(brew install processing

プログラム開発の環境構築方法

ひとまずArduinoIDEの環境をつくる

ほぼ公式ドキュメントの通りにやります。
めっちゃ簡単。

Arduino IDE Development

  1. USB Driver インストールは不要でした(M1 mac support? | M5Stack Community
  2. Arduino-IDE インストール(brew install arduino
  3. Boards Manager 設定
    • 最初の https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json とかを設定するところ
    • For M5Core2 のところ ←見落しやすい
  4. M5Stack Library 設定
    • 最初のところ
    • For M5Core2 のところ ←見落しやすい

なおシリアルポートは /dev/cu.usbserial-XXX という感じのやつ。

ArduinoIDEでのビルドは下記のエラーで失敗したけど、PlatformIOを使うから気にせず進みます。

Arduino:1.8.13 (Mac OS X), ボード:"M5Stack-Core2, Enabled, Default (2 x 6.5 MB app, 3.6 MB SPIFFS), 240MHz (WiFi/BT), 921600, None"

「SD.h」に対して複数のライブラリが見つかりました
Traceback (most recent call last):
使用済:/Users/baba/Library/Arduino15/packages/m5stack/hardware/esp32/1.0.7/libraries/SD
  File "/Users/baba/Library/Arduino15/packages/m5stack/tools/esptool_py/3.0.0/esptool.py", line 39, in <module>
    import serial
未使用:/Applications/Arduino.app/Contents/Java/libraries/SD
ImportError: No module named serial
「WiFiClient.h」に対して複数のライブラリが見つかりました
使用済:/Users/baba/Library/Arduino15/packages/m5stack/hardware/esp32/1.0.7/libraries/WiFi
未使用:/Applications/Arduino.app/Contents/Java/libraries/WiFi
exit status 1
ボードM5Stack-Core2に対するコンパイル時にエラーが発生しました。


「ファイル」メニューの「環境設定」から
「より詳細な情報を表示する:コンパイル」を有効にすると
より詳しい情報が表示されます。

PlatformIOの環境をつくる

Windows10のときにArduinoIDEでのビルドの遅さに懲りた&ArduinoIDE+macOSはビルドエラーになったので(再)、PlatformIOに乗り換え。

PlatformIOまわりは前回のWindows10で作ったM5Stack Core2開発環境と全く同じでした。

以下前回から引用。

M5Stackの開発環境を整える - PlatformIO IDE編 - Qiitaを参考に進めます。

M5Stack Core2用に少し変えるところもあります。

  1. VS Codeに拡張機能 PlatformIO をインストール
  2. 画面の指示に従いReload(もしくはVS Code再起動)
  3. PIO Home > Libraries から M5Core2 をインストール ※ここはCore2用
    • M5Core2 by Hades2001, M5Stack

M5Core2用の差分はライブラリなので、 platform.inilib_deps に追加するライブラリ名も M5Core2 です。

lib_deps = M5Core2 m5stack/M5Core2@^0.0.3

これでOK(のはず)

M5Stack Core2で日本語を表示する方法

前回のWindows10で作ったM5Stack Core2開発環境と全く同じでした。

前回作ったファイルをそのまま使えるので、敢えて再生成する必要はなさそう。

なんかmacで作業すると Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space が出やすい気がする。

ファイル > 設定から飛べる詳細設定ファイル preferences.txtrun.options.memory.initialrun.options.memory.maximum をいじって4096とかにしてもダメだったので、 何かの制限に引っかかってるのかもしれないです(未解決)。

小さなフォントで我慢するか、対象文字をすべてじゃなくてきちんと選びましょう。
(もしくはここだけWindows10でやる)

以下前回から引用。

いろいろなやり方があるみたいですが(ライブラリ化してプログラムに組み込むなど)、 比較的簡単そうな方法を選択しました。

フォントファイルを作成し、MicroSDカードから読み込む方式です。
この方法だとフォントサイズ込でフォントファイルを作るようで、テキストサイズの変更は効かないみたい。

段取り

  1. (PCにインストールされている)フォントから、フォントのサブセットのファイルを作る
    • Processingでやります
  2. 作ったフォントファイルをMicroSDカードにコピー
  3. フォントファイルが入ったMicroSDカードをM5Stack Core2に挿し込む
  4. プログラム上から使う

というわけでまずはProcessingをダウンロードして起動。
Processing.org

メニューの ツール > フォント作成 でフォント・サイズ・文字を選択して OK で作成します。 これだけ。 文字 を選び忘れがちなのでお気をつけください。

素人のワタシは「すべての文字」で作りました。

processing-generate-font-window

processing-select-font-window

フォントのファイル(拡張子は .vlw )は %HOME%\Documents\Processing\...\data あたりにできます。 見当たらなかったら検索とかで探してください。

コード内でこんな感じで読み込むと使えます。
(MicroSDカードのルートディレクトリに Cica-Regular-20.vlw を置いた場合の例)

M5.Lcd.loadFont("Cica-Regular-20", SD);

使い終わったら M5.Lcd.unloadFont(); したほうがいいようです。

おわり

これで、いろいろ試す準備ができました。

ゴールデンウィークにいろいろ遊んでみましょう。

なんと5/1-5/2は割引キャンペーンらしいですよ
Maker Faire Kyoto 2021 連動キャンペーン(セール)のお知らせ – スイッチサイエンス マガジン

IoT 

See also