サイネージ用にセンサー系を自作してみた

テテルが正式オープンした後、どう進めていくかの打ち合わせにて。
いろんな夢のようなアイデアや仕様が出ていました。
 「天気予報を表示させたい」
 「人が近づいたら挨拶をしたい」
・・・などなど。
ただ前職はインターネットの会社なので、全くの異分野であって、このへんの機械を作るスキルが無いのです。
社長からも、浜松には優秀な企業がいっぱいあるし、ソフト産業協会もあるし、「センサー系」(とグループ付けた)は優秀な企業と提携して作っていこう! 浜松を盛り上げるんだ! というお話もあったので、そんな方向性になってました。
自分的にも、そっかぁ、社内で作れないからなぁ、と思ってはいたのですが。
なんかクリエイターとして「作れない」と言われるのも癪で、納得できなかったので・・・
── 思いきって、プライベートの時間を使って自分で作ってみることにしました!


フィジカルコンピューティング。
デザイナーやクリエイターなら聞いたことがある人も多いと思いますが、PC内 の GUI をこえて、人間の身体などをセンシングして入出力を得る、人間とその生活環境のインターフェイスをデザインする研究です。
マイコンや I/Oボードの小型化や革新的な技術進歩もあり、昔のような電子回路や部品で作る機械が簡単に入手できて、デザイナーでも組み立てられる時代になってきました。
昔ならゼロから習得するには学校に通ったり専門書を読み漁ったりしたものですが、インターネットの普及もあって簡単にドキュメントが手に入ることは大きいですね。
まぁ Flash(ActionScript)も、サイネージ(Scala)もなんとか習得できたし、神に愛されてる僕なら簡単に習得できるだろーみたいな軽いノリでスタート。実際には意地と根性で理解するまでかなり時間がかかったけど・・・。
最初にセンサーやコントロールする基盤をどう入手すればいいんだ、と、いきなりつまづいてはいたのですが、浜松には「マルツパーツ館 浜松高林店」という細かい部品を売ってる店があることを知っていたので、正直あんまり不安はなかったです。
いろいろ調べていく中で、Arduino というマイコンボードが電子回路を習得しやすそだったので、これを購入。
センサーや部品もいくつか買ってきました。
■Arduino – HomePage(公式・英語)
http://arduino.cc/
■Arduino 日本語リファレンス
http://www.musashinodenpa.com/arduino/ref/
この Arduino のすごいところは、電子回路を作るのにハンダ付けが必要ないというところ。ピンをボードに差し込むだけです。
またスクリプトは AR を作る時に使った Processing を使えることが大きかったです。
AR(拡張現実)作ってみたった
http://yasukawa.c-point.ne.jp/e3671795.html
まずは距離センサーを作ってみる。

これが赤外線式の距離センサー。
安物なので、あんまり遠くまで測れないですが・・・。
センサーについて知識がないので回路図の読み方から勉強したのですが、要はボリュームの代わりになるようなもので、普通はボリュームを手でひねってレベルを調節するところ、この距離センサーは「手でひねる」の部分を距離で測っていて、距離が変わると中の電圧が変わります。
それで、その電圧を読み取って数値にするという仕組みです。
その抵抗によって変わる値をいったん近似値を利用して計算して、それを距離に変換して表示するという仕組みになっているようです。
仕組みが分かると、なんとなく理解が早いですね。


動画のリンク:http://youtu.be/8yh5fEwa9pA
動画でわかりづいらいかもですが、キーボードの上に置いたセンサーの上にお菓子を動かすと、天井までの距離が変わっています。
値を取得するという簡単な回路図のため、別のセンサーにも応用できます。

これは光センサー。
暗くなってきたらライトを付ける、というようなことができます。

これは温度センサー。格安です。
ネットから天気予報情報を取得しなくても、気温情報などが取得できますね。
ここまでは割と分かりやすかったのですが、サイネージに入れる以上、表示するアプリケーションからシリアルポートを通じた値をひっぱりだせないといけないです。
自分が属しているのが WEB の会社なので、後々のコンテンツのことも考えて、WEBブラウザ上から 動かせるようにしたい・・・。
いろいろ調べていくと、自分で通信プロトコルを考えて組まないといけないようなのですが、Flash で作るのが便利なのだそうです。
ですが、FlashPlayer にはシリアルポートでの通信が対応していないので、間にプロクシサーバーのようなものを噛ませる必要があるとか。
Funel + Firmata 、glueライブラリ、 serproxy、などいろんな方法があるみたい。
ただ僕のFlash の知識は ActionScript2.0 なので、よりプログラムのベースの知識が必要な ActionScript3.0 じゃないと動かないこともあり、ここで AS3 を勉強しなくてはいけなくなりまた時間をくったりした。
funnel – A toolkit to sketch your idea physically – Google Project Hosting
http://code.google.com/p/funnel/
■as3glue
http://code.google.com/p/as3glue/downloads/list

動画へのリンク:http://youtu.be/aBCUnO6f5Y0
これは、USBで接続したボードに、FlashPlayer上に作ったボタンを押して、ON と OFF を切り替えるテストです。
これは Firmata と serproxy を使用しています。
FlashPlayer の場合は相変わらずセキュリティが厳しく、ちゃんとセキュリティポリシーを返すサーバーを用意しないと全く反応しません。
つまりローカル接続したボードと通信できません。
ここでは Windows プロジェクタ形式 に変換した swf ファイルを使って実行しています。

動画リンク:http://youtu.be/3jCYoW6YQj4
こちらは Funnel を使って作ってみました。
アナログでの入出力で光の量を変えるテスト。ラジコンでのモーターのスピードやハンドルを量を値をコントロールするためですね。数値も取得しています。
こんな感じで、専門の知識のないデザイナーであってもこれくらい作れるので、これからますますインターネットとリアルの境はせばまって、いろんな新しいモノが出てきそうです。
この他にも世の中にはいろんなセンサーやスイッチなどのパーツが売られているので、いくらでも楽しいことできます。
ネットを通じてリアルにアクションを起こせるので、遠隔から自宅の猫に餌をやる・・・なんてのもできそうで、夢が広がります。
テテルは、これからますます便利に、面白くなりそう。
まずは、〇〇〇〇メディアラボ玄関前に設置したサイネージに、なにか仕掛けを入れ込むところかなぁ。

コメント

タイトルとURLをコピーしました