PlatformIO IDE for VSCodeの設定

PlatformIO IDEでマイコンにプログラムを書き込む

はじめに

Visual Studio Code (VSCode)は、Microsoft社が提供する軽量ながら強力なソース コード エディターで、デスクトップ上で実行され、Windows、macOS、および Linux で使用できます。PlatformIO IDEは、VSCodeの拡張機能で、ビルドが早く、ライブラリやボードのバージョンがプロジェクト毎に管理されているのが特長です。

用意するもの

  • Basic Kit 2
  • パソコン (Windows、macOS 、または Linux)

事前準備

Pythonのインストール

  1. PlatformIO IDEを動かすには、Pythonが必要です。こちらを参照して、Pythonインストールして下さい。

PlatformIO IDEのインストール

  1. PlatformIO IDEは、VSCodeの拡張機能なので、まず、VSCodeをインストールして下さい。
  2. 拡張機能(画面左のバー)をクリックし、検索窓に以下を入力して、拡張機能をインストールします。
    • Japanese Language Pack for Visual Studio Code
    • platformio ide
    • Serial Monitor
    • teleplot

クイックスタート

「Hello Wolrd」の事例で、platformIO IDEの使い方を紹介します。

  1. VSCodeを立ち上げ、ファイル新しいウィンドウを開きます。

  2. PlatformIO(画面左のバー)をクリックし、PLATFORMIO QUICK ACCESS(画面左)を表示させます。

  3. PIO Home/Openをクリックします。

  4. New Projectをクリックすると、Project Wizardが表示されます。NameBoadFrameworkを以下の通り入力して、Finishをクリックします。新しいBoardを選択した時、プログラミングに必要なファイルのダウンロードするために数分かかります。

    • Name:Hellow_Wolrd_Pjtと記入
    • Board:Arduino Pro or Pro Mini ATmega328(3.3v,8Mhz)を選択
    • Framework:Arduino を選択
  5. platformio.ini (画面左)を開き、 Projectで定義したBoardとFrameworkが、正しく定義されていることを確認します。

[env:pro8MHzatmega328]
platform = atmelavr
board = pro8MHzatmega328
framework = arduino
  1. AVR MCUは、アップロード時に、COMポートの自動検出をするため、COMポートの番号の指定が不要になります。

  2. シリアル通信のボーレートをmonitor_speed =で定義します。以下の様に、platformio.iniに加えて下さい。

monitor_speed = 115200
  1. 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);
}
  1. PlatformIO ツールバー(画面下のバー)のProject Environment Switcherボタンを押すと、アクティブなプロジェクが画面上側に全て表示されます。実行するプロジェクトを正しく選択して、Buildボタンを押して下さい。


  2. こちら を参考に、LeafonyをPCに接続して下さい。

  3. Uploadボタンを押すと、プログラムがMCUに書き込まれます。

  4. MCUのリセットボタンを押して、プログラムを実行させます。

  5. シリアルモニターボタンを押して起動させ、Hello Wolrdを表示が出来れば完成です。


ライブラリ

  1. インストールの仕方
    ライブラリは、platformio.ini の最後の行に、lib_deps =で定義すれば、PCにインストールされます。定義の仕方は、GitHubのURLを直接指定する方法とLibrariesで指定する方法の二通りがあります。

  2. 各リーフのライブラリ一覧は、以下の通りです。

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を導入します。サンプルのソースコードをダウンロードして、試して下さい。

  1. GitHubからソースコードをダウンロードし、パソコンの所定の場所に保存1 します。

  2. プログラムを実行して下さい。

  3. 画面下のteleplotの表示をクリックして、COMポートを指定して、Open を押すとグラフが表示されます

  4. >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との違い

  1. #include <Arduino.h>をプログラムの先頭に記述
    Arduino IDEは、プログラム言語としてはC++を使っており、基本的な型の宣言やよく使うライブラリのヘッダファイルはArduino.hを書かなくても自動的にインクルードされますが、PlatformIO IDEは、Arduino.hがプログラムの先頭に必要に記述する必要があります。

  2. 独自関数は使用する関数の前に定義
    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ではなく、ターミナルから行います。

  1. VSCodeを立ち上げ、ファイル新しいウィンドウを開きます。

  2. PlatformIO(画面左のバー)をクリックし、PLATFORMIO QUICK ACCESS(画面左)を表示させます。

  3. PIO Home/Openをクリックします。

  4. 以下のコードを実行します。
     pio settings set projects_dir <設定したい(絶対)パス>

  5. VSCodeを再起動します。

参考

前のページに戻る


  1. デフォルトの保存場所は、C:\Users\<ユーザ名>\ドキュメント\PlatformIO\Projectsです。
    ↩︎

最終更新 February 6, 2023