Arduino IDEからPlatformIOへ移行

Arduino IDEの問題点

  • ビルドに時間がかかりすぎる。
  • しかも書き込みのたびにまずビルドが走る。
  • ボードの設定をスケッチごとに保存できない。
  • ライブラリをスケッチごとに管理できない。
  • エディタが使いにくい。

Processing譲りのシンプルなIDEで初心者にも入りやすい利点があったし、Arduino UnoなどのAVR系ボードしかなかった時代にはさほど問題はなかったが、多種多様かつ大規模なマイコンのボードが現れたことでArduino IDEでの開発が限界に来たように感じる。

PlatformIOとは?

  • VSCode拡張機能Arduinoの開発ができるIDE
  • 差分ビルドにより、ビルド・書き込みが高速。 (本来それが当たり前)
  • プロジェクトごとにボードの設定等を保存できる。 (本来それが当たり前)
  • プロジェクトごとにライブラリを管理できる。
  • VSCodeでコードを編集できる。

PlatformIOの導入

  • VSCodeを起動する。
  • 拡張機能(Extensions) をクリック。
  • 「platformIO」を検索し、install をクリック。

   

  • インストールが完了したらVSCodeを再起動。

   

  • アクティビティバーにPlatformIOのアイコン(アリさん?)が追加されている。
  • PlatformIOのアイコンをクリックするとPlatformIOのサイドバーが表示される。
  • QUICK ACCESS > PIO Home > Open をクリックすると、エディターにPlatformIOのホーム画面(PIO Home)が表示される。

   

プロジェクトの作成から書き込みまで

プロジェクトの作成
  • PIO Home で 「New Project」 をクリック
  • プロジェクト名を入力し、ボードを選択して「Finish」をクリック。 (ボードの選択は入力補完が効く)

   

  • プロジェクトが作成される。このとき必要ならビルドツールがインストールされる。
  • プロジェクトは C:/Users/ユーザ名/Documents/PlatformIO/Projects/ の下に作成される。
  • プロジェクトに main.cpp が作成される。inoファイルでなくふつうのC++ファイルであることに注意。
    (Arduino.hのインクルードや関数のプロトタイプ宣言が必要。)
  • また platform.ini がプロジェクトの設定ファイルとなる。

   

ビルドと書き込み
  • ビルドや書き込みなどのボタンは左下にある。Arduino IDEと同様に、 がビルド、 が書き込み。

   

  • ポートは自動で検出される。
ポート指定

自動で検出されるが、platform.ini で明示的に指定できる。

upload_port = COM17
シリアルモニター
  • で、ターミナルが開く。
  • ボーレートは platform.ini で明示的に指定できる。
monitor_speed = 115200

ライブラリの導入

  • PIO Home の「Libraries」から検索して「Add to Project」でプロジェクトに追加。

   

  • プロジェクトのフォルダの下の .pio/libdeps フォルダの下にライブラリがインストールされる。
  • その他の方法で入手したライブラリや自作のライブラリなどは、プロジェクトのフォルダの下の lib フォルダの下に置く。

サンプルコード

  • ライブラリのサンプルコードは上記の「Libraries」の画面で「Examples」からコピペする。
  • またはインストールされたライブラリのフォルダの下の examples フォルダにあるサンプルコードをコピペする。
  • 標準的なライブラリのサンプルコードはArduino IDEから持ってくるしかない?
  • これらの点は少し不便に感じる。

既存のプロジェクトを開く

  • PIO Home で 「Open Project」 をクリックし、プロジェクトのフォルダを開く。

既存のArduinoスケッチのインポート

  • PIO Home で「Import Arduino Project」をクリック。
  • ボードを選択し、スケッチのフォルダを選択し、「Import」

   

  • inoファイルのままでもビルドできるが、C++ファイルに修正するほうが良い。