Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
# スタックチャン ファームウェア
[English](./README.md)
## このファームウェアについて
M5StackChanにプリインストールされているM5Stackの工場出荷ファームウェアと、このリポジトリが提供するスタックチャンファームウェアは別のソフトウェアです。
安定した環境が必要な場合は[最新リリース](https://github.com/stack-chan/stack-chan/releases/latest)を使用してください。
既定ブランチの`develop`では、次回リリースに向けて内部構造やAPIが変わる場合があります。
「AIスタックチャン」は、@robo8080が中心となって開発している別のArduinoベースのアプリケーションです。
AIスタックチャンを探している場合は[AI_StackChan2](https://github.com/robo8080/AI_StackChan2)を参照してください。
Arduino IDEになじみがあり、PWMサーボを使う場合は、@mongonta0716さんの[stack-chan-tester](https://github.com/mongonta0716/stack-chan-tester)も選択肢になります。
## ブラウザーで試す
ファームウェアを初めて試す場合は、[スタックチャン Webツール](https://stack-chan.github.io/stack-chan/web/)を使うとローカル開発環境を用意せずに始められます。
1. M5StackChanをデータ通信対応のUSBケーブルでPCへ接続します。
2. ChromeまたはEdgeで[Webファームウェア書き込み](https://stack-chan.github.io/stack-chan/web/flash/)を開き、「M5StackChan CoreS3」を選択して書き込みます。
3. [MOD Gallery](https://stack-chan.github.io/stack-chan/web/mod-gallery/)でMODを選び、シミュレーターまたは実機で試します。
> [!IMPORTANT]
> このファームウェアを書き込むと、M5Stackの工場出荷ファームウェアは置き換えられます。
> 元へ戻す場合は、[M5Stack公式ドキュメント](https://docs.m5stack.com/ja/StackChan)の復元手順に従ってM5Burnerを使用してください。
[](https://stack-chan.github.io/stack-chan/web/flash/)
## ローカル開発を始める
標準構成はM5StackChan CoreS3です。
ソースコードを変更する場合は、`firmware`ディレクトリで次の順に実行します。
```console
npm i
npm run setup
npm run setup -- --device=esp32
npm run doctor
npm run flash
```
`npm run flash`は標準構成のホストをビルドして書き込みます。
Stack-chan RTまたはタカオ版Core2 + SG90では、`npm run flash:stackchan_rt`または`npm run flash:takao_core2_sg90`を使います。
MODだけを更新する場合は、`npm run mod -- mods/examples/look_around/manifest.json`のようにMODの`manifest.json`を指定します。
このコマンドはMODアーカイブをビルドし、実機の`xs`パーティションを検出して`esptool`で直接書き込みます。
xsbugの書き込み経路を使わないため、ホストはデバッグビルドとリリースビルドのどちらでも構いません。
## 特徴
- JavaScriptまたはTypeScriptでMODを開発できます。
- ホストプログラムとMODが分離されているため、ホストを書き直さずにMODを短時間で更新できます。
- 顔、モーション、入力、音声、カメラ、通信を機能単位のcontext APIから利用できます。
- Feetech、FUTABA、DYNAMIXEL、PWMサーボを含む複数のモーター構成に対応します。
- Stack-chan Voice、VOICEVOX、ElevenLabs、OpenAIを使った音声合成に対応します。
- ファームウェア書き込み、BLE設定、MOD Gallery、ブロックエディタ、顔エディタ、WebAssemblyシミュレーターをブラウザーから利用できます。
- ファームウェアとWeb UIは日本語、英語、簡体字中国語に対応します。
## ビルド出力
ファームウェア開発にはリポジトリのnpmスクリプトを使ってください。
これらのコマンドはModdableの出力先を管理し、ホスト、MOD、テストの生成物を`firmware/dist/`配下に保存します。
- プログラムは`firmware/dist/bin/`、中間生成物は`firmware/dist/tmp/`配下に生成されます。
- ホストアプリケーション名は`stack-chan-host`です。
- `npm run clean`は`firmware/dist/`配下の生成物をすべて削除します。
- リポジトリのビルド手順では、独自の`-o`を指定したり、`mcconfig`、`mcrun`、`mcpack`を直接実行したりしないでください。
- `npm run bundle`は各リリース対象を`firmware/dist/`配下でビルドし、検証済みの成果物を`firmware/dist/bundle-targets/`に集約します。
最終的なディレクトリとZIPは`firmware/host/app/`配下に生成されます。
- 対象ごとのリリースビルドには、名前付きの`build:release:<target>`スクリプトを使います。
CIも同じスクリプトでビルドし、`bundle:package`で成果物を組み立てます。
ターゲット別のコマンドと詳しい出力先は、[プログラムのビルドと書き込み](docs/flashing-firmware_ja.md)を参照してください。
## ディレクトリ構成
- [host](./host/): ホストアプリケーションとファームウェアモジュールのソースコードです。
- [mods](./mods/): MODのソースコードです。
- [scripts](./scripts/): ビルド、検証、テスト、音声生成に用いる開発スクリプトです。
- [typings](./typings/): Moddable SDKの一部モジュールとスタックチャン固有APIを補うTypeScript型定義です。
- `dist/`: ファームウェアのプログラムと中間生成物です。
ビルドスクリプトが管理し、Gitの追跡対象にはなりません。
## ドキュメント
### ブラウザーで使う
- [Webツール](https://stack-chan.github.io/stack-chan/web/)
- [Webブラウザーからのファームウェア書き込み](docs/flashing-firmware-web_ja.md)
- [Webブラウザーからの設定変更](docs/setting-preferences-web_ja.md)
- [MOD Gallery](https://stack-chan.github.io/stack-chan/web/mod-gallery/)
### ローカルで開発する
- [環境構築](docs/getting-started_ja.md)
- [プログラムのビルドと書き込み](docs/flashing-firmware_ja.md)
- [API](docs/api_ja.md)
- [MOD](mods/README_ja.md)
- [ローカライズ](docs/localization_ja.md)
- [ミニアプリ(実験的)](docs/mini-apps_ja.md)
- [v1.1.0リリースノート](../docs/release-notes/v1.1.0.md)
- [v1.0.0リリースノート](../docs/release-notes/v1.0.0.md)
a8a564119This file is pinned to the selected release. Download the original to open it in your design tool.