1Click飲みRomoCartTempescope色色[:iroiro]Other Projects

2012年11月15日木曜日

Prototyping "Tempescope", an ambient weather display

We're starting crowd funding on 30th September 2015!
Take a look at our campaign page!


(Everything below here is pretty old stuff.)


The Objective

Finding out tomorrow's weather forecast usually involves actively searching on the web, waiting on the news channel, or resorting to widgets.
How great would it be if this was as easy as looking outside the window?
This thought led me to build Tempescope, a physical display that can reproduce (and ambiently notify) weather conditions, inside your room.
Tempescope fits snuggly in your bookeshelf.

The Prototype

After several weekends' work, I ended up with this prototype which can simulate four weather conditions: rain, clouds, sunshine, and lightning.
It can also reproduce various colours of the sky, giving visual cues for the time of day.

Clouds
Lightning
Sunrise!
Rain

The device is controlled by an Arduino, which interfaces with a PC via USB or Bluetooth.
There are currently two modes of operation, both of which run as PC programs:
"World Weather" mode interface
© OpenStreetMap contributors
"Tomorrow's weather"- which animates tomorrow's weather forecast, and
"World weather"- which reproduces the current weather of any location in the world.

While the former is what I originally intended to make, the latter may be what makes Tempescope interesting, and really worth working on in the future.
One can view the device as containing a teleported slice of a remote world, a little Barbados in your room.
It paves a way for all sorts of applications, some nostalgic (e.g have a slice of your hometown in your office), and some practical (e.g watching out for your loved ones halfway across the globe).

There are many extensions that I could make on the device, including snow, wind, real lightning, and showing land features.
I'd be grateful for opinions, or suggestions for uses.

Some References

There are several past projects/ideas I believe I'd been inspired by:
    • A light stand that changes colour according to tomorrow's weather lookouts.
    • An aluminium cube that reproduces the temperature outside, giving a haptic feedback for the weather.
  • Bonsai
    • A 1000 year old example of having "a piece of wild nature in your room".


The Making

Mechanics

Weather conditions are reproduced by using 2 pumps, an ultrasound diffuser, and an LED:
  • rain- the water pump pushes water from the lower chamber to the upper chamber, allowing water to fall through holes drilled at the bottom of the chamber.
  • cloud- the ultrasound diffuser in the lower chamber turns on, creating mist.  An external air pump pushes air (and mist) up from the lower chamber into the cylinder stage.
  • lightning- the full-color LED is turned on at random intervals
  • sunlight- the full-color LED changes colour from off to red to blueish white, depending on the time of day.
Electronics
The electronics involved is not very much: an Arduino Uno controlling 3 SSRs and a full-color LED.
There is also attached an SD card, which allows animation sequences to be saved and replayed without a PC.


Arduino and 3xSSRs
AC electronics (moderately) safely packaged
The final product
















Here's the list of hardware used:

  • Ultrasonic Diffuser (Denshi Trade) ¥3,500=$43 


  • Water pump e-ROKA PF-381 (Gex) ¥1000=$12 


  • Air pump Ei (Kotobuki) ¥1000=$12



Software
Arduino side: also not very much, though saving+loading from SD card takes some work

PC side:
Both modes of operation ("Tomorrow's weather" and "World weather") are based on data acquired from Wunderground's API.
This API allows requesting the current weather, or forecasted weather from global coordinates.
Both apps have been written as a Java application, but really anything would suffice.

Again, I'd be grateful for feedback.
Ken
@kenkawakenkenke
2012/11/15

2012年11月13日火曜日

優しく天気を教えてくれるアンビエントディスプレイ「Tempescope」を作ってみた

2015年9月30日にクラウドファンディングを開始します。キャンペーンページはこちら


ですので以下の内容は少し古いです。詳しくはTempescopeプロジェクトページをご覧ください。

はじめに

最近気象予報の勉強をする中で、日常生活で天気予報を知る手段について考えるようになりました。
明日の天気を知るためには気象庁のページを調べたり、ニュースの時間を待ったりなど様々な手段が現在でも用意されていますが、
「窓の外を見てみる」ぐらいの簡便さで明日の天気も分かればいいのになぁ、と考えて始めたのがこのプロジェクトです。

