ESP32にMicroPythonファームを入れてVS codeでLチカしてみた
2020/07/10 categories:ESP32| tags:ESP32|MicroPython|
ESP32ではMicroPythonが使えるみたいなので、Pythonで書いたLED点滅のプログラムをESP32で動作させてみました。
![](https://ymt-lab.com//images/post/esp32-micropython-blink-led-01.gif)
ファームウェアの入手
MicroPythonのESP32のダウンロードページにあるファームウェアをダウンロードします。毎日ビルドや安定ビルド、SIPRAM対応ボード用とかいろいろなファームがあるみたいですが、今回はGENERIC : esp32-idf3-20191220-v1.12.binを使ってみました。
![](https://ymt-lab.com//images/post/esp32-micropython-blink-led-02.png)
ダウンロードしてきた.binファイルはDドライブ直下に保存しました
![](https://ymt-lab.com//images/post/esp32-micropython-blink-led-03.png)
pipでesptoolのインストール
下記のコマンドでesptoolをインストールします。Pythonのバージョンはpython3.8.2を使いました。
pip install esptool
![](https://ymt-lab.com//images/post/esp32-micropython-blink-led-04.png)
ESP32のファームウェアの削除する
ファームの削除や書き込みにはシリアルポートの番号が必要なので確認しておきます。今回はCOM3でした。
![](https://ymt-lab.com//images/post/esp32-micropython-blink-led-05.png)
コマンドを実行するためにはEPS32を書き込みモードにする必要があり、ボード上のBOOTスイッチを押しながらENスイッチを1回押してBOOTスイッチを離すと書き込みモードになります。この状態で下記コマンドを実行するとファームが削除できます。コマンドのポート番号は環境によって書き換える必要があります。
esptool.py –port COM3 erase_flash
![](https://ymt-lab.com//images/post/esp32-micropython-blink-led-06.png)
ESP32にファームウェアを書き込む
前述の削除の時にEPS32は書き込みモードになったままなので、下記コマンドを実行するとファームを書き込むことができます。ポートとファームのファイル名は環境によって書き換える必要があります。
esptool.py –chip esp32 –port COM3 write_flash -z 0x1000 esp32-idf3-20191220-v1.12.bin
実行結果は下記の通りです
![](https://ymt-lab.com//images/post/esp32-micropython-blink-led-07.png)
VS codeで.pyファイルをアップロードする準備
MicroPythonでは.pyファイルにコードを書いてボードにアップロードするという流れになるようです。この作業をVS codeで行えるように準備しました。
node.jsが必要らしいのでインストールしておきます。今回は12.18.2 LTSをインストールしました。
![](https://ymt-lab.com//images/post/esp32-micropython-blink-led-08.png)
VS codeの拡張機能からPymakrを検索してインストールします
![](https://ymt-lab.com//images/post/esp32-micropython-blink-led-09.png)
インストールが完了したら設定ファイルが開かれたので必要に応じて書き換えます。ネットの情報を参考にしてaddressをCOM3としてauto_connectをfalseとしました。
![](https://ymt-lab.com//images/post/esp32-micropython-blink-led-10.png)
ステータスバーのPymakr Consoleに✓が入っている状態で下記コマンドを実行するとhello worldと返ってきたのでVS codeで通信できているようです。
print("hello world")
![](https://ymt-lab.com//images/post/esp32-micropython-blink-led-11.png)
.pyファイルをアップロードする
ボード上のLEDを点滅させるプログラムを書いてblink_led.pyというファイル名で保存しました。ステータスバーのUploadをクリックするとアップロードできます。
import time
from machine import Pin
led = Pin(2, Pin.OUT)
def run():
for i in range(10):
led.value(1)
time.sleep(1)
led.value(0)
time.sleep(1)
![](https://ymt-lab.com//images/post/esp32-micropython-blink-led-12.png)
Upload done, resetting board…と書いているのでボードが再起動したようです
![](https://ymt-lab.com//images/post/esp32-micropython-blink-led-13.png)
アップロードしたblink_led.pyが存在するか確認するために下記コマンドを実行しました。返ってきたリストの中にblink_led.pyが含まれているので無事アップロードできました。
import os
os.listdir()
![](https://ymt-lab.com//images/post/esp32-micropython-blink-led-14.png)
アップロードした.pyファイルを実行するために下記コマンドを実行しました
import blink_led
blink_led.run()
![](https://ymt-lab.com//images/post/esp32-micropython-blink-led-15.png)
ボードを見てみると青いLEDが点滅しているのが確認できました
![](https://ymt-lab.com//images/post/esp32-micropython-blink-led-16.gif)
所感
好きなプログラミング言語であるPythonでマイコンを動作できるのはいいですね。8ビットのPICにアセンブラを書いていた頃が懐かしいです。Pythonだとマイコンのコードも楽に書けるかもしれないのでいろいろ試してみようと思います。