ESP32-WROVER-E で MicroPython

とは言っても、メインはファームウェア突っ込むということだけです。

ファームウェアをダウンロード

「Farmware」の項目から適当なものをダウンロード。
とりあえず、Releaseの一番新しいやつにしておきます。

ファームウェアを書き込む

「esptool.py.exe」というやつで書き込みます。
”普通の”Pythonが実行できる環境で、pipでダウンロードできます。
必要に応じてpipのアップデートしておきます。

pip install esptool


実際にesptool.py.exeを使って作業していきます。
前もって、デバイスマネージャから、ESP32がどのCOMポートにつながってるか確認をしておくこと。

また、パスが通っていなくて、単純にesptool.py.exeと打って実行しても実行されない場合がある。パスを通すか、まあ、そんなに使うコマンドでもないのでexeのあるフォルダに移動してコマンドを実行していきます。
(pythonのpip.exeのところにありました)

まず、ファームウェアを消去します。

esptool.py --port COM5 erase_flash

私の環境では「COM5」だったので、そのように指定。

消去が終わったら、ファームウェアを書き込みます。

esptool.py --chip esp32 --port COM5 write_flash -z 0x1000 D:\esp32-20220618-v1.19.1.bin

ここまで終わると使用準備完了。

Thonyで実行してみる

Raspberry Pi Picoも弄ってるので、Thonyでコードを書いてみます。
「ツール」>「Options…」>「インタプリタ」タブ で
「MicroPython(ESP32)」を設定しておきます。

とりあえずLチカと、クイックリファレンスに載ってた温度取得してみました。(ただし、温度は華氏で取得なので、摂氏に変換が必要。また、本体チップ発熱の影響がありすぎて、普通に40度超の値が出てきます。)

# main.py

import machine, utime
import esp32

led = machine.Pin(5, machine.Pin.OUT)

for i in range(20):
	led.value(1)
	utime.sleep(1)
	led.value(0)
	utime.sleep(1)
	print( str(i) )

	temp = (esp32.raw_temperature()-32)/1.8
	print( temp )

led.value(0)

本体内には、すでにboot.pyがありますが、普通にmain.pyという名前にして保存します。

結構「Device is busy」で保存できなかったり、実行できなかったりが多い気がしますが、「Ctrl+C」してやるとinterruptが走って復活します。


この記事が気に入ったらサポートをしてみませんか?