“今日から使える”アプリコンテスト – 紹介

Digi International主催の”今日から使える”アプリコンテストの紹介です。詳しくは、 http://www.digi-intl.co.jp/campaign/contest/index.html を見ていただきたいのですが、このコンテストは、Digi International様の製品を使って「これは便利、こんなのが欲しかったわ」と奥様も納得して、直に使えて役に立つ、生活に密着したアプリケーションを作って競い合う、アプリケーションコンテストです。 日頃、何だかよくわからない裸のボードを使ってゴニョゴニョやって、「やった完成!!」と見せびらかしても、奥さんには白い目で見られるそんなあなた(あれ、私のこと?)、このコンセプトでアプリを作って投稿しませんか? このコンテスト、日本マイクロソフトも協賛させていただいております。もう随分昔(といっても2年前ですが)、TechDays2010のキーノートで披露した、Windows 7 Sensor & Location Platformで、ZigBee無線付テーブルタップをPCにつなぎ、さらさらヘアーをドライヤーの熱風で靡かせて、電力見える化のデモをやりましたが、このデモも、ZigBee無線付テーブルタップがDigi International様の製品なので、一応、このコンテストの範疇になります。他にも、Digi Connectは、Windows CEをOSとして使っていたり、XBee Wi-Fiドングルは、超有名なドングルなので、私のブログの読者の中には、家に帰れば2、3個転がっていそうですね。こういった製品をWindows 7 PCや、Windows Phone 7、.NET Micro Framework等と連携させるとか、デバイスとWindows Azure上のサービスを連携させるとか・・・ 組込みGeek系突っ走りだと、いまひとつ、「奥様の納得」感を得るのは難しいので、是非、パソコンやクラウドなどの連携まで試してみてくださいね。 コンテストの募集要項をよぉっく見ると、賞品の項目に「マイクロソフト賞」とありますね。この賞は、Digi Internationalさんの製品と、日本マイクロソフトの製品とを組み合わせて活用し、「奥様も納得」するアプリを作っていただいた応募者向けの賞です。 締切は5月18日、まだまだ先です。どしどし応募してくださいね。3月22日には、関連セミナーも実施予定です。「え~組込み系は良くわからないんだよねぇ…」という開発者の方も、「え~クラウドとかスマホとかPCアプリとか、IT系は判らないんだよねぇ…」という方々どちらも、この機会にチャレンジです!!  

0

組込み機器とクラウドの融合 – 電力の見える化をテーマに

