SloeberでESP32の開発

EclipseArduino の開発をするためのIDEであるSloeberEspressif ESP32を開発できる環境を整える。Windows10上で試した。

利用したもの

  • OS: Windows10
  • Sloeber:  V4.2_win64.2017-11-20_02-16-52.tar.gz
  • ESP32 Arduino Core:  dd639c4a029b3b31559bb4243a066e2005bdbc18

Arduino IDEの不都合な点

Arduinoのライブラリに不具合があることがあり、ライブラリのソースコードを修正しないとうまく動作させることができないことがある。スケッチブックの保存場所を変えることで利用するlibrariesを変更することは可能であるが、スケッチブックの保存場所が C:\Users\ユーザ名\AppData\Local\Arduino15\preferences.txt に記録されていて、すべてのArduino IDEで共有されている。このため、Arduino IDEを複数のフォルダに用意しても、スケッチブックの保存場所を明示的に切り替えないとライブラリを変更することができない。いくつかのプロジェクトを並行して進めている際に単一の状態だけだと以前動作していたプロジェクトが他のプロジェクトの変更の影響で動作しなくなっていたりして都合が悪い。

ソースファイルを分割した際にエラーメッセージがわかりづらいことがある。Arduino でもソースプログラムを複数の .inoファイルに分けて記述することができ、プログラムの整理はできる。しかし、Arduino IDEでは分割されている .inoファイルを解析して、必要な宣言等を加えつつ1つのファイルにし、#line ディレクティブでエラーが発生しても元のファイルがわかるようにしているようだ。このために、コンパイルエラー発生時に原因がなかなかわからない場合がある(もっともこの点はSloeberにしても改善されないと思われる)。

小さなプログラムならArduino IDEでも構わないが、少し大きなプログラムを書こうとするとIDEの機能が貧弱なためにプログラム作成や修正にフラストレーションが溜まる。一方、センサーやディスプレイを制御するライブラリはArduino向けが充実しているので、Arduinoで開発したい。

そこで、EclipseでArduinoのプログラム開発が可能なSloeberをインストールしてESP32の開発を試してみることにした。以前Version 4.1で試したときはうまく動作しなかったが、今回は Version 4.2でうまく動作した。

基本的なインストール手順

Youtubeのビデオ Sloeber install platform Arduino-esp32 from github および Githubの How to add ESP32 to sloeber の手順に従うことでインストールできる。

具体的なインストール手順

Sloeberのダウンロード・展開

Sloeberのホームから Install -> Stable  -> Windowsを選択すると次のダウンロードページになる。

http://eclipse.baeyens.it/stable.php?OS=Windows

今回は64bit Bundleをダウンロードして利用した。

ダウンロードファイル名は V4.2_win64.2017-11-20_02-16-52.tar.gz

ダウンロードしたファイルを解凍して得られたフォルダを C:\sloeber.v4.2 に置いた。

Sloeberの起動と初期化

C:\sloeber.v4.2 の中の sloeber-ide.exe を実行すると以下のスプラッシュ画面が表示される。

その後 workspaceを選択すると処理が進むが以下のメッセージが表示されるので後で対処する必要がある。

次に進むと以下のようなパネルが表示されて最初の起動時の処理が行われる。Arduinoのライブラリなどがインストールされる。

しばらく待つと初期化が終わって以下のようになる。試した環境ではダウンロード速度が30kB/s程度で非常に時間がかかった。途中で中断したら必要なファイルがインストールされておらず、再度起動しても修復されなかったので気長に待つ必要があると思われる。

SloeberへのESP32開発環境のインストール

Sloeberのインストールと初期化が終了した後は、AVRなどのCPUでの開発はできるがESP32の開発はまだできない。

Arduino core for the ESP32をインストールする必要がある。

GitHubの https://github.com/espressif/arduino-esp32 の [Clone or download] のボタンを押し、クリップボードへURLをコピーするボタンを押す。

