せっかく発売日に届いた THETA S だけど、ようやく時間もできたので少々いじってみることに。
初代 THETA のときは PTP のドキュメントを読みながら探り探りいじったものだけど、今は Ricoh から API のリファレンスが公開されるようになったし、だいぶやりやすくなったのではなかろうか。
https://developers.theta360.com/ja/docs/
v2 の API から Web API になって、しかもパラメータを JSON でやりとりできるとあって、これは node.js と親和性が高いと思い、さっそく THETA S のシャッターをきるスクリプトを組んでみた次第。
request のモジュールを使って、サックリこんな感じ。
(ちなみに、Intel Edison で実行。)
var request = require('request'); var options = { uri: 'http://192.168.1.1/osc/commands/execute', headers: { 'Content-Type': 'application/json;charset=utf-8' }, json: true, keepAlive: false, body: { "name": "camera.startSession" } }; request.post(options, function(err, res, body) { if (err) { console.log(err); return; } if (res.statusCode == 200) { // Session Starts options.body = { "name": "camera.takePicture", "parameters": { "sessionId": body.results.sessionId } }; // Take Picture request.post(options, function(err2, res2, body2) { // Close Session options.body.name = "camera.closeSession"; request.post(options); }); } });
と、まあ、node.js は作りやすいのはいいけど、あんまりいいアイデアも浮かばないので、続けて C# で THETA S のアプリ開発を開始。
JSON も DynamicJson を使えば C# で簡単に扱えるし、後は力技でなんとかなりそう。
今度こそ Windows タブレットと組み合わせて、ストリートマップ簡単作成アプリを完成させたいところ。