PlatformIO IDE for VSCode へのArduinoライブラリのインストール

PlatformIO IDE for VSCode でESP32のプログラム開発 の続きで、ライブラリのインストールについての備忘録。

Windows10でPlatformIO IDE for VSCodeを実行し、ESP32のArduinoプロジェクトで利用するライブラリのインストールについて試した。
Arduino IDEではライブラリマネージャでインストールすることができるライブラリについて試した。

基本的なライブラリはヘッダファイルを解析して自動的にダウンロード、インストールがされるようだが、すべてのライブラリがそのようになるわけではない。

自動的なライブラリのインストールがされる場合 (BLE)

ESP32 の BLE ライブラリである The library source for the ESP32 BLE support for Arduinoを利用したプログラム例 BLE_scan のビルド、実行を試した。

プロジェクトとプログラムの作成

まず、PlatformIO IDE for VSCode の PIO Homeから「+ New Project」クリックし、プロジェクトを作成する。

ここでは、ボードとして「MH ET LIVE ESP32MiniKit (MH-ET Live)」を使っている。

main.cpp に BLE_scan のソースをコピーする。

先頭に

[code] #include <Arduino.h> [/code]

を加える。<Arduino.h> をインクルードしないで Serial を使うとエラーになるため。

プログラムではSerial出力に115200 bpsを指定しており、デフォルトの9600bpsと異なるので、「platform.ini」でもシリアルの通信速度を指定しておく。

[code]
monitor_speed = 115200
[/code]

ビルドと実行

ウィンドウボトムにあるアイコンバー  のUpload  をクリックすれば、ビルドとアップロードが行われて、実行が始まる。

ここでは BLEライブラリが必要であるが、利用しているヘッダから自動的に必要なライブラリが使えるようになるはず。

ウィンドウボトムにあるアイコンバーのSerial Monitor  をクリックすれば、シリアル出力を見ることができる。

BLE のスキャン結果がわかるはず。

自動的なライブラリのインストールがされない場合 (OLED)

OLEDディスプレイライブラリである Arduino library for the SparkFun Micro OLED – a breakout board for a monochrome, 0.66", 64×48 OLED display を利用したプログラム例 MicroOLED_Demo のビルド、実行を試した。自動的にはライブラリがインストールされず、若干の手作業が必要であるが、Arduino IDEと同じ程度の手間でインストールできる。

ボードは MH-ET LIVE ESP32 MiniKitWEMOS Electronics (LoLin)のOLED Shield を利用した。

OLEDライブラリのインストール

PIO Homeの「Libraries」 を選択する。

Libraryのパネルが表示される。

Libraryの検索ボックスに「OLED」を入力して検索をする。

検索結果が表示される。

ここでは、 Arduino library for the SparkFun Micro OLED – a breakout board for a monochrome, 0.66", 64×48 OLED display をインストールするために該当するライブラリをスクロールして探す。

「SparkFun Micro OLED Breakout」が該当するライブラリである。

「SparkFun Micro OLED Breakout」をクリックして開く。

「Install」ボタンをクリックしてライブラリがインストールされる。

インストールが成功すれば次のように成功した旨の表示がされる。

ちなみに、「Example」タブからプログラム例を見ることもできる。たとえば、「MicroOLED_Demo」を選ぶと以下のようになるはず。

プロジェクトとプログラムの作成

PIO Home の「+ New Project」クリックし、プロジェクトを作成する。

プロジェクト名は「MicroOLED_Demo」とし、ボードは「MH ET LIVE ESP32MiniKit (MH-ET Live)」、プラットフォームは「Arduino」を選択する。

プロジェクトの作成が行われる。

MicroOLED_Demo のプログラムを main.cpp にコピーする。先にみた、PIOのLibraryのExampleからもコピーできる。

そのままでは、 ESP32 および WEMOS Electronics (LoLin)のOLED Shield ではうまく表示されないので、若干の修正が必要である。

まず、#include <Arduino.h> を追加する。A2, A3が定義されていないので、それを定義する。また、printTitleも利用よりも定義が後にあるので、先頭部分に宣言を追加しておく。

[code]
#include <Arduino.h>

#define A1 38
#define A2 39

extern void printTitle(String title, int font);
[/code]

さらに、プログラム例ではSPIを利用するようになっているが、WeMos OLED shieldは独立したReset端子を持たず、I2Cで通信するので以下のように変更する。

[code highlight="4-5,13-14"]
//////////////////////////
// MicroOLED Definition //
//////////////////////////
//#define PIN_RESET 9 // Connect RST to pin 9
#define PIN_RESET 255 // No RST pin
#define PIN_DC 8 // Connect DC to pin 8
#define PIN_CS 10 // Connect CS to pin 10
#define DC_JUMPER 0

//////////////////////////////////
// MicroOLED Object Declaration //
//////////////////////////////////
//MicroOLED oled(PIN_RESET, PIN_DC, PIN_CS); // SPI declaration
MicroOLED oled(PIN_RESET, DC_JUMPER); // I2C declaration
[/code]

ビルドと実行

ウィンドウのボトムにあるアイコンバーのUpload  をクリックすれば、ビルドとアップロードが行われて、実行が始まる。

以下のようなデモがOLEDディスプレイに表示されるはず。

OLEDライブラリをインストールしていない場合には、ビルド時に必要なインクルードファイルがみつからないなどのエラーが発生する。

プロジェクトの変更

蛇足であるが、既に作成した別のプロジェクトを開きたい場合には、「ファイル」→「フォルダーを開く(F)…[Ctrl+K Ctrl+O]」を選び、該当のプロジェクトを選択する。

まとめと今後

Arduino IDEのライブラリマネージャでインストールすることができるライブラリをPlatformIO IDE for VSCodeでインストールすることが簡単であることはわかった。

ただ、インストールをしたライブラリのプログラム例から簡単にプロジェクトを作成することができてよいと思われるが、どのようにすればよいか分かっていない。使いながら調べていきたい。