天候を小さな箱に再現し、インテリアの一部としてそれとなく明日の天気を教えてくれる(ことを目指した)Tempescopeを紹介します。



従来技術

多分こういった先人達から発想を受けた気がします:
  • 天気図つ- @endorno, @yuki_B, @include_bababa
    • クックパッドの24時間コンテスト入賞作品、明日の天気予報を光で再生してくれる素敵なオブジェ。
  • cryoscope- Robb Godshaw
    • 外の気温を「再生」してくれるオブジェ。触ると外の気温が分かる。超おしゃれ。
  • Rain Room- Random International
    • 雨が降り注ぐ部屋。入っている人の位置を検知して、雨が人にあたらないように制御するっつー素敵なアート。スケールが違うけど、天気を室内に持ってくるという意味では同じ。
  • 箱庭盆栽
    • 大自然をミニチュア化して、自分の制御出来る形にして上から眺める、というところの面白さのルーツはこういうとこですよね。

作成イメージ

箱庭的な感じで箱の中に雨、雲などのリアルな気象状況を再現し、PCやスマホ経由で制御できるようにすることで天気予報を再生したり、その他のアプリと連携させる。
それぞれの気象状況はこんな方法で再現する:
  • - 水中ポンプで水をくみ上げて、上から降らせる
  • - 霧発生装置
  • 日照- フルカラーLEDで日照量や、夕焼けの色を再現
  • - LEDを点滅させる。(放電とかバチバチ出来ないだろうか。。?)

開発

材料
合計:¥7063

構成
Tempescope(塗装前)の構造
右図のような構造。
下部ケースに水が溜まっていて、水中ポンプと霧発生モジュールが浸かっている。上部ケースにはポンプに繋がったチューブとLEDが入っており、ポンプが駆動すると水が上部ケースにくみ上げられ、開けられた穴を通じて雨が降る仕組み。

  • 曇り下部ケースの霧発生装置を駆動しただけでは、霧がシャンプーボトルまで達しない(空気の流れ自体はないため)ため、どうにかして下部ケースの内圧を上げる必要がある。5Vで動くファンも実験したのだが、パワー不足のため使えなかった。結局手元に転がっていた外部電源のエアーポンプで空気を下部ケースに送り込み、内圧を上げて霧をシャンプーボトルまで送り込む方式にした。これは騒音が大きく、外部装置も大きくなるため次回は霧発生装置を上部ケースに置くことも検討したい。ちなみに曇り状態が解除されたあと、一分ほどエアポンプを駆動させておき、霧を流すという制御もしている。
  • :水中ポンプのみを動かし、上部ケースに水をくみ上げて雨を降らせる。
  • 日照:フルカラーLEDの色と輝度を変化させて、昼と夜、夕焼けなどを表現する。(動画00:13)
  • :フルカラーLEDをランダムにフラッシュさせる(動画00:05)
ポンプ2種、霧発生体はSSR経由でArduinoから制御される。

作った
  • プロトなので、ケース類は超適当に接着した。
  • 水をかぶる部分は若干気を使って、風呂用の充填材等で固めた。
  • 回路は適当。AC回路だけは露出部がないように固めまくってプラケースに納める。
塗る。
塗装完了。100均臭は簡単には消えない。
電子制御関係は全て100均のクリアボックスに
納めた。AC電源の回路だけ二重に保護。



























完成。本棚にだって置けるよ。













ソフト:Arduino側
シリアルで雨の有無、雷の有無、照明の具合などを受け取ってコントロールするだけ。特に難しいことはない

ソフト:PC側
今のところ2つのアプリを作った:

  • 明日の天気再生アプリ
    • WundergroundのAPIで現在地の次24時間の天気予報がとってこれる。これに基づき一日の天気をTempescopeで再生。
  • 世界の天気アプリ
    • 地図上の位置がクリックされると、Wundergroundから位置情報に紐ついた天気をとってきてTempescopeに送る。
    世界の天気コントローラ © OpenStreetMap contributors


で、この動画みたいになります。



