

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
platformio・とは?初心者向けにわかりやすく解説
近年の組み込み開発ではマイコンやボードの選択肢が増え、開発環境の差も大きくなっています。platformio はそうした課題を解決するための統合エコシステムです。PlatformIO は名前で呼ばれることが多いですが、実は プラットフォームとツールの集合体 であり、複数のボードやライブラリを一つの共通したインターフェースで扱える点が特徴です。
この仕組みを使うと、Arduino だけでなく ESP32 や STM32 など様々なボードの開発が同じ操作感で進められます。IDE としては Visual Studio Code の拡張機能として動作する PlatformIO IDE が有名ですが、コマンドラインの PlatformIO Core だけを使うこともできます。
この解説では初心者の目線で platformio の基本 を紹介します。まずは「何ができるのか」「どうやって使うのか」を理解してから、実際のプロジェクトに挑戦してみましょう。
1. platformio の特徴
PlatformIO の大きな特徴は以下の点です。
| 特徴 | クロスプラットフォーム対応で同じツール群を Windows Linux macOS で使える |
|---|---|
| 構成 | PlatformIO Core と拡張機能の組み合わせで動作する |
| ボードとライブラリ | 多数のボードとライブラリが事前に用意され、環境構築が楽になる |
| ビルドとデプロイ | ビルド、アップロード、テストを一括で実行できるコマンド群が揃っている |
2. 基本的な使い方
導入後はまず Python の環境 を整え、その後 PlatformIO Core を入れます。一般的な手順は次のとおりです。
1) Python のインストールが済んでいることを確認します。 2) コマンドラインから pip install platformio を実行します。 3) 動作確認として pio --version を実行し、バージョン情報が表示されれば準備完了です。
次に IDE を使う場合は VS Code をインストールし PlatformIO IDE 拡張を追加します。これだけで新規プロジェクトの作成からビルドまで GUI で進められます。
4) プロジェクトを作成します。例えば Arduino 系のボードを使う場合は pio init --board uno などのコマンドを使います。ボード ID は pio boards で確認できます。 5) pio run でビルド、pio upload でファームウェアの書き込みを実行します。
6) ライブラリの追加や設定は platformio.ini という設定ファイルで行います。ここには ボード情報 や ライブラリ依存関係 が書かれ、チームでの共有も容易です。
3. 初心者がつまずきがちなポイントと対処
インストールがうまくいかない場合 は Python のバージョンや権限周りを見直します。また ネットワーク環境 によりライブラリの取得に時間がかかることがあります。焦らず待つことが大切です。
ボードが認識されない 場合は USB ケーブルやボードの電源、割り込み設定を確認します。 正しいボード ID を指定しているかを pio boards で再度確認しましょう。
4. まとめ
platformio は初心者にとって強力な開発環境を提供します。複数のボードやライブラリを一元管理できる点が最大の魅力であり、小さなプロジェクトから大規模な開発まで、同じ手順で進めることができます。まずは小さなサンプルから始めて、徐々に機能を広げていくと良いでしょう。
platformioの同意語
- PlatformIO
- 組込み開発のためのオールインワンツール。ボードサポート、ライブラリ管理、ビルド、アップロードを一元化するクロスプラットフォームの開発環境です。
- PlatformIO IDE
- PlatformIOが提供する統合開発環境(IDE)。エディタ・ビルド設定・アップロードを1つのインターフェースで行えます。
- PlatformIO Core
- PlatformIOの中核エンジン。コマンドラインでの操作を支える核となる部分です。
- PIO
- PlatformIOのコマンドラインツールの略称。端末で「pio run」などと入力して作業します。
- PlatformIO CLI
- PlatformIOのコマンドラインインターフェース。プロジェクトのビルド・ライブラリ管理をターミナルから実行します。
- PlatformIO Home
- PlatformIOの GUI ダッシュボード。ボード選択・ライブラリ検索・設定の管理を視覚的に行えます。
- PlatformIO Ecosystem
- PlatformIOのエコシステム。ボードサポートパッケージ、拡張機能、ライブラリの集合体です。
- PlatformIO Build System
- 複数のプラットフォームに対応するビルドシステムとして機能します。プロジェクトのビルドを自動化します。
- PlatformIO for Embedded
- 組込み開発向けのPlatformIO機能セット。マイコン向けのビルド・フラッシュ・デバッグをサポートします。
- PIO Core Engine
- PIO Core EngineはPlatformIOの中核エンジン。CLI経由での開発作業を実現します。
platformioの対義語・反対語
- 手動開発
- PlatformIOの自動化・ライブラリ管理に対して、環境設定・依存関係・ビルドをすべて手作業で行う開発スタイル。
- 単一プラットフォーム専用開発
- PlatformIOは複数のボード・プラットフォームを横断して扱えるのに対し、特定の1つのプラットフォームだけを対象にする開発。
- IDEなし・テキストエディタ中心の開発
- PlatformIOは統合開発環境としての機能を提供するため、IDEを使わずエディタだけで開発する場合と逆の立場。
- クラウドベースの開発環境
- PlatformIOは主にローカル/デスクトップでの開発を想定するのに対し、ブラウザ上で動くクラウドベースの開発環境を選ぶ考え方。
- ライブラリ管理なしの開発
- PlatformIOのライブラリ自動管理機能を使わず、依存関係を手動で管理する開発。
- クロスプラットフォーム非対応
- PlatformIOは複数OS・ボードをサポートするが、特定のOS・ボードのみを前提とした開発。
- パッケージマネージャー機能なし
- PlatformIOにはパッケージ管理機能があるが、それを使わない・使えない開発。
- 自動ビルド・自動更新なし
- PlatformIOの自動化機能を使わず、ビルドや依存更新を手動で行う開発。
- 商用・クローズドソースのツール
- PlatformIOは主にオープンソース寄りだが、閉源の商用ツールを選ぶ考え方。
- 限定的なドキュメント・サポート
- PlatformIOの充実したドキュメントとコミュニティとは対照的に、情報が乏しい環境を指す見方。
- 機能が少なく統合度が低い環境
- PlatformIOの機能が多く統合されている点に対し、機能が少なく統合度の低い環境を対義とする見方。
platformioの共起語
- PlatformIO IDE
- VSCode などのエディタと連携する PlatformIO の統合開発環境。ボード設定、ライブラリ管理、ビルド、アップロードを1つのUIで行える。
- PlatformIO Core (pio)
- PlatformIO のコア実行部分。コマンドラインツールとしてビルド、アップロード、ライブラリ管理などを実行。
- pio
- PlatformIO の CLI の短縮名。コマンドとして広く使われる。
- PlatformIO CLI
- CLI(コマンドラインインターフェース)としての PlatformIO の操作系。
- PlatformIO Home
- PlatformIO のダッシュボード的な画面。プロジェクトやボード、ライブラリの管理を行う入口。
- ESP32
- Espressif の ESP32 系ボードを PlatformIO で開発する際の主要対象。
- ESP8266
- Espressif の ESP8266 系ボードを PlatformIO で開発する際の対象。
- ESP-IDF
- ESP32 用の公式開発フレームワーク。PlatformIO で利用して ESP32 をビルド可能。
- Arduino Framework
- Arduino フレームワークを PlatformIO で利用し Arduino ライブラリと API を使える。
- Arduino IDE 互換性
- PlatformIO が Arduino IDE 互換モードを提供し Arduino ライブラリを利用可能。
- RP2040
- Raspberry Pi Pico など RP2040 系マイコンを PlatformIO で開発可能。
- STM32
- STM32 系マイコンを PlatformIO でサポート。
- NRF52 / NRF52840
- Nordic の NRF52 系ボードを PlatformIO で開発可能。
- SAMD / SAM D21
- Microchip の SAMD 系ボードを PlatformIO で扱える。
- ATmega / AVR
- AVR 系ボードを PlatformIO で開発可能。
- MSP430
- TI MSP430 系ボードを PlatformIO でビルド可能。
- Teensy
- Teensy ボードを PlatformIO の Arduino フレームワークで利用可能。
- Zephyr
- Zephyr RTOS を PlatformIO でサポート。マルチボード対応の RTOS。
- FreeRTOS
- FreeRTOS を PlatformIO 環境で組み込み可能。
- CMSIS
- Arm CMSIS ベースの開発を PlatformIO で扱う場合の関連。
- Library Manager
- ライブラリの検索・インストール・更新を行う機能。
- Library Registry
- PlatformIO のライブラリレジストリ。公開ライブラリを参照・取得する。
- lib_deps
- ライブラリ依存関係をいつでも指定可能な設定項目。
- platformio.ini
- PlatformIO プロジェクトの設定ファイル。ボード、フレームワーク、環境、ライブラリの依存を記述。
- env / Environments
- 複数ビルド環境を定義する env ブロック。環境ごとに設定を分けられる。
- Boards / Boards Definition
- PlatformIO が扱うボードの定義群。ボード名や仕様が含まれる。
- Frameworks
- PlatformIO がサポートするフレームワークの総称。Arduino, ESP-IDF, Zephyr など。
- build_flags
- ビルド時のフラグ設定。マクロ定義やパス指定などを行う。
- upload
- ファームウェアをボードへ書き込む操作。
- monitor
- シリアルモニター機能。デバッグ出力を観察する。
- debug
- デバッグ支援機能。接続・ブレークポイント・ログの活用。
- test
- ユニットテスト・統合テストの実行機能。
- CI / GitHub Actions
- PlatformIO を使った自動ビルド・テストの CI ワークフロー。GitHub Actions などで実装する。
- DevContainer / Docker
- 開発環境をコンテナ化する話題。PlatformIO の公式イメージ等を活用。
- Containers / Docker Image
- 開発環境を Docker 環境で構築する手法。
- VSCode Extension
- PlatformIO の VSCode 拡張機能を使って統合開発を強化。
- Cross-Platform
- 複数のOS上で同じ PlatformIO 環境を動作させる性質。
- PlatformIO Center / Center
- 公式ポータルやドキュメントへアクセスする中心的情報源。
- Boards Manager
- ボード追加や更新を行う管理機能。
- Flavors / Variants
- ボードやフレームワークの派生バリエーションを表す語。
- Install / Update
- ライブラリやパッケージのインストール・更新操作。
- Remote / OTA
- Over The Air アップデートの話題が出る場合も。
- Repository
- 公式リポジトリ、パッケージの格納元。
platformioの関連用語
- PlatformIO
- クロスプラットフォームの組み込み開発用の統合エコシステム。ボード・フレームワーク・ライブラリを一元管理してビルド・アップロードを行える。
- PlatformIO Core
- PlatformIO のコマンドラインツール。pio コマンドとして提供され、プロジェクトのビルド・ライブラリ管理・テストなどを実行する。
- PlatformIO IDE
- VSCode 用の公式エクステンション。ボードや環境の選択、ライブラリの導入、ビルド・アップロードを GUI で行える。
- PlatformIO Home
- PlatformIO IDE 内のダッシュボード的なホーム画面。プロジェクト管理、ボード・ライブラリの検索・設定をまとめて扱える。
- PlatformIO Project
- PlatformIO で作成される開発プロジェクト。プロジェクトディレクトリと platformio.ini が中心。
- platformio.ini
- プロジェクトの設定ファイル。環境、ボード、フレームワーク、ライブラリ依存などを記述する。
- Environment
- [env:...] ブロックで定義されるビルド・アップロード設定の環境。複数の環境を同時に扱える。
- Board
- 実際のマイコンボードの定義。CPU、メモリ、ボード固有の設定情報を含む。
- Platform
- 対象のハードウェアプラットフォーム名(例: espressif32、atmelsam、stm32f1 など)。
- Framework
- 開発に使うソフトウェアの枠組み。Arduino、ESP-IDF、Zephyr、mbed など。
- Library Manager
- ライブラリの検索・インストール・更新を扱う機能。
- Library Registry
- 公式ライブラリの公開リポジトリ。ライブラリの検索・取得の中心ソース。
- Library manifest (library.json)
- ライブラリのメタデータを記述するファイル。名前、バージョン、依存関係などを定義。
- lib_deps
- platformio.ini で宣言する外部ライブラリの依存関係。
- build_flags
- コンパイル時に追加する定義やフラグ。例: -D マクロ定義。
- lib_extra_dirs
- 追加のライブラリディレクトリを指定する設定。
- upload_port
- アップロード時の接続ポートを指定。
- upload_speed
- アップロード通信速度(bps)を設定。
- monitor
- シリアルモニターの起動・設定。
- monitor_speed
- シリアルモニターのボーレート(通信速度)
- pio run
- PlatformIO のビルド実行コマンド。環境を指定してコードをビルドする。
- pio test
- 単体テストの実行コマンド。
- pio lib search
- ライブラリを検索するコマンド。
- pio lib install
- ライブラリをインストールするコマンド。
- pio boards
- 利用可能なボード一覧を表示するコマンド。
- pio update
- ライブラリレジストリの更新コマンド。
- pio upgrade
- PlatformIO Core のアップグレードコマンド。
- pio ci
- 継続的インテグレーション向けのビルド・テストを自動化するコマンド。
- SCons
- PlatformIO のビルドエンジン。Python で実装されたオープンソースのビルドツール。
- Python
- PlatformIO Core は Python で実装され、CLI の実行や依存関係管理に用いられる。
- Cross-platform
- Windows/Mac/Linux の複数のOSで動作する、移植性のある設計。
- ESP32/ESP8266 ボード
- ESP 系のマイコンボードを対象としたプラットフォームの代表例。
- Arduino Framework
- Arduino 環境を利用して開発するフレームワーク。
- ESP-IDF Framework
- Espressif の ESP32 向け公式開発フレームワーク。
- Zephyr Framework
- Zephyr RTOS を用いた組み込み向けフレームワーク。
- Board Registry
- 公式ボード定義のリポジトリ。新しいボードの追加と管理を行う。



















