ベンダーに染まらない「PlatformIO」IoT観測所(26)(1/3 ページ)

今回は、IoTに向かう団体の1つである「PlatformIO」を紹介する。「IoT開発のためのオープンソースのエコシステム」を掲げ、さまざまなベンダーのMCUやボードに対し、共通の開発環境やライブラリの提供を行っている。

» 2016年10月31日 08時00分 公開
[大原雄介MONOist]

強いていえば“mbed OS”のようだが……

 ちょっと今回は毛色を変えて、「PlatformIO」をご紹介したい。分類としてはOSというかインフラ+開発環境ということで、これまで紹介した中で「強いて言えば」はmbed OSに近いといえば近いかもしれない。ただmbed OSは言ってみればクラウドサービスまで含めたインフラ全部を提供するもので、しかも目的はARMのMCUを売ることなので、当然ハードウェアはARM Cortex-Mをベースとしたものになる。これに対してPlatformIOは、さまざまなMCU(または、それ以外)に対して共通の開発環境やライブラリを提供しよう、という以上のものではない。

 PlatformIOは、「IoT開発のためのオープンソースのエコシステム」というのがうたい文句である。実際にPlatformIOが提供するのは「IDE」「Library」「Platform/Board」「サポート」になる。

PlatformIOが提供する「IDE」

 IDEPhoto01参照):最近はこの多機能IDEがPlatformIOの売りの1つであるが、当初はCLIのみの提供であった。ただ逆に、IDEでできることはCLIでも全部できるため、むしろCLIで開発が全部済む事を評価する開発者も少なくなった。もちろん、このIDEからTerminalを起動して、その上でCLIを使って開発を行うことも可能となっている。

Photo01:IDEの動作例。マルチウィンドウ構成で、同時に複数のプラットフォーム向けのファームウェアのビルドも可能とされる (クリックで拡大)

 ちなみにこのIDEは、PlatformIOがサポートする10種類以上のフレームワーク、15種類以上の開発プラットフォーム、300以上の開発ボードの全てをサポートするものとしており、しかもクロスプラットフォーム環境ということでホストOSとしてはLinux、Mac、Windowsのいずれも利用可能となっている。ちなみに開発言語はC/C++である。

 ちなみに、PlatformIOそのものは別にIDEには依存しておらず、既存のIDE環境を利用することも可能とされている。現時点でサポートされているものとしては、

Arduino/Atom/CLion/CodeBlocks/Eclipse/Emacs/NetBeans/Qt Creator/Sublime Text/VIM/Visual Studio

が挙げられており、さらにContinuous Integrationに関しても、

AppVeyor/Circle CI/Drone/Shippable/Travis CI

への対応がうたわれている。もちろんIDEにしてもContinuous Integrationにしても、他にも多数のソフトウェアや環境があるわけで、それを全部網羅できるわけでもないし、するつもりもないのだろうが、無償で利用できる環境の中でメジャーなものは大体含まれている。

PlatformIOが提供する「Library」

Photo02:Missing Library Managerの概念図 (クリックで拡大)

 LibraryPhoto02参照):特に開発ボードを利用する場合、オンボードのデバイスを扱う事だけを考えても、ライブラリが無くては話にならない。特に300以上の開発ボードをサポートというからには、デバイスの種類は相当なものになる。このライブラリであるが、原稿執筆時点(2016年10月)で1191個がPlatformIOのLibraries Registryに登録されている。もちろんこれが全部、全てのプラットフォームや開発ボードで利用できる訳ではない(ほとんどは、特定のプラットフォームの特定のボード用のライブラリ)が、こちらも主要な開発ボード用のデバイスはほぼ網羅している。

 これを利用する際に便利なのがMissing Library Managerで、必要なライブラリを検索して取得し、必要ならば自動的にアップデートもしてくれる。ちなみにライブラリのAPIなども公開されているので、自分でライブラリを登録することももちろん可能である。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.