考察とか今後やることとか


  • アンビエントに天気を知る、という意味では目的は達成出来ている。インテリアとしても結構素敵だと思う。ただ、いくつかの細かい問題のせいで常時ONにしておくには至っていない:
    • 動作音がうるさい。雨降らせる時ポンプが空回りしてビビる。
    • 外部装置がでかい。
    • 水とAC電源を扱う装置なので、目を離すのが怖い。
  • アプリとして、色々作ったら楽しい気がする
    • デジタルフォトスタンドの隣に置いて、表示してる写真を撮影したときの天気を再生するとか
    • Skypeで話している相手の天気を表示して、「一緒に居る感」を出すとか
    • ずっとサイパンの天気を再生しておいて、海行きたい気持ちをもてあそぶとか
  • 雪も降らせたい! →水凍らせる?霧使って疑似雪みたいなの出来ないかな。
  • 稲妻バチバチ出したい! →アーク放電!
  • 風吹かせたい! →空気吹き込むだけだけど、雲や雨が無いときの表現は難しい。
  • 今のところ雲量や雨量の制御はしていない。雨量は簡単だが、雲量は難しい?出てる霧の量をセンシングする手段を設けないといけない?
  • 小さくしたい。できればUSBだけで動かせる装置にしたい。
  • ¥7000はちと高い。Arduinoは実際は色々安い代替があるし、エアポンプは要らない構成にも出来るので、もう¥2000ぐらいは安く出来る。誰か初号期買い取ってくれたらもっと安く作れるよ。

以上。
ken 12/11/13

2012年10月14日日曜日

霧発生体モジュールでプラスチックに穴を開けてみた

色々遊べるかと思って霧発生体モジュール(電子通商株式会社)を購入してみました↓


水に入れてコンセントに刺すだけで霧が発生させられる、優れものです。

色々遊んでいたら、プラスチック水槽の壁面が溶けていることに気づきました。
もしかして、超音波でプラスチックが溶けるのか?
実験してみた。

超溶けた!


2012年5月13日日曜日

第三回 クックパッド開発コンテスト投稿作品『俺新聞』 その2(開発編)

『俺新聞』 その1(アイディア出し編)の続き


さあ作ろう

どんなセンサを使うか?
今回は過去のデータがしっかり無いとアルゴリズムの開発のしようがないので、
(1) たまたま私がライフログ的に装着しているGPSロガーのデータ
(2) 2年ぐらい前からやってるtwitter
(3) 撮影した写真のログ
の3種類を想定する。
センサを限定すると自ずと、判別出来る一日の特徴は限られてくる:
・家→会社→遊びなどの大まかな遷移
・どこに行ったか(飲食店とかも分かるか?)
・・ぐらい?
今回は時間の制約上、twitterの文章解析してあーするとか、画像解析してどーするとかはやめておく。

で、いきなり、作る最終成果物のイメージ図を作ってみた(Pagesでお絵描き):
河本の呉旅行の日が新聞になったよ!
ポイントとしては:
・大まかにどこでなにしたかは正確
・どこでなにして何言ったか(大和ミュージアムを2時間見て「すげー」って言った)はGPSとtwitterから複合的に判断
・「はしゃぐ」とか「舌鼓を打つ」とかは適当でいい
・ちょっと早くホテルに帰った(9時)から疲れてるんじゃない?っていう洞察ぐらいは入れても楽しさの範疇。
・とにかく終始「お偉いさん」ぽさを出す。なんか小っ恥ずかしくて楽しい。

作らないと行けない部品は大きく分けて5つ:
(1) GPSデータから滞在を判別する方法
(2) 滞在を更に「家」「会社」「飲食店」などに大きく分ける方法
(3) 「特徴的な日」と「平凡な日」の分類(上記例は特徴的な日)
(4) それぞれの滞在の遷移や、twitter・撮影の有無などから文章をうまく構成
(5) アプリとして適当にまとめる(スマホでセンシングしてiPadで見るのとか素敵だよね。)

だんだん眠くなってきたのでかいつまみながら説明する。

(1) GPSデータから滞在判別
GPSデータを細かく見てみると、電波強度が悪いところで飛んだりはねたりしてた。
なので適当に移動平均とって平滑化して、
適当に時速4m以上で動いたところでズバズバ切って、それ以外を「静止」セグメントとして確保して、
隣り合った静止セグメント同士を、構成点の平均とか分散が適当に同じぐらいの時は結合して、
細かい静止セグメント(10分以下とか)は捨てる。
みたいな超適当な方法でもそれなりに見た目よくなった。
時間ないし、論文書く訳じゃないし、いいよね?
きっと調べたらちゃんとしたやり方があるんでしょう。
#実際にはこのへんのパラメータ調整が結構てまどった。

