0.初めに
この記事はkoshiro様による
を参考に、SPIKE‐RTの環境構築をする際に、2026年では変わってしまっているところをまとめたものです。
この記事はWindows向けに書いています。Macなどは、先ほどのkoushiro様の記事をご覧下さい。
1.環境構築
この章でやること
1.WSLを有効化します
2.Ubuntuをインストールします
3.初期設定とアップデートを行います
4.VSCodeをインストールします
5.VSCodeを日本語化します
6.C言語拡張を導入します
7.SPIKE-RTのソースコードを取得します
Windows Subsistem Linux(WSL)を有効にする。
WSLを有効にします。
ウィンドウズキーを押し、「Windows機能」と検索します。
そうすると、下の画像のような画面が出てきます。

「開く」を押してください。そうすると、このような画面が表示されます。

この、青いハイライトの付いている、「Linux用 Windows サブシステム」にチェックをいれてください。その後タブを閉じてください。
WSLとは?
WSL は、Windows の中に Linux を動かすための仕組みです。パソコンを再起動したり特別な設定をしなくても、Linux のコマンドやツールをそのまま使えるようになります。Windows と Linux を同時に使えるため、SPIKE‑RT のような開発環境を簡単に整えることができます。Docker と組み合わせることで、どのパソコンでも同じ開発環境を再現できます。
ターミナルのダウンロード
ターミナルをダウンロードします。
ターミナルとは、後から出てくるWindowsやUbuntuをおなじアプリで切り替えられる万能ターミナルです。
ウィンドウズキーをおして、ストアと検索してください。
このような画面が表示されるはずです。

そのままエンターをおして、開いてください。
ストアで、「ターミナル」と検索してください。
この、「Windows Terminal」というアプリがでてくるはずです。

それをクリックすると、このような画面に変わります。

(画像では、ダウンロード済みなので、「開く」と表示されていますが、まだダウンロードしていない場合、白いボタンに「インストール」と表示されるはずです。)
インストールを押して、ダウンロードしてください。
ターミナルの使い方
まず、ターミナルを開いてください。すると、このような画像が表示されるはずです。(プロンプト画面)

この画像では、もう押してしまっていますが、一番上の列の一番右の「∨」ボタンを押し、使用するターミナルを選択すると、ターミナルを開くことが出来ます。
WSLのアップデート
さっそく、ターミナルで、Windows Power Shellを開いてください。(これからは、パワーシェルといいます。)
そこで、このコマンドを実行してください。
wsl --update
Ubuntuとは?
Ubuntu は、Linux という種類のOSの中でも特に使われているものの一つです。無料で使うことができ、開発に必要なツールが最初からそろっているため、多くのプログラマーが利用しています。WSL と組み合わせることで、Windows の中で Ubuntu をそのまま動かすことができ、SPIKE‑RT のような開発環境を簡単に整えることができます。
Ubuntuのインストール
次に、
を開いてください。

このような画面が表示されるので、「ダウンロード」をおしてください。
その後、アプリをダブルクリックし、開いてください。
しばらくすると、
Enter new UNIX username
のように表示されるので、ユーザー名と、パスワードを入力してください。(よく聞かれるので、必ずメモしてください)
Ubuntuでパッケージのダウンロード
その後、そのまま、
sudo apt update
sudo apt upgrade
を一行ずつ実行してください。
sudoとは、管理者権限で実行するという意味です。
VSコードのダウンロード
を開いてください。

このような画面が表示されるので、「⍗Windows 10, 11」
をクリックして、ダウンロードをすすめてください。
途中で、デバイスに変更を加えるのを許可しますかなどでてきますが、すべて、「OK」を押してOKです。(?)
その後、VSコードをひらいてください。
VSコードとは?
VS Code は、プログラムを書くための編集ソフトです。多くの言語に対応していて、拡張機能を追加することで自分の作業しやすい環境に変えることができます。コードの色分けや自動補完が使えるため、初心者でも書きやすく、上級者でも効率よく作業できます。SPIKE‑RT の開発でも、VS Code を使うことでファイル編集やビルド作業をまとめて行うことができます。
拡張機能のダウンロード
このままだと、使いにくいので、拡張機能を二つダウンロードします。
①日本語
英語だと見づらすぎるので、日本語にする拡張機能をダウンロードします。
VSコードの右列の、拡張機能アイコン(下の画像)をクリックしてください。

その後、検索欄で、「japanese」と入力してください。

そうすると、このように、拡張機能が出てくるので、クリックし、出てきた「インストール」をクリックしてください。(私の物は、インストール済みなので、アンインストールとなっています。)
その後、変更を反映させるために、一度VSコードを閉じて、もう一度開き直してください。
②C言語拡張機能
これはあったら便利!という拡張機能なので、入れなくてもかまいません。
同じようにVSコードの右列の、拡張機能アイコン(下の画像)をクリックしてください。

その後、検索欄で、「C」と入力してください。

