PQI Air PenとRICOH THETA Sの関係のその後。リモコンとして使えるようになりました。
前回、PQI Air PenをTHETA Sのリモコンとして使おうと試行錯誤していたのですが、結局その時は公開されているスクリプトがTHETA Sで動作しなかったので、無理でした。
しかし、昨日検索していたところ、やはり有志の方が試しておられる記事を見つけました。さすが、その手の知識を持っている方はすごいですね。
APIが公開されているのと、今までのTHETAとは違い、どのデバイスでもやり取りしやすいAPIに変更されたからなのでしょうか。
Alvinの倉庫: Ricoh THETA S のリモコン
http://alystra.blogspot.jp/2015/12/ricoh-theta-s.html?showComment=1454985422787#c5046088308979869613
上記のページを参考にさせていただいて、解凍したthetaフォルダ内にある、「theta_remote.sh」をテキストエディタで書き換えました。
ただ、メモ帳で開くと改行コードがLFになっているので、複数の改行コードを認識する秀丸エディタ等のテキストエディタで開くことをお勧めします。
変更箇所はいくつかあって、元のコードを「#」でコメントアウトして新たにスクリプト構文を追記するようになっています。ブログの都合上読みにくいかもしれませんが、Wordpressのプラグイン「SyntaxHighlighter Evolved」を使ってそれっぽく表記してみます。
まずは1つ目の変更箇所です。
/tmp/www/ftp/sda1/theta/theta_proc.sh $theta_ip $theta_port $trigger_port&
↓
# /tmp/www/ftp/sda1/theta/theta_proc.sh $theta_ip $theta_port $trigger_port& (空行) sed="/tmp/www/ftp/sda1/theta/busybox-mips sed" execute="http://192.168.1.1/osc/commands/execute"
2つ目の変更箇所です。
/tmp/www/ftp/sda1/theta/ThetaShutterTrig $trigger_port 0
↓
# /tmp/www/ftp/sda1/theta/ThetaShutterTrig $trigger_port 0 sid=`$wget $execute --post-data='{"name":"camera.startSession"}'| $sed -e "s/^.*\"sessionId\":\"\([^\"]*\)\".*$/\1/"` $wget $execute --post-data="{\"name\":\"camera.takePicture\",\"parameters\":{\"sessionId\":\"${sid}\"}}" $wget $execute --post-data="{\"name\":\"camera.closeSession\",\"parameters\":{\"sessionId\":\"${sid}\"}}"
2ヵ所目以降は、上記の追加される行があるので、追加後の行番号が変わっていることに注意して下さい。
また、最後の箇所については、7行程の構文を全てコメントアウトします。
/tmp/www/ftp/sda1/theta/sleepms 500 read trig < $trigger_gpio if test ${trig} -eq 0 then # bracket shutter /tmp/www/ftp/sda1/theta/ThetaShutterTrig $trigger_port 2000 /tmp/www/ftp/sda1/theta/ThetaShutterTrig $trigger_port -2000 fi
↓
# /tmp/www/ftp/sda1/theta/sleepms 500 # read trig < $trigger_gpio # if test ${trig} -eq 0 # then # bracket shutter # /tmp/www/ftp/sda1/theta/ThetaShutterTrig $trigger_port 2000 # /tmp/www/ftp/sda1/theta/ThetaShutterTrig $trigger_port -2000 # fi
[/tmp/www/ftp/sda1/theta/sleepms 500]から、[fi]までをコメントアウトします。
結果、下のようになると思います。
これを上書きして編集は終わりです。
その後の接続方法等は改造前と同じです。microSD未挿入の状態でPQI Air Penを起動させて、「192.168.200.1」にアクセスしてRICOH THETA Sとの接続を設定しておきます。設定しておくと、電源をONにするだけでお互いの接続が確立します。
後は、先程編集したスクリプトファイルを含めたフォルダとファイルを構成そのままにmiceoSDカード直下にコピーして起動させるだけです。
これで、PQI Air Penの側面にある更新ボタンを押すだけでシャッターが切れるようになりました。さすがにm15の時のように動画撮影のスタート/ストップやボタン長押しでのブラケット撮影までは制御できないようですが、リモコンとして使えるようになっただけでも嬉しいですね。
私も仕事でシェルスクリプトやバッチファイル、VBAなどを触ったりもしていたのですが、最近はまったくその分野に触れる機会も少なくなってきていたので、こういった構文を読むとワクワクしてきますね(笑)。
さすがに自分でさらに手を加えて…という時間は無いですが。何となく「ここをいじれば動画も…」なんて思ったりもするのですが。
内部構造が違うTHETA Sに合わせてスクリプトを改編して下さったAlvin 様、ありがとうございます。
このリモコンとしての機能は、PQI Air Penが起動する際にmicroSD内のスクリプトを読み込んで実行している為に実現出来ている機能なので、microSDカード内部のファイルを削除すると、PQI Air Pen本来の機能を使うこともできます。
用途に応じて使い分ける事も可能ですが、無線LANの接続先設定に関しては、別途元に戻す変更が必要です。
す~ごい
ぼくも作ります
kuya 様
コメントありがとうございます。何とか動作するようにはなりましたが、そこまで便利には感じられなかったというのが正直な感想なんですけどね(笑)。
元々のTHETA Sのオートの性能が良いので、私の場合そのままスタンドアローンで撮ってしまう事の方が圧倒的に頻度が高いです。
参考にしていただいてありがとうございます。