(2) 滞在を「家」「会社」「飲食店」などに判別
「家」「会社」→めんどいので、ユーザに家と会社の場所入力させて、それらに近い点は「家」「会社」に居る、と判定。
もっと時間あったら、滞在点をクラスタリングして時間帯の偏りみて自動識別とかするかも。
「飲食店」は、ググってたらぐるなび様の超素敵APIを発見したのでこれを使いました。
「家」「会社」に判別されていない静止セグメントを飲食店検索して、100m以内に見つかったら飲食店、無かったら「放浪」に判別。

(3) 「特徴的な日」「平凡な日」の判別
これもまた超無責任に、仕事に行った日は「平凡な日」、そうじゃない日は全部「特徴的な日」とする。
だって、そうじゃん。

(4) それぞれの滞在の遷移や、twitter・撮影の有無などから文章をうまく構成
ここはこだわればいくらでもこだわれるところ。
今回は「特徴的な日」と「平凡な日」それぞれで別に文章のテンプレを作って、
朝・昼・晩の滞在の有無やtwitter/画像の有無によって、文章内の変化形を色々定義した。
恥ずかしいので全部は見せないが、時間的制約のため、以下のような恐ろしいコーディングをするはめになった。
目を覆いたくなるようなコード。ジーザス。


(5) アプリとしてまとめる
ごめん、出来なかった。みなさんが美麗なウェブサービスを投稿していくなかで、多分唯一のコンソールプログラム・・・

出力例
プログラムの起動(あーそうさ、デスクトップアプリさ)
目を覆いたくなるようなUI
2012年2月3日、この日はちょっと早めに会社に行った日だ。
この日の出力:
お気づきだろうか?最初に作ったデザインとあまりに違うことに。
早く出社したことをちゃんと褒めてくれてるね。
早々と家帰ったのか、やっぱそう見られるのか。家でWiiやりたかっただけだなんだけどな。
でも更なる成長を予感させてるならいいか。

続いて2012年2月2日:
褒めるべきところが無くてもなんとか見つけてくれる
この日は10時に出社するという酷い日、さすがに新聞でも「ようやく現れた」とか書かれてしまっている。
でもなんとか褒めるところを探そうとしてくれたのだろう、出社したこと自体を喜んでくれている。
退社後吉祥寺にご飯食べにいったこともちゃんと認識してくれている。そして更なる成長を予感させているらしい。


最後に2011年9月19日:
旅行に行ったよ
この日は会社の同期に誘われてテニス合宿なるものに行ってきた。
ちゃんといつもと違うところに行ったことを認識して、ヘッドラインになっている。
いい写真も選んでくれた。

まとめ
・このシステムで一日の終わりが楽しくなるだろうか? →数日は、なる。きっと。
・飽きない? →すぐ飽きると思う。でも文章のパターンを増やしていけば、可能性は無限大。
むしろ、「センサがこういう特徴を示しているときにはこういうこと言う」みたいなルールを簡単に記述できるようにして、クラウドソーシングに任せたらいいんではないかと思う。
・他に時間の制約上やらなかったことは?
ー加速度情報: 本当は行動の中身まで踏み込みたかった
ーテンプレ増やす: 「特徴的な日」と「平凡な日」だけじゃないよね。
ー家、会社、その他自分が大事に思うところを自動認識
ーWebサービス化
ーtwitterの内容解析: 本当は宝の山
ー画像情報: 画像のキャプションとか本当はちゃんと付けたい。「微笑む河本氏と市長」
など。
・その他コメントなど:
ー今回作ったの結構面白いと思うので、UIの酷さによって選考してもらえなかったりしたらもったいない(と同時に、初っぱなから蹴られても仕方が無いとも思う)
ーなのでこういう時間制約のあるコンテストはアルゴリズム開発と見た目(ガワ)の開発のバランスが難しいなぁ。
ーデザインとWeb開発が得意な人とチーム組みたい。
ー久しぶりに徹夜した。意外と平気。
ー久しぶりにここまで長時間プログラミングした。楽しかった。

