指輪型ウェアラブルデバイス「Ring」をリモコンにして遊ぶ。

  • このエントリーをはてなブックマークに追加
  • feedly
    follow us in feedly

あけましておめでとうございます、今年もどうぞよろしくお願い致します。 – きんちゃん。( @wa_kinchan )


Kickstarterで支援して、11月頃に手元に届いたRing。全くといって使っていなかったので、ちょっと遊んでみようと思います。
2015年1月3日現在、一般販売も開始されていますが、売り切れとなっています。





Ringって?


一言で言えば、こういうことみたいです。


指輪型ウェアラブルクラウドコントロールデバイス。 たった一つのジェスチャーで魔法のように様々なアクションを。
Ring – Shortcut Everything


現在、売り切れとのことなので、欲しい方は入荷時にメールを受け取れるように出来るみたいなので設定しといてはどうでしょう。




Ring – Shortcut Everything (2014) from Logbar on Vimeo.


動画がなにより洒落おつ。




Ring – One Gesture is All You Need from Logbar on Vimeo.


iPhoneとRing


Ringを使うにはiPhoneアプリを起動して使う必要があります。


Ring – Shortcut Everything 0.7.4(無料)
カテゴリ: ライフスタイル
販売元: Logbar Inc. – Logbar Inc.(サイズ: 38.5 MB)
全てのバージョンの評価: (7件の評価)


iPhoneにはアプリがバックグランド動作できる時間が3分と制約があるため、外出中iPhoneをポケットに入れた状態で、アクションを実行するのは厳しいかもしれませんね。CoreBluetoothを利用して接続しており、Ringでジェスチャーを実行すると、アプリ側がジェスチャーに応じたアクションを実行します。


アクションと認識されば、この辺がゴリゴリっと動いて実行されるみたい。この辺を任意の処理にすり替えてやれば標準のアクション以外のことが出来そう。でも、サンドボックスアプリの中では、したいことは限られそうだね〜、なのでもっと外へ投げるとか。


CRServiceFunction
-[<CRServiceFunction: 0x17446b680> runWithDelegate:<CRAction: 0x17028c030> functionParams:{} actionContext:<CRActionContext: 0x17415b540>]

さっと見た感じでは、iOSのRingアプリの内部実装的に、もう既にサードバーティなアクションを追加できるようになってる様子?ただ肝心であるiOS SDKが一般公開されていないため、自作アプリとRingの連携ができませんが、出てくれたらIRKitなどの他デバイスとの連動も簡単に実装できそうですね。


そんなことはさておき、本題へ。


Open URIで遊ぶ


iOS SDKは公開されてないですが、RingアプリにはOpen URIというアクションが実装されています。


ジェスチャーを完了すると HTTP GET/POSTで送信します。WEBプログラミングでよく使われている HTTP方式を使うことで、様々なWEBサービスとの連携や他の ハードウェアとの接続を行う事が可能です。
開発者(Open URI) – Ring


IRKitと連動


node.jsを使ってKeynoteを操作する方法を参考にしてさくっとIRKitと連携させちゃいましょう。
node RingでKeynoteを操作する! (開発者向け) — Ring Blog by Logbar (Japanese)




IRKitを直接APIで叩いてもいいんですが、IRLauncherという優秀なツールが公開されているので、今回はそちらを使います。IRLauncherをあらかじめinstallしてセットアップしておきます。
セットアップ方法、使い方は、以下のとおりです。



次にnode.jsのpackage管理ソフトnpmを入れておく。Homebrewの場合:


$ brew install npm

(Macのユーザ名)の部分は各自のユーザ名に。また、(赤外線信号のjsonファイル)を任意のjsonファイル名に変えておきます。


// app.js
var express = require('express');
var app = express();

function sendsignal(file, callback) {
  var exec = require('child_process').exec;
  exec("/Applications/IRLauncher.app/Contents/MacOS/IRLauncher '/Users/(Macのユーザ名)/.irkit.d/signals/" + file + ".json'", function(err, stdout, stderr) {
    console.log('LOG: ' + stderr);
    callback();
  });
}

app.get('/sendsignal', function (req, res) {
  sendsignal('(赤外線信号のjsonファイル)', function() {
    res.sendStatus(200);
  });
});

app.listen(3000);

// package.json
{                                                                                                                                                          
  "name": "ring-irkit",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node app"
  },
  "dependencies": {
    "express": "*"
  }
}

app.js、package.jsonを任意のディレクトリに配置し、
以下のコマンドを叩くとnpmにinstallされ、実行されます。


$ npm install
$ npm start

あらかじめ、動作するか確認しておきます。OKと表示されると共に、IRLauncherより赤外線信号が送信されます。


http://localhost:3000/sendsignal

スクリーンショット 2015 01 04 02 43 18


コンソールはこんな感じ


スクリーンショット 2015 01 04 13 06 34


うまく動作したら、RingアプリのOpen URIの設定をしておきます。


http://(MacのIPアドレス):3000/sendsignal


Ringでジェスチャー
→ RingアプリでOpen URIアクション実行
→ Macのnode.js君が命令をキャッチ
→ IRLauncherでApple Remoteの右ボタンの赤外線信号を投げる
→ IRKitが受け取った赤外線信号を送信
→ MacのiTunesが次の曲を再生

みたいなことができます。


動画撮りました。わかりにくいですが、こんな感じです。
https://www.youtube.com/watch?v=I_Y5dATbq1A&feature=youtu.be


こういう超超超〜回りくどいこと好きです。笑


まとめ


今回使った方法で、Ringでジェスチャーするとなんらかの情報がiPhoneにProwlとかでプッシュ通知されるとか、Ringでジェスチャーしたら玄関の鍵が開くとか(ちょっとセキュリティ面が怖そうw)。色々考えたら面白そうですね。
あとは、はやくRing iOS SDK出るといいな〜。


日常生活でRingが使えるレベルかって言われれば使えないかもしれません、ただ発想次第で面白いデバイスになるのは間違い無いと思っています。


では、きんちゃん( @wa_kinchan )でした。
最後まで読んで頂きありがとうございます。良かったら、RSS購読、シェアして下さいね(≧∀≦)!





One Thought on “指輪型ウェアラブルデバイス「Ring」をリモコンにして遊ぶ。

  1. はる on 2015年2月5日 at 12:56 AM said:

    こんにちは。
    記事の内容とは別で申し訳ないのですが、困っていることがあるのでコメントさせてもらいました。
    この前/var/mobile/ApplicationsにあるSafariのフォルダを誤って削除してしまいました。
    フォルダの復元はできたのですがSafariが起動しなくなってしまいました。
    その後、UICacheの実行、IconState.plistやcom.apple.mobile.installation.plistの削除、Semirestoreによる初期化などを試してみたのですが、起動しないままです。
    自分はiOS 7.1.2 5sで、このまま復元せずに維持したいと考えています。
    もしこの状態からSafariを起動できるようになる方法をご存知でしたらご教示願います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Post Navigation