そうすると、このように、拡張機能が出てくるので、クリックし、出てきた「インストール」をクリックしてください。
その後、変更を反映させるために、一度VSコードを閉じて、もう一度開き直してください。
ソースコードのダウンロード
ubuntuで、
git clone https://github.com/keikyufun/spike-rt.git
を入力して、ソースコードをダウンロードしてください。
その後、
ls
を実行してください。spike-rtというフォルダ名が出たら、成功です。もし、出なかった場合、もう一度、
git clone https://github.com/keikyufun/spike-rt.git
を入力して、やりなおしてください。
2.ドッカー
この章でやること
1.Dockerの役割を理解します
2.Docker Desktopをインストールします
3.SPIKE-RT用のDockerイメージを取得します
4.Dockerコンテナを起動します
ドッカーとは?
Docker は、パソコンの中にもう一台のパソコンを作るための道具です。特別な設定をしなくても、必要なツールが最初から入った環境をすぐに用意できます。どのパソコンでも同じ環境が再現できるため、SPIKE-RT のような開発ではとても便利です。ゲームのカセットを差し込むと同じゲームが動くように、Docker イメージを使うと同じ開発環境が動きます。
ドッカーのインストール
次に、yoshiyasu様の
の「Dockerのインストール」をしてください。
コンテナ・イメージのダウンロード
次に、Github上にあるDockerのコンテナ・イメージをダウンロードします。
Ubuntuのターミナルを開いて、以下を実行してください。
docker pull ghcr.io/keikyufun/spike-rt:2026
コンテナを開く
プルしてきたコンテナをDockerにアタッチして起動します。
sudo docker run --rm -it -v $(pwd):$(pwd) -w $(pwd) -u "$(id -u $USER):$(id -g $USER)" -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro ghcr.io/keikyufun/spike-rt:2026 /bin/bash
この際、パスワードの入力が求められますので、Ubuntuの設定で入力したパスワードを入力してください。
sudo docker run --rm -it -v $(pwd):$(pwd) -w $(pwd) -u "$(id -u $USER):$(id -g $USER)" -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro ghcr.io/keikyufun/spike-rt:2026 /bin/bash
これでドッカーの部分は終了です。ターミナルのウィンドウをctrl+Wもしくは×マークで消してください。
3.USBIPD-WINのダウンロード
この章でやること
1.USBIPD-WINの役割を理解します
2.公式GitHubからインストーラーをダウンロードします
3.WindowsにUSBIPD-WINをインストールします
4.USBをWSLに渡す準備を整えます
USBIPD-WINとは?
USBIPD-WINはウィンドウズで接続したUSB機器をWSLに渡すためのツールです。普通、USB機器はウィンドウズ側でしか使えませんが、このツールを使うことで特定のUSB機器をWSLに接続してLinux側から操作できるようになります。SPIKERTの開発ではテクニックハブをDFUモードで接続するとき、必要になるため、このツールを使ってUSBをWSLに渡します。
USBIPD-WINのインストール
を開いてください。
このような画面が表示されるはずです。

この、上から二番目の「usbipd-win_5.3.0_x64.msi」をクリックしてダウンロードしてください。その後、ダウンロードしたファイルを実行してください。

「Install」ボタンを押して、インストールしてください。
インストールが完了するとこのような画面になるので、「Close」をおしてください。