まずは、3月11日の地震で被災された方、心よりお見舞いを申し上げます。また亡くなられてしまった皆様、謹んでご冥福をお祈りいたします。 3月11日に品川のオフィスが大揺れに揺れた時でさえ、まさかこんな大事になるとは、正直思ってもみませんでした。地震が発生してからずっと惨状が刻々と伝えられる中、IT系の同僚や沢山のボランティアの皆さんが、被災地を支援するサイトを作成・提供している姿を見つつ、私のロールと立場で出来ることは何かを考えてみました。今すぐ何か出来ることは少ないのですが、これから暫く続くであろう電力不足や、(もう二度とこんな事態が発生しない事を望んでいますが)万一同じような事態が将来発生したときに同じ状況が発生しないよう、未来に向けてIT系、組込み系両方、皆で出来ることについて考え、まとめてみました。 ご存知の方が多いと嬉しいのですが、「電力見える化」をテーマにしたソリューションのデモを各社と共同で開発し、ET2010やENEX2011など様々なイベントでの展示や講演をしてきました。この活動は、「組込み機器とクラウドの融合」をテーマに2009年から創めたエバンジェリズム活動の一環として行ってきた普及啓発活動であり、富士ソフト、ディジインターナショナル、デバイスドライバーズ各社との連携で、Win7 Sensor & Location Platform+Windows Azure+Silverlight RIA+.NET Micro Frameworkといった製品やテクノロジーを組合わせて作ったものです。元々の狙いは、マイクロソフトが提供するテクノロジーを組み合わせて、何か役に立つものを作って、新しい技術の紹介と、「既存の製品・技術を組み合わせるとここまで出来るよ」、という事実を皆さんに知っていただきたい、活用していただきたい、という動機から創めた活動です。創めた当初も、その時”たまたま”、ZigBeeでPCに接続できる電力センサーつきテーブルタップが利用できたので、選んだ素材である、というのが本当のところです。 初披露は、2010年1月開催のTechDays2010でのキーノートデモでした。その後も各社の皆さんの協力を得て、機能の拡張を続けてきましたが、皆さんの反応は、「確かに面白いけど、電力の見える化が出来ると何が良いの」というもの大半でした。加えて、2011年2月のENEX2011に展示したあたりでは、コンセプトレベルでは十分な機能を有するレベルに達し、今後どう進めていこうかと、実は悩んでいるところでもあったのです。使用技術は全てが即利用可能な技術で構成されており、コンセプトレベルでは既に完成の域に達しており、後は実ビジネスでの採用を待つばかりでした。一方で、電力インフラ系では「スマートグリッド」が実用化に向けて徐々に進行し、各地で実証実験が行われています。しかし、それなりに立ち上がりを見せているようですが、一般世間の反応は、「インフラが貧弱でしょっちゅう電気が止まる米国なら流行るかもしれないけど、電気が安定に供給されている日本には必要ないのでは?」という意見を多く聞いていたのも事実です。 この状況は、3月11日を境に一変してしまいました。世界で一番安定していると思われた日本の電力網は地震による被害でダメージを受け、計画停電が本当にに行われてしまい、電車は間引き運転や運休が発生、方々で明かりが消え、食料や乾電池の買占め発生など、停電によって様々な事態が発生してしまいました。被災していない区域での買占めやパニックの発生は、なにより被災地の復興の足を引っ張りかねません。20世紀後半からの文明は電気が基盤である事を改めて思い知らされた次第です。しかし、今振り返ってみれば、実は、猛暑の年には電気需要増大による計画停電の恐れはこれまでもあったし、何より限られた石油資源や二酸化炭素排出問題など、電気の使用方法を見直す必然性は、実は、昔からずっといわれ続けていたことだったんですね。変な表現ですが、スマートグリッド的なものの意義が、まさに、”腑に落ちた”というのが実感です。 もし、現時点において、電力会社から各家庭・店舗・事業所などの電気需要が把握でき、需要と供給のバランスで、それぞれ個別に通常の8割だけ電気を通電、更には、太陽光発電や風力発電であまった電気を地域で融通しあう、といったことができたとすれば、家庭の電気が完全に停電してしまう現状の計画停電はある程度回避されたのではないでしょうか。これが、正に「スマートグリッド」の役割といえるでしょう。この地震を境に、スマートグリッドや電力の見える化の重要性が非常に高まったと感じている方は非常に多いのではないでしょうか。今回の事態を受けて、今後、「スマートグリッド」の実用化と普及は加速するのでないでしょうか。※私はスマートグリッドの専門家ではないので、間違いがあったらごめんなさい。 では、「スマートグリッド」さえあれば、それで全てOKなのでしょうか?私はさらに2つの観点が必要に思えます。それは、以下の2つの観点です。 家庭やオフィス内での電力の見える化 既存のITシステムとの連携 私の理解が正しければ、「スマートグリッド」のカバー範囲は、発電所と送電網、そして家や建物の電力メータまでです。「スマートグリッド」を扱った記事や講演も、殆どそんな感じを受けるものばかりです。しかし、一般の家の住人からすれば、「通常の8割になるとして、ではどこを消そうか」と、そして、「じゃぁどの機器が実際どれだけの電力を喰っているの?」と思うのが当然の流れでしょう。本当の意味で電気を有効に消費するには、単に家や建物単位の電力消費量の把握だけでなく、個々の家電製品がそれぞれどれだけの電気を消費しているかをきちんと把握する事は重要です。電力の消費状況を見える化して確認できたうえで、適切に該当機器を選んで電源をオフにすることができれば、電子レンジで料理の途中、不注意でブレーカーが落ちて料理を台無しにしたり、不必要に多くのスイッチを切った不自由な生活をしなくて済みます。また、電化製品は、例えば冷蔵庫が十分冷えている時と庫内を冷やしている時では電力の消費量が異なるように、ずっと定常的に同じ値の電力を使用する機器はあまりありません。つまり、ある時点でのリアルタイムな消費電力の把握ができるだけでは不十分であり、通常の電力使用量の分析を通じて機器ごとの電力消費傾向を把握し、「見える化」しておく必要もあります。もちろん、太陽光発電や風力発電の発電量(時間傾向服務)、蓄電池への充電率も「見える化」が必要なのは言うまでもありません。 家電機器の消費電力把握の分野では、HEMSという名の下に、徐々に実用化が進められてはいるようです。しかしこちらもインフラ系と同様、その殆どが専門のプロトコルと専用のハードウェアを使った、専用システムとして開発されているが現状のようです。その為、インターネット上のサービスとPCやスマートフォンとつなぐのと同じ方法では、家電機器とPCやスマートフォンをつなぐことは難しいのが現実です。消費電力表示用の専用機器を作る事も考えられますが、限られたハードウェアリソースのデバイスで、多岐に渡る家電機器や、用途に応じた電力消費量の見せ方に応じたアプリケーションを提供する事は、なかなか難しいでしょう。一方で、既に一般家庭ではインターネットの普及が約7割弱、パソコンは9割弱(どちらも総務省調べ)に達し、加えて、スマートフォンが凄い勢いで普及している現実があります。それらのユーザーの方は、スマートフォンやタブレットで個々の機器の電力を見たいなと思ったことがある方も大勢いるでしょう。既にある、これらの既に一般に普及している汎用機器を利用しない手はありません。(ENEX2011の時には、我々の展示場所を取り囲む、様々なHEMS機器がWebサービスの様に連携できればなぁと会場で夢想していました) 私のコラム「組込み機器とクラウドの融合」で紹介した様に、電化製品を既にあるネットワークにつなげて”Device as a Service”として論理的な部品として使えるようにし、アプリケーション実行環境はPCやスマートフォン、タブレット等に任せ、使い勝手の良いユーザーインターフェイスで操作できるアプリケーションを提供する、そんなアーキテクチャはいかがでしょう。この様な構成になっていれば、用途に応じた電化製品ごとの消費電力の見せ方も工夫できるし、猛暑や災害発生など、状況に合わせたアプリケーションの開発・配布も簡単に出来ます。何より、組込み技術者は専用システム部分を、アプリケーションはIT技術者が担当する事で、お互いの専門領域に集中できるのではないでしょうか。 そして、通常のネットワークに電化製品を接続し、インターネットとつなげてしまえば、インターネット上のサービスと、家電機器の電力消費状況を組合わせたアプリケーションやサービスを構築する事も可能です。例えば福岡スマートエナジーコンソーシアムのケースでは、天気予報の情報をネットワークから取得し、そのデータに基づいて、発電された電気の逐電や利用を行うシステムの実証実験が進められていたりします。他にも既にインターネット上には、簡単なプログラミングでアクセスしデータを取得できる多数のサイトが存在しています。それらサービスとと組合わせれば、アイデア次第で有用なアプリケーションやサービスを、より簡単に構築する事ができるでしょう。加えて、電力インフラ系システムもインターネットにつながり、一定レベルの情報をネットで利用可能になっていれば、信頼性がおけて精度が高いより便利なサービスを開発でき、一般ユーザーが使えるようになるに違いありません。 加えて、それぞれの場所で温度や大気圧、湿度、照度、衝撃、人のいる・いない・・・等々、電力消費量以外の環境情報も加えれば、気候に応じた電力消費量のコントロールや、それぞれの部屋の使用状況と環境状況にあった、きめ細かな電力量消費制御等も可能になります。そしてそれらのセンサー情報を、インターネットにフィードバックして、複数のデータを組合わせれば、地域ごとの特性把握や、特性に応じた制御も可能になるでしょう。更には、それらセンサーデータを加工して、全く別の応用分野が開ける可能性もあります。 更には、PCやスマートフォンと同じように、家電機器も後からアプリケーションを追加・更新できるようなプラットフォームになっていれば、災害時や、猛暑による電力不足の際に、その時々の状況に応じてアプリケーションを配信し、災害復興用のクラウドサービスとの連携で、被災地の復興に役立てられるサービスを迅速に提供できるのでは、(もちろん被災地で家屋が倒壊した状況では機能しないのは判っていますが、被災地以外で無用な混乱を抑える事には役立つのではないでしょうか?)と思うのです。実際、地震が起きた当日はネットワークで様々な情報を交換できたし、多くの企業やボランティアのIT技術者が既存のサービスを活用しながら災害復興に向けた様々なサービスを、数日のうちに立ち上げていきました。そのスピード感たるや素晴らしいものでした。その様を目の当たりにして、インフラ系や組込み機器も、活用可能な部品として組込む事が出来たら、今回活躍した彼らは(そして自分も)、それら部品も組込んだ、より有効なサービスの構築しようとしたに違いありません。 勿論、電力消費や各種センサーデータはその殆どが個人のプライバシーに属するデータであり、セキュリティの問題や、機器間接続の為の標準化、専用システムとIT系システムの境界をどうつなぐか、耐障害性や稼働率、各種法律の壁の問題など、多くの課題があり、それらを一つ一つ解決して実現していかなければなりません。これから復興が始まる中、インフラや家屋や建物の再構築がなされされていきます。様々な新しい試みが行われる事でしょう。その試みの中には「スマートグリッド」の活用も入るのではないでしょうか。その際、単にインフラだけの閉じた視点、組込み機器の視点からの閉じた取り組みだけでなく、PCやスマートフォン、インターネット、各種ネットワーク上のサービス等一般に普及したものとの連携を、是非考慮に入れていただければと願っています。そうすれば、組込み技術者の活躍だけでなく、Windows系を含むIT系開発者の活躍の場も広がる事と思います。 その際、プラットフォームの一部にでも、組込み機器にはWindows Embeddedや.NET Micro Framework、PCやスマートフォンではWindows系の各種機能、ネットワークではWindows AzureやBPOS、WindowsLiveなどを採用いただいて、微力ではありますが、貢献してければと願っています。普段でしたら、この後に、それぞれの製品・技術が、どこに嵌っていくかを詳細に解説するところですが、この投稿では触れず、別の機会で語っていきたいと思います。 今後、今活動中の「電力の見える化」をテーマにしたコンセプトデモをベースに、今回説明したコンセプトの実現を手助けする方向で活動を継続していこうと考えています。ご賛同いただける皆様、ご協力いただければと存じます。今後ともよろしくお願いいたします。 私が生まれ育って青春時代をおくった東北地方の、一日も早い復興を祈っております。

