変わり始めた「エンベデッド」の世界

builder by ZDNet Japan Ad Special
2014-01-29 11:00:00
  • このエントリーをはてなブックマークに追加

 多様なデバイスがネットワークを介して有機的に機能するようになる「IoT(Internet of Things)」の世界がこれから急速に発展していく。エンジニアなら実際の組み込み機器開発、あるいは収集したデータをサーバで処理するシステム開発など、何らかの形で関わる可能性が高い。組み込み機器に対応した Microsoft の開発プラットフォームはいまどこまで進化しているか。

 今、周囲を見渡せば、あらゆるところに組み込み機器が見つかる。例えば街中で見かけるデジタルサイネージ。広告を表示したり、施設案内やイベント告知など多様なコンテンツをサーバ側から配信できる。ほかにも自販機や現金自動預け払い機(ATM)、オフィスなら複合機、セキュリティシステム、テレビ会議システムなどにも最新の組み込み技術が用いられている。

 専用端末や組み込み機器となるとOSに何が使われているかは一見して分からないものの、実在する組み込み機器では Windows がベースになっているものも多い。専用端末だけに限らず、モバイル端末や周辺機器、さらに「部品」となる極小なハードウェア向けにも Windows あるいは Microsoft のOSやソフトウェアが使われている。

 デジタルサイネージなど大型の専用機器なら「Windows Embedded」ファミリー、小型のモバイル端末や周辺機器なら「Windows Embedded Compact」や「Windows Embedded Handheld」、さらに小型の機器向けなら「.NET Micro Framework」がある。Microsoft の開発プラットフォームは組み込み機器のあらゆるサイズやプラットフォームを網羅しているのも特筆すべき特徴だ。

 一般的に Microsoft というとソフトウェアのイメージが強いかもしれないが、ハードウェアや組み込み機器への取り組みは長い。実は2004年には「スマートパーソナルオブジェクトテクノロジー(SPOT)」という名前の腕時計型端末を発表したことがある。この端末は.NET Micro Framework の源流でもある。

 改めて.NET Micro Framework とは何か。超小型機器向けのファームウェアであり、中身は.NET Framework のサブセットに小型機器向けAPIを組み合わせたものとなる。2012年末に発表されたV4.3からは Visual Studio 2012 に対応し、使い勝手が飛躍的に向上した。実際の開発環境は Visual Studio 2012 または Visual Studio Express 2012 for Windows Desktop に.NET Micro Framework SDK をインストールする。

 かつて組み込み機器というとアセンブラやC/C++で延々とプログラミングを行い、開発環境は独自かつ制限も多かった。しかし Microsoft の技術をベースとした開発環境ならPCの開発環境に近く、機能が充実していて開発効率も高い。.NET Micro Framework ならアセンブラと比較してコードの量が1割で収まったという例もある。

 .NET Micro Framework ではデバイスの制御からインターフェースまで、プロジェクトをベースとするなどなじみのPC開発環境と近い形で開発を進めることができる。エミュレータを用いたり、ステップ実行ができたりなどデバッグ環境も充実している。使用する言語は使用する言語はC#、Visual Basic。これまで培った言語スキルや開発スタイルをそのまま生かせるのは開発者にとって重要だ。

 それでもまだ「組み込み開発はハードルが高い」という人にはより使いやすい.NET Gadgeteer もある。これは.NET Micro Framework をベースにした RAD(Rapid Application Development)だ。開発するときはCPUボードをツールボックスからドラッグ&ドロップで選び、コーディングしていく。対象となるハードウェアが限られるものの、コーディングや検証がかなり簡単になる(詳細と実践編は以降の回にて)。

ハードウェア設計のイメージ図
ハードウェア設計のイメージ図

 例えば.NET Gadgeteer 準拠のFEZスパイダー・スターターキットで開発するとしよう。開発プロジェクト作成時に「FEZ Spider」を選択し、Visual Studioのツールボックスから加速度センサーなど、使いたいボードのアイコンをドラッグ&ドロップし、右クリックメニューから「Connect all modules」で結線方法を表示させるなど、簡単な操作で開発できるようになっている。

 ボードに取り付けられるモジュールには加速度センサ、ジャイロセンサ、コンパス、GPS、Bluetooth、各種センサ、カメラなど豊富にそろっている。こうしたものを組み合わせることで、例えばロボットのリモート制御や乗物の移動をトラッキングするなどのモーションキャプチャ、あるいは温度や湿度を計測して自動的にネットにアップロードする環境センサなどを作れる。今やこうした実装が手軽なスターターキットと.NET Gadgeteer で実現できてしまうのだ。(詳しくは第3回で)

オープンソースの利点も

 .NET Micro Framework や.NET Gadgeteer の特筆すべき特徴にはオープンソースであることが挙げられる。2009年の.NET Micro Framework V4.0 からソースコードの大部分が Apache 2.0 ライセンスのもとに「CodePlex」にて公開されている。CPUボードや周辺ボードを標準規格化し、APIライブラリとして公開されている。開発者は共通部分にはオープンソースを利用し、ハードウェア固有部分はメーカーのライブラリを用いればいい。これは利用者にとって大きなメリットとなるだろう。

 さらに Microsoft は近年「クラウドOS」というITによる効率性と新しい価値についてのビジョンを示していることもあり、モバイル端末向けサービスもクラウドに対応している。それが「Windows Azure Mobile Services」だ。パブリッククラウドプラットフォームとなる Windows Azure を用いたモバイル端末向けサービス基盤というところだ。

 特徴はマルチプラットフォームに対応していることと拡張可能なモバイルアプリケーション開発環境であることだ。対応するプラットフォームは Windows Store アプリ、Windows Phone、ウェブ、Android、iOSと幅広く、提供するサービスのプラットフォームごとに開発する必要はない。またあらゆるプラットフォームに一貫性のある操作性を提供できる。またユーザー認証、クラウドストレージ、プッシュ通知などモバイルアプリに必要不可欠な機能も提供しており、モバイル端末向けサービスを開発する環境が充実している。

 もう組み込み開発はアセンブラでごりごり、スクラッチから開発し、使いづらいデバッガで検証するような時代ではない。使い慣れた Windows ベースの統合的な開発環境を用い、公開されたソースを利用するなど、生産性や可能性はかなり広がってきている。PC向けの開発者にとって参入しやすいのも魅力的だ。

  • 新着記事
  • 特集
  • ブログ