2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCodeでArduino開発をしたいけど、手法が2つあってどっちを使ったらいいか分からない人への記事

Last updated at Posted at 2025-03-05

この記事を読むと…

  • VSCodeでArduino開発をする2つの手法があることを知る
  • PlatformIOとVSCode-Arduinoの違いとそれぞれの特徴が分かる

混乱の Arduino + VSCode 開発

みなさん、地球に生まれた人類なら一度は思ったことがあるでしょう。
「VSCodeでArduino開発をしたい!!!!!!!!」

インターネットで「Arduino VSCode」と調べると、大きく分けて2つの手法がヒットします。1つ目は VSCode-Arduino拡張機能 を使う方法、2つ目は PlatformIO (こちらも拡張機能)を使う方法です。

今回は、これら2つの違いと特徴を説明します。

リンク

VSCode-Arduino

PlatformIO IDE

VSCode-Arduino vs PlatformIO

項目 VSCode-Arduino PlatformIO
形態 VSCode拡張機能 VSCode拡張機能
パブリッシャー コミュニティ(かつてはMicrosoftだったが、現在はサポートが終了) PlatformIO
ベース技術 Arduino CLI PlatformIO Core
コード補完やエラー表示
ボードへの書き込み
ArduinoIDEとの互換性
機能の豊富さ

VSCode-Arduino

VSCode-Arduinoとは、 Arduino IDEの各機能をVSCodeから使えるようにする拡張機能 です。

VSCode-Arduino拡張機能は、Arduino CLIというツールをVSCodeから使えるようにしています。Arduino CLIとは、Arduino IDEの各機能(コンパイル、書き込み、ライブラリ管理、ボードマネージャの管理…)をコンソール上から行えるツールです。

Arduino CLIを使って、Arduino IDEの機能をVSCode上から触れるようにしてあるわけです。

ここでポイントなのは、 プロジェクトの構造やツールチェインは、Arduino IDEと同じ ということです。従って、VSCode-ArduinoはArduino IDEと互換性があります。

PlatformIO IDE

PlatformIOは、オリジナルのツールチェインを使ってコンパイル、ビルド、Arduinoに書き込みを行います。
そのため、PlatformIOでは、 プロジェクトの構造もツールチェインもArduino IDEと全く違います 。従って、PlatformIOはArduino IDEと互換性はありません。

Arduino IDEと並行する位置に存在するIDE と考えてもらえると分かりやすいです。

具体的に何が違うの?

VSCode-ArduinoとPlatformIOではどんな差異があるのか、具体例の一部を紹介します。

プロジェクトの構造

VSCode-Arduino

MyProject/
├── MyProject.ino
└── MyFunctions.ino  # ファイル分割する場合

PlatformIO IDE

MyProject/
├── .pio/
│   └── # 依存環境のソースなど
├── src/
│   └── main.cpp
└── platformio.ini  # 設定ファイル (依存環境などもここに記述)

文法

項目 VSCode-Arduino PlatformIO
#include <Arduino.h> 不要 必要
プロトタイプ宣言 不要 必要
ヘッダファイル 不要 必要
拡張子 .ino .cpp, .hpp, .c, .h, ...
std::vectorなどSTL機能 ほぼ ✕
例外処理 (try-catch)

ライブラリのソースの場所

VSCode-Arduino

バラバラ (Arduino IDEと一緒) です。
(Windowsだったら、 ..\Documents\Arduino\libraries\..\AppData\Local\Arduino15\ など)

PlatformIO

プロジェクト内の、 .pio\libdeps\ にまとまってる。
しかも依存環境の情報も設定ファイル (platformio.ini) に書き込まれる…!!

言語支援機能について

VSCode-ArduinoもPlatformIOも、あくまで 主機能はコンパイル、ビルド、書き込み などになっています。(PlatformIOはプロジェクト管理などもできて高機能ですが)
従って、いずれを使う場合も、補完機能や静的解析(エラーの表示)などの言語支援機能は、Microsoftの公開している C/C++ という別の拡張機能を使うことになります。

PlatformIO IDEでは

PlatformIOでは、C/C++拡張機能はPlatformIOのインストール時に自動的にインストールされます。セットアップも完璧に行ってくれるので、基本的にLSPがよわよわで困ることはありません。補完や静的解析はバッチリ動作します。

VSCode-Arduinoでは

VSCode-Arduinoは、あくまでArduino IDEの機能をVSCodeから使えるようにしたものに過ぎないので、C/C++のセットアップなどは行ってくれません。そのため、これは自分で行うことになります。

しかし、Arduino IDEはライブラリやフレームワークなど依存環境をPC中にバラバラに保存しています。従って、C/C++拡張機能をインストールしても、かなり複雑な設定をしないと補完機能や静的解析はまともに動きません

結論

初学者の人 → Arduino IDE
オススメ → PlatformIO
Arduino IDEとの互換性をどうしても保ちたい人 → VSCode-Arduino

ちなみに

ESP32にはESP-IDFというのがあったり、他にも色々あったりしますが、使ったことがないので触れません。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?