Skip navigation.
ホーム
BLOG-ROMMER 日高のブログ

2012 MVP Global Summitと.NET Gadgeteer

2月27日から3月2日まで毎年恒例のMVP Global Summitに参加してきた。MVP Global Summit とは、簡単に説明するとMicrosoft Most Valuable Professional (MVP) の受賞者が毎年世界中から集まり、イベントやセミナーを通じて交流する場である。特に目玉は、各専門分野の最新技術に関する情報を得たり、直接開発者にフィードバックができたりもする点である。去年まで受賞していたDriver and Kernel Developmentのカテゴリが無くなったので、今回はDevice Application Developmentの分野で受賞しての参加という点が今までと異なる。

専門分野のセッションに関しては諸般の事情で書くことはできないが、楽しみにしていた3日目の午前中のDeveloper Day特別セッション の.NET Gadgeteer のセッションに関しては、スピーカのMicrosoft ResearchColin Miller氏から開示OKの許可を貰ったので紹介する。

.NET Gadgeteer とは?

Microsoft .NET Gadgeteerは、Microsoft Research が開発している.NET Micro Framework とVisual Studio/Visual C# Express で開発する、小規模デバイス用のオープンソースの開発用ツールキットである。すでに米国GHI Electronics社等で製品化されていて、実はうちの会社でも販売している。また日本マイクロソフトのエバンジェリストの太田寛氏のブログUX-TVで紹介しているのでご存じの方も多いと思う。

簡単に説明すると、数種のGadgeteerメインボードと数十種類のGadgeteer Moduleを組み合わせて、目的に応じて簡単に電子工作やマイコン・プログラミングができるというものである。各モジュールはVisual Studioに表示される接続方法に従ってメインボードのソケットとケーブルで接続する。独自のデバイスを接続するのでなければハンダ付けは不要。プログラムはVisual StudioでC#で記述して、メインボード搭載のARM7/9 CPUでNETMF (.NET Micro Framework) の中間コード・インタプリタにより動作する。モジュール制御のコードは、使用するモジュールを選択・接続すると自動的に生成される。

.NET Micro Framework に関する補足

近年ではこのような組み込みシステム向けの簡易言語や、統合開発環境も珍しくないが.NET Gadgeteerのベースとなっている.NET Micro Frameworkには、趣味・教育・学習向けだけではなく、業務アプリケーション開発に利用できるスレッドやイベント関連の言語仕様、クラスライブラリ、プロトコルやファイルシステム等のミドルウェアやドライバ類が標準で備わっている。特にWindows環境との親和性が良く、ライブラリをWindows上でテストし、逆にコードをフルの.NET Frameworkから取り込むことが容易で、使いやすい。弊社でも今年度は.NET Micro Frameworkを大いに受託した業務システム開発に活用して、いずれもプロジェクトを短期間で仕上げることができた。例えばマルチスレッドで通信、IO、タイムアウトの何れかのイベントを待ち、どれかが起きたら処理を行う等という典型的な組み込みアプリケーションが、わずかのコーディングとテストで利用できるのである。

セッション

Colin Miller氏のセッションではまず.NET Gadgeteerの概要紹介と応用事例のデモを行い、メインはうちでも販売しているFEZ Spider Starter Kitを使用したハンズオン・ラボであった。

配布されたテキストには、GHI Electronics社のホームページに載っている簡単なものから、初めて見るものまで、Kitに含まれる10種以上あるモジュールのうちのいくつかを利用して何かを作る事例が掲載され、その中から好きなものを自己学習で試すという方式だ。
ソースコードは全ソースコードではなく、ヒントとなる部分だけが掲載されていて、また誤記もあったので、開発経験がある私でも結果的にはなかなかハードな演習となった。

デモでは、筐体に組み上げた2種類の.NET Gadgeteerの事例と、ヘリコプターの制御の事例を紹介した。ヘリコプターは Syma S107 という商品名で、USや日本のアマゾンで安価に購入できるものだ。このヘリコプター自体がNETMFで動作している訳ではない。

ヘリコプターは元々商品に付属する専用の3ch赤外線コントローラによって自由に飛行を制御することができるようになっている。ビデオも公開されている。

この専用コントローラが行う赤外線制御を.NET Gadgeteerのジョイスティックとポテンショ・メーターで行うというのが、デモでの注目点だ。制御に必要な3way IR LED arrayに関してはデモ行った本人のG. Andrew Duthie氏のページで紹介している。制御用のコードも公開されているし、また彼のページでは同じ赤外線コントローラで模型自動車の制御も行っている。

そのほかには、Flipbook Makerと、Arcade Consoleの実物の動作デモが紹介された。後で調べてわかったのだが、これらはいずれもShowCaseのページで紹介されいるので、機会を見て試してみたい。