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で行っています。
そして、HTTPサーバーやモータ制御プログラム転送のpythonプログラムをsystemctlで起動しています。
このロボットは、起動してブラウザで接続して制御できるまでに、約2分程度の時間が必要でした。

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

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

「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アドレス情報を消して再接続します。)


なお、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プログラム利用するヒープ領域を使わずに、 絶対アドレス指定で利用するram_area3領域を変数の記憶域に使います。
以下は、この絶対アドレスで指定する領域に、必要は変数の構造体を割り当てて、モータ制御するEEPROM用のコードです。

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