ByteScope

MicroPython Web IDE

MicroPython・CircuitPythonのボードをブラウザから開発 — REPL、コードエディタ、ファイル管理。インストールは不要。

Talks to your board locally over Web Serial — no code leaves your browser.

Checking browser support…

このツールについて

これは、基板の上でPythonインタープリタが動くボードのためのブラウザ製IDEです。MicroPython(ESP32、Raspberry Pi Pico、micro:bitなど)とCircuitPython(Adafruitのボード)に対応します。インタープリタがすでにボード側にあるので、.pyファイルはコンパイル工程なしでそのまま動きます。ブラウザではC/C++のファームウェアをビルドできないという昔ながらの制約が、ここでは単に当てはまりません。Web Serial APIで接続すれば、コードエディタ、REPLターミナル、ファイルマネージャーがすべてローカルにボードと会話します。サーバーへのアップロードはありません。

仕組み

本ツールはMicroPythonのraw REPLプロトコルを話します。実行を押すと、動いているものを中断してボードをraw REPLに切り替え、raw-pasteモードでコードを流し込み(ウィンドウ単位のフロー制御付きなので、大きなスクリプトも通常のREPLの自動インデントに崩されることなく綺麗に転送されます)、実行し、出力をそのままターミナルへ返します。Ctrl-Cは実行中のプログラムの中断、Ctrl-Dはソフトリセットです。ボード上のファイル操作(一覧、読み込み、書き込み、削除)は、同じ経路で小さなPythonの断片を実行し、ボードが表示した内容を解析して行っています。

ファイルと自動実行

ファイルマネージャーはボード上のファイルを一覧し、編集・アップロード・ダウンロード・削除ができます。エディタのタブをmain.py(CircuitPythonならcode.py)として保存すれば、次のリセットでボードが自動的に実行します。これがこの手のボードの真骨頂です。CircuitPythonでの注意点として、パソコン側でCIRCUITPYのUSBドライブが書き込み可能な状態でマウントされている間、ボードは自分のファイルシステムを読み取り専用でマウントします。そのため、ドライブを取り出すまでWebからの書き込みは失敗します。本ツールはどちらの系統かを判別して、この点を説明します。

サンプルとスニペット

最初の一歩をひととおり揃えたサンプル集があります。LEDを点滅させる、アナログセンサーを読む、Wi-Fiにつなぐ、数値をライブプロッタへ流す、といったものをワンクリックで読み込めます。自分で書いたスニペットはブラウザのlocalStorageに保存され、端末の外へ出ることはありません。

よくある質問

どのボードとブラウザで使えますか?

USBシリアル機器として見えるMicroPythonまたはCircuitPythonのボードなら使えます。ESP32/ESP8266、Raspberry Pi Pico、micro:bit、AdafruitのFeatherやQT Pyなど多数です。Web Serial APIがChromium系専用のため、Chromium系ブラウザ(デスクトップのChrome、Edge、Opera、Android版はChrome 148以降)が必要です。SafariとFirefoxは実装していません。

Pythonやドライバのインストールは必要ですか?

Pythonも、IDEも、ツールチェーンも要りません。インタープリタはすでにボードの中にあります。macOS、Linux、ChromeOSではドライバの作業なしにボードが認識されます。Windowsでは一部のボードにCH340やCP210xのUSBシリアルドライバが必要な場合があり、これはArduino IDEが使うものと同じドライバです。

ここでのMicroPythonとCircuitPythonの違いは何ですか?

どちらも同じraw REPLの上で動くため、エディタとターミナルの使い勝手は同じです。違うのは自動実行されるファイル(main.pyかcode.py)と、ファイルシステムです。CircuitPythonはUSBドライブを見せる代わりに、パソコンから書き込める間はボード側が読み取り専用になります。本ツールはどちらに接続しているかを判別して動作を合わせます。

書いたコードを起動時に自動実行できますか?

はい。ファイルマネージャーからmain.py(MicroPython)またはcode.py(CircuitPython)として保存し、ボードをリセットしてください。そのファイルは電源投入ごとに自動で実行されます。mainより先に済ませたい初期化はboot.pyに書きます。

パッケージのインストール(mip/circup)はできますか?

MicroPythonならできます。REPL越しにmip.install()を実行してボードへパッケージを取得できますが、ボードがWi-Fiにつながっている必要があります。CircuitPythonのパッケージマネージャーであるcircupはデスクトップのプログラムで、REPL上の代替がないため、Webからのライブラリ導入は対象外です。代わりに、ライブラリバンドルをCIRCUITPYドライブへダウンロードしてください。

書いたコードはどこかにアップロードされますか?

いいえ。すべてブラウザとボードの間でWeb Serialを通してローカルに動きます。コード、ボード上のファイル、REPLのセッションがサーバーに触れることはありません。保存したスニペットもブラウザの中だけに残ります。