ESP32-WROOM-32EでMicroPythonを使い開発(準備編)
〔ESP-WROOM-02〕
〔マイコンのトップに戻る〕
[module編]
[GPIO編]
[通信編]
[I2S編]
[WiFi編]
[BLE編1]
[BLE編2]
[BLE編3]
[色々編]
準備編の目次
PyCharmのインストール
ESP32-WROOM-32EにMicroPythonをインストールする
フラッシュメモリのバックアップ
PyCharmを使ってみる
新規プロジェクトの作成
新規ファイルの作成
PycharmとESPの接続設定
main.pyを書き込んで見る
PyCharmのREPLを起動させる
シリアル端末でREPLを起動させる
前回に"XBeeでMicroPython編 "と"XIAOでCircuitPython編 "を記事にしました。
今度はMicroPythonでESP32-WROOM-32E (ESP32-D0WD-V3 ESP32 ECO V3, 4MB SPI flash )を
動作させます。尚、MicroPythonでESP-WROOM-02(ESP8266EX)はこちら を参照しましょう。
《ESP32-WROOM-32EにMicroPythonをインストールする》
【MicroPythonのファームウエアをダウンロード 】
これがESP32-WROOM-32EにインストールしてMicroPythonを動作させる為のソフトウェアです
@ こちらのサイト からダウンロードします。
A 私は、ESP-IDF v4.x を使用したファームウェアの安定版、"pSRAM"は内蔵していないタイプなので
[GENERIC : esp32-idf4-20210202-v1.14.bin ]を使いました。
因みに、"Espressif Systems"社の製品注文情報 を見れば"pSRAM"付きか如何かの情報は解ります。
B "esp32-idf4-20210202-v1.14.bin"ファイルを操作しやすい様に"c:\"の直接下のディレクトリへ
移動させて置きます。
【esptoolのインストール 】
esptool はESP8266/ESP32チップのROMブートローダと通信して"esp32-idf4-20210202-v1.14.bin"を
インストール出来ます。
詳しくは、こちらじゃ! (GitHubじゃ!Pythonじゃ!さんのサイト)
@ [PowerShell ]を起動させます。
A PS C:\Users\user> pip install esptool と実行します。
(pipは"Pythonインタープリター "のインストールと同時に入っていると思います)
B PS C:\Users\user> esptool.py -h と実行して動作するのを確認しましょう。
【MicroPythonのファームウエアを書き込む 】
@ ESP32-WROOM-32EボードをUSBでPCに繋ぎます。
A デバイスマネージャーかArduinoIDEのシリアルポート確認で繋いだポートを確認して置きます。
私の環境はデバイスマネージャーで”Sillcon Labs CP210x USB to UART Bridge (COM6 )”と表示
しました、Windows 10なのでUSB接続で"CP210xドライバー "が自動でインストールされています。
B ESP32-WROOM-32Eボードをリセットしますが....
関係するピンは"GPIO0 "/"GPIO2 "と"EN(RESET) "ですがぁ、通常は"GPIO0"と"EN"ピンには
スイッチが配線されています。("EN"ピンはボードで10KΩプルアップされている)
"GPIO2"ピンは内部的に"LOW"に起動時は繋がりますので何処にも配線をしないで下さい 。
後は、"GPIO0(boot)"ボタンを押しながら、"EN(RESET)"ボタンを押します 、
(因みに、"GPIO0"は内部的に"HIGH"に繋がるが、ボタンを押す事により"LOW"となります)
するとぉ、ダウンロードブートモードで立ち上がると思いますがぁマニュアルを見ましょう。
C [PowerShell]を起動させます。
D PS C:\Users\user> esptool.py --port COM6 chip_id と実行します。
デバイスと繋がっているかテストしてみます。
こんな感じで表示されたら繋がっています。
MACアドレスがぁ表示されているけどぉ...まぁ、いいかぁ。
E まずフラッシュ全体を消去する必要があります。
PS C:\Users\user> esptool.py --port COM6 erase_flash と実行し消しましょう。
F 新しいファームウェアを導入します。
PS C:\Users\user> esptool.py --chip esp32 --port COM6 write_flash -z 0x1000 c:\esp32-idf4-20210202-v1.14.bin と実行し書き込みましょう。
こんな感じで表示されたら成功でしょう 。
後は、"c:\"の直接下のディレクトリへ移動させたファイルは削除して置きましょう。
G ESP32-WROOM-32EボードのUSBをいったんPCから抜き取ります、でぇ、再び差し込みます。
H シリアル端末(ここではTeraTerm)を立ち上げ、シリアルを"COM6 "にし起動させます。
シリアルポートの設定でボーレートを"115200 "にします。
後は、キーボードで[ENTER ]を押せば">>> "のプロンプトが返されます、接続できました。
(下記の方 にTeraTermでREPLを起動させるもう少し詳しい記載があります)
こんな感じで表示されたら成功でしょう 。
ボードの"RESET"ボタンを押した後等に起動メッセージ(ゴミ?)が出力されますが気にしなくても
良いでしょう。
《フラッシュメモリのバックアップ》
たまに操作ミス等によりESP32-WROOM-32Eボードが立ち上がらなくなる事がありました、
そんな時はフラッシュメモリを削除してファームウエアを再度書き込むと治りますがぁ、
フラッシュメモリに入れていた物も再度書き込みをする必要がありめんどくさいですぅ、
そんな時はバックアップで〜す。
そんな時は、このページ”ESP8266のファームウェアのバックアップとレストア ”を見ましょう。
[esptool.py -b 115200 read_flash 0x00000 0x400000 esp32e_flash.bak ]
ESP32 4MBのバックアップです、意外と時間かかります。
書き戻しは、[esptool.py -b 115200 write_flash 0x00000 esp32e_flash.bak ]として上手く行った。
《PyCharmを使ってみる》
"PyCharm"のインストール と”ESP8266 MicroPythonプラグイン”の導入方法 はこちら を参照しましょう。
※ 使うのは、ESP32-WROOM-32Eですが、”ESP8266 MicroPythonプラグイン”で動作します。
@ ESP32-WROOM-32EボードをUSBでPCに繋ぎます。
次に、Pycharmを起動させます。
A ”+新規プロジェクトの作成 ”をクリックします。
この画面で始まらずメイン画面で始まった場合は、メニューバーの[ファイル ]->[新規プロジェクト ]です
B 新規プロジェク画面が表示されるのでプロジェクトを作成します。
注意) ここ以降、貼付けの図はESP-WROOM-02の記事での図を使っている所が有ります。
"ロケーション: ”にプロジェクト名を入力します、私は"esp32Test "という素晴らしい名前を選びました。
”〇既存インタープリター ”にチェックを入れて「Python x.x 」を選んで置きます。
[作成 ]ボタンをクリックします。あなたはPythonプロジェクトを作りました!
C メニューバーから[ファイル ]->[設定 ]->[言語 & フレームワーク ]->[MicroPython ]を
順番にクリックします。
”□Enable MicroPython support ”にチェック を入れます。
”デバイスタイプ: ”で「ESP8266 」を選びましょう。
”Device path: ”にデバイスのCOMポート を入力します。私のは"COM6"ですね。
[適用 ]をクリックします。(因みに、[検出 ]は出来なかった)
D [プロジェクト:esp32Test ]->[プロジェクト構造 ]に移動します。
(念の為、"esp32Test"の名前はあなたの決めたプロジェクト名になりますよぉ)
".idea "を右クリックして、除外 としてマークします。
[適用 ]をクリックし、[OK ]をクリックして設定画面を閉じます。
E 新規ファイルを作成します。
"esp32Test "を右クリックして、[新規 ]->[Pythonファイル ]を選択します。
"main.py "とファイル名を入力します。
【main.pyを書き込んで見る 】
上記事からの続きで〜すぅ。
@ "main.py"ファイルにスクリプトを、
print("Hello Kimura world")
と書きました。
A 書き込みます。
"main.py "を右クリックして、[実行(U)'Flash main.py' ]をクリックします。
下記図の様に実行されます。
ESP32-WROOM-32Eに書き込まれ、ソフトリセットがされている様ですね。
(ESP32ボードは"PyCharm"起動後、最初の1回目が書込まれない現象が起きているがぁ?.... )
B "MicroPython REPL "を動作させましょう。
メニューバーから[ツール ]->[MicroPython ]->[MicroPython REPL ]を順番にクリックします。
C REPLを操作します。(Pycharmの画面下側に表示されます )
REPLが表示され、">>> "のプロンプトが表示されるのを待ちます。
表示されたら[CTRL ]+[D ]を押せば、ソフトリセットが実行されスクリプトが起動されます。
※ REPLを表示している時に"main.py"ファイルを書き込むとエラーで失敗します、
書き込む場合はREPLを閉じましょう 。(”ターミナル:ローカル”タブのXをクリックすればOKです)
因みに、シリアル端末(TeraTerm等)でREPLを開いている時も閉じないとダメです。
《シリアル端末でREPLを起動させる》
ここでは"Tera Term "ターミナルエミュレーターを使用した例です。
@ "Tera Term"を起動すると、[Tera Term 新しい接続 ]ダイアログボックスが開かれます。
"シリアル(E) "にチェックを入れ、"ポート(R): " でESP32-WROOM-32Eボードを接続している
COMポートを選びます。(ポート番号は各自で異なりますよ、念の為)
[OK ]ボタンを押しましょう。
A メニューバーから[設定(S) ]→[シリアルポート(E)... ]を順にクリックして、
[シリアルポート設定 ]ダイアログボックスを開きます。
"ボーレート(B): "を9600bpsから115200bps に切り替え、
(因みに、フロー制御が"hardware"と図はなっているが、"none"のままですよ)
[OK ]ボタンを押しましょう。
B [CTRL ]+[C ]又は、[ENTER ]を押して">>>"プロンプトを表示させます。
[ページ上へ] [module編へ]
【きむ茶工房ガレージハウス】
Copyright (C) 2006-2021 Shigehiro Kimura All Rights Reserved.