『俺新聞』使いたい、改造したい、など要望・意見ある方はお願いします。
ken 12/05/13 8:02(あと1時間で締め切り!)


第三回 クックパッド開発コンテスト投稿作品『俺新聞』 その1(アイディア出し編)

概要

毎年恒例のクックパッド24時間コンテスト、今年のお題は「一日の終わりを楽しくするもの」。
今回作った「俺新聞」開発の流れを(寝てない頭で思い出せる限り)記録します。
#多分寝たら忘れる・・・

本稿は「どうやって『俺新聞』に行き着いたか」のお話。
次稿(開発編)では「どうやって開発したか+結果表示」です。



どういう風に考えたか(超絶読飛ばしてもいい部分)
一日の終わりって何する時間だろう?考えつく限り挙げて分類してみた。
(1)「今日を振り返る時間」(反省したり、ニンマリしたり、それを人に伝えたり)
(2)「明日への準備をする時間」(服用意したり、明日のプレゼンの資料最終チェックしたり)
(3)「帳尻合わせ」(今日運動してないからせめて最後に腕立て伏せしよう・・・)
(4)「イベント(その他)」(「夜勤の人起こさなきゃ」「24時間コンテスト終わったよ寝よう!」とか)

このうち、(2)は「楽しくする」というより「不安の解消」の要素が大きいので却下。
(3)も、マイナスを0にしようと取り繕っていて楽しさは感じないので却下。
(1)をまじめに考えて、(4)は何か突発的に思いついたら程度にしよう、と決めました。なんとなく。

じゃあ従来の振り返りの手段ってなんだろう?
日記?
電話で人に伝える?
自分の日記(三日坊主だが)を書いた経験では、既に知ってることをつらつら書いているだけで、ログ以上の有用性や楽しさは感じなかった。
電話は、相手にうまく自分が思ってることを説明できて、自分が思っていなかった考え方を相手が提示してくれたら少し楽しい。
というわけで、従来の振り返りの手段ってのはあんまり楽しくない。

なんとなく、振り返りを楽しくするためには自分で振り返っていてはだめなのでは? と考えた。

じゃあ他者に自分の今日を振り返ってもらう手段って何があるだろう?
このへんで具体的な案に落とし込んだ:
(1) 他人日記
→Facebookとかでみんな日記を書けばいい。でも「自分に関する日記」じゃなくて、「他人に関することだけ」書く日記。「@hogehoge が今日打ち合わせでいいこと言ってたけど、あれは俺のパクり」とか。
そして各人は、自分について書かれた文がaggregateされた、「自分への意見」日記を毎晩見ることで、他人目線での今日を振り返る
メリットデメリット:
○ 人の目線は気になるので楽しいかも
    × 本当に思ったこと書いてくれるのか?
× 俺友達少ないから誰も書いてくんないぞ。
(2) センサ日記
→センサ情報(GPSとか加速度センサとか)を常時継続的に身につけていたら、真に「客観的な」日記が作れるんじゃない?(まあ、要は、ライフログだ)
○ 客観的は客観的
× でもライフログは色々仕事柄付けてるけど、本当に楽しいのか?ただのセンサ情報見せるだけじゃつまらんぞ。
× 24時間で作れるか!?

以上の2候補から、「友達が少ない」というのが決定打になり(2)に決めた。
作れる作れないは、作れる範囲でやりゃいい。
楽しくする方法は次に考える。

