目次
【Windows】PythonでESP32を動かす!MicroPythonの使い方・インストール
Micropythonとは
MicroPython[2] (マイクロパイソン) は、 C言語で記述されマイクロコントローラ上での動作に最適化されたPython 3の処理系である[3][4]。
MicroPython は完全なPythonコンパイラおよびマイコン上で動作するランタイムを含む。サポートされたコマンドを即時実行するための対話型プロンプト (REPL(英語版)) も用意されている。MicroPython にはPythonのコア・ライブラリのみならず、低レイヤへのアクセスを提供するモジュール群も含まれる[2]。–Wikipedia
簡単に言えば、今話題のESP8266やESP32などでpythonを使えるようにした技術の事です。
Pythonファイルをマイコンに直接アップして実行できますし、Pythonのインタープリタ言語としての特徴を生かしてPCから1コマンドずつ実行できます(REPLと呼ばれる)。
超便利なので、この記事ではその導入方法を紹介します。
私の環境
- windows10 home
- DevKit-C(秋月電子)
- Python3.6.4(anaconda)
- Pythonは必須なため、インストールしていない人は必ずインストールしましょう
ネット上に殆どwindowsでのやり方がなかったので、簡単に1から導入する方法をまとめました。どうぞご覧ください!
ESP32にファームウェアを書き込む
Micropythonを使うにはファームウェアを書き込む必要があります。
方法として
- コマンドライン
- GUIツール(windows限定)
がありますが、コマンドラインの方が便利なのでそちらが推奨です。
コマンドライン編(推奨)
- MicroPythonのダウンロードページに移動
- 自分のESP32にあったbinファイルをダウンロード。私の場合、DevKit-Cで、4MBのSPIRAMはついていないのでStandard firmwareを選択
- esp32を操作するPythonライブラリ「esptool」をインストール
pip install esptool
- binファイルをダウンロードしたフォルダへ移動(コマンドプロンプトの場合、
cd Desktop
などでフォルダ移動できる。私はesp32Micropythonというフォルダにbinファイルを保存したためこのようになる。
- esp32がusbのどこに繋がっているか調べる。
powercfg /devicequery all_devices
というコマンドでPCに繋がっているものを列挙できる。その中にesp32らしきものが。
このCOM3というUSBポートに繋がっているのがesp32です。このCOM3を次で使います。 - esp32の中身を以下のコマンドで消す。
esptool --port COM3 erase_flash
COM4などに繋がっている場合、COM3をCOM4に変えてください。 - ファームウェアを書き込む
esptool --chip esp32 --port COM3 write_flash -z 0x1000 esp32-20190910-v1.111-301-g80d37d936.bin
これで書き込みが始まります。
ESP32にファームウェアを書き込み(GUI編)
binファイルをダウンロードするところまではコマンドライン編と全く同じです。
- Espressif(esp32の開発元)のページに飛ぶ
- Flash Download Toolsをダウンロードして解凍
- exeファイルを起動する。ESP32を選択。
- 以下のように設定してSTARTを押して書き込み
これで書き込み終了です。
当ブログではコマンドラインを使った方法でこれからLチカやそのほかの機能を紹介していくので、できればコマンドラインの方法をお勧めします。
シリアル通信をするソフト「uPyCraft」のインストール
MicroPythonを動かすには、
- REPL(対話環境)
- PythonファイルをESP32に送信
の2つの方法があります。まず簡単なのは対話環境を試すことですが、これにはシリアル通信が必要となります。残念ながらWindows単体ではこの機能はないため、ソフトをインストールしなければなりません。
幸い、REPLとPythonファイルを送信するための専用ソフトが用意されているので、これをインストールして使ってみましょう!
- uPyCraftをダウンロード
- 実行すると以下のような画面が出る
これで使用準備完了です!
Hello worldしてみる
- ToolsのSerialからESP32がつながっているポートを選択する
- 下のシリアル画面に
>>>
が出るので、そこにprint("Hello world from ESP32!")
と入力
簡単にesp32から返事が返ってきましたね!このように簡単にPythonが使えます。
Lチカをする
Lチカは別記事にしたのでESP32でMicroPythonを使ってLチカするをご覧ください。
こんにちは
便利な arduino ideがあるのに python を大変な思いをして
入れる理由がわかりません
また 導入したとき arduino ideのスケッチ例は使えるのでしょうか
( 電子工作で スケッチ例を使っているため)
ぜんぜん、conectされず、困り果ててたんですが、Bootボタン(右側ボタン)を押したところすんなり、うまくいきました。
同じところで困っている人の参考になれば