PlatformIO IDE for VSCodeの設定
はじめに
Visual Studio Code (VSCode)は、Microsoft社が提供する軽量ながら強力なソース コード エディターで、デスクトップ上で実行され、Windows、macOS、および Linux で使用できます。PlatformIO IDEは、VSCodeの拡張機能で、ビルドが早く、ライブラリやボードのバージョンがプロジェクト毎に管理されているのが特長です。
用意するもの
- ESP32 Wi-Fi Kit 2
- パソコン (Windows、macOS 、または Linux)
事前準備
Pythonのインストール
- PlatformIO IDEを動かすには、Pythonが必要です。こちらを参照して、Pythonインストールして下さい。
PlatformIO IDEのインストール
- PlatformIO IDEは、VSCodeの拡張機能なので、まず、VSCodeをインストールして下さい。
拡張機能
(画面左のバー)をクリックし、検索窓に以下を入力して、拡張機能をインストールします。Japanese Language Pack for Visual Studio Code
platformio ide
Serial Monitor
teleplot
クイックスタート
「Hello Wolrd」の事例で、platformIO IDEの使い方を紹介します。
-
VSCodeを立ち上げ、
ファイル
→新しいウィンドウ
を開きます。 -
PlatformIO
(画面左のバー)をクリックし、PLATFORMIO QUICK ACCESS(画面左)を表示させます。 -
PIO Home/Open
をクリックします。 -
New Project
をクリックすると、Project Wizardが表示されます。Name
、Boad
、Framework
を以下の通り入力して、Finish
をクリックします。新しいBoardを選択した時、プログラミングに必要なファイルのダウンロードするために数分かかります。- Name:
ESP32_Hellow_Wolrd_Pjt
と記入 - Board:
Espressif ESP32 Dev Module
を選択 - Framework:
Arduino
を選択
- Name:
-
platformio.ini
(画面左)を開き、 Projectで定義したBoardとFrameworkが、正しく定義されていることを確認します。
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
-
ESP32 MCUは、アップロード時に、COMポートの自動検出をするため、COMポートの番号の指定が不要になります。
-
シリアル通信のボーレートを
monitor_speed =
で定義します。以下の様に、platformio.iniに加えて下さい。
monitor_speed = 115200
src/main.cpp
(画面左)を開き、以下のコードを貼り付けて下さい。 PlatformIO IDEのコードは、Arduino IDEのスケッチの先頭に#include <Arduino.h>
を加えます。
#include <Arduino.h>
void setup() {
Serial.begin(115200);
delay(10);
}
void loop(){
Serial.println("Hello World");
delay(1000);
}
- ソースコード:ESP32_Hello_Wold.Pjt
-
PlatformIO ツールバー(画面下のバー)の
Project Environment Switcher
ボタンを押すと、アクティブなプロジェクが画面上側に全て表示されます。実行するプロジェクトを正しく選択して、Build
ボタンを押して下さい。 -
こちら を参考に、LeafonyをPCに接続して下さい。
-
Upload
ボタンを押すと、プログラムがMCUに書き込まれます。 -
MCUのリセットボタンを押して、プログラムを実行させます。
-
シリアルモニター
ボタンを押して起動させ、Hello Wolrd
を表示が出来れば完成です。
ライブラリ
-
インストールの仕方 ライブラリは、platformio.ini の最後の行に、
lib_deps =
で定義すれば、PCにインストールされます。定義の仕方は、GitHubのURLを直接指定する方法とLibraries
で指定する方法の二通りがあります。 -
各リーフのライブラリ一覧は、以下の通りです。
Item | lib_deps | Tags | Description |
---|---|---|---|
BLE | https://github.com/Leafony/TBGLib | Bluetoothライブラリ | |
4-Sensors | adafruit/Adafruit Unified Sensor@^1.1.6 | ユニファイドセンサドライバ | |
adafruit/Adafruit BusIO@^1.14.1 | Bus IOライブラリ | ||
https://github.com/ameltech/sme-hts221-library | 温湿度センサライブラリ | ||
closedcube/ClosedCube OPT3001@^1.1.2 | 照度センサライブラリ | ||
adafruit/Adafruit LIS3DH@1.1.2 | 1.1.2 | 加速度センサライブラリ | |
LCD | tomozh/ST7032@0.0.0-alpha+sha.501bf64fe6 | LCDライブラリ | |
AVR MCU | paulstoffregen/MsTimer2@^1.1 | タイマ割り込みライブラリ | |
RTC&MicroSD | adafruit/RTClib@^2.1.1 | RTCライブラリ | |
STM32 MCU | stm32duino/STM32duino RTC @1.2.0 | 1.2.0 | STM32RTCライブラリ |
stm32duino/STM32duino Low Power@^1.2.2 | STM32LowPowerライブラリ | ||
LTE-M | https://github.com/Leafony/LteLeafV4 | LTE-Mライブラリ |
シリアルプロッター
PlatformIOには、Arduino IDEにあるシリアルプロッターがないため、VSCodeの拡張機能であるTeleplot for VSCode
を導入します。サンプルのソースコードをダウンロードして、試して下さい。
-
GitHubからソースコードをダウンロードし、パソコンの所定の場所に保存1 します。
- ソースコード:ESP32_Teleplot_Example_1
-
プログラムを実行して下さい。
-
画面下の
teleplot
の表示をクリックして、COMポートを指定して、Open
を押すとグラフが表示されます -
>varName:1234\n
という形式のシリアルメッセージは、すべてteleplot
に表示されます。詳しくは、こちらを参照して下さい。
// Plot a sinus
Serial.print(">sin:");
Serial.println(sin(i));
// Plot a cosinus
Serial.print(">cos:");
Serial.println(cos(i));
ESP32 Beginner Examples
PlatformIO IDEを使った簡単なソースコードを準備しました。GitHubからダウンロードし、パソコンの所定の場所に保存1 してプログラムを試して下さい。
Item | Source code |
---|---|
温湿度センサ読み取り | ESP32_Thermo-Hygrometer_Pjt |
照度センサ読み取り | ESP32_Illuminance_Meter_Pjt |
加速度センサ読み取り | ESP32_Accelerometer_Pjt |
Tips
MCUとBoardとの関係
LeafonyのMCUとPlatformIO IDEのBoardとの関係は、以下の様になります。
Type | Item | Platform | Board | Upload | |
---|---|---|---|---|---|
AP01 | AVR MCU | atmelavr | Arduino Pro or Pro Mini ATmega328(3.3v,8Mhz) | COMポートの自動検出 | |
AP02 | ESP32 MCU | Espressif 32 | Espressif ESP32 Dev Module | COMポートの自動検出 | |
AP03 | STM32 MCU | ststm32 | LEAFONY_AP03 | COMポートの自動検出が出来ない。 |
プログラムを記述する時のArduino IDEとの違い
-
#include <Arduino.h>をプログラムの先頭に記述 Arduino IDEは、プログラム言語としてはC++を使っており、基本的な型の宣言やよく使うライブラリのヘッダファイルは
Arduino.h
を書かなくても自動的にインクルードされますが、PlatformIO IDEは、Arduino.h
がプログラムの先頭に必要に記述する必要があります。 -
独自関数は使用する関数の前に定義 Arduino IDEは、独自関数の定義を使用する関数の後に書いてもビルドが
SUCCESS
になりますが、PlatformIO IDEは、C++のルールに従って独自関数は使用する関数の前に定義する必要があります。
例えば、以下は、独自関数の設定は、使用する関数の後に書いてあるのでビルドがFAIL
になります。
void setup() {
// put your setup code here, to run once:
func();
}
void func() {
;
}
以下は、独自関数の定義は、使用する関数の前に書いてあるのでビルドがSUCSESS
になります。
void func() {
;
}
void setup() {
// put your setup code here, to run once:
func();
}
以下は、プロトタイプ宣言するので、ビルドがSUCSESS
になります。
// Prototypes
void func(void);
void setup() {
// put your setup code here, to run once:
func();
}
void func() {
;
}
プロジェクトフォルダの名前変更や削除
Project Wizarで、New Projectを立ち上げると、フォルダが作成され、デフォルトでは、~/Documents/PlatformIO/Projects に保存されます。 Projectの名前変更やフォルダの削除は、Project Wizarではなく、エクスプローラから直接出来ます。
プロジェクトフォルダの保存場所の設定
プロジェクトフォルダの保存場所の設定は、Project Wizarではなく、ターミナルから行います。
-
VSCodeを立ち上げ、
ファイル
→新しいウィンドウ
を開きます。 -
PlatformIO
(画面左のバー)をクリックし、PLATFORMIO QUICK ACCESS(画面左)を表示させます。 -
PIO Home/Open
をクリックします。 -
以下のコードを実行します。
pio settings set projects_dir <設定したい(絶対)パス>
-
VSCodeを再起動します。
参考
-
デフォルトの保存場所は、C:\Users\<ユーザ名>\ドキュメント\PlatformIO\Projectsです。
↩︎