UMEHOSHI ITA TOP PAGE    COMPUTER SHIEN LAB

Raspberry PI Zero WとUSB接続し、Wifi接続してWebブラウザ制御は、TCPで制御する作品その2

前に紹介したページの作品は、HTTPサーバー起動時に[UMEHOSHI ITA]基板のRAM領域へ モータ制御プログラム転送し、他のPCなどからブラウザでロボットを制御できる仕様になっています。
ここで使うDHCP、HTTP、TCPサーバーは、「Raspberry PI Zero W」のLinuxで行っています。
(PI Zero Wは、このリンク先で紹介したraspbianをインストールしています。)
そして、HTTPサーバーやモータ制御プログラム転送のpythonプログラムをsystemctlで起動しています。
このロボットは、起動してブラウザで接続して制御できるまでに、約2分程度の時間が必要でした。http://192.168.100.1/index.htm

このページではこの起動時間を短縮するため、[UMEHOSHI ITA]基板のRAM領域へモータ制御プログラム転送をせず、 プログラムEEPROMに書き込んで使う改良を行った資料です。
(「Raspberry PI Zero W」と[UMEHOSHI ITA]基板と接続詳細情報は、 別ページなど参照してください。)

[UMEHOSHI ITA]基板のEEPROM領域にモータ制御プログラムを書き込んで制御するための変更

起動させた後、PCからのWifiを介した遠隔操作で操作するので、PCが接続するアクセスポイントをロボットの アクセスポイント(SSID:pizero, パスフレーズ「abcd1234」)で接続します。
始めはWebサーバーが起動しているので、そして、http://192.168.100.1/index.htmに接続します。
その後、quit.jpg閲覧で、Webサーバーの代わりに、TCP制御サーバーの状態にします。(次の行のクリック操作)
「Webサーバー終了してTCP制御サーバー起動」の隠し操作

[UMEHOSHI ITA]基板のEEPROM領域に書き込むにモータ制御プログラムは、このEEPROM用のコードは、このリンク先ページで紹介したものを使います。
umehoshiEditの開発ツールで直接に書き込むこともできますが、 この翻訳済みファイル(app_pwm_esp32.umh)を、Wifiを介した遠隔操作で転送します。
このファイルを、umeclient.pyで[UMEHOSHI ITA]に転送するだけです。
umeclient.pyのファイルは、そのリンク先の内容を使います。
app_pwm_esp32.c.hexと、umeclient.pyを同じフォルダに置いて、Pythonが動作するPC環境で次のようにapp_pwm_esp32.c.hexを送ります。









「ssh pi@192.168.100.1」で接続して、操作します。 (このページでセットアップしていれば[abc123]のパスワードで接続)
 Are you sure you want to continue connecting (yes/no/[fingerprint])?でyesを入力します。
 Host key verification failed.のエラーであれば「ssh-keygen -R 192.168.0.123」入力で、該当のIPアドレス情報を消して再接続します。)


UMEHOSI ITA のRAM領域に初期コードを転送して動作させる手法は、このサービスから
/home/pi/umehoshi/umehoshi.pyを起動させていました。
umehoshi.py中で[UMEHOSHI ITA]のRAMに、モータ制御プログラムを転送していました。これを転送しないでROM利用するプログラムに変更した
/home/pi/umehoshi2/umehoshi2.pyを使う変更です。
なお、umehoshi.serviceを動作させている場合は、『sudo systemctl stop umehoshi.service』で停止して作業します。

/home/pi/umehoshi2のフォルダを生成し、その中に以前に作ったumeusb.pyumetcp.pyをいれます。
umetcp.pyの実行で受信ファイルを記憶するフォルダ『/home/pi/umehoshi2/datas』を作成します。
カレントディレクトリを『/home/pi/umehoshi2/』に変更し、『python3 umetcp.py』を実行することで、 Hexファイルの受信、実行ができれう
ROM領域へプログラムを書き込んでいますが、 その後も[UMEHOSHI ITA]基板のRAM領域を使ったプログラム転送や実行を可能にする目標で行います。
EEPRO領域には、モータ制御の関数部をだけを書き込んで、 後から転送するRAMプログラムが実行できるようにします。
そのためには、RAMプログラム利用するヒープ領域を使わずに、

このプログラムの転送には、umehoshi