ESP32でMicroPythonを動作させる方法

ESP-WROOM32

はじめに

ここでは、ESP32にMicroPythonの動作環境をロードさせて、REPL環境を構築する方法を書いていきます。REPL環境構築した後、ESP32にMicroPythonプログラムファイルを転送して実行する方法についても記載します。

準備

まず、MicroPython環境を構築するためにPythonの動作環境をPC上につくります。

Python環境としてAnaconda(3.x)をインストールします。

Page not found | Anaconda

Anaconda公式サイトよりインストールファイルをダウンロードして、手順に従ってインストールします。

つぎに、ESP32にロードするMicroPythonをダウンロードします。

ダウンロードファイルは、MicroPython公式ページよりダウンロードします。

MicroPython - Python for microcontrollers
MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of ...

ダウンロードしたzipファイルを解凍して、任意の場所に保存します。

ESP32へのアップロード

インストールしたPython Anacondaプロンプトを起動します。

コマンドプロンプトに

pip install adafruit-ampy

と入力して実行します。これによりAMPY(Adafruit Micro Python Tool)がインストールされます。

ESP32とPCをUSBケーブルで接続しておきます。その状態で、一度ESP32のFlashメモリの内容を消去します。消去方法は、次のコマンドで行います。

esptool -p COM5 erase_flash

COM5の部分は、環境に応じて変わります。ここでは、USB接続したときにCOM5で認識されていたので、COM5としています。どのCOMポートに接続されているかはデバイスマネージャーのポートを見るとわかります。

ESP32のFlashメモリの内容を消去したらMicroPythonをESP32にアップロードします。

アップロードは、次のように記述して実行します。

esptool --chip esp32 -p COM5 --baud 115200 write_flash -z 0x1000 esp32-idf4-20210202-v1.14.bin

ポート設定のCOM5は接続されているポート番号です。ボーレートと書き込みフラッシュアドレスは固定です。最後の書き込みファイル名は、ダウンロードしたMicroPythonファイルの名称になります。

ここでは、Anacondaコマンドプロンプトの実行フォルダ内にファイルがある場合の書き方になっています。ファイルが別フォルダにある場合は、そのパスを記述する必要があります。

これを実行することでESP32にMicroPythonがアップロードされます。

REPLでの動作確認

ここまでの手順を行うことでREPL(Read-Eval-Print Loop)環境が構築されています。

実際に次のコマンドを実行して、ESP32の応答を確認してみます。

ampy -p COM5 ls

実行後、応答に時間がかかる場合があります。

返ってこない場合は、しばらく待ちます。(20秒ぐらい)

応答があるとESP32に保存されているPythonファイル名が返ってきます。

ここでは、boot.pyとmain.pyが保存されているということになります。

Flash消去後は、boot.pyのみになっているかと思います。

ESP32へのファイル転送

ESP32では、boot.pyファイル実行後、main.pyが実行される流れになります。

PC上でmain.pyファイルを作成し、それをESP32にアップロードすることで、main.pyに書かれたプログラムをESP32で実行することができます。

転送は、次のコマンドを実行することでできます。

ampy -p COM5 put main.py

putコマンドでファイル転送を行います。

おわりに

ここでは、ESP32にMicroPython環境を構築する手順を書いてきました。

MicroPythonは、Pythonのサブセットを実装しています。

ライブラリの詳細は、MicroPythonライブラリを参照してみてください。

MicroPython ライブラリ — MicroPython latest ドキュメント

コメント

タイトルとURLをコピーしました