« 基板到着 | メイン | LA4902アンプ組立 »

2008年9月23日 (火)

Engineer Award最優秀賞受賞

エンカフェというエンジニアのためのSNSを中心に開催されたエンジニアのアワードに参加しました。で、8/2に入賞者の発表と授賞式があったわけですが、無事ハード部門の最優秀賞を受賞することが出来ました。

Whole Topup

Bottom 久々の表彰状もらっちゃいました。トロフィーってのは人生初ですね。カップはありましたけどね。それは、昔懐かしい予備校時代に模試で全国3位になってもらいました。まだどっかに取ってあるんじゃないかなぁ。って、戸棚に入ってました〜。古いものだけになんか重厚感が違いますねぇ。参加者も多いんだしこっちの方が栄冠だったのかなぁ〜。(^^;

ま、それはさておき、残念ながらトロフィーはもらっちゃえるわけではなくて、次回までのお預かりらしいです。確かにEngineer Award最優秀賞としか書いてないです。それにしても、賞金なんてもらったのは初めてかな。ビンゴ大会でなんかあたったって程度かもしれませんわ。

と言うことで、何を作ったの?って疑問に思われることでしょうが、けっこう説明はややこしくなっちゃうんですよねぇ。でも、なんとか頑張って説明するので、少々お付き合いください。

まずは、エンジニアアワードの参加部門の説明から始めないといけません。今回は、大きく分けてソフト部門とハード部門がありました。ソフト部門の課題はOpenPNEというオープンソースSNSシステムで動くアドオンが課題です。OpenPNEはアワードの主催でもあるencafeでも使われているオープンソースのSNSシステムです。SNSの画面で他のサービスを覗けるというイメージからか、アドオンには小窓という呼び名がついています。

一方ハード部門は、トランジスタ技術がスポンサーについているので、それの付録基板を使った制作という条件がついていました。こちらは何を作るのかは自由でした。さらにOpenDMPPというオープンハードウェアを使った部門というのもありました。こちらはMIPSコア400MHzでLinuxが走るボードです。ビデオ処理関係のアクセラレータが乗っており、MPEG 2のデコードを数本同時にやったり、エンコードも出来たりと、その辺のHDDレコーダくらいは出来てしまう実力のあるボードです。

さすがにOpen DMPP向けのハード/ソフトを組むとなるとちょっと時間がかかりそうなので、締め切りまでの時間を考えると無理そうです。半年くらいあれば考えたんですがねぇ。

ということで、せっかくなんでソフト部門とハード部門の両方に参加することにしました。さらにそれぞれの作品が連携したら面白いだろうということで、そういうものを考えました。これなら両者の枠の中で出来るものからは逸脱するようなものが出来そうで、受賞機会もあがりそうです。

ソフト/ハードの連携ということで、OpenPNEというモニタの中の仮想コミュニケーション空間と、ハードウェアが存在する実世界とをつなぐコミュニケーションをテーマにしました。ハードの方ではそれほど凝ったことも出来ませんから、比較的単純なメッセージを伝えるようなものにします。また、ここで文字を出しても同じく液晶画面の中の世界という感じになってしまうので、文字によるコミュニケーションではなくて、光と動き、単純な音などでの伝達ということにします。ということで、まさにそれはアンビエントデバイスと言えるようなものになります。

Adwhole Bluelight

アンビエントデバイスは以前から一つ作ろうと思っていたネタなので、材料はいくつか買ってありまして、こんなランプシェードも100円ショップで見つけた時に買ってあったのでした。右の写真が光った状態です。なかなかうまく写真撮るの難しくて、ちょっと手ぶれってますが、縮小したので少しはごまかせてますかね。暗いともっとキレイに光るんですが下半分には陰が出来ちゃうのは玉に傷ですね。上に反射鏡でも置いた方が良いかもしれません。

さて、とりあえずシステムの全体像を知るためにはまずはソフト部門の作品について説明しないといけません。ソフト部門はOpenPNEの小窓ということですから、小窓の製作をしました。小窓というのは、Java scriptのファイルで作ります。これをOpenPNEの特定のフォルダに入れるとシステムに認識されて、OpenPNEのあちこちから使えるようになります。小窓には2種類あって、通常形式とURL2CMD小窓があります。通常形式では、<cmd args="パラメータ" src="java sctiptファイル名">という形式で書き込んでおくと、この部分が小窓と入れ替わって表示されます。URL2CMD形式にしておくと、通常のurlが自動的に小窓に変換されて表示されます。OpenPNEを使ったSNSをご利用でしたら、You tubeのURLが自動的にエンベッドされるのを見たことがあるんじゃないですかね。あれがURL2CMDですね。今回はあまり勝手に変換されない方がいいかなぁと思いまして、通常形式を選択しました。

Komado

メッセージの下には、Java appletで作られているUI部分が出ています。この部分が小窓と言うことになります。ここのボタンを押すと、すぐ下のグラフに反映され、提灯が接続されていた場合にはそれが光ると言うことになります。この小窓と提灯を結んでいるのが中間サーバーと言われるもので、rubyを使って書きました。アプレットからのコマンドを受け付けて、提灯側に中継します。さらに、グラフのデータを管理する機能も持っています。ruby 1.8にはgserverというクラスが標準で備わっているので、非常に簡単に作ることが出来ました。

Boards1 Boards2 Antenna

提灯の内部はこんな風になっています。トラ技付録基板を使う規程だったので、2007年8月号の付録のdsPIC基板をメインに使ってあります。dsPICにはMicrochipのTCP/IPプロトコルスタックがあるので、これを使いたいところだったんですが、Flashが全然足りなさそうなので、仕方ないのでXPortをつかってTCPをしゃべらせています。さらにオーナーが提灯のそばに居て点滅が目に入るかどうかを表示してあげるために、マイクロ波を使った動体検知センサを使っています。真ん中の基板がセンサ基板で、右の写真がアンテナ部分です。(発振器なんかも中に入ってるハズですが)ブロックダイアグラムは以下の通りです。

Blockdiagram

XPortだけが3.3V電源でその他が5Vなので、レベル変換のために74HC14を入れてあります。XPortは5V tolerantなので、5V出力のI/Oはそのまま入れても大丈夫です。マイコンからXPortを制御しているのは、サーバーへのTCPコネクションの接続/切断のみです。XPortの設定でI/OピンでTCPコネクションをコントロールできるようにしてあります。ある程度の時間動体が検知ができない場合にはオーナー不在と言うことで、TCPの接続を切断します。この状態はJava Appletの左下のアイコンで表示されます。これが緑のチェックマークなら繋がっている状態、赤い進入禁止標識みたいなアイコンなら切れていることを示します。ちなみに、動体センサ基板からの線もHC14を通っているのは、検知モニタ用のLEDのドライブ回路から引っ張ってきているのでレベルが中途半端になってしまうからです。

Ledwithcover Ledboard

中間サーバーからの指令をXPortがシリアルに変換してdsPICに伝え、それを解釈してLEDを光らせます。LED基板部分はこの通り。光を拡散させるためのカバーを外すと、いつもの通り切削で作った基板にLEDが乗っています。アンビエントデバイスらしくボワ〜〜ッと点滅させるために、LEDはPWM制御で点灯させるわけですが、そんなにPWM速度も速い必要はないので今回はハードウェアカウンターは使わずにソフトウェアループで生成しています。I/Oピンからの出力でLEDを点灯させるために、LED基板にはデジタルトランジスタを乗せてあります。

と言うわけで、先日からStickcamで作品の公開を始めてみました〜。だいぶStickcamの使い方も分かってきたので、こちらにも貼り付けてみます。本来下のボタンはSNS内に貼り付けてSparse Communcationを図るものですが、別にblogでも使えるように設置は出来るので、試しやすいようにこちらにも貼り付けておきます。公開専用に1台マシンを用意すればいいんでしょうが、なかなかそうもいかないのでメインのマシンがお休みやお出かけ等諸事情がある際にはライブは中断していると思います。ま、中継されている時には適当に遊んでみてください。

スティッカムで簡単ライブ動画配信

Your browser does not support Java or Java is disabled, so nothing is displayed.

コメント

コメントを投稿

最近のトラックバック

オヤマ日記飴

jun's Blog in English

Powered by Six Apart

nobi.com (JP)