ET2009の特別セッションC-3でお見せしたビデオのありか

ET2009 特別セッションC-3にお越しいただいた皆様、ありがとうございました。 「組込み機器とクラウドの融合による新しい未来」でお見せしたビデオは、 http://www.officelabs.com/Pages/Envisioning.aspx で公開されております。このビデオに描かれた機器、サービスをWindows Embedded、.NET Micro Framework、Windows Mobile、Windows Azureで実現していきませんか。


Windows 7 Sensor & Location Platformを使ってみよう!! – その2

さて、2回目です。今回は、Windows 7 PCに接続されたセンサーを取り出すコードを紹介します。 接続されたセンサーを取り出すには、Windows 7 API Code PackのSensorManagerクラスを使います。SensorManagerには以下の5個のスタティックメソッドが用意されています。 SensorList<Sensor> GetAllSensors() SensorList<Sensor> GetSensorByCategorId(Guid category) SensorList<Sensor> GetSensorsByTypeId(Guid typeId) SensorList<S> GetSensorsByTypeId<S>() S GetSensorBySensorId<S>(Guid sensorId) 戻り値のSensorListクラスは、個々のセンサーを表現するSensorクラスのコンテナです。最後のメソッドを除き、該当するセンサーコンテナを返します。SensorList<S>の部分は、Sensorクラス、及び、Sensorクラスの派生クラスを表します。 1番目のメソッドは、Windows 7 PCに接続された全てのセンサーを格納したコンテナを返します。 Sensor & Location Platformのヘッダーファイルsensorsapi.hを覗くと、センサーはカテゴリー分けされ、カテゴリーの下に複数のセンサー種別が定義されています。別のヘッダーファイルsensors.hには、カテゴリー、種別毎に一意のGUIDが定義されています。二番目のメソッドは、カテゴリーのGUIDを指定して、指定されたカテゴリーに属するセンサーのみを取り出すことができます。三番目のメソッドは、種別のGUID(TypeId)を指定して、その種別に属するセンサーのみを取り出すメソッドです。四番目のメソッドは、<S>で指定した種別のセンサーのみを取り出せます。Windows 7 API Code Packでは、Sensorクラスの派生クラスとして、AmbientLightSensor(照度センサー)、BooleanSwitchArray(タッチアレイ)、Accelerometer3D(3軸加速度センサー)が用意されていて、親クラスを含む、これら4種類のクラスをSとして指定できます。 個々のセンサーは、それぞれを一意に特定する識別子を持つことを推奨されています。五番目のメソッドは、センサー識別子を指定して、そのセンサーの種別のクラスオブジェクトで、接続されたセンサー(1個)を取り出します。 自分が使いたいセンサー(例えば温度センサー等)に対応したクラスが無い場合は、既存のクラス定義(Code PackのSensorsプロジェクトのSensorsの下にある)を参照して、sensors.hに定義されたGuidを使って、独自に作成すればよいでしょう。 では、以下に幾つかのサンプルコードを紹介しましょう。最初にusingを加えて… using Microsoft.WindowsAPICodePack.Sensors; 全てのセンサーを取り出すには SensorList<Sensor> sensors =     SensorManager.GetAllSensors(); foreach (Sensor sensor in sensors) {     …. } 特定のセンサー(例えば照度センサー)を取り出したい場合は、…


.NET Micro Framework V4.0リリースされました!!

先週の15日に、.NET Micro Frameworkの最新版V4.0がリリースされました。前のバージョンに比べて、タッチやhttpプロトコル対応等、機能がかなり増えてます。また、Porting Kitでも、以前は出来なかった、利用する機能の選別ができます。 ダウンロードして、お試しあれ。http://www.microsoft.com/netmf.NET Micro Frameworkについては、インターフェイス12月号に記事が載っているので、そちらも読んでみてね。http://www.devdrv.co.jp/download/interface/0912/ おぅ、そういえば、Windows 7のQuebecも、すでにCTP2が出ているので、Microsoft Connectで登録して、利用してみてね。


Windows 7 Sensor & Location Platformを使ってみよう!! – その1