Sloeberの[File]->[Import]を選択する。

Importのパネルで[Git]->[Projects from Git]を選び、[Next]ボタンを押して進める。

次に[Clone URI]を選択して[Next]ボタンを押すか、[Clone URI]をダブルクリックする。

GitHubでコピーしておいたリモートリポジトリのURLが自動的に入力されるが、もしもURLが入っていない場合にはペーストする。

ローカルのリポジトリはここでは[C:\Users\ユーザ名\git\arduino-esp32]とする。(ユーザ名は、実際に利用しているアカウントによって異なる)

[Next]ボタンを押すとGitのブランチの選択ができるようになる。以下ではmasterのみをインポートするように選択する。

[Next]を押して、次にLocal Destinationを指定する。

[Next]を押すとGitHubからのCloneが行われる。

Cloneが終わったら、次のように[Import as general projects]を選ぶ。

[Next]を押すとImport Projectのパネルが表示される。

Project nameを確認して[Finish]を押してArduino core for the ESP32のインポートは終わり。

ArduinoへのESP32の設定

次に、ArduinoにESP32を設定する。

[Arduino]->[Preferences]を選択する。

パネルが出てきたら、Private hardware path の [New]を押す。

パネルで、Gitのローカルリポジトリを選択する。この例では[C:\Users\ユーザ名\git\arduino-esp32]

[OK]を押してPrivate hardware pathに指定したローカルリポジトリが追加されたことを確認する。

確認したら[Apply and Close]ボタンを押す。

ESP32の開発ツールのダウンロード

まだ、Arduino Core for the ESP32のツールがインストールされていないので、それらをダウンロードするために、[C:\Users\ユーザ名\git\arduino-esp32]の下にある get.exe (つまり、C:\Users\ユーザ名\git\arduino-esp32\get.exe )を実行する。

次のようなウィンドウが表示されてダウンロードと解凍が終わるのを待つ。

ツールが追加されたことが確認できる。

EclipseのIndexer オプションの設定

Sloeberを最初に起動した際に出ていたメッセージパネルに書いてあったIndexerのオプション設定を行う。

[Window]->[Preferences]を選択する。

開いたパネルの[C/C++]->[Indexer]を選択する。

パネル右側のindexer optionsの上から[index source files not included in the build]と[index unused headers]の両方のチェックを外す。

パネルの下部の[Apply and Close]を押して設定終了。

ESP32スケッチの動作確認

スケッチの作成

Sloeberのメニューから[Arduino]->[New Sketch]を選ぶ。

[Next]を押して、Arduinoの情報を設定する。

ここでは、ESP32ボードとしてDOIT ESP32 DEVKIT V1を使っている。

[Next]を押し、次に進む。

パネルでselect code: に [Sample sketch] を選ぶとサンプルコードが選べるようになる。

ここでは、Select Example code: で [examples]->[01.Basics]->[Blink] (LED点滅のいわゆるLチカ)を選んでみる(ただし、DOIT ESP32 DEVKIT V1のLEDのピン番号がArduinoと違い修正が必要になる)。

選択出来たら[Finish]を押すと以下のようになる。

スケッチの修正

DOIT ESP32 DEVKIT V1では青色LEDのピン番号が2なので、修正が必要。たとえば次のようにする。

#define ledPin  2

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  delay(1000);
}

スケッチのビルド・アップロード

プログラムを使用するボードに合わせて修正したら、[Arduino]->[Verify]でコンパイル、ビルドをする。

ビルドが正常に終わったら、[Arduino]->[Upload]でボードへの書き込みをする。

アップロード前にビルドするか尋ねられるので、適切に選ぶ。毎回尋ねられるのが煩雑な場合にはPreferencesで設定をする。

アップロードが始まると次の進捗状況パネルが表示される。

正常終了すればアップロードが完了している。

これでボードのLEDが点滅していればOK!