従来の(仕事柄やってるような)ライフログがピンと来ないのは、やはりCG(生成されたグラフィクス)だといまいち心に訴えかけてこないからだと考えた。
やはり文字にしないと伝わらない暖かみってもんが、何となくあるんじゃないかと。
そこですぐに思いつくのが日記文章の自動生成だが、せっかく客観データに基づいているのに「第一人称」の文章書いてたらもったいないんじゃないか。
じゃあ客観的に人の行動を説明して、かつ心に訴えかけてくる媒体ってなんだろう。
一つは小説。でも俺文才ないし、小説文章の自動化なんてできねーよ。
しかも小説は感情に関する記述が多すぎて、今回センシング出来そうな「固い行動」(歩いた、走った、車乗った)とは親和性が悪いのでは。
じゃあ新聞でよく見る、「○○首相 帰国」『○○首相は米主脳との会談を経て〜〜」みたいな文章なんかどうだろうか?
(1) そこそこ定型化されているので文才なくてもいい
(2) 感情が入ってない(入っちゃいけない)
(3) 的確に誰かの行動を言い表せる
(4) みんな読慣れてる
(5) 自分の生活が新聞調で記述されてたら、なんかセレブな気分になれるんじゃね!?
といういいこと尽くめな気がしてきたので、今回の開発項目を以下のように決定:
『俺新聞』
センサ情報(とりあえず、主にGPS)から対象者の24時間の行動を測定、その日の特徴的な何かを抽出し、新聞で要人の動向を説明する時の口調で出力する。
細かい仕様:
・説明の内容は「代表的」かつ「いい感じに手抜き」(情報量を削ぎ落す)
  →例えば「国分寺駅から121.3m北北西に移動したあと西北西に11.4m移動」ではなく、「auショップに行った」
・定量的な嘘は言わない、でも目的は「楽しく」させることなので、人のとりかたによってはあり得る嘘はつく。
  →右行ったのに左行ったというのはNG。でも「夕方にかけて笑顔が増え、」とかならいいんじゃない?
・「明らかに特徴的な日」と「平凡な日」は分けて考えた方がいい?
  →「旅行に行った」みたいな特徴的な日は放っておいても振り返りは楽しい。これは思い出しのサポートぐらいでいいんじゃん?
   「会社行って夕飯食って帰った」みたいな平凡な日こそ、本腰入れて楽しくする方法を考えるべき。

パチパチパチ(この時点で15:30ぐらい)

2012年1月18日水曜日

A scriptlet to let you access Wikipedia in the blackout

If you're desperate to access Wikipedia even during the blackout...
  1. Bookmark the following link: me
  2. Access a wikipedia page: (how about Lagrange multipliers)
  3. Run the bookmarked script
Remember to show support for Wikipedia!

2012年1月5日木曜日

ウェアラブルにおいセンサを作ってみよう その1

概要

こんなことがしてみたい:
  • 一日のいつなにをしたあと口臭が増える?
  • 足について同上
  • 世界臭いマップを作ってみたい(パリとNYは臭い。ロンドンはそうでもない。)
  • 大のほうの臭いを定量測定して健康管理


材料

  • Arduino Uno
  • においセンサ TGS2450
  • 自作SD+RTCシールド

他:


てなわけで・・・

作ってみた。(図1)
1段目はArduino Uno
2段目はSDカードとRTCの自作シールド。RTCには電気二重層コンデンサがバックアップ電源として繋がっているので、電池の抜き差しにも強い。
3段目は温度センサ(左後方でグチャグチャしてるケーブル)とにおいセンサ

3段構造になってしまったが、スマホ用ポーチには入った(図2)。
ピカソで売ってた「ファンシーポーチ」に入るんだからきっと着こなせる。

1秒に一回ぐらい測定して、時刻情報と共にSDカードに保存するように実装。
出す値は0から1で、高い程臭い。


図1 Arduino+SD/RTCシールド+においセンサ(右下に伸びてるの)
図2 決してデカすぎることはない。と思う。


測ってみよう

実験1 部屋 vs キムチ

キムチの入ってた容器を嗅がせたら0.60に上昇

通常時は0.35

部屋の通常時: 0.35
キムチが入ってた容器を水洗いしたものにかかげる: 0.60

  • 水洗いしたのにキムチはムチャクチャ臭いね。
  • キムチ嗅がせた後、5分間くらい0.60から値が下がらなくなり、焦った。なにか付着するのだろうか。
  • なお、外に数分掲げても0.31だったので、家が臭い等という事は無い。
  • ちなみに私の息は0.43だった。さっきキムチ食ったからだね。うん。

[編集 12/01/05 01:25]
屁を測ってみたら0.74になった。
キムチ臭いとか言ってる場合じゃなかった。


次やること

  • GPS持って臭そうなところに散歩にでかけてみよう(動物園とか)
  • 毎日の大便臭の記録取って見る

ken@臭いのは今日だけ 12/01/05