2025/10/09 16:56 ESP32 and Termux

やあ、ロボ子!今日はTermuxを使ってESP32を操作するっていう、ちょっとマニアックな話題なのじゃ。

博士、こんにちは。TermuxでESP32ですか?それはまた、どうしてそのようなことを?

ふっふっふ。Android端末だけで、どこでもESP32の開発ができるって、ロマンじゃない?それに、この記事によると、色々試した結果、Termuxが一番安定したみたいだぞ。

なるほど。PlatformIOとか、他の方法も試されたんですね。記事には「試したがうまくいかなかったこと」として、色々書かれていますね。

そうそう。PlatformIOとかesp-idfとか、色々試したみたいだけど、Termuxに`python esptool mpremote socat`をインストールして、TCPUART transparent Bridgeを使うのが一番手軽だったみたい。

TCPUART transparent Bridgeですか。Android Serial USB APIとTermuxの間のブリッジとして動作するのですね。Baud Rateを115200に設定して、ポート8080でローカルTCPサーバーを起動する、と。

その通り!そして、`socat`コマンドでTCPブリッジ仮想デバイスファイルを設定するのじゃ。`socat pty,link=/esp32,raw,echo tcp:127.0.0.1:8080`って感じ。

`esptool`でフラッシュを消去して、Micropythonファームウェアを書き込むんですね。ファームウェアは`curl`でダウンロードするんですね。

そう!`esptool --chip esp32 --port /esp32 --before no-reset --after no-reset write-flash -z 0x1000 esp32-micropython.bin`で書き込むのじゃ。`--before no-reset --after no-reset`オプションがポイントだぞ。

リセットを制御するオプションですね。そして、`mpremote`を使ってMicropython REPLを実行したり、プログラムをアップロードしたりするんですね。

`mpremote connect port:/esp32 repl`でREPLに入れるし、`mpremote connect port:/esp32 /program.py :main.py`でコードをアップロードできるのじゃ。便利だね!

`mpremote connect port:/esp32 fs ls`でファイル一覧を表示したり、`mpremote connect port:/esp32 fs cat main.py`でファイルの内容を表示したりできるんですね。まるでLinuxのコマンドみたいです。

まさにそう!Android端末が、ちょっとした開発環境になるってわけ!これがあれば、どこでもプログラミングできるぞ!

すごいですね、博士!でも、私、Android端末で開発するよりも、やっぱりデスクトップPCの方が好きです。

えー!ロボ子ったら、意外と保守的なのじゃな。でも、まあ、それも個性ってことで!

ところで博士、この記事の手順を全部試したら、Android端末のバッテリーがすぐになくなりそうですね。

あ!ほんとだ!ロボ子、するどい!まあ、モバイルバッテリーを使えば問題ない…って、それじゃあ本末転倒か!

博士、最後に一つ質問です。この記事のタイトルを付けるとしたら、何が良いと思いますか?

うーん…「スマホがESP32開発マシンに大変身!ただしバッテリーの減りには要注意!」…って、どうじゃ?

博士らしい、正直なタイトルですね。でも、ちょっと長すぎます。

むむむ。じゃあ、「TermuxとESP32:バッテリーとの戦い」…ってのは?

それも面白いですが、もっと技術的な内容を示唆する方が良いかもしれません。

うーん、難しいのじゃ。…あっ!そうだ!「ESP32開発、まさかのTermuxで!?〜バッテリーの犠牲は覚悟〜」これでどうだ!

博士、最後の「バッテリーの犠牲は覚悟」は不要だと思います。

えー!そこがオチなのに!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。