さて、前々から書こう書こうと思っていて、書けなかった、Sensor & Location Platfromの使い方をいよいよ、紹介していこうと思います。 まず、始めるに前の準備として、Windows 7 SDKをインストールするか、Visual Studio 2010 Beta 2をインストールしてください。これで、必要なヘッダーファイルやライブラリが、c:\Program Files\Microsoft SDKs\Windows\v7.0A (x64の場合は、Program Files(x86))の下の、Include、Libに、それぞれインストールされます。Sensor & Location PlatformのAPIは、COMで、ダイレクトに使う場合は、VC++ Native Codeでの開発になります。Includeの下に、Sensorsapi.h, Sensors.hというファイルがあって、Sensorsapi.hには、センサーを扱うためのCOM IFの定義が、そして、Sensors.hには、このプラットフォームがデフォルトで想定している各種センサーのカテゴリ、センサー種別、各センサーが供給するプロパティが定義されています。 とはいえ、Native Codeでの説明はちょっと煩雑なので、Managed Codeで概要は説明します。そのために、 http://code.msdn.microsoft.com/WindowsAPICodePack から、Windows API Code Packをダウンロードして、適当な場所に展開してください。(ZIPファイルのプロパティで”ブロック”を解除するのを忘れずに)Code Packの中に、COM Interopの機能を通してSensor & Location PlatformのAPIを使うためのWrapperライブラリーが入っています。COMをそのまま使いたい場合には、Code Packの中のSensors、Coreプロジェクトを覗けば、それぞれ対応する、COM IF、メソッドがわかるので、そちらを参考にしてくださいね。 そして、実際にセンサーを使ったアプリを開発するためのプロジェクトを作成しましょう。Visual Studio 2008でもVisual Studio 2010でも構いません。(単に試すだけなら、せっかくなので、Visual Studio 2010を使おう)。プロジェクトは、C#、WPF Applicationを選択したものとして、今後の話はすすめます。 あっ・・・っと、もちろん、センサーデバイスとそのデバイス向けのデバイスドライバーのインストールも必要なので、お忘れなく。 プロジェクト作成時にできたソリューションに、ソリューションエクスプローラ上で、Code PackのCore、Sensorsプロジェクトを既存のプロジェクトとして追加してください。そして、新しく作成したプロジェクトに、その二つを参照プロジェクトとして追加します。そして、センサー機能を使いたいコードファイルには、 using Microsoft.WindowsAPICodePack.Sensors; を追加しておきましょう。ちなみに、VC++ Native Codeでプログラムを作成する場合には、先ほど紹介したSDKのディレクトリのLibディレクトリにある、Sensorsapi.lib、もしくは、Sensorsapi.dllを、リンク時に必要なライブラリとして追加してください。そして、ソースコードでは、Sensorsapi.h、Sensors.hをインクルードすれば利用可能です。 Code PackのManagedライブラリを使った場合の話に戻すと、Microsoft.WindowsAPICodePack.Sensors名前空間の…


ET2009, MAKE04

18日にET2009@パシフィコ横浜アネックスホールで、組込み機器とクラウドの融合をテーマに講演しました。聞きに来ていただいた皆さん、ありがとうございました。最後の、会場で聞いている人数名の脳波をAzure上でホストしているサービスに転送して、私のPCからどれだけ集中して聴いているかを表示するデモは失敗してしまいましたが、実際にはネットワークが整っている場所では、ちゃんと動くので、また機会を設けてデモを披露したいと思います。具体的な日程等決まったらこのブログから紹介しますね。講演内容は、Tech Fieldersのコラム(bing で、”組込み” ”クラウド”で検索すると一番上に現れます。2回目はもうすぐ公開予定)や、このブログデモ紹介していきますが、日経PCさんで記事としても取り上げられました。 http://pc.nikkeibp.co.jp/article/news/20091119/1020551/ また、22日(今日)、MAKE04@大岡山で、”Windows 7 – パワーグローブでつかみはOK”と題して、ショートプレゼンを行いました。聴きに来ていただいた皆さん、ありがとうございました。今日は寒さのためか(会場は熱気むんむんだったので、関係ないか…)、MDF、19日のZMPさんの記者会見等々で、快調に動いていたパワーグローブのデモが、なかなか動かず、あわや、つかみはNGになりそうでしたが、何とか最後に動いたので、まぁ、良しとしてくださいませ。こちらも、集中度で地球を回すデモ、あれ、どこか適当な場で、再度、デモをチャレンジしたいと思います。(いゃぁ、ちょっと嫌な汗かいた) 実は、このイベント、初めて行ったのですが、面白いものがたくさん展示されてましたね。私は、Arduino XBeeネットワーク実験キット End Device 温湿度センサー・ユニットを衝動買いしてしまいました。Sensor & Location Platform用のDevice Driverを作って、デモを増やそうかっなっ。 ではまた。 あぁ、11月中のイベントでのしゃべり、デモ、一通り終わりました。もうすぐ、12月ですねぇ…