3

ENEX2011出展

久しぶりのポストです。 昨日(2月8日)から、国際展示場で開催中のENEX2011に出展しています。出展内容は、昨年のTechDays2010のキーノートで披露した、ドライヤーの・・・もとい、使用電力量の見える化と、小型組込み機器(家電や制御機器のパネル、ネットワークセンサーなど)のクラウド連携です。 富士ソフト(株)、Digiインターナショナル(株)、(株)デバイスドライバーズ、日本マイクロソフト(株)の4社共同出展です。マイクロソフトの、Windows 7 Sensor & Location Platform、Windows Azure、Silverlight、Windows Comunication Foundation、.NET Micro Frameworkをプラットフォームとして、Digi インターナショナル(株)の、ZigBee無線でPCとつながる電源タップ、富士ソフト(株)のSensor & Location Platform対応デバイスドライバー、Windows Azure上のホスティングサービス&SilverlightのRIAによるテーブルタップで計測した電力を可視化するアプリケーションの展示です。基本構成は、昨年のTechDays2010と同じですが、5個のテーブルタップが同時計測可能になり、かつ、複数の地点で計測した値が表示されるようになるなど、格段にパワーアップしています。 また、(株)デバイスドライバーズが代理店の.NET Micro Framework対応小型デバイス、FezCobraによる、Azure連携の展示や、電池がないのにスイッチを押すと、FezCobraにスイッチのOnOff状況が表示されるという、ルフィーなら「あぁ不思議スイッチだな」って言いそうな展示も行っています。※このデバイスは普段は若松通商のアキバNET館に展示されています。 展示場には、このデバイスがネットにつながってRESTやSOAPで通信できたら、いろんな応用が即できそうだという凄い省エネ関連機器があふれています。IT系企業の皆さんも是非、会場に来て夢を膨らませてもらえればと思います。省エネやスマートエネルギー、スマートグリッドのテクノロジーは、まだまだ独自の閉じた製品が多いですね。昨日の講演でもお話しましたが、今後、ITシステムで標準に使われているRESTやSOAP、WebサービスといったテクノロジーでITシステムとの連携が図れる形にして様々な産業と連携が進むことを切に望みます。 展示は明日(2011/2/10)までです。興味のある方は是非会場までお越しください。

