M5Stack Core2をベースにしたロボットスタックチャンを作成してみました。色々な方がプロジェクトを公開されていますが、私の環境ではなかなかすんなり動くものが見つからなったためセットアップに苦労しました。
今回はこのプロジェクトの環境構築から、ビルド時に発生したエラーへの対応方法までの手順を追って整理しました。
これからスタックチャンを作ってみたいと思われるかたは、ぜひ参考にしてみてください。
準備するもの
まずは事前に用意しておくものを紹介します。
ハードウェア
M5stack本体
M5stackの本体となるCore2です。現在最新のCore3も発売されていますが、Core2のプロジェクトが多かったため、自宅にあったCore2をそのまま使うことにしました。
私はAWS版の物を使用しています。

通常版も入手可能です。

スタックチャンキット
スタックチャンのサーボやボディフレームなどのハードウェアはタカヲさんが販売われているものを使用しています。
ソフトウェア
開発ツール
Arduino IDEのバージョンは2.3.6
を使用しています。
スタックチャンアプリケーション
今回、ソフトウェアはrobo8080さんのリポジトリを使用させて頂きました。
開発環境の作り方
ここからは開発環境の作り方を解説します。
Arduino IDEのボード設定を追加
Arduino IDE の [環境設定] で「追加ボードマネージャURL」に以下を追加:
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
ボードマネージャで M5Stack Core2 を検索してインストール
URL追加後にボードマネージャで「M5Stack」と検索し、M5Stack Core2等のパッケージをインストールします。
必要なライブラリをインストール
[スケッチ] > [ライブラリを管理] から、下記のライブラリ名前で検索してインストールします。
- M5Unified (0.0.7)
- M5Stack-Avatar (0.8.1)
- ServoEasing (2.4.0)
- ESP32Servo (0.9.0)
- ESP8266Audio (1.9.7)
今回、Arduino IDE以外は全てrobo8080さんのリポジトリで記載されているバージョンを使用しました。
トラブル対応: ビルド時のエラー
SERVO_PIN_X was not declared in this scope
→ 以前のコードは下記のように条件付きでピン番号を指定していました:
#if defined(ARDUINO_M5STACK_Core2)
#define SERVO_PIN_X 13
#define SERVO_PIN_Y 14
#endif
しかし現行のArduino IDEやボードではARDUINO_M5STACK_Core2
が定義されなくなったようで、以下のように直接定義すると解決:
#define SERVO_PIN_X 13
#define SERVO_PIN_Y 14
コード解説
robo8080さんのリポジトリをフォークして日本語のコメントを追加したコードを以下のリポジトリで公開しています。
まとめ
- StackChan のビルドには、依存ライブラリのバージョン統一が重要
- Arduino や M5Stack 関連は IDEやボードのアップデートにより「定数名」が変わることもある
- 不明なエラーが出たら GitHub のソース確認や、マクロの定義チェックが有効
これで無事 StackChan のビルドに成功しました。現代の開発環境は早く変わるので、最新情報と同時に「定数の定義され方」もチェックしておきましょう。
コメント