サイドショーガジェットコンテストで優秀賞をいただきました

審査会の後はフリースケール様で懇親会をひらいていただきました。
その後友人たちと祝杯をあげていま帰ってきました。


参加賞もらえるからいいかなと思っていたので、まさか優秀賞いただけるとは思いませんでした。
今回のコンテストは、フリースケールジャパン、アイオーデーター、九十九電機の社長にマイクロソフトの重役が審査員でした。こんな機会はなかなかですですよね。
アイオーデーター機器の細野社長が気に入って推していただいて優秀賞(アイオーデータ機器賞)となったそうです。
非常に単純なプログラムで技術的には見るところはあまりありませんが、サイドショウデバイスの特性(メインのモニタから離れた場所=手元で見られる、PC取り外してからデータを参照できる)を活かした(←自画自賛)点を評価いただけたようでとても嬉しいです。
賞品(22インチ液晶モニタ)も嬉しいけど細野社長と受賞時に握手できたのも嬉しかったな〜


今日はとてもすばらしい一日でした。製作者控え室でも楽しくお話をさせていただきました。
また、たくさんのお祝いのコメントありがとうございます!




もう記事になってますね。


【今日のニュース】
フリースケール、SideShowガジェットコンテスト優勝者を決定 (PC Watch)
「Windows SideShowガジェット・アプリケーション・プログラム開発コンテスト」最優秀賞決定 (Ascii)
辞書、伝言メモ、画面ビューアなどが受賞〜Windows SideShow 開発コンテスト
SideShowのキラーアプリ誕生!? コンテストで最優秀賞決まる (日経BP)
フォトレポート:今度は「Windows SideShow」--フリースケールがプログラミングコンテストを開催 (ZDNet Japan)


【以前のニュース】
Windows® SideShowガジェット・アプリケーション・プログラム開発コンテスト
フリースケール、「Windows SideShowガジェット・アプリケーション・プログラム開発コンテスト」、プログラム募集開始
「Windows® SideShow ™ガジェット・アプリケーション・プログラム開発コンテスト」
第一次審査通過 6作品決定、12月4日の最終選考会へ



【デモ用のメモ】


SideShowガジェット「SideView」の説明をいたします。
SideViewは、Windowsの画面を表示するガジェットで、「拡大鏡」として使用します。
ソフトウェアの拡大鏡は数多く作成されていますが、SideShowデバイスを利用することで手元で画面を見られることを特徴とします。
最近ではリビングのハイビジョンテレビでPCをつないで楽しむ機会も増えましたが、どうしても細かい文字などを確認する必要のある画面があります。
そこで、PC本体からはなれた箇所で使える、SideShowデバイス上に画面の一部を表示することを考えました。
これなら手元で確認できます。


ほかにも、全画面を表示するモードにしてノートPCを閉じた状態やモニタのつないでいないPCの状態監視なども行えます。
時間のかかる処理は、モニタを消して、SideShowデバイスに全体画面の縮小イメージを表示しておけば省電力にもなりますね。


また、画面のイメージをデバイスに10画面まで記録しておくことができますので、PCから取り外して屋外などでメモを見ることもできます。


それでは、実際に使ってみましょう。


ガジェットには、3つのモードがあります。
・拡大縮小
・移動
・記録・再生


拡大縮小モードでは・・・
・拡大
・縮小
・全体表示
・等倍


移動モードでは・・・
・上下左右移動


記録モードでは・・・
・記録
 ・記録時の全体表示
・再生

とりはずして、再生のデモ



応募作はFreescale freakのページ(要ユーザー登録)からダウンロードできます。

今日はサイドショーガジェットコンテスト最終審査会

めざせ3000円


今日は「Windows® SideShowガジェット・アプリケーション・プログラム開発コンテスト」の最終審査会です。
会社もお休みいただいたので、バッチリ参加してまいります。


応募総数はわかりませんが、募集人数は70名でした。最終審査に残ったのは何人なんでしょう。ドキドキであります。
審査時間は5分間(説明は3分間)なので、ただいま練習中。
僕のは単純なプログラムだから時間は余裕だけど、アピールポイントをわかりやすく説明しないとね。


今回の賞は↓のようです。


【賞・賞品】
* 最優秀賞(1点): 10万円の商品券および副賞
* 優秀賞(2点): マイクロソフト社、アイ・オー・データ機器社提供
* 参加賞(プログラム提出者全員): ツクモEXカード3,000ポイント(3000円分の買い物が可能)とフリースケール特製ノベルティを進呈


