参考情報
VScodeのアップデート等で、Global Settingsの設定できない場合があります。
VScodeではなく、ThonnyでのmicroPython環境の構築について↓に記載しました。
はじめに
ESP32のコーディングをMicroPythonで行うことができます。
今回、VScode上での環境構築を紹介させていただきます。
紹介する内容
- MicroPython用ファームウェアの書き込み
- VSCode上で環境構築
- hello worldとLチカ
確認した環境
- ホストPC
- windows10 64bit Home
- Anaconda - Python3.6
- VSCode - 1.41.1
- NodeJS - 12.14.1 LTS
- ターゲットボード
- ESP32-WROOM-32 開発ボード
手順
大まかな流れ
以下が大まかな流れです。
- MicroPython用ファームの書き込み
- VSCodeのセッティング
- .pyファイルのアップロードおよび実行
MicroPython用ファームウェアのダウンロード
MicroPythonページ↓より、ファームウェアをダウンロードします。
今回使用するESP32ボードは、SPIRAM(pSRAM)が搭載されていないモデルです。
ボード名:SP32-DevKitC Core Board ESP32
esp32-idf4-20191220-v1.12.bin
をダウンロードしました。
ファイル名:esp32-idf4-20191220-v1.12.bin
ファームウェアの書き込み準備
下記のコマンドで、書き込み用のモジュールをインストールします。
- Anaconda環境
>conda install -c conda-forge esptool
- Python環境
>pip install esptool
デバイスマネージャーにて、接続されているポートを確認します。
=>COM4
下記のコマンドで、ESP32のROMをイレースします。
>esptool --port COM4 erase_flash
esptool.py v2.8
Serial port COM4
Connecting........_____....._____....._____....._____.....__
Detecting chip type... ESP32
Chip is ESP32D0WDQ5 (revision 1)
Features: WiFi, BT, Dual Core, Coding Scheme None
Crystal is 40MHz
MAC: 30:ae:a4:9c:d6:c4
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 8.0s
Hard resetting via RTS pin...
次に先ほど、ダウンロードしたファームウェアを書き込みます。
>esptool --chip esp32 --port COM4 write_flash -z 0x1000 esp32-idf4-20191220-v1.12.bin
esptool.py v2.8
Serial port COM4
Connecting......
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
WARNING: Detected crystal freq 41.01MHz is quite different to normalized freq 40MHz. Unsupported crystal in use?
Crystal is 40MHz
MAC: 24:6f:28:b4:94:fc
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 1408512 bytes to 894711...
Wrote 1408512 bytes (894711 compressed) at 0x00001000 in 79.3 seconds (effective 142.1 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
VSCode環境下でhello world
VSCodeで作業を行う際、
Pymakrという拡張機能を使用します。
Pymakrは、NodeJSを使用しているため、事前にインストールが必要です。
NodeJSのインストール
下記のサイトより、インストーラをダウンロードし、インストールを行います。
※インストール後、環境パスを通すために再起動しました。
インストールおよびパスが通っていることをコマンドプロンプトで確認します。
>node -v
v12.14.1
Pymakrのインストール
拡張機能をインストールします。
Pymakrの設定
コマンドパレット(Ctrl + Shift + P)より、
"Pymakr > Global Settings"を選択します。
下記の設定を変更します。
"address"をデバイスマネージャーで確認したCOMポートを指定します。
また、"auto_connect"をfalseにします。
※trueの場合、他のポートを勝手に見に行き、エラーとなってしまい接続されないようです。
mac os時の補足
mac osを使用した場合は、"address"には、"/dev/tty.***"を指定します。
私の場合は、"/dev/tty.SLAB_USBtoUART"を指定しました。
{
"address": "/dev/tty.SLAB_USBtoUART", ←変更
"username": "micro",
略
"auto_connect": false, ←変更
略
}
接続して、hello world
接続する場合は、画面下の①"Pycom Console"をクリックします。
②の箇所に、インタプリタ">>>"が表示されます。
※もう一回押すと切断されます。
直接入力し、"hello world"が表示されます。
>>> print("hello world")
hello world
Lチカ(.pyファイルのアップロード)
回路図とLチカのコード
以下の回路として、Lチカのコードを記載します。
コード:blink.py
import time
from machine import Pin
led = Pin(27, Pin.OUT)
def run():
for i in range(10):
led.value(1)
time.sleep(1)
led.value(0)
time.sleep(1)
ファイルのアップロード
ファイルのアップロードは、下記から実施します。
アップロードが完了すると、再起動が実行されます。
再起動後、ファイルを確認します。
>>> import os
>>> os.listdir()
['boot.py', 'blink.py', 'project.pymakr']
blinck.pyが追加されていることがわかります。
Lチカを実施します。
>>> import blink
>>> blink.run()
LEDがチカチカしたかと思います。