0

ETロボコン2010関連情報 – お疲れ様でございます

夏から秋にかけて…組込みエンジニアにとってこの季節はETロボコンの季節です。 今年は、北海道、北陸、沖縄の3地区大会増と、ますます、盛り上がっていますね。私も、南九州地区大会を皮切りに、南関東大会、北陸大会、関西大会、東海大会と、計測システムのフォローでお邪魔しています。懇親会では学生さん向けにDreamSparkを使うための認証コードを配っていますが、学生の皆さんが嬉しそうにもらってくれる姿は、非常に嬉しいですね。是非実際にダウンロードして活用してください。東海大会では、デジタルセンセーション(株)さんによるSilverlight+IIS Ream-time Streamingによる、実況ストリーミングにも出会い、うれしい限りです。 さて、ずいぶん前にETロボコン参加者向けに書いたブログ投稿、大分時間がたって散発的な感じなので、以下のリストにまとめておきますね。チャンピオンシップに参加されるチームの皆さん、来年リベンジするぞという皆さん是非、見てくださいね。 Visual Studio 2010で、NXTのコードを開発する方法 役立ちそうなVisual Studio 2010の新機能 記述したUMLモデルからいろんなものを生成する方法 ETロボコンのSoftware Factoryを作ってみよう DSL Toolkitで自分独自のモデル言語を作ろう(たとえば走行戦略エディターとか) 最後の二つはVS2005で説明していますが、VS2010でも同様なことは可能です。ここで説明している内容は、私もモデル審査員を務めているMDDロボットチャレンジでも活用できるので、そちらのコンテスト参加者も参考にしてみてくださいませ。 他に、ETロボコン向けに計測システムを提供しているわけですが、こちらは、元々ボランティアを集めて大勢で開発していきたいと思っているので、やってみようかな、とか、コードだけでも見てみたいという方は、embedded-george@live.jp までメールをください。ちなみに今は、酒田sAsさん、東海大の学生さんが参加を表明してくれています。使っているテクノロジーは、 WPF: Windows Presentation Foundation WCF: Windows Communication Foundadation Entity Framework MEF: Managed Extension Framework Office InteropによるExcel拡張 Silverlight その他 です。基盤として Windows 7 SQL Server 2008 Excel 2010 を使ってます。 12月のチャンピオンシップに向けて、見栄えの改造や機能の追加をやっていく予定なので、参加してくれるとありがたし。計測システムについては、別途、投稿の予定です(昔もそんなことを書いたような気がするが・・・)計測システム…Azureやリアルタイムストリームと連携して、競技状況とか配信したいんだよね…

