Imaginary Code

from kougaku-navi.net

PCからProcessingでTHETAのシャッターを切る

リコーの全天球カメラ「THETA」いいですね。さっそく@MobileHackerzさんをはじめとするハッカー諸氏によってハックが進んでますが、僕もProcessingから操りたいのでコード書きました。といっても、@GOROmanさんのコードをProcessingに移植しただけなのですが。


はい、こんな感じ。大学の僕の部屋です。

Processingのコード

PCの無線LANでTHETAにつなぎ、プログラムを実行してください。画面をクリックすると、シャッターを切ります。それだけ。ああ、簡単すぎて怖い。

import processing.net.*;

Client client;
int[] init = { 28, 0, 0, 0, 1, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 1, 0, 0, 0 };
int[] open = { 22, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 2, 16, 0, 0, 0, 0, 1, 0, 0, 0 };
int[] capture = { 26, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 14, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

void setup() {
  client = new Client(this, "192.168.1.1", 15740);
  send(client, init);
  send(client, open);
}

void draw() {
  // 何もしない。画面をクリックしてシャッターを切る。
}

void mousePressed() {
  send(client, capture);
}

void stop() {
  client.stop();
  super.stop();
}

void send( Client c, int[] data) {
  for (int i=0; i<data.length; i++) {
    c.write(data[i]);
  }
}


ちなみにうちの子にはレンズ保護用の自作突起を取り付けてます。当然写り込みますが、あんまり気にならないレベルなので良しとします。

参考

@MobileHackerzさん、@GOROmanさん、ありがとう。仕事の速い人たちに感謝。

追記

同じ原理でArduinoからシャッターを切るのも作りました!


RICOH デジタルカメラ RICOH THETA 全天球 360°カメラ 0175760

RICOH デジタルカメラ RICOH THETA 全天球 360°カメラ 0175760