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が走って復活します。
この記事が気に入ったらサポートをしてみませんか?