気持ちの上では、めざせ最優秀賞ではあります(ぉ
ツクモEXカード3,000ポイントをありがたくいただいてくることにしましょう。

サイドショーガジェットコンテスト 一次審査通過!


Windows® SideShowガジェット・アプリケーション・プログラム開発コンテスト」の一次審査を通過しました。
いまメールが来たよ〜


最終選考会は、2007年12月4日(火)です。
秋葉原「アイ・オー・スクエア」で僕と握手!



(MXSDVK関連日記は→こちら)




(応募作品ドキュメントのサムネイル・・・詳細は後日)



(作者近影)


/

id:shiba-yan:20071116 様も一次審査通過されたとのこと。おめでとうございます!
どう考えても僕より凄い作品で応募しているよ。当日はお手柔らかに。
(授業は出なくてもなんとかなります。たぶん・・・)

サイドショーガジェットコンテスト応募完了

コンテスト応募完了


Windows® SideShowガジェット・アプリケーション・プログラム開発コンテスト」応募完了しました。
2つ作ってたなか、間に合ったのはそのうちの簡単な方だけですが・・・まあ、参加賞ゲットだぜ(ぉ
プログラムよりドキュメントが大変だったかも。→サムネイル


今回作ってみたなかでわかったことは、こんな感じ



【注意点とかもろもろ】
・画面の更新が遅いのを前提に作る / デバイスからの入力をもとにガジェット側で処理というつくりはレスポンス悪いので、なるべくデバイス側のメニュー機能などを利用してレスポンスのよい構成にすべし
・ボタンの上下はSideShowガジェット側からは取れない
・メニューで選択させると、メニュー項目に設定しているコンテンツIDに切り替わってしまうので、切り皮った先のコンテスツIDでデータ(SCF)をおくらないとデータがないって画面になる
・あらかじめ画面のリンクも含めて送りつけておくっていう仕組みは、EzWebのHDMLを思い出したな。
・コンテンツIDとか、画像のIDとか、メニューのIDとかは、お互い重ならないようにしないとダメ(例:コンテンツIDと同じIDで画像を登録しようとするとエラー)
.net micro frameworkでの開発もやってみたい。
・ガジェットのインストーラー作ったけど1作にしか使わなかったのはもったいないな
・SlideShow(スライドショウ)じゃなくて、SideShow(サイドショウ)だよ




次回があったら、この辺を踏まえてアイディア出したい。



あと、先日の日記でほかに参加者いない〜って書いてましたが、べつのキーワードで検索したらいらっしゃいました(失礼しました)。
はてなダイアリーだけで二人いらっしゃるようです。あと、/.でもコメントいただきましたね。
12/4の最終選考会では、みなさんにお会いしたいなーとかいいつつ、自分がそこまで残れる自信はまったくなかったりします(ぉ



/


応募したのは発表を待つとして、作りかけのほうは公開しちゃおー
こっちは、テキストの更新のみだと比較的早い(7FPS位出る)のを利用してアクションゲームぽいもの作れないかとやってるところです。
とりあえず、PC側とサイドショーバイス側とで対戦できるPONG。
まだ、作りかけだけど雰囲気だけ。
あと肝心のフレームレートがなんか低い。予定の半分くらいしか出てないなー。ここは調整したい。


動画 (YouTube)



左がPCの画面で、右はMXSDVKです。
ボールがお互い行き来しているのがわかるでしょうか?


(写真)



/

あと、ハッピーハロウィン!

 


今年はころんがtreat中

SideShowガジェット開発中〜


台風接近中だけど、SideSHowガジェットコンテストの締め切りも接近中じゃ!


VistaとVisualStudio2005を用意したところで力尽きていたのですが、夕方くらいからプログラムを始めましたよ。風の音をききながらのプログラミングもオツなものですね〜



● SideShowデバイスとかSideShowガジェットってなに? (おさらい)


 Windows Vistaから使えるようになった新機能です。
 「SideShowデバイス(サイドショーバイス)」ってのは、小型液晶といくつかのボタンを持った小さな装置で、普通はUSBでPCに接続します。
 「SideShowガジェット」は、その「SideShowデバイス」を制御するWindwos上のプログラムのこと。
 ガジェット側から文字やイメージをデバイスに転送すると、その内容がデバイスの液晶に表示されます。デバイス上のボタンが押されたらガジェット側でもわかります。
 この機能を応用していろいろプログラムを作ってみようというのが、今回のコンテストの趣旨です。主催のFreeScaleの製品「MXSDKV」を使って開発します。


 開発はC#.net frameworkを使うのが楽です。




● 開発環境の準備メモ (C#で開発)


基本的にFreeScaleのサイト(Sreescale Freak内)でダウンロードできるPDF読めばすべて書いてあります。
一応作用メモ


【開発環境のインストール】
Windows Vistaをインストールしよう (HOME BASICはダメ)
・SideShowデバイスをPCに接続、ドライバーをインストール(自動的にできてきたインストールのダイアログは閉じて、デバイスマネージャーから主導でドライバーを選択して入れる)(p.38-)
Visual Studio 2005をインストール(無償版のExpressでもOK)(p.24)
Microsoft Windows Software Development Kit for Windows Vista and NET Framework 3.0 Runtime Componentsをインストール (p.25)
.Windows SideShow NET Framework Components 1.0 (Beta)をインストール (p.30)


(SideShowデバイスの実機があれば、SideShowデバイスシミュレーターは不要)


【アプリの開発】
・アプリケーションID(GUID)をGuidGen.exeを使って生成する (p.49)
・生成した、アプリケーションIDやアプリ名をレジストリ(HKEY_CURRENT_USER\Software\Microsoft\SideShow\Gadget以下)に書き込む (p.50)
レジストリへの変更をコントロールパネルに反映させる (p.51)
Schtasks.exe /run /tn Microsoft\Windows\SideShow\GadgetManager
・コントロールパネルのSideShowで、さっき登録したアプリ名が一覧に載るのでチェックいれる
・Developer Studioで、C#のプロジェクトを作る(p.72)
・プロジェクトにSideShow関連の参照を追加(p.75)
・コード打つ(p.76)
・実行(p.78)




● とりあえず拡大鏡を作ってみた


習作をかねて拡大鏡を作ってみました。
マウスカーソル付近の画面イメージをSideShowガジェットに任意の拡大率(10%〜400%)で表示するというアプリです。
モニタが遠くて文字が見づらいときは、手元のSideShowガジェットでらくらく確認。
SideShow側のボタン操作で表示位置も移動できるよ。
というもの。
これは、いろいろ機能を追加いてコンテスト応募作の1つにしちゃおう。



大体3時間くらいでできました。
基本的にWindows上のアプリから、テキストやイメージをSideShowガジェットに送りつけるだけなので、サンプルをみながら作れば埋め込むのはすごく簡単。どっちかというと、初めてC#でプログラム組んだのでそっちのほうが手間取ったw
SideShowデバイス上のボタン入力はイベントとして取得できます。





さて、ひとつ作ってみていろいろわかってきました。

【レスポンス】
Windows側のアプリからデータを連続してデータを送ってどれくらいの周期で画面が書き変わるか調べてみました。


a) テキストを送る ・・・ 6.5FPS
b) あらかじめ転送済みの画像を切り替え表示 ・・・ 4.5FPS
c) 毎回画像(300x200)を転送して表示 ・・・ 2.5FPS


…計るまでもなく遅い〜
もっとも、そもそもの用途がそんなに頻繁に画面が更新されることを前提としてないからしかたないのですが・・・
せめて10FPSくらいは出るかな〜とおもってたけど、甘かったか。
Windows側でメインの処理&画像作成を全部やっちゃって、最後に画像をSideShowデバイスに送りつけることでアクションゲーム作ろうかと思ったけどこりゃ無理だねー。
最初、USB1.1のHUBを介して接続していましたが、USB2.0のポートに差し替えてみても結果はかわりませんでした。


SideShowデバイス上で動くプログラムを作ればかなりレスポンスのいいプログラム作れるとおもうけど、いまから.net Micro Frameworkいれて作るには時間無いよね。日本語の資料もないし。


あと、アプリが起動してからSideShowガジェットとの最初の通信をおこなうまで5秒くらいかかります。




【ボタン入力】
ボタン入力できるのは以下のもののみです。
・右 (Right)
・左 (Left)
・OK (Enter)
・バック (back)


実は、上(Up)、下(Down)は取れません。
はじめ、このボタン取れるように設定したら例外が発生するので悩みました。デバッガの例外ダイアログで原因を調べるを選んだら原因が表示された(これって、どうやってひっぱってきてるの?)。


上下左右の入力に使おうとおもっていたのにーーー
(上下は、SideShowデバイス上でのスクロールに使われているようです)



※ 使うボタンは、AddContentするあたり(ScfElement.contentのパラメーター)で設定しておかないとイベント発生しないから注意




【作ったアプリをVista以外で動かすと?】
SideSHowデバイスに対応していない、XPとかで動かすと起動時に.netのランタイムエラーが発生します。


System.IO.FileNotFoundException: ファイルまたはアセンブリ 'Microsoft.SideShow, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。
ファイル名 'Microsoft.SideShow, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' です。
場所 loupe.frmLoupe.frmLoupe_Load(Object sender, EventArgs e)


ん?
これは例外キャッチしてるはずなんだけどなあ。
SideShow初期化のとこで、ちゃんと例外キャッチすれば動くかも。
→起動時にJITが例外だしているのでダメっぽい・・・。動的に参照する方法ないかなあ。






いま、こんな感じ。
いろいろ制約とかわかってきたので応募作のアイディア考えましょう。
あと1日あればいろいろ作れそうです。


今回のコンテストは応募どれくらいあるのかなあ。
最初50セット用意されてた開発キット(MXSDVK)がなくなって20個追加になったから、最大70人の応募者がいるはず。
でも、実際に応募するの何人だろ。MXSDVKで検索しても実際の応募者が書いてるページって、僕の日記しか見つからないんだけど・・・


SideShowの機能自体あんまり知られてないしね(Vista自体使ってる人まだ少ないかも)。僕は最近まで、SlideShowと間違って呼んでました(ぉ


とはいえ、ちっちゃな外部表示デバイスが使えるのはなかなか楽しいです。
.netで開発しているなら既存のアプリに、SideShowデバイスを利用する機能を追加するのは超簡単なので対応ソフトいっぱい増えるといいなあ。

開梱ギャラリー

MXSDVKとサアラたん


 今月にはいって、フリースケール・フリーク事務局からメールが…

SideShowガジェット・アプリケーション・プログラム開発コンテストの作品応募
締切りまで残すところ一月をきりましたが、作品制作の進行状況はいかがで
しょうか。





…すみません。何もやってません…


締め切りは…10月31日午後5時まで(必着)…はて



と、とりあえずMXSDVKが届いたときの写真を載せてみましょう。コレが僕の作品ということで、ひとつ…




【MXSDVK開梱ギャラリー】

撮影: 2007/8/12


・佐川で届いた


ダンボールを開けると内箱が


・内容物リスト

をどけると


・同梱ソフトのCD-ROM

 ・Microsoft Visual Studio 2005 Professional Edition (90-Day Trial)
 ・Microsoft .net Micro Framework
 ・freescale i.MXS Development Kit Emulation CD



・その下には…

本体とご対面(まだプチプチの中)


・最下層は電源類

各国のコンセントに変換するアダプタもはいてます。これで海外旅行中も開発できますね。


・本体を開けてみよう!




GVGA液晶(ちょっと視野角狭い)に操作用のタクトスイッチいっぱい、謎のコネクタ




MPUは、freescaleのMC9328MXS


・電源も出してみた


・さあ始めよう


・電源ON!

 OS(?)は複数のバージョンが入っていてブート時に選べるようだ。


・FreeScaleのロゴ


・SlideShowのメニュー


カーソルキーで上下にスクロール


・about画面


・設定プログラム


ソリティアも入ってる

結構レスポンスいい。
先日みたAussのノートについてたSlideShowデバイスよりずっと速い。
これならアクションゲームつくれるかも


・スクリーンセーバ

放置するとスクリーンセーバーになります。
そういや電源切ると時計リセットされた


・大きさ比較w


・ではご機嫌よう

代金振り込んだ


先ほど「SideShowガジェット・アプリケーション・プログラム開発コンテスト」に必要な開発キット「MXSDVK」の代金を振り込んできました。


さあ、後にはひけないぞ。作品提出締切りは 2007年10月31日(水)17:00 です。
うっかり明日あたり届いちゃったらウヒョウヒョ言いながら早速開発始めるだろうけど、本格的にいじれるのは9月になってからかな。


公式サイトで用意している開発ガイド(入門編)では、SlideShowガジェットとしてWindows(Vista)上で動くアプリ(SlideShowガジェットの制御でSlideShowデバイスを制御する)の開発方法について解説してあったけど、せっかくならSlideShowデバイス上で動くプログラム作りたいよね。.Net Micro Frameworkつかって。
で、当初よりそのつもりでいたのですが、もう一度コンテストの名称を見直してみる。「SideShowガジェット・アプリケーション・プログラム開発コンテスト」と書いてある・・・。ひょっとして、.Net Micro Frameworkアプリケーションは対象外なのかな????
ガジェットからアプリケーションを転送するようにすればいいのだろうか?(通常の転送の方法自体よくしらないけど)


これは事務局に聞いてみないとなあ。


まあ、最悪ガジェットじゃなくちゃダメってことになったとしても、SlideShowデバイス側とはキー入力を受け取ったりや表示画面データ(SCFというHTMLもどきのデータ形式で送ると表示される)を送ったり出来るぽいのでいろいろ作れるかな。
「リアルタイムキー入力さえあればどんな環境でもアクションゲームが作れる」という持論をもとに、まずはゲームでも作ってみましょうかね。
実機が届いたら画面表示やキー入力のフレームレートや遅延時間を調べなくては。