はじめに
MESH は SONY によるプロジェクトで、タグと呼ばれるワイヤレスのブロックに備わった機能を Canvas というタブレット上のアプリでつなぎ合わせるだけで、タグ同士が連携する仕組みを簡単に作ることが出来るプラットフォームです。
今年はじめに Indiegogo 上で資金調達が開始され、目標の $50,000 に対し、$64,875 の出資が集まりました。私は $149 の Advanced Set(Early Bird)に Back していたので、GPIO タグを含む 4 つのタグが届きました。
似たコンセプトのプラットフォームとして littleBits がありますが、littleBits はマグネットで接続することに対して、MESH はワイヤレスであるため、それぞれ異なる使い方が出来ると思います(両者を組み合わせてる方も既にいるようです)。
indiegogo で出資した人には届きましたが、販売はまだされておらず、現在準備中とのことです。
関連サイト
- MESH™
- 公式ページ
- ギャラリー(GALLERY | MESH™)
- MESH project | Facebook
- 公式 Facebook
- MESH project (@MESHprj) | Twitter
- 公式 Twitter
- MESH project - YouTube
- 公式 Youtube チャンネル
- Facebookにログイン | Facebook
- 有志によるグループ
- MESHまとめ #SONY_MESH - Togetterまとめ
スペック
- 大きさ
- 24 mm x 12 mm x 48 mm
- 通信
- BLE
- ~ 10 m
- バッテリー
- 通常使用で 1 ヶ月
- Button: 10 回 / 日
- LED: 10 秒 / 日
- Move: 10 回 / 日
- GPIO: 使い方次第
- 通常使用で 1 ヶ月
- 動作温度
- 0 ~ 35 ℃
- 同時接続可能数
- 動作環境
注意が必要なのは現在は iPad でしか動かない点です。Android 対応は検討中のようです。
Getting Started
詳細は省略しますが、セットアップは簡単で、手順に従ってタグ本体のアイコンを長押しするとペアリングが出来ます。レシピを作成し、サイドバーから好きなコンポーネントをドラッグドロップして配置、機能のソケットをつなぎ合わせると、つないだ直後からそれらが連携するようになります。また、発火したイベントはハイライト(本体 LED / Canvas 両方)されるので何が起きたかもリアルタイムに把握することが出来ます。
MESH タグはまだ 4 種類しかありませんが、タブレットの機能と組み合わせたりすれば、アイディア次第でいろいろな使い方ができると思います。例えば以下は Motion タグでなくて iPad のマイクを利用してタップを取得してみた例です。
Canvas
タグの種類
Canvas では MESH Tags、タブレット機能、ソフトウェアタグが利用でき、以下のものが現在用意されています。
MESH Tags
- Button
- Pressed / Hold / Double
- Move
- Shake / Flip / Tap / Orientation
- Sensitivity や向きの設定が可能
- LED
- Light UP / Firefly(ゆっくり明滅)/ Blink / Off
- 色や明るさ、長さ、明滅間隔が設定可能
- GPIO
- Vout Supply / Digital In / Digital Out / Analog In / PWM Out
- ピンソケットの番号やトリガの種類、スレッショルドなどが設定可能
- Button
タブレット機能
- Camera
- Take Picture
- フロントカメラか背面カメラ
- Mic
- Sound Trigger
- Sensitivity が設定可能
- Speaker
- Play / Stop
- プリセットから音を選んだり、別途録音した音を使用可能
- Camera
ソフトウェアタグ
- And
- Simultaneous(2 つの入力が ON になっているかを調べる)
- Window(同時と判断する時間の長さ)が設定可能
- Timer
- Wait(一定時間後) / Interval(一定間隔)
- 時間を指定可能
- Toggle
- Alternate(順番に出力を切り分ける)
- And
今後の展開
公式サイトを見ると、カメラやアクションカムといったソニー製の製品との連携や WEB サービスとの連携も現在作成中のようです。
また将来的に自分でソフトウェアタグを追加できる仕組みも検討されているとのことです。
GPIO タグ
いろいろとハックしたいとなったときに面白いのが GPIO タグです。GPIO タグの仕様は以下に公開されています。
2.54 mm ピッチの 10 ピンソケット(Vout、GND、Digital Input x 3、Digital Output x 3、Analog Input x 1、PWMout x 1)が底部についていて、出力は Vo: 3.3 V / 100 mA(電源接続時は 250 mA)です。温度や気圧などのセンサや、サーボやバイブレータなどのアクチュエータを接続して好きな機能を作ることが出来ます。例えばシンプルな例として Vo と Digital Input 1 をリードスイッチで接続して見ると、以下のように接触センサが作れます。
他にも Vo と GND にモータをつないで回転させたり、PWMout を使ってサーボを制御したりも可能です。
PC との連携
Arduino やラズパイと連携したり、これらを経由して PC と連携することも出来ます。例えば Arduino の例として以下の様なスケッチを書き込んで、GPIO タグの Dout と Arduino の Din をつないでみます。
void setup() { Serial.begin(9600); pinMode(5, INPUT); pinMode(6, INPUT); pinMode(7, INPUT); } void loop() { Serial.print(digitalRead(2)); Serial.print("\t"); Serial.print(digitalRead(3)); Serial.print("\t"); Serial.print(digitalRead(4)); Serial.println(""); }
この Arudino の出力を何かしらで取得してみます。以下は Node.js から取得した例です。
var serialport = require('serialport'); var SerialPort = serialport.SerialPort; var parsers = serialport.parsers; var sp = new SerialPort('/dev/tty.usbserial-XXXXXXXX', { baudrate : 9600, parser : parsers.readline('\r\n') }); sp.on('data', function(data) { console.log(data); });
ここまで来れば自前のシステムや IFTTT などの好きなサービスとの連携はし放題だと思います。試しに hue と連携させてみました。
ただし結構回りくどいので、はやく公式にウェブ連携やソフトウェアタグの追加をサポートして欲しいところです(HTTP アクセス出来るだけでも大分楽なのでなにとぞ...)。
個人的に欲しい機能
常時 ON
現状は Canvas アプリでレシピを立ち上げてないと機能が発火しませんが、常時 ON にしておける仕組みがほしいです。直接 PC と接続できるとか、レシピを書き込めるハブとなる親タグがいるとか、Android に対応してサーバとして裏で動かしておけるとか、そういった仕組みが出来るとプロトタイプにとどまらず日常生活を便利にする所まで延長できると思います。
状態取得
イベントは検知できるのですが、状態が欲しいなと思いました。例えば、傾き + ボタン押下で出す音を変えたいと思ってこんなものを作ってみました。
が、これはうまく動かなくて Orientation が取れるのは傾けた直後なので、傾けた直後にボタンを押す、とやらないと所望の音が発火しません。ボタンも Pressing / Not Pressed みたいな状態が欲しかったりします。例えば傾きとボタン、後は音のピッチを変えるコンポーネントとか組み合わせて、オリジナルの楽器が作れる、とかそういうところまでカスタム出来るようになってくれると良いなと思いました。
(Pressing 後に Not Pressed が飛んでこなかったらステートが崩れたりする可能性があったり、状態を取得しようとするとアクセスが頻繁になり電池食うとか色々と悩ましいところではあるとは思いますが。。)
生値取得
上記のことを出来るように、ソフトウェアタグで生値を使えるようにして欲しいです。
おわりに
現状でもアイディア次第で色んな面白いものが作れますし、もっとたくさんの MESH タグやソフトウェアタグが増えると、複雑なシステムも10分くらいで簡単に作れるようになると思います。ワイヤレスで小さいのは本当に素晴らしいですね。今後のアップデートに大いに期待したいです。