UMEHOSHI ITA TOP PAGE    COMPUTER SHIEN LAB

UMEHOSHI ITA基板に取り付けたESP32のMicroPythonで、WiFiによる遠隔操作する。

ロボットのハード構成

ロボットのハード構成は、こちらのページで紹介しています。

UMEHOSHI ITA基板に取り付けたESP32のMicroPythonのインストールとMicroPythonの実行

MicroPythonのインストールは、こちらのページで紹介している内容で行います。

これを行うには、UMEHOSHI ITAをスルーモードで行います。
この状態は、PCとUSBで接続してPC側の「Tera Term」のターミナルで、MicroPythonの会話モードが動作できます。
UMEHOSHI ITAをスルーモードにする操作:
  SW1とSW2を押し、SW1を離してLED1が消灯に変わるまでSW2を押す。約3秒)

UMEHOSHI ITAをスルーモードとは、接続したUSBでPCから送った情報がそのままUARTを介してESP32に送られるモードで、逆にESP32が出力した情報はPCへ送信されます。

この状態で、PC側のampyコマンドを使うことにより、ESP32へのファイル転送操作やESP32側でのpythonプログラムの実行ができす。
ampyの使い方は、こちらのページで紹介しています。

UMEHOSHI ITA基板のモータ制御プログラムのEEPROM化と、そのエントリーポイントの実行

EEPROM化は、こちらのページで紹介している内容で行います

これを行うには、UMEHOSHI ITAをUART1コマンドモードで行います。
この状態は、UARTでUMEHOSHI ITAで、UART1やUSBで受信した'S'、'R'、'G'から始まる文字列命令「UME専用Hexコマンド」を処理できます。
UMEHOSHI ITAをUART1コマンドモードにする操作:
  SW1とSW2を押し、SW1を離してLED1が消灯し、それから点灯に変わるまでSW2を押す。約4秒)

ROM化により、PCとUSBで接続してPC側の「Tera Term」のターミナルEEPROM内のエントリーポイントの文字列を送るだけで、対応する関数を起動できます。
例えば、「Tera Term」からEEPROMのブザーを鳴らすエントリポイントを実行する"R009D020D00003B"の文字列を送ると、 START:9D020D00の応答文字列で応答すると共にブザーが鳴ります。
R009D020D00003B
START:9D020D00

なお、ESP32の起動メッセージなど余計な文字列も表示されますが、それは無視してください。
そして、 UMEHOSHI ITAをUART1コマンドモードでは、ESP32がUMEHOSHI ITAをのUART1に接続されるため、
ESP32のMicroPythonのprintで出力した'S'、'R'、'G'から始まる文字列は、UMEHOSHI ITAの命令「UME専用Hexコマンド」として処理されます。


UMEHOSHI ITA基板に取り付けたESP32のMicroPythonで、WiFiによる遠隔操作する

現状では上記で示したように、スルーモードで起動するとampyコマンドでPCからPythonファイルを実行できます。
ですが、UMEHOSHI ITAの制御をPythonからできません。
UART1コマンドモードで起動すると、ESP32のPythonのprintでUMEHOSHI ITAのエントリポイントを起動できます。
ですが、PCからPythonファイルの転送や起動ができません。

最終的に、 UMEHOSHI ITA基板を制御する目標なので、UMEHOSHI ITAをUART1コマンドモードで使います。
これでampyコマンドが使えなくなりますが、代わりにPCからのPythonファイルの転送や起動を自作のTCPプログラムで実現します。

以上を実現するUMEHOSHI ITA基板は、次の@〜BのMicroPython群を配置することで出来上ります。
これらの配置は、UMEHOSHI ITAをスルーモードで行います。
UMEHOSHI ITAをスルーモードにする操作:
  SW1とSW2を押し、SW1を離してLED1が消灯に変わるまでSW2を押す。約3秒)

@起動時に実行する次の内容の「boot.py」を作ります。(このファイルが起動時に実行します。)
import setap
import ume_tcp_esp32
ampy -p COM3 -b 11500 put boot.pyでESP32に転送します。


A起動時に実行する次の内容の「setap.py」を作ります。(Wifiのアクセスポイント名:「ESP-AP」とIPアドレス:「192.168.222.1」が決まります。)
import time # setap.py
time.sleep(5)
import network
ap = network.WLAN(network.AP_IF) # create access-point interface
ap.config(essid='ESP-AP') # set the ESSID of the access point
ap.config(max_clients=10) # set how many clients can connect to the network
ap.ifconfig(('192.168.222.1', '255.255.255.0', '192.168.222.1', '8.8.8.8'))
# set (ip address, subnet mast, default gateway, dns ip address)
ap.active(True)         # activate the interface
ampy -p COM3 -b 11500 put setap.pyでESP32に転送します。


B起動時に実行する次の内容の「ume_tcp_esp32.py」を作ります。(このファイルが起動時に実行します。)

上記コードの解説: 起動時に ampy -p COM3 -b 11500 put ume_tcp_esp32.pyでESP32に転送します。