「第2回NFC勉強会」に参加&発表してきました

2012年6月10日日曜日

6月9日、3月に開催された第1回に続いて開催された「第2回NFC勉強会」に参加してきました。

前回の記事はこちら: 「第1回NFC勉強会」で発表してきました

第1回を振り返ってみると、FeliCaやその他NFC技術を用いたサービス及び技術的概要といった話がメインでした。その中で、電池を内蔵しない所謂パッシブ型のICタグ(私の周辺では微弱系と呼ぶ人が多いんですがこの呼称が正しいのかよく分かりません)が電磁誘導を用いてワイヤレスで電力を確保し回路を駆動する、という部分についてもっとよく知りたいという声が上がっていました。
今回は、この部分にフォーカスしたハンズオン形式の勉強会をクレスコ・アイディー様が主催して下さいました。
LT枠もあるとATNDに書かれていて、ふと開催前日にネタを思いついたので無理やり実装して乱入してきました。

= 勉強会 =
昼ご飯後、品川のクレスコ・アイディー様のオフィスにお邪魔してほぼ全員(20名弱ぐらいでした)揃ったところでまずは座学でのタグ駆動の仕組み解説。
すいません、LTの資料をいじっててあまり聞いてませんでした…とにかく

  • 電磁誘導でどの周波数の電波に反応するかはコイルの巻き数によって変化する
  • コイルを巻けば巻くほど低い周波数と共振する(物理をスルーしたツケがこんなところで…)

とだけざっくり把握して、とにかく計測器で共振周波数を調べながらちょいちょい調整して作ってみましょうということに。
今回はコイルを巻き、13.56MHzのNFCリーダ/ライタ(Galaxy NexusなどのNFC対応端末も含む)からの電波に反応して電磁誘導で電力を獲得し、その先につないだLEDを光らせるようにしてみようというお題でした。

私は持っていたペットボトルのキャップに、キットとして配布頂いたエナメル線を巻き巻き。
12回ほどくるくると巻いて計測器にかけて頂くとなんと一発ok。LEDをつないで光るか確認です。
エナメル線とLEDをマスキングテープで軽く固定したのですがなかなか接触が難しく、手で持ってもらって撮った写真がこちら。

ちゃんと光ってます。点滅します。灯いている時間よりも消えている時間のほうが基本長いです。このへんは後日談的に後半に書くのでまた後ほど。

思ったより作業自体は簡単、けど背景はちゃんと勉強しないとなかなか分からんなぁという感じで、またしても勉強会に行って勉強することが増えるパターン(結構嬉しい)でした。

さて、参加者が大体自分の巻いたコイルでLEDを光らせられたところで、LT他告知枠となりました。

私が作っていったネタはこちら。

金曜日にこれ的な昼食
をとりつつふと、数日前にAndroid用アプリとしてbetaリリースされたMicrosoft社のon{X}にNFCタグを使った通知機能があると結構面白いこと出来るんじゃないかな?と思いついたので、夜から朝にかけて実装してみた次第です。大体は資料に書いている通りですが、多分かなり伝わりづらいので少々以下に補足します。

システムは

  • NFCタグを割と無差別に読み取り、タグ情報を一部解釈してサーバへ送りつけるヘルパーアプリ(Java)
  • ヘルパーアプリから送られてきた情報をHTTPでアクセス出来るようにするサービス(Tornado/Python)
  • HTTP経由で最新の読み取りタグ情報を取得し、on{X}内部へ通知するon{X}レシピ(JavaScript)
  • NFCのタグ読み取りイベントを利用してアクションを実行するレシピ(JavaScript)

によって構成されています。上記SlideShareにある資料にも書いているように、on{X}上に載っているJSエンジン(エラーログなどを眺めた感じ、そのままRhinoを使っているようです)の制約によりSocketIOが動作しなかったり、大きめのライブラリをバンドルすると読み込みで落ちたりと半泣き状態でしたが、なんとか形になりました。
これまた資料に記載しているように、そのまま実用になるものではないのですが、on{NFC}という考え方自体をMicrosoft公式で取り込んでもらえれば結構面白い未来になるんじゃないかな、と考えています。

NFCベースの既存サービスと違うところといえばon{X}の世界に踏み込んだところぐらいで、特に新しいことはやっていません。が、on{X}自体が今後きっとWindows Phone等に対応して「JSを使ってレシピを書いて、レシピマーケットとか作って生活やら何やらを良くする」のが当たり前の未来が来たりするかもしれないので、少し触っておきたかった次第です。
実装上で重要だったon{X}の持つAPIは「共有ストレージの指定キーが更新された通知を受ける」というものでした。これにより、レシピ間でのIntent連携に似た仕組みを構築することが出来ます。今後もある程度hackに使えそうです :)

そんなこんなで、他の方のRubyからNFCを叩く話やO2Oな話など、ほどよく発表/告知が終わり勉強会/ハンズオン終了と相成りました。やっぱり、ものが目の前で動くと面白いですね。
主催・会場提供を頂いたクレスコ・アイディー様、NFC Labの皆様、ありがとうございました。参加された皆様、お疲れ様でした。

= 後日談。ちょいいじってみた =

巻いたコイルは、LEDをハンダ付けしてコンパクトにまとめることも出来たのですが、適当に抜き差し出来たほうが何かと遊べそうな気がしたのでそのまま持ち帰りました。
そして翌日、コイルの特性を考えるとこういうことが出来るんじゃないかなー、とふと思いついたのでやってみました。
これ、ブレッドボードに挿してあるLED2つはアノードとカソードを逆にしています。
LEDは片方向にしか電気を流さない(超ざっくりした認識)ので、上の動画で並列で逆に挿したLED2つが同時に光っているように見えるのは不思議な気がしますね。
そもそもなんで点滅するのか。たぶんこんなんです(間違いあったら突っ込み頂けると嬉しいです。そして数字は適当です)。

Galaxy Nexusから与えているのは13.56MHzなので実際のフラッシュ自体は肉眼で捉えられるものではありません。LEDの起電圧に満たない時間とそれを超える時間とのバランスで点滅パターンが決まるんですね多分。

家に帰ってからも楽しめる勉強会っていいですね :)

0 件のコメント:

コメントを投稿