ESP32[2] Arduino IDE開発環境

Arduino IDEでESP32のプログラムを書くことができます。これらの情報はネット上にあふれているので、適当に検索してもすぐ見つかります。上記URLからダウンロードしてください。環境設定で日本語にもなります。Arduino IDEはもともと、Arduino開発用なので、ESP32を使う場合にいくつか設定があります。IDEを立ち上げて、ファイル⇒環境設定を選択します。

環境設定

環境設定ウインドウの下の方に、「追加のボードマネージャのURL:」というところがあるので、その右をクリックします。ウインドウが立がりますのでここで、ボードのパッケージを入れるのですが、

下記の二つのURLを見つけることができます。

1 https://dl.espressif.com/dl/package_esp32_index.json 
2 https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

ボードにもよるのでしょうが、1だと色々不具合、特に、BTSerial やFlash書き込みでトラブルが出たので、2のURLを私は使っています。

本家には下記のように書かれています。

Stable release link:

3 https://espressif.github.io/arduino-esp32/package_esp32_index.json

Development release link:

4 https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json

2と3はどうも同じようです。

(2024年3月2日追記)

複数のボードを開発したい場合は、次の行に書きます。ちなみに、ラズパイ pico を開発する場合は、 https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json を入れます。わたしの場合は両方の開発をしているので、結局は下の二行が書かれています。

追加のボードマネージャーのURL:

次にツール⇒ボード⇒ボードマネージャー

を選択します。ボードマネージャーの一番上の検索箇所に、ESP32 と入れてリターンを押すと esp32 が出てくるのでこれをインストールします。

インストールが終わると、ツール⇒ボードを選択すると、新たに ESP32 Arduino が出てくるので、「ESP32 Arduino」を選択するとさらにリストが沢山出てくるので、この中から自分のボードを選択します。私はESPDevKitを使っているので、「ESP Dev Module」を選択しています

ターゲットボードの設定

これで、ESP32のコンパイル環境が整いました。このIDEは直接ESP32にバイナリを書き込めるのでその設定もしておきます。ESP32DevKitは既にマイクロUSBのTypeBが載っているので、PCとこれをつなぎます。後は、PCのシリアルポート番号をIDEに教えるだけでプログラムのダウンロードができます。シリアルポートは環境設定のシリアルポートで選択します。私の場合はCOM7でした。環境で変わるので、デバイスマネージャーを見ながらケーブルの抜き差しをして見つけてください。コンパイルは、スケッチ⇒検証・コンパイル(メニューバーの☑でも可能)。ダウンロードはスケッチ⇒マイコンボード(メニューバーの➡でも可能)に書き込です。

これで、環境構築完了です。

あとは使って行って覚えていくのがいいと思います。ちょっとした知っておいた方が良いことを書いてみます。通常、何かやろうとしたときは、サンプルをネットで探しますが、このIDEは既にサンプルコードが組み込まれています。ファイル⇒スケッチ例が沢山あるので、これを見ながらプログラムを書くといいです。このIDEにはシリアルモニターというコンソールがあり、たーげとデバイスこの場合はESP32の書き込みUSBポートを介してコンソールとして使えます。デバッグに非常に便利です。たまに、書き込み時に競合してポートが開けませんとメッセージが出ることがりますが、その時はシリアルコンソールを閉じてから再度書き込めば書けるという事象が多くあります。また、このESP32側のシリアルポートはボード上のUART0を使っているので、UART0を回路で使用した場合に書き込めなくなることがありました。この場合は、一旦UART0につながっている配線を外してあげると書き込めます。なので、私はなるべくUART0に配線はしないようにしていますし、出来るだけESP32を直接半田付するのではなく、ソケット介する用に設計しています。書き込めなくなったらソケットから外して書き込めばいいので。

ネット上ではフラッシュメモリがおかしくなっても書き込めないとの情報があり、その時はフラッシュを初期化すればいいと書いてあるページもありますが、経験上、何をやっても書き込めなくなった場合はたいがいはESP32が壊れています。

Arduino IDEはちょっと変わっていて、main関数がありません。普通は void main(){}でプログラムを書いていきますが、このIDEはまず、プログラムことをスケッチと言いますし、新しいプロジェクトを作ると、setup()とloop()の二つの関数がからの状態で最初から書かれています。 Arduino IDEは 一回しか行わない設定はsetup()に書きます。そして、繰り返し行うものをloop()関数の中に書くように最初から作られています。確かに、マイコンプログラムはそういうプログラムが多いですが、普通は、main関数の中に、loopを作って書いていた私から見ると少し異様でした。ローカル変数とグローバル変数になれるまで少し時間がかかるかもしれません。

ツールメニューの配下には、CPU FrequencyやFlash Frequencyというのがあります。CPU Frequencyを下げることで、消費電力が下がるので、アプリケーションに問題がなければ ツールメニューの配下には、CPU FrequencyやFlash Frequencyというのがあります。CPU Frequencyを下げることで、消費電力が下がるので、アプリケーションに問題がなければ 下げて使うのも良いと思います。Bluetooth を使うなら、最低で80MHzクロックのようです。

USBシリアルドライバーのインストール

ESP32にwindowsからプログラムをダウンロードするためには、USBシリアルドライバーをインストールする必要があります。ドライバーを入れないと、ESP32をシリアルポートにつないでも認識されません。ドライバーはここからインストールしてください。

CP210x Universal Windows Driver を選択してダウンロードしてください。団ロードファイルを展開して、その中にあるsilabser.infを選択して、右クリックしてインストールしてください。その後、TeraTerm等でESP32をシリアルポートが認識されればインストール成功です。デバイスドライバからインストールしても大丈夫です。