ESP32-WROOM-32 を Arduino 互換機として設定するための自分用の備忘録です。
これは ESPRESSIF という上海の企業が製造しているマイコンボードです。なんと WiFi と Bluetooth Low Energy (BLE) がデフォルトで使えて、お値段は 1,300 円という汎用性抜群の便利アイテムです。
日本の技適認証もきちんとクリアされていて、箱から出した状態のまま使えます。BLE モジュールを購入してきて苦労していた過去の自分がアホらしく思えてくるほどの性能です。
ただし、ESP32 自体は Arduino ではありませんので、互換機として使用するには自身で設定を行う必要があります。
とは言え、既に先行事例がたくさんありますので、難しいポイントは皆無です。
arduino-esp32/boards_manager.md at master · espressif/arduino-esp32 · GitHub
https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/boards_manager.md
開発プラットフォームを設定するには、製造元の公開している資料(上のリンク)に従って Arduino IDE (Ver. 1.8 以降)に必要なファイルを読み込みこみます。
まずは Arduino IDE を開く前に必要なファイルを準備します。この過程で Python 3 が必要になります。
1 2 3 4 |
$ mkdir -p /usr/local/share/arduino/hardware/espressif && cd /usr/local/share/arduino/hardware/espressif $ git clone https://github.com/espressif/arduino-esp32.git esp32 $ cd esp32 && git submodule update --init --recursive $ python tools/get.py |
ここまで準備ができましたら Arduino IDE を起動して、Crtl と カンマ [Comma] キーを同時に押して Preferences ウィンドウを立ち上げます。
そして Additional Board Manager URLs の最後尾に https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json を追記して OK を押します。
そうすると Tools > Boards Manager… に ESPRESSIF が出てくるので、これをインストールします。
使用するのは ESP32 Dev Module というやつです。
こいつはスケッチをアップロードするときに pyserial (Python ver 2) を使用するので、あらかじめインストールされていない環境ではエラーを吐きます。
エラーに慌てずに、必要なライブラリをインストールしてやれば問題ありません。
1 |
$ sudo pip2 install pyserial |
これで一応は万全です。
まだ下記のようなエラーを吐くことがあるのですが、この場合は Tools > Upload Speed から転送速度を 115200 に変更します(デフォルト値は 912600 になっているようです)。
Serial port /dev/ttyUSB0
Connecting…….._____….._____….._____….._____….._____….._____…..____ An error occurred while uploading the sketch
_
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
そしてスケッチの転送時にボード本体の Boot ボタンを押してやります。
ボタンを押しながら転送を始めるぐらいでいいかもしれません。
これでもスケッチを書き込めないときは、正しいポートを選択できているかどうかを確認してみて下さい。
うまくいった場合には書き込みが始まります。
ESP32 にはサンプルが大量に用意されていますので、無事にスケッチを書き込めるようになりましたら、まず一通りのサンプルを動かしてやると挙動がつかめるようになります。