https://ameblo.jp/kissam59/entry-12630452888.html
からの続きになります。
MicroPythonのControl commandには以下の4つがあります。
Control commands:
CTRL-A -- on a blank line, enter raw REPL mode
CTRL-B -- on a blank line, enter normal REPL mode
CTRL-C -- interrupt a running program
CTRL-D -- on a blank line, do a soft reset of the board
CTRL-E -- on a blank line, enter paste mode
基本的には、USB(見かけ上はシリアルで、ターミナルプログラム)経由で制御しますが、WebベースでもプロトタイプのWebREPLが公開されています。
MicroPython v1.13 on 2020-09-02; ESP32 module with ESP32
を
waves ESP32 ESPDuino-32上で走らせた場合を例にとって紹介します。
https://github.com/micropython/webrepl
先ずは、ESP32 ESPDuino-32 をWi-FiルーターにTCP/IPで接続します。
続いてCTRL-Aでraw REPL modeに入ります。
その状態から、以下のコードをESP32 ESPDuino-32にロードしてWebREPLを起動します。
#https://micropython-docs-ja.readthedocs.io/ja/latest/esp32/quickref.html#webrepl-web-browser-interactive-prompt
import webrepl
import webrepl_setup
#webrepl.start()
# or, start with a specific password
webrepl.start(password='xxxxxx')
ここでxxxxxxは、ブラウザ側からWebREPLにアクセスする際のpasswordです。
この後にターミナルプログラムからCTRL-Dコマンドを送ると、ESP32 ESPDuino-32上でWebREPLが起動します。
後は、ブラウザーから私の環境の場合(webrepl.htmlは、https://github.com/micropython/webrepl から入手)
file:///C:/Users/user/Documents/ESP32/webrepl-master/webrepl.html#192.168.xxx.xxx:8266/
としてWebREPLに接続します。
ログインが成功するとWebREPLは >>>のプロンプト※を返しますが、改めてブラウザー側からCTRL-Bコマンドを送ってください。
Terminal widget should be focused (text cursor visible) to accept input. Click on it if not.
To paste, press Ctrl+A, then Ctrl+V
とのことなので、WebREPLではCTRL-Aには別な意味が持たせてあります。本来は、raw REPL mode に入るコマンドです。
※ normal REPL mode のプロンプト
REPL (Read-Eval-Print Loop) とは、入力・評価・出力のループのこと。 インタプリタにおいて、ユーザーとインタプリタが対話的にコード片を実行できるもの。
Postscriptインタプリタでいうとインタラクティブモードのことですね。