メインマシンを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開発環境と同じ
用意したもの
- M5Stack Core2 IoT開発キット - スイッチサイエンス
- パソコン( M1 Macbook Air、macOS Big Sur(11.2.3) )
- MicroSDカード
- 家にあったELECOMの1GBのやつ
構築した環境
- プログラミング言語: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の環境をつくる
ほぼ公式ドキュメントの通りにやります。
めっちゃ簡単。
- USB Driver インストールは不要でした(M1 mac support? | M5Stack Community)
- Arduino-IDE インストール(
brew install arduino
) - Boards Manager 設定
- 最初の
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
とかを設定するところ For M5Core2
のところ ←見落しやすい
- 最初の
- 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用に少し変えるところもあります。
- VS Codeに拡張機能
PlatformIO
をインストール- 画面の指示に従いReload(もしくはVS Code再起動)
PIO Home
>Libraries
からM5Core2
をインストール ※ここはCore2用
M5Core2 by Hades2001, M5Stack
M5Core2用の差分はライブラリなので、
platform.ini
のlib_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.txt
の
run.options.memory.initial
と
run.options.memory.maximum
をいじって4096とかにしてもダメだったので、
何かの制限に引っかかってるのかもしれないです(未解決)。
小さなフォントで我慢するか、対象文字をすべてじゃなくてきちんと選びましょう。
(もしくはここだけWindows10でやる)
以下前回から引用。
いろいろなやり方があるみたいですが(ライブラリ化してプログラムに組み込むなど)、 比較的簡単そうな方法を選択しました。
フォントファイルを作成し、MicroSDカードから読み込む方式です。
この方法だとフォントサイズ込でフォントファイルを作るようで、テキストサイズの変更は効かないみたい。段取り
- (PCにインストールされている)フォントから、フォントのサブセットのファイルを作る
- Processingでやります
- 作ったフォントファイルをMicroSDカードにコピー
- フォントファイルが入ったMicroSDカードをM5Stack Core2に挿し込む
- プログラム上から使う
というわけでまずはProcessingをダウンロードして起動。
→Processing.orgメニューの
ツール
>フォント作成
でフォント・サイズ・文字を選択してOK
で作成します。 これだけ。文字
を選び忘れがちなのでお気をつけください。素人のワタシは「すべての文字」で作りました。
フォントのファイル(拡張子は
.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 連動キャンペーン(セール)のお知らせ – スイッチサイエンス マガジン