ESP-WROOM-02でMicroPythonを使い開発(準備編)

〔ESP32-WROOM-32E〕 〔マイコンのトップに戻る〕
[module編] [GPIO編] [通信編] [ファイル編] [OLED編] [WiFi編] [メール編] [並行処理編] [色々編]


前回に"XBeeでMicroPython編"と"XIAOでCircuitPython編"を記事にしました。
最初ESP-WROOM-02(チップはESP8266EX)をArduinoIDEでと思ったのですがぁ....
検索すればいっぱい出てきます、でぇ、最近私の中でマイブームなMicroPythonを使う事にしました。

《PyCharmのインストール》

開発するエディターはXBeeの時に使った"PyCharm"を使います。
インストールについては、こちらの"GAMMASOFT"さんのページを参照して下さい。
(上のページに書いて有る様に設定して"PyCharmへようこそ"画面(下図)から始まる様にしています)
又、"PyCharm"を日本語化したい場合は、こちらの"(株)シーティーイー"さんのページを参照して下さい

そしてここを参考に、"Pythonインタープリター"のインストールを行います。
(これをインストールする事で"pip"コマンド等も一緒に入る様です。)
(pipの操作や概要などは"GAMMASOFT"さんのここを一読する事を進めます)

※ 開発に先立ちPyCharmの新"Version: 2020.3.3"を入れたのだがぁ...エラーで起動せず、
  仕方なく元のバージョン"Version: 2019.2.6"に戻したのでこれでの説明となります。

《ESP8266 MicroPythonプラグイン》

次は、"ESP8266 MicroPythonプラグイン"を"PyCharm"にインストールします。

@ "PyCharm"を起動させます。

PyCharmようこそ画面1
日本語化を行っています。
右下の[構成]プルダウンメニューから[プラグイン]を選びます。
この画面で始まらずメイン画面で始まった場合は、[ファイル]->[設定]->[プラグイン]です。

A [プラグイン]画面が開きます。

プラグイン画面1
赤線の所、検索ボックスで"ESP"と入力します。

B "ESP8266 MicroPython"プラグインが表示されます。

プラグイン(esp検索)画面2
[Install]ボタンをクリックします。
[プラグインのプライバシー]ダイアログが表示されるので[受諾]ボタンをクリックします。
インストールが開始されます。
終了したら[OK]ボタンをクリックします。
(プラグイン・ホームページをみるとぉVersion"1.1.3"が新しいがインストールするとぉエラーでダメだ)

C PyCharm"を再起動させます。

PyCharmようこそ画面2
[再開]ボタンをクリックします。

《ESP-WROOM-02にMicroPythonをインストールする》

MicroPythonのファームウエアをダウンロード

これがESP-WROOM-02(ESP8266)にインストールしてMicroPythonを動作させる為のソフトウェアです

@ こちらのサイトからダウンロードします。

A ”Stable firmware, 2M or more of flash(安定したファームウェア、2M以上のフラッシュ)”項目の
  現状の最新版[esp8266-20200911-v1.13.bin (elf, map)]を使いました。
  (因みに、ESP32 モジュール時はここです)

B esp8266-20200911-v1.13.binファイルを操作しやすい様に"c:\"の直接下のディレクトリへ
  移動させて置きます。

esptoolのインストール

esptoolはESP8266/ESP32チップのROMブートローダと通信して"esp8266-20200911-v1.13.bin"を
インストール出来ます。
詳しくは、こちらじゃ!(GitHubじゃ!Pythonじゃ!さんのサイト)

@ [PowerShell]を起動させます。

A PS C:\Users\user> pip install esptool と実行します。
  (pipは"Pythonインタープリター"のインストールと同時に入っていると思います)

B PS C:\Users\user> esptool.py -h と実行して動作するのを確認しましょう。

MicroPythonのファームウエアを書き込む

@ ESP-WROOM-02ボードをUSBでPCに繋ぎます。

A デバイスマネージャーかArduinoIDEのシリアルポート確認で繋いだポートを確認して置きます。
  私の環境はデバイスマネージャーで”USB-SERIAL CH340(COM4)”と表示しました。
  Windows 10なのでUSB接続で"CH340ドライバー"が自動でインストールされています。

B ESP-WROOM-02ボードをリセットしますが....
  IO15ピン=Low IO2ピン=High IO0ピン=Low にしてUARTダウンロードモードにします。
  (通常は、IO0ピン=High です"Flash Boot Mode"、書き込んだスクリプトを実行するモードですね)
  ボタンが有る場合通常は2個ボタンが有ります、RSTボタンでない方を押したままで次にRSTボタンを
  押します、するとぉ、UARTダウンロードモードで立ち上がると思いますがぁマニュアルを
  見ましょう。

C [PowerShell]を起動させます。

D PS C:\Users\user> esptool.py --port COM4 chip_id と実行します。
  デバイスと繋がっているかテストしてみます。

PowerShell(chip_id) 画面1
こんな感じで表示されたら繋がっています。
MACアドレスやchip IDがぁ表示されているけどぉ...まぁ、いいかぁ。

E 新しいファームウェアを導入します。
PS C:\Users\user> esptool.py --port COM4 write_flash --flash_size=detect 0 c:\esp8266-20200911-v1.13.bin と実行し書き込みましょう。

PowerShell(write_flash) 画面2
こんな感じで表示されたら成功でしょう 。
後は、"c:\"の直接下のディレクトリへ移動させたファイルは削除して置きましょう。
(フラッシュメモリを削除してから書き込む場合は"esptool.py erase_flash"を実行します)

F ESP-WROOM-02ボードのUSBをいったんPCから抜き取ります、でぇ、再び差し込みます。

