東京・品川の日本マイクロソフトさんで開催された『Windows 8.1 ストアアプリ開発デバイス祭り~周辺機器とつなぐアプリを創ろう!!』に参加してきました。
Windows 8.1へのバージョンアップで周辺機器との連携機能が強化された『Windows 8.1 ストアアプリ』を様々なガジェットと連携させてみよう!というセミナー&ミニハッカソン形式の楽しいイベントでした。
セミナーにて提供(貸し出し)されたガジェットは、このブログでもおなじみの "LEGO Mindstorms EV3"、Bluetoothでスマートフォンなどと連携できるCASIOのBluetooth G-Shock "GB-X6900B"、ELECOMの USB to シリアル(RS-232C)変換ケーブル "UC-SGT" の3製品。
教育用LEGO Mindstorms販売代理店の(株)アフレルさんからは、この秋に発売されたMindstorms EV3の説明、CASIOさんからはBluetooth G-Shock向けのSDK(Software Developers Kit)の説明がありました。
Bluetooth G-ShockはCASIOさんから提供される公式iOSアプリやAndroidアプリを使ってお手軽にスマホと連携させることができるそうですが、iOSやAndroid、そしてWindows Runtime(Windowsストアアプリ)向けに提供されるSDKで、『自分アプリ』を開発できるところにガジェッター心をくすぐられました。 😀
開発環境(Visual Studio 2013)が載ったLet’s Note、ターゲットタブレットとしての(初代)Surface RT、そして普段使いのメールや電子書籍を見るためのiPad、と3台を鞄にいれて信州と東京を往復。荷物の重みに肩を壊しそうになりました。 🙁
私が選んだガジェットは当然 Mindstorms EV3 ! 😀 つい先頃、CodePlexから公開されたWindowsプラットホーム向け LEGO MINDSTORMS EV3 API (SDK) を使い、Surfaceの加速度センサーとMindstorms EV3のロボットを連携させてリモコン制御するアプリを作りました。
Surfaceを前に倒すとロボットが前進、後ろに倒すと後進、右に傾けると右に旋回して左に傾けると左に旋回というシンプルなアプリではありましたが、Mindstorms EV3 APIのサンプルコードに加速度センサーを読み取るコードを十数行追加して簡単に傾き操作アプリを作ることができました。
CodePlexに公開されている LEGO MINDSTORMS EV3 API はデスクトップアプリ(.NET)、ストアアプリ(Windows Runtime)、Windows Phone 8 と最新のWindowsプラットホームを全方位でサポートしており、先行する iOS, Android プラットホーム向け SDK に追い付け追い越せ感をひしひしと感じました。
Windows RTのBluetooth管理画面にずらりとならんだ "EV3" と "CASIO GB-X6900B"。 Bluetoothデバイスとホストを接続するためには(デバイス入手後に)一度だけペアリングと呼ばれる操作をしなければならないのですが、今回のセミナーのような場所では一斉にペアリング待機中のデバイスが電波探索範囲に多数混在することになるために、こんなカオスになりました。 🙂
Mindstorms EV3 API(のソースコード)ではBluetoothのデバイス名が "EV3" と固定値になっていたため、EV3のデバイス名を変更して自分のデバイス(EV3)と他人のデバイスを区別する方法が使えなかったのですが、ハッカソン会場でCodePlexからソースコードをダウンロード(clone)して、コードを修正し、修正依頼(pull request)を送ってしまう凄腕の参加者さんもいらっしゃったのにはびっくり。 😯
参考サイト
- CodePlex : LEGO MINDSTORMS EV3 API (ソースコードなど)
- http://legoev3.codeplex.com
- Channel 9 : LEGO Mindstorms EV3 API (解説動画)
- https://channel9.msdn.com/posts/LEGO-Mindstorms-EV3-API/
- Hatsune’s Journal Japan blog : 魔法のお礼はPullRequest
- http://blogs.wankuma.com/hatsune/archive/2013/11/11/328212.aspx
- Hatsune’s Journal Japan blog : 多数のEV3があるときにBluetoothで自機を特定する方法
- http://blogs.wankuma.com/hatsune/archive/2013/11/12/328218.aspx