スタックチャンはWindows11、MacOS、Linuxで開発ができます。MacOS、Linuxの場合は環境構築マニュアル(MacOS/Linux)を参照してください
Windows11
上でスタックチャンのプログラムを書き込む手順を説明します。
Moddable
を使用したスタックチャンの開発環境はUbuntu
OSを想定しています。WSL2(Windows Subsystem for Linux 2)
を使用することで、Windows
環境上でUbuntu
の環境を構築することができます。
この手順書では、Windows PowerShell
とUbuntu
の2種類のウインドウを扱います。インターフェースが類似しているため間違いやすいです。以下のようにコマンド入力欄に注目すると容易に見分けられます。
Windows PowerShell
:コマンド入力欄の表示がPS C:\WINDOWS\system32>
Ubuntu
:コマンド入力欄の末尾の表示が$
WSL2
とUbuntu22.04
をインストールします。
以下の3つの手順によって、Windows PowerShell
を管理者権限で開いてください。
- Windowsキーを押す
- 検索欄に「windows powershell」と入力する
Windows PowerShell
のアイコンが出てくるので「管理者権限で開く」を選択してください。
開いたWindows PowerShell
上に、以下のコマンドを入力し、実行してください。
コマンドは画像の通り、PS C:\WINDOWS\system32>
の後に続けて入力し、Enterキーで実行します。
PS C:\WINDOWS\system32> wsl --install -d Ubuntu-22.04
インストールが完了したら、PCを再起動してください。
PCを再起動すると、自動的にUbuntu
が立ち上がります。
自動で立ち上がらない場合は、以下の3つの手順によって、Ubuntu
を開きます。(Ubuntu
は管理者権限で起動せずに通常通りに起動してください)
- Windowsキーを押す
- 検索欄に「ubuntu」と入力する
Ubuntu
のアイコンが出てくるので「開く」を選択してください。
ユーザー名とパスワードの入力を求められますので任意の文字列を入力してください。
ここで入力するユーザー名とパスワードはWindows11
のものではなく、Ubuntu
に設定するユーザー名とパスワードです。
ユーザー名では全角文字と大文字は使用できないため、小文字のみの半角文字の文字列で設定してください。
設定が完了したらUbuntu
を再起動します。
Ubuntu
のウインドウ右上の×
アイコンをクリックして閉じた後、再度スタートメニューからUbuntu
を選択してを起動してください。
末尾が$
記号の文字列が表示されていればUbuntuの設定は完了です。
成功していれば、<設定したUbuntuのユーザー名>@...:~$
表示されています。
Ubuntu
起動時、root@"...:~#
のように表示される場合、ユーザー作成の設定は失敗しています。
この状態に遭遇された際には本マニュアルの末尾の最初からやり直したい場合の節を参照し、再度Ubuntuのインストールを行ってください。
Ubuntu
にスタックチャンの開発環境を構築します。
Ubuntu
のウインドウ上で以下のコマンドを順番に入力してください。
コマンドは画像の通り、$
の後に続けて入力し、Enterキーで実行します。
Ubuntu
ではWindows PowerShell
と違い、キーボードによるコピー&ペーストはshift
キーも押す必要があります。
コピー:ctrl + shift + c
ペースト:ctrl + shift + v
特に、ctrl + c
をUbuntu上で実行すると、プロセス(現在実行しているコマンド・プログラム)の終了となりますのでご注意ください。
最新パッケージのリストを更新します。
$ sudo apt update
Pythonの仮想環境を作成する際に使用するvenvツールが含まれているpython3.10-venvをインストールします。
$ sudo apt install -y python3.10-venv
スタックチャンの開発にはNode.js
と、そのパッケージを管理するnpm
という名前のソフトウェアを使います。
Ubuntu
のパッケージマネージャー(apt
)から直接インストールできるNode.js
のバージョンは古いため、Volta
というNode.js
のバージョン管理ツールを使って最新の安定版をインストールします。
Node.js
とnpm
を管理するツールVolta
をインストールします。
$ curl https://get.volta.sh | bash
インストールに成功するとsuccess: Setup complete. Open a new terminal to start using Volta!
と表示され、新しいターミナルを開始するように促されます。
Ubuntuのウインドウを閉じ、Windows11のスタートメニューからUbuntuを再起動してください。
Node.js
とnpm
をインストールします。
$ volta install [email protected]
npm
とNode.js
がインストール出来ているかを確認します。
以下の2つのコマンドをうち、それぞれ画像の通りに表示されれば完了です。
$ npm -v
$ node -v
スタックチャンのプログラムをダウンロードします。
$ git clone --recursive https://github.com/rt-net/stack-chan.git
ダウンロードしたスタックチャンのfirmware
フォルダに移動し、必要なソフトウェアパッケージをインストールします。
cd
コマンドで作業するフォルダを変更できます。
npm install
でインストールを実行します。
$ cd stack-chan/firmware
$ npm install
Moddable
をインストールします。
コマンドnpm run setup
によってスクリプトを実行します。スクリプトによって、自動でModdable
のインストールが行われます。
以下に示す1つ目のコマンドの実行直後、Ubuntu
に設定したパスワードの入力が要求されますので入力してください。
パスワード入力後、一定時間は同様のコマンドを実行してもパスワードは要求されません。
2つ目のコマンドでは、再度パスワードが要求されない内に実行してください。
もし、何らかの理由で1つめのコマンド実行から時間がかかってしまった場合は1つ目のコマンドの実行からやり直してください。
$ sudo echo "Temporary SuperUser Grant"
$ npm run setup
以下のコマンドでModdable
の環境をM5Stack
向けにセットアップします。
npm run setup -- --device=esp32
はスクリプトを実行し、自動で環境のセットアップを行います。
1つ目のコマンドを実行直後、Ubuntu
に設定したパスワードの入力が要求されますので入力してください。
パスワード入力後、一定時間は同様のコマンドを実行してもパスワードは要求されません。
2つ目のコマンドでは、このパスワードが要求されない内に実行してください。
もし、何らかの理由で1つめのコマンド実行から時間がかかってしまった場合は1つ目のコマンドの実行からやり直してください。
$ sudo echo "Temporary SuperUser Grant"
$ npm run setup -- --device=esp32
以下のコマンドで環境のテストをします。
$ npm run doctor
Moddable
のバージョンがv4.1.0
で、ESP32 IDF Directory
のパスが正しく表示されており、Supported target devices
がlin, esp32
となっていれば成功です。
ここまで完了次第、Ubuntuのウインドウを閉じてください。
スタックチャンにプログラムを書き込むには、USBケーブルでPCと接続する必要がありますが、WSL2
上ではPCのUSBポートに接続したデバイスを読み取れません。
usbipd-win
というツールを使用することでWSL2
上でもPCのUSBポートに接続したデバイスを認識することができます。
公式のダウンロードページから、最新版の.msi
形式ファイルをダウンロードしてください。
ダウンロードしてきたファイル(インストーラ)に従ってインストールしてください。インストールが完了したらPCを再起動してください。
Windows PowerShell
とUbuntu
を起動します。
Windows PowerShell
は管理者権限で起動し、以下のコマンドを順番に入力してください。
USBポートに接続されたデバイスリスト出力します。
PS C:\WINDOWS\system32> usbipd list
以下の手順でスタックチャン
とPCを接続して起動します。
スタックチャン
とPCをUSBケーブルで接続します- スライドスイッチを上側にスライドさせてスタックチャンのバッテリー供給をONにします(同時にPCからバッテリーの充電も開始されます)
- 起動ボタンを押して
スタックチャン
の電源をONにします(OFFにするときは6秒間長押しします)
スタックチャンを起動する前と同様に、usbipd list
コマンドを実行して再度USBデバイスリスト出力します。
PS C:\WINDOWS\system32> usbipd list
今回のコマンドで新たに現れたBUSID
(画像の場合では2-1
)がスタックチャンを指し示してます。
スタックチャンをbind
します。
以下に示すように、コマンドの<スタックチャンのBUSID>
部分を自身のスタックチャンのBUSID
と置き換えて実行した後、再度USBデバイスリスト出力してください。
PS C:\WINDOWS\system32> usbipd bind --busid <スタックチャンのBUSID>
PS C:\WINDOWS\system32> usbipd list
USBデバイスリスト上のスタックチャンのBUSID
がShared
となっていれば完了です。
スタックチャンをattach
します。
以下に示すように、スタックチャンのattach
コマンドを実行した後、再度USBデバイスリスト出力してください。
(今回もbind
のときと同様、<スタックチャンのBUSID>部分を自身のスタックチャンの
BUSID`と置き換えて実行します。)
PS C:\WINDOWS\system32> usbipd attach --wsl --busid <スタックチャンのBUSID>
PS C:\WINDOWS\system32> usbipd list
USBデバイスリスト上のスタックチャンのBUSID
がAttached
となっていれば完了です。
WSL2
からスタックチャンを認識できるかを確認します。
Ubuntu
での作業に移ります。
lsusb
コマンドで認識していることを確認します。
先程のPowerShell上でのスタックチャンと同じ名称のデバイスが表示されています。
今回の例では、USB JTAG/serial debug unit
です。
$ lsusb
ダウンロードしたスタックチャンのfirmware
に移動し、プログラムのビルド・書き込みます。ビルドを行うことで、プログラムをM5Stack
が実行できる形式に変換できます。ビルドしたプログラムをM5Stackに書き込めれば、スタックチャンを動かす手順は完了です。
先程の操作からUbuntuのウインドウを開いた状態であれば、一度再起動(Ubuntuのウインドウを閉じてから再度開く)してください。
cd stack-chan/firmware
で作業フォルダを移動し、npm run build --target=esp32/m5stack_cores3
コマンドを実行してビルドします。
次に、npm run deploy --target=esp32/m5stack_cores3
を実行すればビルドしたプログラムをスタックチャンに書き込めます。
$ cd stack-chan/firmware
$ npm run build --target=esp32/m5stack_cores3
$ npm run deploy --target=esp32/m5stack_cores3
以下のように書き込みが完了次第、リセットボタンを押下してください。
リセットボタンの位置
リセットボタンを押下した後にスタックチャンに顔が表示されていれば書き込み完了です。
[注意!]リセットボタンを押下した場合、再度プログラムを書き込むためには、スタックチャンをattachする手順 も再度実行する必要があります。
どこからかマニュアル通りにいかず、エラーが出力されていまった場合、エラーに従ったり調べるすることで解決に繋がります。
ですが、Ubuntu
を一旦アンインストールし、きれいな環境で最初から実行するという手段もあります。
その場合、管理者権限で開いたWindows PowerShell
上で以下のコマンドを実行することで現在のUbuntu
を削除することができます。
PS C:\WINDOWS\system32> wsl --unregister Ubuntu
上記のコマンドでUbuntu
を削除した後、Windows11のスタートメニューからUbuntu
を選択します。
自動でUbuntu
のインストールが開始され、しばらく待つとインストールが完了します。
しばらくするとUbuntu
インストール後の時点と同じ状態になりますので、再度構築を開始してください。
WSL2とPCの設定時間がずれていると、sudo apt update
コマンド実行の際に以下の画像のようにセキュリティ上のエラーが起きます。
sudo apt update
コマンドの実行が完了していない場合、これ以降の手順でも失敗するため、正しく同期していることを確認してください。
$ sudo apt update
[sudo] password for ubuntu:
Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Hit:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [109 kB]
Reading package lists... Done
E: Release file for http://security.ubuntu.com/ubuntu/dists/jammy-security/InRelease is not valid yet (invalid for another 8h 24min 40s). Updates for this repository will not be applied.
E: Release file for http://archive.ubuntu.com/ubuntu/dists/jammy-updates/InRelease is not valid yet (invalid for another 8h 25min 52s). Updates for this repository will not be applied.
E: Release file for http://archive.ubuntu.com/ubuntu/dists/jammy-backports/InRelease is not valid yet (invalid for another 6h 47min 42s). Updates for this repository will not be applied.