はじめに
MicroPythonは組込み機器や小型マイコンボード(例:ESP32、Raspberry Pi Pico など)で使えるように設計された軽量のPythonです。CPUやメモリに制約のあるマイコンボードでも動作します。多くの基本ライブラリがPythonからMicroPythonに移植されており、Pythonと比べて遜色のないプログラミングが可能となっています。
ここで、MicroPythonをマイコンボードで使えるようにするには、ファームウェアを書き込む必要があります。今回は、ESP32ボードにMicroPythonのファームウェアを書き込み、MaicroPythonを使えるようにします。
環境
パソコン:Raspberry PI 5
OS:Linux raspberrypi 6.12.34
ファームウェア:ESP32_GENERIC-20250809-v1.26.0.bin
動作確認に用いたマイコンボード:Wemos ESP32 D1 R32, ESP32 DevKitC
ESP32ボードへのMicroPythonのインストール
はじめに、パソコンに「esptool」がインストールされていない場合は、「esptool」をインストールします。
pip install esptool
ESP32ボードをパソコンに接続して、ESP32ボードの初期化を実行します。
esptool.py --port /dev/ttyUSB0 erase_flash
ESP32用のMicroPythonファームウェアのダウンロード
の下の方にある「Firmware」から v1.26.0 (2025-08-09) .bin などをダウンロードします。
次いで、コマンドを実行してファームウェアをマイコンボードに書き込みます。
(ファームウェア(ESP32_GENERIC-20250809-v1.26.0.bin)がダウンロードフォルダにある場合のコマンドです)
esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash -z 0x1000 /home/moony/ダウンロード/ESP32_GENERIC-20250809-v1.26.0.bin
参考までに、ファームウェア書き込み後のメモリの状況(ESP32 DevKitC)です。
>>> import micropython
>>> micropython.mem_info()
stack: 736 out of 15360
GC: total: 56000, used: 10080, free: 45920, max new split: 110592
 No. of 1-blocks: 226, 2-blocks: 32, max blk sz: 32, max free sz: 2858
>>> import gc
>>> gc.mem_free()
153344
>>> gc.mem_alloc()
14928
>>>
# スタック 15360 バイト中,736 バイト使用
# ヒープ・メモリ 56000 バイト中,10080 バイト使用
# 空き容量 45920 バイト
以下のプログラムなどで動作確認します。
WiFi接続
import time 
import network 
# Wi-Fi に接続する関数
# 引数:SSIDとパスワード(ssid, password)
def connect_to_wifi(ssid, password):
    wlan = network.WLAN(network.STA_IF) 
    wlan.active(True)                    
    
    wlan.connect(ssid, password) 
    print("Wi-Fiに接続中...")
    for _ in range(10):
        if wlan.isconnected():
            break
        time.sleep(1)
    if wlan.isconnected():
        ip = wlan.ifconfig()[0]
        print("接続成功! IPアドレス:", ip)
    else:
        print("Wi-Fi接続に失敗しました。")
        raise SystemExit
# Wi-Fiに接続(ssid と password にはWiFiルータのIDとパスワードを入力)
connect_to_wifi('ssid', 'password')
参考文献