PlatformIO IDE for VSCodeの設定
はじめに
Visual Studio Code (VSCode)は、Microsoft社が提供する軽量ながら強力なソース コード エディターで、デスクトップ上で実行され、Windows、macOS、および Linux で使用できます。PlatformIO IDEは、VSCodeの拡張機能で、ビルドが早く、ライブラリやボードのバージョンがプロジェクト毎に管理されているのが特長です。
用意するもの
- Basic Kit 2
- パソコン (Windows、macOS 、または Linux)
事前準備
Pythonのインストール
- PlatformIO IDEを動かすには、Pythonが必要です。こちらを参照して、Pythonインストールして下さい。
PlatformIO IDEのインストール
- PlatformIO IDEは、VSCodeの拡張機能なので、まず、VSCodeをインストールして下さい。
拡張機能(画面左のバー)をクリックし、検索窓に以下を入力して、拡張機能をインストールします。Japanese Language Pack for Visual Studio Codeplatformio ideSerial Monitorteleplot
クイックスタート
「Hello Wolrd」の事例で、platformIO IDEの使い方を紹介します。
-
VSCodeを立ち上げ、
ファイル→新しいウィンドウを開きます。 -
PlatformIO(画面左のバー)をクリックし、PLATFORMIO QUICK ACCESS(画面左)を表示させます。 -
PIO Home/Openをクリックします。 -
New Projectをクリックすると、Project Wizardが表示されます。Name、Boad、Frameworkを以下の通り入力して、Finishをクリックします。新しいBoardを選択した時、プログラミングに必要なファイルのダウンロードするために数分かかります。- Name:
Hellow_Wolrd_Pjtと記入 - Board:
Arduino Pro or Pro Mini ATmega328(3.3v,8Mhz)を選択 - Framework:
Arduinoを選択
- Name:
-
platformio.ini(画面左)を開き、 Projectで定義したBoardとFrameworkが、正しく定義されていることを確認します。
[env:pro8MHzatmega328]
platform = atmelavr
board = pro8MHzatmega328
framework = arduino
-
AVR 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);
}
- ソースコード: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 します。
- ソースコード: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));
AVR Beginner Examples
PlatformIO IDEを使った簡単なソースコードを準備しました。GitHubからダウンロードし、パソコンの所定の場所に保存1 してプログラムを試して下さい。
| Item | Source code |
|---|---|
| 温湿度センサ読み取り | Thermo-Hygrometer_Pjt |
| 照度センサ読み取り | Illuminance_Meter_Pjt |
| 加速度センサ読み取り | 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です。
↩︎