0

.NET Framework 4.0のCode Contractsを組込み開発で活用する

今、ある講演向けに、再度、Visual Studio 2010、.NET Framework 4.0の新機能をじっくり見てます。昔私はオブジェクト指向とかモデル駆動型開発とか、CMMとかで組込みソフトウェア開発プロセス改善をやっていたこともあり、ソフトウェアの品質や生産性が上がりそうなトピックスを見ると、直ぐに体が反応してしまいます。 次のポストは、UMLから組込み機器向けのC/C++コードを生成する方法を紹介しようと思っていたのですが、Code Contractに惹きつけられてしまったので、そちらを紹介します。 昔々、Bertrand Meyerさんが、“Design By Contract”(以下DBCと略します)という概念を提唱しました。(所謂、「契約による設計」ってやつですな) DBCを簡単に紹介すると、コードを利用する側に対して、このコードを利用する場合、 事前条件(Pre Condition):こういう条件が整っている時に、このコードは正しく動きますよ。 事後条件(Post Condition):このコードが正しく動いたら、こういう条件になりますよ。 不変条件(Invariant):このコードが動いてもこの条件は変化しないよ。 という表明であり、逆にコードを実装する側にとっては、この3種類の条件を満たすよう実装しなければならない、というプラクティスです。こうすることによって、コードの仕様が明確になる、実装側と利用側のコミュニケーションが良くなる、バグが減って品質が上がり、生産性が上がる、というメリットを得ることができます。よく見かける(見かけないか普通?)、C++やJavaのassertを使って、実装のデバッグの利便性を高めているのは、道具は使っているけれど、DBCではないのでご注意。 そしてDBCを.NET上で積極的に活用できるように、.NET Framework 4.0に、Code Contractsという機能が追加されました。 ちょっと紹介すると、 using System;using System.Diagnostics.Contracts; class CFoo {    ….    [ContractInvariantMethod]    // Invariantを使う場合に必要    public int MethodFoo(int x)    {        Contract.Requires(x!=0&&this.Something>0); // 事前条件。引数は非ゼロ、Somethingプロパティは正        Contract.Ensures(Contract.Result<int>()!=0);// 事後条件。戻り値は、非ゼロ        Contract.Invariant(this.Something!=0);      // Somethingプロパティは非ゼロ        ….    } こんな感じになります。詳細は、http://msdn.microsoft.com/ja-jp/library/dd264808.aspxをご覧いただくとして、Code Contractsを記述すると、以下の3つのケースで、品質を上げるのに寄与することになります。 動的テスト時 静的テスト時 ドキュメンテーション これ、TDDのPracticeを廻すのに凄く便利だと思うのですが、残念ながら、Managedコードでしか使えないんですね。 で、これでこのポストを終わらせてしまうと、タイトルに対して嘘をついたことになってしまうので、これから組込みの濃い世界に踏み込んでいきます。私が思うに、Desktop向けやWeb向けのソフトウェアは、開発環境や実行環境がリッチなので、障害解析は比較的楽なのに対して、組込み機器向けソフトウェアは実行環境が何よりプアなので、DBCの様な仕組みがあれば非常に助かると思うんですよね。 さて、組込み機器開発の場合、Windows目線で分類すると、以下のケースが考えられます。 Windows Embedded…

1

TechDays2010でCM-210:「つながる!!”組込み機器+クラウド”まつり」開催します

気がつけば・・・来週TechDays2010が開催されるじゃないですか?! ということで、タイトルのコミュニティセッションを太田がモデレータを担当して行います。.NET Micro FrameworkやWindows 7 Sensor & Location Platform、組込み機器+Windows Azure連携、Visual Studio DSL Toolkit等など、実際に活用していただいてる皆さんに、順に登壇していただくべく、準備を進めています。どこの会社のどなたが登壇されるかは、今週、このブログで順次紹介していきますね。昨年のTechEdでやったあのBoFみたいな感じです。 セッションの最後ではミニゲームも企画しています。ここで勝ち残った方には、各種センサーや、.NET Micro Frameworkが動くボード等をプレゼントの予定です。 Attendee Partyと並行開催ですが、出入り自由なので、TechDaysにいらっしゃる皆さん、是非、ご参加ください。

0

21世紀の10%が終わる…

今は2009年の年末。ふと気づけば、21世紀の10%が終わろうとしてる。この10年間で印象に残っている個人的な出来事は、2002年のUMLロボコン(現ETロボコン)第一回大会でモデル部門の最優秀賞を取ったこと(Team Off Roaderは私でございます)と、2006年にマイクロソフトに転職したことかな。 組込みソフトウェア関連でこの10年間に起こったことで一番印象的なのが、ネットワーク(特にWebテクノロジー)の発展とインフラ化かな。昨今はやりのCloudもこの流れの一環でしょう。実は私は、20年前にすでにE-Mailやネットワーク共有、オブジェクト指向デスクトップが当たり前の会社で仕事をしていたので、90年代のPCやネットワーク技術の進歩は、後追い的なイメージを持ってたんだけど、2000年代に入ってやっと追い抜かれた感じで、今の技術の進歩は凄く面白い。  Tech Fieldersのコラムでも書いてるけど、組込み機器とネットワークの融合は今後どんどん進むと思う。それから、OSのプラットフォーム化。90年代後半では、自前で一から自社開発HW専用のOSやミドルウェアを開発するってのはまだまだ一般的だった気がするけど、今は一から専用OSやミドルウェア、基本部品を作るなんてコストが合わない時代になってきた。これからは組込み機器もPCが辿ったように、組込み向け汎用OSが当たり前のように使われていく時代になりそうだね。 半導体技術の進化もすごい。特にMEMS技術が進歩して、これを生かしてARや、新しいNatural UIが今、着々と実用化されてきている気がする。一方で、CPUの性能アップ、メモリサイズの巨大化、チップの低コスト化が進んだにもかかわらず、それ以上に要求は巨大化・複雑化してるので、組込み機器はHWリソース制約が厳しいから・・・という組込み機器特有の制約は相変わらず変わってない。これは組込みソフトウェアの宿命か。 他には、開発環境の進化やプログラミング言語の発展、モデル駆動型開発の実用化も着々と進んでいる。2000年代になってすぐぐらいに、「そのうちプログラミング言語はXMLベースになる」、「プログラミング、デバッグ、レビュー、検証とか目的に応じたViewが用意されるようになる」って周りに言っていた時期があって、実際そうなってきてるので感慨深い。GUIを定義するXAMLや、Osloなんかも出てきたし。Visual StudioのDSL Toolkitも、その流れ。この辺りは、やはりCPU性能やメモリ量アップと、プラットフォーム化の恩恵だね。 これから出てくるパラレル・コンカレントのランタイム拡張・プログラミング言語も凄く興味深いね。はじめは何故関数型?と思っていたんだけど、並行性を記述するにはデータフローが適していて、関数型はそれを自然に表せるとは・・・。昔私がやってたShlaer-Mellor法(現Executable UML)のアクション記述言語もデータフローをベースにしたモデリング言語で、あの時、関数型プログラミング言語との親和性に気づいていれば、私も新しいプログラミング言語を世に出せたなぁ、なんて。 以上、徒然なるままに書いてまいりましたが、この10年間、つらい時期もいっときありました。でも、非常にエキサイティングな10年間でした。何かと暗い話題も多い昨今ですが、また次の10年、エキサイティングであることを祈って、来年も、よろしくお願いします。次の10年はロボットがブレークしそうな気がする・・・ あ、そういえば、アメリカで今、2000年代を何て呼ぶか(80年代ならEighties(80’s)、90年代ならNinties(90’s)ってやつ)、なかなか決まらないらしい。サイボーグ009みたいに、Zero Zero Numbersなんてどうだろ…と、くだらないことを考えながら、年の瀬を迎える…。ん?そういえば、次の10年は何て呼ぶの?Teen’s?

0

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

三回目は、いよいよ、センサーデータの取り出し方を説明します。センサーの取得方法は、その2を見てくださいね。 Sensor & Location PlatformのAPIには、センサーデータの取り出し方が二種類用意されています。一つ目は、”見たい時に見る”方法(同期参照)、二つ目は、”データが変化したときに通知を受ける”(非同期参照)です。センサーデバイスやデバイスドライバによっては、同期参照しかできないものもありますが、アプリケーションシナリオで、センサーの値が必要な時だけ見ればよい場合には、同期参照を、ほぼリアルタイムにセンサーの値を見ながら制御をしたい場合には、非同期参照を使います。 では、まず、同期参照から。同期参照の場合は、以下のようなコードで記述します。 Sensor sensor = …;sensor.TryUpdate();SensorReport report = sensor.DataReport;DateTime updatedTime = report.TimeStamp;foreach (var propertyKey in report.Values.Keys){    Guid propertyId = propertyKey;    foreach(var propertyValue in report.Values[propertyKey])    {        // propertyValueが同一propertyIdに属する一連のプロパティの値    }}  コードの中で、”一連のプロパティの値”と書いていますが、Windows 7 SDKのsensors.hを覗いてみると、たとえば、3軸加速度センサーの値は、 となっていて、Guidで示されるプロパティ値に、X方向、Y方向、Z方向が、それぞれ2,3,4で定義されているのがわかります。上のコードで3軸加速度センサーの値を取得すると、順にX方向、Y方向、Z方向を取得できます。上のコードは、色々な種類のセンサーを扱うような場合に、有用なコードですが、特定のセンサーしか使わないアプリケーションの場合は、 PropertyKey propertyKey =    new PropertyKey(        “{3F8A69A2-07C5-4E48-A965-CD797AAB56D5}”,        2);var accel3DX = sensor.GetProperty(propertyKey); といったように、プロパティのGuidと、フォーマットIDを指定して、GetPropertyメソッドで取得できます。 次に、非同期参照を紹介します。この方法は、センサー値が変化したときに呼びだしてもらうイベントハンドラをセンサーに登録しておき、イベントハンドラが呼ばれたら、センサー値を取り出します。 sensor.DataReportChanged +=    new DataReportChangedEventHandler(        sensor_DataReportChanged);….void sensor_DataReportChanged(Sensor sender, EventArgs e){    SensorReport…

0

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

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

0

PDC2008で配布されたSensor & Location Platformのボード

あ~、また一ヶ月近く経ってしまいました。 さて、今日のポストは、昨年10月にロスで開催されたPDC2008の会場で配っていた、Windows 7 Sensor & Location Platformのサンプルボードについてです。 昨年10月にボードが配られた際、Windows 7、Windows 7 SDK、Sensor Development Kit Driverが格納された3枚のDVDが添付されていました。先日Windows 7のBuild 7100が公開されましたが、このバージョンでは、x86 PCでかろうじて動きはしますが、x64ではDriverがインストールされません。また、SDKに格納されていたSensor & Location Platform向けヘッダファイルやライブラリも一部変更が生じています。 Windows 7 Build 7100で最新のSensor & Location Platformを試したい方は、以下の手順に従ってインストールしてください。 とりあえず、試してみたい方向け:以下からSensor Development Kit for Windows 7をダウンロードして解凍し、http://code.msdn.microsoft.com/SensorsAndLocation/Release/ProjectReleases.aspx?ReleaseId=2359 SensorKitDriverInstaller.exeを実行 ボードをUSBで接続 で必要なドライバーがインストールされます。x86、x64に対応しています。 上のファイルにも各種サンプルが入っていますが、Windows API Code PackにもInterop用プロジェクトやサンプルが入っています。http://code.msdn.microsoft.com/WindowsAPICodePackZIPファイルを解凍し、その中に入っている、Samplesの下のSensorにあるソリューションをVisual Studio 2008で開き、ビルド&実行してください。照度センサーと加速度センサーの簡単なサンプルを試せます。 他に、つい最近公開されたVisual Studio 2010をインストールすると、c:\Program Files\Microsoft SDKs\Windows\v7.0Aの下のInclude、Libに、Sensor&Location Platform用のヘッダーファイル(Sensors.h、Sensorsapi.h、Locationapi.h)とライブラリ(Sensorsapi.lib、Location.lib)がインストールされます。こちらを使う手もあります。 また、評価ボードをつないだとき、”Touch E4 For Boot Loader”という表示がLEDアレイでずっと表示される場合は、以下の手順に従って評価ボードのファームウェアを更新してください。 USBで接続した状態で、E4をタッチ PCにストレージが現れる…

0