パワーグローブ

11月5日、Microsoft Developer Conferenceが開催されました。 http://www.microsoft.com/japan/powerpro/mdflive/default.mspx ご来場された皆さん、ありがとうございました。  大場さんのセッションの最後の方で、私もデモのお手伝いしました。例のSensor Development Kitに5つの加速度センサーを拡張したやつの・・・。手が動いたりピアノが弾ける例のあれですが、名前が、 パワーグローブ に決定しました!!


ET2009で講演します

気がつけばもう11月。早いもんです。 11月18~20日の三日間、パシフィコ横浜で日本最大級の組込み系イベント、「ET2009」が開催されます。もちろん、マイクロソフトもブースを出します。私は3日間とも朝一番にブースセッション担当の予定です。 他に、というか、私的にはこちらがメインなのですが、18日の12:30~14:00に「組込み機器とクラウドの融合による新しい未来」と題して、講演します。http://www.jasa.or.jp/et/conference/info_c.html?id=C-3参加は無料なので、事前登録の上是非、聴きに来てくださいね。ここだけの話、このセッションでしか聴けない、見れないデモ満載です。 どんな内容?とお思いの方は、Tech Fieldersコラムのhttp://www.microsoft.com/japan/powerpro/TF/column/ho2_01_1.mspxで予習できます。第二回目ももうすぐ公開予定です。 他にも、ETロボコンチャンピオンシップ(18日競技、19日ワークショップ)でもモデル部門審査員、競技計測システム担当として、パシフィコ横浜内を駆け回っていますので、見かけたら声をかけてくださいね。


Windows 7リリースされましたね

皆さん、Windows 7がリリースされてから初めての週末。さっそく、使っている方々も多いことでしょう。 私からの一言は、「マルチタッチも凄いけど、センサー & ロケーションもね」。 検索サイトで「センサー & ロケーション」で検索すると、紹介している記事が結構ヒットします。そろそろ、APIの説明とか、サンプルドライバの解説とか始めようかな。実は、Windows 7のSensor & Location Platformのドライバーは、Vistaから導入されたユーザーモードデバイスドライバーや、Windows Portabl Deviceの仕組み等を使っていて、結構奥深いですよ。 他にも、Visual Studio 2010もBeta 2が月曜日にMSDN Subscriptionからダウンロードできるようになりました。起動するとのっけから今までのVisual Studioとは違う雰囲気で起動します。Beta1ではビルドの際に、応答なしになることがよくあったんですが、解消されました。(パチパチ)UMLエディターも雰囲気が一歩製品版に近づいた感じです。是非、お試しあれ。※10/16に行ったETロボコン参加者向けツールセミナーに来てくれた皆さん。残念ながらあの時点ではBeta2をお見せすることができず、中途半端なデモになってしまって、ごめんね、ごめんね。  


Windows 7 Quebec登場

Windows 7の組込み機器向けOSも順調に開発が進んでいます。名前はQuebec(コードネーム)です。CTP版が公開されましたので、お試しくださいませ。 http://www.microsoft.com/windowsembedded/ja-jp/products/westandard/futureversion.mspx  