4.PyUSBのダウンロード
この章でやること
1.venvを使ってPython仮想環境を作成します
2.仮想環境を有効化します
3.PyUSBをインストールします
4.必要な依存パッケージを確認します
PyUSBとは?
PyUSBはPythonからUSB機器を操作するためのライブラリです。USB機器を直接扱うための複雑な処理を自動で行ってくれるため、PythonのコードだけでUSBデバイスを認識したり通信したりできます。SPIKERTの開発ではDFU書き込みに必要なusbcoreやusbutilを使うため、このライブラリが必須になります。
PyUSBのダウンロード
ターミナルでUbuntuを開いてください。
以下のコマンドを打ち込んで、PyUSBをダウンロードしてください。
sudo apt install python3.12-venv
venvはPythonで仮想環境を作るための仕組みです。プロジェクトごとに別々の環境を用意できるため、使うライブラリの種類やバージョンが他のプロジェクトと混ざらないようにできます。仮想環境を作ると、その中だけでPythonやライブラリを管理できるようになり、開発が安定します。SPIKERTの開発でも必要なライブラリを安全に管理するためにvenvを使います。
その後、
python3 -m venv ./spike-rt/tools/python
で移動し、
./spike-rt/tools/python/bin/pip install pyusb
でインストールすれば完了です。
5.プロジェクトの作成をする準備
この章でやること
1.VSCodeでSPIKE-RTフォルダを開きます
2.スクリプトに実行権限を付与します
3.プロジェクト作成スクリプトを使う準備をします
参考にしたもの
には、元々、テンプレートとシェルスクリプトが作成されているので、テンプレートとシェルスクリプトを作成する必要はありません。テンプレートとシェルスクリプトは、
を参考にして作成しました。
権限付与
まず、VSコードを開いて、「リモートエクスプローラー」から「spike-rt」フォルダを選択してください。
つぎに、VSコード内で開けるbashターミナルをctl+shift+@で開いてください。そこに、
cd new_scripts
でnew_scriptsに移動し、
chmod +x start.sh
chmod +x new_project.sh
chmod +x build.sh
chmod +x write.sh
の順に権限をつけてください。
cd ../
で開き直します。
では、権限付与が
sudo chmod 777 start.sh
sudo chmod 777 new_project.sh
sudo chmod 777 build.sh
sudo chmod 777 write.sh
のようになっていて、少し権限が強すぎると思ったので「chmod +x ファイル名」にしました。
6.プロジェクトの作成方法
この章でやること
1.Docker付きターミナルでstart.shを実行します
2.new_project.shで新規プロジェクトを作成します
3.workspaceフォルダでコードを書きます
4.build.shでasp.binを生成します
ドッカーの起動
まず、VSコード内のターミナルで
./new_scripts/start.sh
を入力しドッカーを起動します。
(このターミナルはdockerつきになります。)
その後、+ボタンでもう一個VSコードのターミナルを起動し、
./new_scripts/new_project.sh 作りたいプロジェクト名
で、プロジェクトを作ります。
(このターミナルはdockerなしです。)
そして、workspaceフォルダを開き、プログラムを入力してください。
次にプロジェクトからasp.bin(書き込み用ファイル)を作ります。
./new_scripts/build.sh 作ったプロジェクト
これで、asp.binが作ったプログラムファイルの中にできます。
7.プロジェクトの書き込み
この章でやること
1.ハブをDFUモードにします
2.USBIPD-WINでUSBをWSLに渡します
3.lsusbでPIDを確認します
4.deploy-dfu.shのPIDを書き換えます
5.write.shでハブに書き込みます
プロジェクトの書き込み
まず、ハブをDFUモード(簡単に言うと書き込みモード)にします。
以下の手順で実行してください。
①SPIKEプライムのBluetoothボタンを押した状態でUSBケーブルを使ってPCに接続します。
②Bluetoothボタンの色が赤→緑→青と点滅するまで押し続けます。
Youtubeより
usbipd list
これで出てくるUSBに接続されているデバイス一覧から、
Connected:
BUSID VID:PID DEVICE STATE
1-1 046d:c534 USB 入力デバイス Not shared
1-4 0694:0011 LEGO Technic Large Hub in DFU Mode Shared
1-5 04f2:b60f FJ Camera Not shared
1-7 04c5:14de Qualcomm Atheros QCA61x4 Bluetooth 4.1 Not shared
1-8 04c5:14b9 USB 入力デバイス Not shared
Persisted:
GUID DEVICE
のような一覧が出力されます。
ここの、
「1-4 0694:0011 LEGO Technic Large Hub in DFU Mode 」
のようになっているところの「1-4」のような数字(それぞれ異なります)(今後はとします)を後から使います。
初めてハブと接続する場合は、
usbipd bind --busid <BUSID>
を実行してください。
次に
usbipd attach --wsl --busid <BUSID>
を実行してください。これでWSL側は終了です。
その後、VSコードのターミナル(dockerなし)で、
lsusb
と入力すると、
0694:0011 LEGO Technic Large Hub in DFU Mode
のような感じで出力があるはずです。この0694:0011(PID)の部分の0011の数字に合わせて、ファイルを編集しなければいけません。
対応表
| ハブ種類 | USB VID:PID(DFUモード) | 説明 |
|---|---|---|
| 51515 Inventor Hub | 0694:0006 | 51515 の DFU モード。Pybricks や公式ファーム書き込み時に使用。 |
| SPIKE Prime Hub | 0694:0006 | SPIKE Prime の DFU モード。51515 と同じ PID を使う。 |
| Technic Large Hub | 0694:0011 | Technic Hub の DFU モード。私のは何故かこれでした。 |
このPIDに合わせてspike-rt/scripts
/deploy-dfu.shを書き換えてください。書き換える場所は12行目です。
#!/bin/bash -xe
TOOL_DIR=$( cd "$( dirname "$0" )" && pwd -P )/../tools
PYTHON3=python3
MPTOP=$TOOL_DIR/../external/libpybricks/micropython
DFU=$MPTOP/tools/dfu.py
PYDFU=$MPTOP/tools/pydfu.py
TEXT0_ADDR=0x8008000
DFU_VID=0x0694
DFU_PID=0x0011⬅︎ここ
echo "DFU Create $1"
$PYTHON3 $DFU -b $TEXT0_ADDR:$1 firmware.dfu
echo "Writing $1 to the board"
$PYTHON3 $PYDFU -u firmware.dfu --vid $DFU_VID --pid $DFU_PID
rm -rf firmware.dfu
ここを、PIDに合わせて変更してください。
※一度変更した場合はもういいです。
(ctl+Sで保存してください。)
次に、いよいよ書き込みをします。
./new_scripts/write.sh 作ったプロジェクト名
を実行します。そうすると、pybricks OSが起動し、プログラムが実行されるはずです!
8.終わりに
ここまでお疲れ様でした!
参考にしたブログを作ってくれたkoushiro様には感謝です!
実際のコードについては
を参照してください。
