今回は、IoTに向かう団体の1つである「PlatformIO」を紹介する。「IoT開発のためのオープンソースのエコシステム」を掲げ、さまざまなベンダーのMCUやボードに対し、共通の開発環境やライブラリの提供を行っている。
ちょっと今回は毛色を変えて、「PlatformIO」をご紹介したい。分類としてはOSというかインフラ+開発環境ということで、これまで紹介した中で「強いて言えば」はmbed OSに近いといえば近いかもしれない。ただmbed OSは言ってみればクラウドサービスまで含めたインフラ全部を提供するもので、しかも目的はARMのMCUを売ることなので、当然ハードウェアはARM Cortex-Mをベースとしたものになる。これに対してPlatformIOは、さまざまなMCU(または、それ以外)に対して共通の開発環境やライブラリを提供しよう、という以上のものではない。
PlatformIOは、「IoT開発のためのオープンソースのエコシステム」というのがうたい文句である。実際にPlatformIOが提供するのは「IDE」「Library」「Platform/Board」「サポート」になる。
IDE(Photo01参照):最近はこの多機能IDEがPlatformIOの売りの1つであるが、当初はCLIのみの提供であった。ただ逆に、IDEでできることはCLIでも全部できるため、むしろCLIで開発が全部済む事を評価する開発者も少なくなった。もちろん、このIDEからTerminalを起動して、その上でCLIを使って開発を行うことも可能となっている。
ちなみにこの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にしても、他にも多数のソフトウェアや環境があるわけで、それを全部網羅できるわけでもないし、するつもりもないのだろうが、無償で利用できる環境の中でメジャーなものは大体含まれている。
Library(Photo02参照):特に開発ボードを利用する場合、オンボードのデバイスを扱う事だけを考えても、ライブラリが無くては話にならない。特に300以上の開発ボードをサポートというからには、デバイスの種類は相当なものになる。このライブラリであるが、原稿執筆時点(2016年10月)で1191個がPlatformIOのLibraries Registryに登録されている。もちろんこれが全部、全てのプラットフォームや開発ボードで利用できる訳ではない(ほとんどは、特定のプラットフォームの特定のボード用のライブラリ)が、こちらも主要な開発ボード用のデバイスはほぼ網羅している。
これを利用する際に便利なのがMissing Library Managerで、必要なライブラリを検索して取得し、必要ならば自動的にアップデートもしてくれる。ちなみにライブラリのAPIなども公開されているので、自分でライブラリを登録することももちろん可能である。
Copyright © ITmedia, Inc. All Rights Reserved.