Embedded Conference、TechEd、SWEST、・・・

先週一週間、いろんな場所でいろんな話をし、沢山デモをお見せしました。私のセッションにご参加いただいた皆様、ありがとうございました。以下順に紹介します。 25日(火)Windows Embedded Conference @パシフィコ横浜キーノートでのマルチタッチ、センサー&ロケーションプラットフォームのデモセッション:「組込み機器でWindows 7!!新機能紹介」 Windws 7の特徴は組込み機器にも適した特等だよね、ということで、ドライバモデルやSensor & Location Platform、セキュリティ等について紹介しました。 26日(水)TechEd2009BoF:「Windows 7で世界をセンシング!!」と題し、Windows 7 Sensor & Location Platformのエバンジェリズムにご協力いただいているパートナー様を交え、以下のデモを行いました。 Freescale社製Sensor Development Kitボード1枚による、Sensor & Location Platformの基本デモ。加速度センサー、照度センサー、タッチセンサーの計測値をリアルタイムで表示するデモ 同ボード2枚による、二次元手(左右)の回転、急な動作をトリガーにしたWPFアニメーション 同ボードについている加速度センサーを.NET Micro Frameworkに組込み、そのコントローラを傾けると、ETロボコンの競技ロボットが動くデモ DPWS(Device Profile for Web Service)を使って、2台のPCで、センサーボードを接続したPCからDPWSでセンサー計測値を送付し、別のPCでDPWSでセンサー計測値を受信し、Sensor APIでアプリケーションからセンサーデータを取得するデモ。DPWSで受信した情報をSensor & Location Platformとして扱うためのデバイスドライバーは、デバイスドライバーズさんが作成 センサーボードの照度センサー値を、Azure(のテスト用Fabric)に送付・蓄積し、Webアプリで送付・蓄積された照度情報をリアルタイムに見せる NSコンピュータシステムさんが拡張してくれた、センサーボード+5つの加速度センサー(親指から小指まで)の手袋でWPF 3Dオブジェクトをリアルタイムに動かすデモ 同拡張手袋で、WPFで作ったピアノの鍵盤を指の動きに合わせて上下させるデモ ここでお見せした、Sensor Development Kitボードは、http://jp.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=6768698 から購入可能です。興味のある方は是非、お試しください。また、BoF会場でボードを渡した皆様、素敵なサンプルができたら是非ご一報を。また、ボードのファームはアップデートする必要があるので、その方法は、http://blogs.msdn.com/hirosho/archive/2009/06/12/pdc2008-sensor-location-platform.aspxを参考にしてください。※事前にブログで書いておいたら、もっとたくさんの方に参加してもらえたんだろうな・・・と思いつつ、次 8月27日(木)TechEd2009VSTS2010+TFS2010のUMLやアーキテクチャダイアグラム、モデルへの付帯情報、モデルのチーム共有について話ししました。幾つかデモを失敗してしまったのが心残りですが、実開発でモデル図上のすべてのエレメントに対して、タスクや懸念事項、関連情報をTFSにリンクできるのは強力な機能なので、是非ともお試しを。 そして、昼のランチで、3Dの手のセンサーデモを披露した後、・・・、石川県の加賀温泉に移動し、SWESTにお邪魔しました。そして・・・ 8月27日の夜。またまた、3Dの手のセンサーデモを見せながら、Windows 7 Sensor & Location Platformを紹介し・・・ 8月28日(金)「デバイス+クラウド=???」と題して、IT系で今一番のキーワードの”クラウド”について、”クラウド”を成り立たせている様々な技術を活用することによって生まれる組込み機器の新しい価値について、そして、それらを実現するためのマイクロソフトが提供する製品や技術の紹介を行いました。こちらについては、書きかけのコラム http://www.microsoft.com/japan/powerpro/TF/column/ho2_01_1.mspx で話した内容の一部が掲載されているので、ご一読ください。実は、組込み機器とネットワーク上のサービスをつなぐテクノロジーやツール・製品は、Live MeshやSync Framework、DPWSなどなど、MSからいろいろと提供されています。また基本的にFull…