スタックチャン M5GoBottom版のファームウェアについて
スタックチャン M5GoBottom版のArduinoIDEでのファームウェアを紹介します。robo8080さんの作った”あたる”と”RAMちゃん”も動かすことが可能です。※本家スタックチャンModdableのファームウェアも動くそうです。
動作確認済みファームウェア
M5GoBottom版は下記のファームウェアで動作確認しました。
ArduinoIDE
- stack-chan-tester
- M5Core2_SG90_StackChan_VoiceText_Ataru
ロボさん(@robo8080)がM5GoBottom版の頒布に合わせて公開してくれたファームウェアです。
Moddable
私はまだ未確認なのですが、動いたという情報がありました。
- 本家 スタックチャンのファームウェア(Moddable版)
1.stack-chan/firmware/stackchan/manifest.jsonの2行をサーボを接続したGPIOに置き換える。
例、M5Core2のPort.Cなら”pwmPan”: 13, “pwmTilt”:14
M5StackのPort.Cなら”pwmPan”: 16, “pwmTilt”: 17
2.stack-chan/firmware/stackchan/manifest_local.jsonの1行を”driver”: “tts”を”driver”: “pwm”等tts以外の文字列にしてください。
※ ttsだとシリアルサーボになります。
動作確認した環境【ArduinoIDE】
2022/1/9現在、ボード(esp32またはM5Stack)や一部のライブラリを最新にするとビルドできないので注意してください。バージョンを指定してインストールする必要があります。赤字で補足があるものは注意してください。
共通
- ArduinoIDE 1.8.16
- ServoEasing v2.4.0
※ 2.4.0より後のバージョンだとビルドできない可能性があります。 - ESP32Servo v0.9.0
- M5Stack-Avatar v0.8.1
- M5Unified v0.0.7
stack-chan-tester
- Arduino-esp32
v2.0.2で動作確認しました。特にバージョンによる不具合は無さそうです。
M5Core2_SG90_StackChan_VoiceText_Ataru
- Arduino-esp32
v2.0.5で動作確認しました。 - ESP8266Audio v1.9.7
ArduinoIDEでのビルド方法
ArduinoIDEのインストール方法は初心者向けM5Stack Core2の始め方(ArduinoIDE編)を参照してください。
ボードマネージャーのバージョン指定の仕方(初心者向けにM5Stackのリポジトリで説明しますがarduino-esp32 v2.0.0でも可能です。)
①追加のボードマネージャーのURLは下記で設定してください。
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
②ボードマネージャーを開く
ArduinoIDEのメニューから「ツール」→「ボード」→「ボードマネージャー…」を選択し、ボードマネージャーを開きます。
③ボードのインストール
- タイプ全ての右にある検索をフィルタ…というところに「M5Stack」と入力します。
- M5Stack by M5Stack officialという欄が表示されます。
- ▼を押して「2.0.0」を選んだあとインストールを押します。
- 「閉じる」を押します。
ライブラリのインストール
①ライブラリマネージャーを開く
ArduinoIDEのメニューから「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理…」でライブラリマネージャーを開きます。
②ライブラリを検索してインストール
- M5Core2かM5Stackを検索(使うCoreによって異なります。)
- ESP32Servo
- ServoEasing
※ ServoEasingはバージョン指定で「バージョン2.4.0」を選んでください。 - ESP8266Audio
※ ESP8266Audioだけバージョン指定で「バージョン1.9.3」を選びます。
ソースのダウンロード
ソースはGitHubからZip形式でダウンロードした後、ドキュメント\Arduinoフォルダに解凍してください。(もしくは直接git cloneでも可能)
M5Core2_SG90_StackChan_VoiceText_AtaruのM5Stack-Avatarライブラリの変更方法
※ 2022/9/26の最新版では不要になりました。
M5Stack-Avatarをライブラリマネージャーでインストールした後、ドキュメント\libraries\M5Stack_Avatar\srcにあるファイルを編集します。変更箇所はReadme.mdを参照してください。
Avatar.cpp
getGazeという関数を追加します。Avatar.h
getGazeという関数定義を追加します。DrawContext.h
色の設定をデフォルトのモノクロ(1)から8bitカラー(8)に変更します。
サーボのピンについて
サーボのピンは組み立て方によって変わります。下記のようになるのでプログラムを書き換えてください。
- GPIO
今回の記事ではM5Stack Core2 for AWSIoT EduKitのPort.C(G13,G14)で説明します。他のM5Stackやスタックチャン基板は下記のように接続してください。- スタックチャン基板(Ver.1.1)
- Core1
G5,G2 - Core2
G27,G19
- Core1
- Port.A
- Core1・Fire(内部I2Cと共有)
G21,G22 - Core2(外部I2Cと共有)
G32,G33
- Core1・Fire(内部I2Cと共有)
- Port.B(片側がINPUTのみなので1つしか使えません。)
- Core1・Fire・Core2共通
G26,G36(INPUTのみ)
- Core1・Fire・Core2共通
- Port.C(FireはPSRAMと競合するため使用不可)
- Core1
G16,G17 - Core2
G13,G14
- Core1
- スタックチャン基板(Ver.1.1)
- 開始角度
初期化したときにこの角度まで一気に動きます。(※ここはスムースにはできません。)スタックチャンを組み立てる時に初期位置を90°にしてから組み立てましょう。
サーボの調整
SG90は個体差があり90°の位置がぴったり合わない場合があります。その場合ソースの90という箇所を微調整して変更して調整を行います。(例えば87など)
問い合わせについて
うまく動かない場合は、Twitterやメールにて問い合わせしてください。その際下記の情報があるとスムーズに対応できます。
- 表示されているエラーメッセージ
- コンパイル時にerrorと書いてある行が写っている画面のハードコピー
- 使用しているArduino-IDEのバージョン
Arduino-IDE 1.8.16といったバージョン番号 - ボードマネージャーのバージョン
ESP32もしくはM5Stackのバージョン - 使用しているライブラリのバージョン
「動作確認した環境【ArduinoIDE】」で示したライブラリのバージョン
おわりに
あとは、サンプルを参考にご自分で改造して自由に動かすことが可能です。記事内で不明な点がありましたらコメントやTwitter、メールでご連絡ください。
更新履歴
- 2022/9/26 M5Core2_SG90_StackChan_VoiceText_Ataruのバージョンアップに伴い、修正
- 2022/5/6 M5Unified対応のため修正
- 2022/1/9 新規作成