G シリアル端末(ここではTeraTerm)を立ち上げ、シリアルを"COM4"にし起動させます。
  シリアルポートの設定でボーレートを"115200"にします。
  後は、キーボードで[ENTER]を押せば">>>"のプロンプトが返されます、接続できました。
  (下記の方にTeraTermでREPLを起動させるもう少し詳しい記載があります)

TerTerm起動画面
こんな感じで表示されたら成功でしょう 。
ボードの"RESET"ボタンを押した後等に起動メッセージ(ゴミ?)が出力されますが気にしなくても
良いでしょう、如何しても見たい人は"74880bps"のボーレトにすると読めます、
この後に"115200bps"に変更される様です。

《フラッシュメモリのバックアップ》

たまに操作ミス等によりESP-WROOM-02ボードが立ち上がらなくなる事がありました、
そんな時はフラッシュメモリを削除してファームウエアを再度書き込むと治りますがぁ、
フラッシュメモリに入れていた物も再度書き込みをする必要がありめんどくさいですぅ、
そんな時はバックアップで〜す。
そんな時は、このページ”ESP8266のファームウェアのバックアップとレストア”を見ましょう。

コマンドプロンプト画面
[esptool.py -b 115200 read_flash 0x00000 0x400000 esp8266_flash.bak]
ESP8266 4MBのバックアップです、意外と時間かかります。
書き戻しは、[esptool.py -b 115200 write_flash 0x00000 esp8266_flash.bak]として上手く行った。

《PyCharmを使ってみる》

@ ESP-WROOM-02ボードをUSBでPCに繋ぎます。
  次に、Pycharmを起動させます。

A ”+新規プロジェクトの作成”をクリックします。

Pycharmへようこそ画面
この画面で始まらずメイン画面で始まった場合は、メニューバーの[ファイル]->[新規プロジェクト]です

B 新規プロジェク画面が表示されるのでプロジェクトを作成します。

新規プロジェク画面
"ロケーション:”にプロジェクト名を入力します、私は"espTest"という素晴らしい名前を選びました。
〇既存インタープリター”にチェックを入れて「Python x.x」を選んで置きます。
[作成]ボタンをクリックします。あなたはPythonプロジェクトを作りました!

 
C メニューバーから[ファイル]->[設定]->[言語 & フレームワーク]->[MicroPython]を
  順番にクリックします。

設定画面(言語&フレームワーク)
□Enable MicroPython support”にチェックを入れます。
デバイスタイプ:”で「ESP8266」を選びましょう。
Device path:”にデバイスのCOMポートを入力します。私のは"COM4"ですね。
[適用]をクリックします。(因みに、[検出]は出来なかった)
何だかぁ"Pychrm"終了させたらこの操作は毎回しないとダメなのか?、保存されていない、なあぜぇ。

D [プロジェクト:espTest]->[プロジェクト構造]に移動します。
  (念の為、"espTest"の名前はあなたの決めたプロジェクト名になりますよぉ)

設定画面(プロジェクト構造)
".idea"を右クリックして、除外としてマークします。
[適用]をクリックし、[OK]をクリックして設定画面を閉じます。

 
E 新規ファイルを作成します。

新規ファイルの作成画面1
"espTest"を右クリックして、[新規]->[Pythonファイル]を選択します。
新規ファイルの作成画面2
"main.py"とファイル名を入力します。


main.pyを書き込んで見る

上記事からの続きで〜すぅ。

@ "main.py"ファイルにスクリプトを、
   print("Hello Kimura world")
  と書きました。

A 書き込みます。

アップロード風景画面
"main.py"を右クリックして、[実行(U)'Flash main.py']をクリックします。
下記図の様に実行されます。
アップロード実行結果画面
ESP-WROOM-02に書き込まれ、ソフトリセットがされている様ですね。

B "MicroPython REPL"を動作させましょう。
  メニューバーから[ツール]->[MicroPython]->[MicroPython REPL]を順番にクリックします。

MicroPython REPL 起動操作

C REPLを操作します。(Pycharmの画面下側に表示されます)

MicroPython REPL 操作操作
REPLが表示され、">>>"のプロンプトが表示されるのを待ちます。
表示されたら[CTRL]+[D]を押せば、ソフトリセットが実行されスクリプトが起動されます。

※ REPLを表示している時に"main.py"ファイルを書き込むとエラーで失敗します、
  書き込む場合はREPLを閉じましょう
。(”ターミナル:ローカル”タブのXをクリックすればOKです)
  因みに、シリアル端末(TeraTerm等)でREPLを開いている時も閉じないとダメです。

《シリアル端末でREPLを起動させる》

ここでは"Tera Term"ターミナルエミュレーターを使用した例です。

@ "Tera Term"を起動すると、[Tera Term 新しい接続]ダイアログボックスが開かれます。
  "シリアル(E)"にチェックを入れ、"ポート(R):" でESP-WROOM-02ボードを接続している
  COMポートを選びます。(ポート番号は各自で異なりますよ、念の為)

TeraTerm起動画面
[OK]ボタンを押しましょう。

A メニューバーから[設定(S)]→[シリアルポート(E)...]を順にクリックして、
  [シリアルポート設定]ダイアログボックスを開きます。

シリアルポート設定画面
"ボーレート(B):"を9600bpsから115200bpsに切り替え、
(因みに、フロー制御が"hardware"と図はなっているが、"none"のままですよ)
[OK]ボタンを押しましょう。

B [CTRL]+[C]又は、[ENTER]を押して">>>"プロンプトを表示させます。




[ページ上へ] [module編へ]


【きむ茶工房ガレージハウス】
Copyright (C) 2006-2021 Shigehiro Kimura All Rights Reserved.