ESP32 での MicroPython の使い方

MicroPython を使うと、ESP32 ボードを最大限に活用することができます。逆も同様、ESP32 チップは MicroPython を使用するための優れたプラットフォームです。このチュートリアルでは、MicroPython の設定、プロンプトの表示、WebREPLの使用、ネットワークへの接続、インターネットとの通信、ハードウェアペリフェラルの使用、およびいくつかの外部コンポーネントの制御について説明します。

始めましょう!

必要なもの

最初に必要なのは、ESP32 チップを搭載したボードです。MicroPython ソフトウェアは ESP32 チップ自体をサポートしており、どのボードでも動作するはずです。ボードについて気にするとことは、GPIO ピンが外にどのように接続されているか、UART を PC で使用できるようにする内蔵 USB シリアルコンバータが含まれているかどうかです。

このチュートリアルではピンの名前にチップ名(例: GPIO2)を使っていますが、これが特定のボード上でどのピンに対応するかを見つけるのは簡単なはずです。

ボードの電源を入れる

If your board has a USB connector on it then most likely it is powered through this when connected to your PC. Otherwise you will need to power it directly. Please refer to the documentation for your board for further details.

ファームウェアの入手

The first thing you need to do is download the most recent MicroPython firmware .bin file to load onto your ESP32 device. You can download it from the MicroPython downloads page. From here, you have 3 main choices:

  • 安定ビルド版ファームウェア
  • 毎日ビルド版ファームウェア
  • SPRAM サポート付き毎日ビルド版ファームウェア

If you are just starting with MicroPython, the best bet is to go for the Stable firmware builds. If you are an advanced, experienced MicroPython ESP32 user who would like to follow development closely and help with testing new features, there are daily builds. If your board has SPIRAM support you can use either the standard firmware or the firmware with SPIRAM support, and in the latter case you will have access to more RAM for Python objects.

ファームウェアの配備

MicroPython ファームウェアを取得したら、ESP32 デバイスにロードする必要があります。これを行うには、主に2つのステップがあります。まず、デバイスをブートローダモードにし、次にファームウェアをコピーする必要があります。これらの手順の正確な手順は、特定のボードに大きく依存します。詳細については、そのドキュメントを参照する必要があります。

幸い、ほとんどのボードは USB コネクタ、USB シリアルコンバータを備え、DTR ピンと RTS ピンが特別な方法で配線されていて、すべてのステップを自動的に行うことができるため、ファームウェアの展開は簡単です。このような機能を備えたボードには、Espressif 社の DevKitC, PICO-KIT, WROVER-KIT dev-kits の他にも Adafruit Feather HUZZAH32, M5Stack, Wemos LOLIN32, TinyPICO ボードがあります。

最良の結果を得るために、新しい MicroPython ファームウェアをインストールする前に、まずデバイスのフラッシュ全体を消去することをお勧めします。

現在のところはファームウェアをコピーする方法として esptool.py のみをサポートしています。このツールは https://github.com/espressif/esptool/ からダウンロードするか、pip を使用してインストールしてください:

pip install esptool

1.3 で始まるバージョンは、Python 2.7 と Python 3.4 (またはそれより新しいバージョン)の両方をサポートしています。古いバージョンでも正常に動作しますが(少なくとも 1.2.1 が必要)、Python 2.7 が必要です。

esptool.py を使用すると、次のコマンドでフラッシュを消去できます:

esptool.py --port /dev/ttyUSB0 erase_flash

消去したら、次の方法で新しいファームウェアを導入します:

esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash -z 0x1000 esp32-20180511-v1.9.4.bin

注記:

  • PC により、 "port " 指定を別のものに変更する必要があります
  • フラッシュ時にエラーが発生した場合はボーレートを下げる必要があります(たとえば 115200 に下げるには、コマンドに --baud 115200 を追加で指定します)
  • 特定の FlashROM 設定を持つボードでは、フラッシュモードを変更する必要があります(たとえばコマンドに -fm dio を追加で指定するなど)
  • ファームウェアのファイル名もダウンロードしたファイルの名前に変える必要があります

If the above commands run without error then MicroPython should be installed on your board!

シリアルプロンプト

デバイスにファームウェアをインストールしたら、ボードに応じて UART 0 (GPIO1 = TX, GPIO3 = RX)上の REPL (Python プロンプト)にアクセスできます(USB シリアルコンバータに接続されている可能性があります)。ボーレートは 115200 です。

ここまでできたならば、後は ESP8266 チュートリアルにしたがって進めることができます。これら2つの Espressif 社チップは、MicroPython を使用することに関しては非常に似ているからです。ESP8266 チュートリアルは ESP8266用 MicroPythonチュートリアル にあります(「ESP8266でのMicroPythonの使い方」の章はスキップしてください)。

インストールの問題のトラブルシューティング

フラッシュ中またはファームウェアの実行直後に問題が発生した場合は、次の推奨事項を参照してください。

  • ハードウェア上の問題がないかを調べ、取り除いてください。発生しやすい問題は2つあります。電源品質が悪いことと FlashROM の寿命/欠陥です。電源と言えば、素のアンペア数だけでなく、一般的に低リップルやノイズ/EMIも重要です。最も信頼性が高く便利な電源はUSBポートです。
  • 上記のフラッシュ手順は、速度と安定性の間の良好な妥協点である 460800 ボーのフラッシュ速度を使っています。ただし、モジュール/ボード、USB-UARTコンバータ、ケーブル、ホスト OS などによっては、上記ボーレートでも速すぎてエラーにつながる可能性があります。そのような場合には、より一般的な 115200 ボーレートを試してください。
  • フラッシュの内容の不正(たとえば、チップ上の欠陥セクタなど)を検出するには、 上記のコマンドに --verify オプションを加えてください。
  • ファームウェアをフラッシュしても問題が解決しない場合、問題を報告するために esptool.py プロジェクトページ https://github.com/espressif/esptool にある情報やバグトラッカーを参照してください。
  • ファームウェアをフラッシュできた場合でも、 --verify オプションが何度試してもエラーを返す場合は、欠陥のある FlashROM チップである可能性があります。