インカゼブログ - 中風博客

興味のあるものを紹介していきます

Arduinoでパノラマ撮影用カメラ回転ステージを作る その2 - パノラマ微速度撮影

Arduinoとサーボを使ってカメラを回してパノラマ撮影しよう、という目論見でした。その2では取得できた画像を編集してパノラマに見えるようにしています。撮影のためのハード/ソフトに関してはこちらのエントリーを参照ください。

・パノラマ微速度撮影について

とれた画像は3時間で378枚。

編集方法を示すため、たとえを例に説明してみます。並び順ですが、90°ずつ回転しながら撮影していますから、たとえば分かりやすいように5分ごとに東西南北方面を1回ずつ撮影したとすると、

撮影時刻/ファイル名/撮影した方角

17:00 001.jpg 東1

17:05 002.jpg 南1

17:10 003.jpg 西1

17:15 004.jpg 北1

17:20 005.jpg 東2

17:25 006.jpg 南2

17:30 007.jpg 西2

....

となっているわけです。

これを東1南1西1北1と並べれば1枚のパノラマ画像になります。この条件の場合正確には各画像に5分の時間差が生じているのですが、実際の条件では撮影間隔を30秒とし、また以下ムービーでは加工した際1フレーム0.5秒程度としたため、風景としてはほとんど違和感がない映像となりました。またこれを、

001.jpg 東1

005.jpg 東2

009.jpg 東3

014.jpg 東4

019.jpg 東5

...

と並べて表示すれば、東向きの撮影画像のみとなりますので、

5分おきの微速度撮影のようになります。

この両者を考えて配置すれば、パノラマ画像の微速度撮影が可能となるわけです。

実際にムービーにするとこのようなものになりました。

[embed width="320" height= "180"]http://youtu.be/xnup4KhPic0[/embed]

パノラマ撮影部分だけ観たいかたはこちらをご覧ください。

[embed width="320" height= "180"]http://youtu.be/IYDn2jiMJLY[/embed]

 

・メイキング

この動画の編集時間はのべ8時間といったところでしょうか。今回の編集では2種類のソフトを使い分けました。

 

Rotation_Stage_01

こんなところとか

 

Rotation_Stage_02

こんなところにはAviUtlを使っています。

 

AviUtl作成部分と他部分のマージ、およびそれ以外のエフェクトや文字挿入はLightworksで行っています。

AviUtlは今回初めて使ったのですが、画像のグループ化やフレーム単位での編集指定など、複数画像にまとめてエフェクトをかけるのに大変便利でした。

またエフェクト自体も豊富で、動画の中で使用したらせん状に複数画像を動かすエフェクト(GH螺旋配置)などは驚きです。試してませんが3Dで影もつけれるとか。

対してLightworksは時間単位での編集がメインとなります。フレームの切り貼りがすごくシンプル、かつクイックにできますから、シーン毎の遷移画面の作成や、最終的なバランスを調整するのには向いています、と思いました。

機会があればこの回転ステージを使って、野原の真ん中で天体撮影をしてみたいものです。

* ムービー中の音楽: ♪Arata Waits - Yu5aku - https://soundcloud.com/yu5aku

* Lightworks - www.lwks.com/

* AviUtl - http://spring-fragrance.mints.ne.jp/aviutl/

* AviUtlの拡張編集・GH螺旋 - http://www.nicovideo.jp/watch/sm13806316

Sleipnir 3でも検索バーからお気に入り(ブックマーク)を検索する

Sleipnir 2でできてSleipnir 3でできなくなったことの一つに、検索バーからのお気に入り検索があります。どこに置いたか分からないお気に入り(Sleipnir 3ではブックマークと呼ぶそうです、以降呼び方を統一します)をキーワードで検索できる機能は大変重宝するものでした。またSleipnir 3では2のようなブックマークの整理機能が実装されておらず*、この点も不満に思われる方が多いと思います。スマートではないですが、Webkitエンジンに付属しているブックマーク機能を使ってSleipnir 3でも検索機能を実現します。

1. ブックマークをエクスポートする

Sleipnir 3のブックマークをメニューの“ファイル”→“ブックマークのエクスポート”からエクスポートします。出力する場所はどこでもよいです。

2. ブックマークをGoogle Chromeブックマークマネージャにインポートする

ここでアドレスバーに“chrome://bookmarks/#1”と入力しEnterを押します。するとWebkitのブックマーク管理画面が出てきます。これはWebkit側で実装されているけれどもSleipnir 3では通常使用されていないもので、この時点では何もブックマークされていないはずです。ここで、“管理▼”を押し“HTMLファイルからブックマークをインポート”で1. のエクスポートしたhtmlファイルを指定します。ここにSleipnirのブックマークがインポートされました。

3. 検索を試してみる

検索してみましょう。“chrome://bookmarks/?#q=xxx“とアドレスバーに入力します。xxxにたとえば"Sleipnir"と入力すれば、Sleipnirがブックマークから検索されます。そう、もうお分かりと思いますが、検索バーからの検索が可能っぽいことが分かります。

4. 検索エンジンへの登録

こちらのエントリーを参考にしながら、検索エンジンに登録します。こんな感じでよいでしょう。

[html]

ブックマーク検索

bookmark

chrome://bookmarks/?#q={all}

GET

NONE

f

[/html]

search_bar_sleipnir3

便利だー。

これで検索バーから“f + 半角スペース + 検索キーワード”を入力してEnterで、検索バーからお気に入りを検索できるようになりました。Sleipnir 2の機能と異なりコメント部の検索ができない、Sleipnir側ブックマークとの同期のため、上記1, 2を時々実行してあげる必要がありますが、それでも私のような使い方をしていれば(つまりブックマークの整理が苦手な方!)、検索ができることではるかに便利になると思います。

* 上記確認はSleipnir バージョン 3.8.3.4000 で行いました。

Sleipnir 3の検索エンジンを設定ファイルから直接追加する

Sleipnir 3ではワンクリックで検索エンジンを検索バーへ簡単に追加できることがPRされていますが、ここにのっていないマイナーな検索エンジンについては、設定ファイルから直接登録します。

Windows XPでは、以下に検索エンジン関連の設定ファイルが作成されます。

C:\Documents and Settings\<<ユーザー名>>\Application Data\Fenrir Inc\Sleipnir\setting\override

もし、Sleipnir 3をインストール後に検索エンジン関連で何も編集していない場合、上記フォルダには何もファイルが作成されていませんので、一旦以下の作業でこれを編集し設定ファイルを作成させます。

ツール"→"カスタマイズ"→"検索"で、どれでもよいので検索エンジンの並び順番を変更し、"適用"→"保存"

これで再び上記のフォルダーoverrideをのぞくと、ファイル“1041_searchenginelist.xml“が作成されているはずです。この設定の記述文法はSleipnir 2と互換性があり、以下サイトに各パラメーターの説明が載っています。ただしコンボボックス、リストボックスはSleipnir 3では上手く表示されませんでした。(詳しい方がやれば、できるのかも。)またセキュリティの項目は試していません。

Sleipnirオンラインデータベース - SearchEngineList.xml

<Icon>で指定したアイコンファイルは以下の場所に置くことで反映されます。

C:\Documents and Settings\<<ユーザー名>>\Application Data\Fenrir Inc\Sleipnir\~temp\resources\skins\default\toolbar\SearchBar

以下いくつかのエンジンの設定を記載します。“エンジンの設定がわけわからない“という方は”1041_searchenginelist.xml”をメモ帳で開いて、一番最後の行の</SearchEngine>の上の行に“<Engine>から</Engine>までをコピー&ペーストすると反映されますので試してみてください。もし以下の項目について利用規約等の問題があればコメントで連絡頂けると助かります。

1. 食べログ

[html]

食べログ

tabelog

http://tabelog.com/japan/0/0/lst/?sk={all}&vs=1&lid=hd_search&sw={all}&sa=

GET

UTF8

tb

[/html]

2. はてなブックマーク全文検索

*2012年から自分のはてなブックマーク内の記事中本文を拾って検索する機能が無料化されました。

http://b.hatena.ne.jp/help/plus_retrieval<<ユーザー名>>に自分のユーザー名を入力します。

[html]

はてなブックマーク全文

hatena_all

http://b.hatena.ne.jp/<<ユーザー名>>/search?q={all}

GET

UTF8

hs

[/html]

3. Twitterに書き込み

*検索ボックスにツイート内容を入力しこのエンジンを選択すると、ツイッターのページに入力した内容が反映されます。Enterを押すだけでツイートが完了します。”Alt +  s”→”tt + (半角スペース) + ツイート内容”→”Enter”で済み、Twitterクライアントや公式ページを立ち上げて、ツイートボックスに移動して内容を入力して・・・といったようなプロセスよりも早くツイートができます。あらかじめTwitterにログインしておく必要があります。

[html]

Twitterかきこみ

twitter_tweet

https://twitter.com/intent/tweet?text={all}

GET

UTF8

tt

[/html]

ソリッド・ステート・リレーを用いてAC電源供給をON/OFF

ソリッドステートリレーキットを用いてAC電源の供給をArduinoからコントロールしてみました。秋月のSSRソリッド・リレー・キットを使用しました。

100円で買ってきたコンセントの延長コードの途中を切断し、これを挟み込みました。

Arduino_SSR_tap

この方法だとSSRモジュールを挟み込む分反対側の線を短くしないと長さが合わなくなってしまうのですが、とりあえずよしとします。

Arduino_SSR_config

黒い部品と青い部品が斜めに倒れていますね?気のせいかなぁ。

Arduino_SSR_soldering

8年ぶりくらいのはんだづけ。ひどいもんです!!

Arduino_SSR_wiring

Arduino含めこのような配線になりました。

[embed width="300" height= "200"]http://youtu.be/SJLQADpKjnk[/embed]

AC電源から10秒周期で黒いLiB Batteryに電源が供給されます。青いLEDと同期しバッテリー筐体の緑のインジケーターが光るので、制御されていることが分かります。

これでさまざまな家電を制御することができるようになりました。

実はもう作りたいものが決まっています。詳細はまた、次のエントリーで。

* 参考にしたURL

1) エレキジャック←今回に限らず、すごく参考にさせてもらっています。

連載(26)Arduinoで何でも制御 いろんなArduinoがある(8)

http://www.eleki-jack.com/FC/2009/02/26arduinoarduino8.html/

2) 秋月電子のページ

ソリッド・ステート・リレー(SSR)キット 25A(20A)タイプ

マニュアルと、1) のページを参考にしながら組み立てました。

http://akizukidenshi.com/catalog/g/gK-00203

3) Tetsuaki Baba

照明をつくる

http://tetsuakibaba.jp/workshop/light/

Vivitek QUMI Q5 レビュー

QUMI Q5を転送サービスの米国日通を経由し米国Amazonで購入しました。米国日通→日本までの送料、手数料で約5000円程度でした。それでも現在の円高なので、かなり安くなります。

QUMIQ5_contents

内容物

QUMIQ5_packaging

パッケージに書いてある3Rのお話。パッケージのことを指しているのか?よくわかりません。

QUMIQ5_carry

小さい、そして軽い。重量は全部で500gちょっとです。

今までプロジェクターを購入したことがなく、500lmがどのくらいの明るさなのか気になるところでしたので、昼間の部屋でカーテンを閉めて投影。特に遮光性が高いカーテンではないと思うのですが、文字を読むのには十分な明るさとなっています。動画の視聴も問題なし。夜間の暗さであれば言わずもがな、文句なしの性能です。

[embed width="300" height= "200"]http://youtu.be/dKtApSw6DKw[/embed]

白壁に直接投影。横幅は40インチ程度です。音声はPCからの出力です。この動画だとカラーノイズが見えているようですが、実際の視聴では全く見えません。

QUMIQ5_tripod

QUMI Q2と比較すると背面のI/Oが変更になっているようですね。MINI HDMIからHDMIになっています。私のPCはHDMI端子なので、変換せずそのまま使え助かります。あとはMicro SDドライブがなくなっていますがUSBがあるので不要でしょう。リモコンによる電源のオン、オフが可能ですので天井へ固定しリモコンで操作することも容易になっています。リモコンの受光部が機体背面にあるので背面からならかなり遠くから操作できますが、前面からだと大体50cm以上装置とリモコンが離れると操作できないようです。

USBメモリを直接挿して直接動画、オフィス製品、写真、音楽再生が可能です。HandbrakeにてH.264エンコードした動画をUSBでSDカードリーダーに保存したファイルの再生ができました。早送り、巻き戻ししたい時はリモコン左下の矢印キーで最大32倍速まで再生スピードを可変させることでできます。荷物を極力減らしたい時は、重宝しそうです。

QUMIQ5_fast_forward

本体にもスピーカーがついてますが、おまけ程度に考えておいた方が良いです。音質もですが最大出力も小さいので。

ポータブルバッテリーによる稼働にも対応しているということで、野外や出先でも使えそうです。またオプションのWifiドングルがあればPCレスでインターネット閲覧できる、なんて機能もあるみたいですがドングル単体ではまだ日本では販売していないみたいです国内販売では、ドングルが標準でパッケージとして販売しているようですね。

その他天井への投影も可能です。しかしその場合は台形補正が上手く働かないようですので設置に工夫が必要です。

Q5を試してみて、モバイルプロジェクターの進化に驚きました。プライベートはもとより、今度仕事で使ってみたいですね。私の狭い家では無理なので、会議室の100インチくらいのスクリーンでだだーっと映してみたいです。このサイズはすごくインパクトがあるので、きっと話のネタにもなることでしょう。

Maker Faire Tokyo 2012

Maker Faire Tokyo 面白かったです。やっぱり一番感動したのはKURATASでした。倉田さんがインタビューでガンダムとかボトムズとかおっしゃってて、本当にロボット好きなのが伝わってきました。残念ながら動いているところは見れなかったのですが、脚部や腰の回転部分など、近くに寄ってみると鳥肌ものです。100万ドルで購入できるそうです!

IMG_1909

いろいろあったんですが、面白いと思ったのが機巧舎さんのMechanical Paper Modelでした。筐体から歯車まで全て紙でできているというこだわりよう。歩きかたもどことなくぎこちなくってかわいいです。

IMG_1895

「日本の電車はおもちゃでもぶつかりません」のキャッチフレーズにしびれました。Sakuraボード知りませんでした、そんなのあるんだなぁ。

IMG_1900

Anipov。車輪の中にPOVで画像を投影するという、18,900円で販売されるそうですよ。道路に反射するから夜間のライト補助にもなるかも。これははやるね!

IMG_1924

ニコ動で生中継してました。周囲を撮影しながらカメラマンさんの顔も撮影されてて、カメラマン兼リポーターができるという(笑)なるほど。

IMG_1916

想像力をかきたてられるイベントでした。

Arduinoでパノラマ撮影用カメラ回転ステージを作る その1

Arduinoでカメラのパノラマ撮影用ステージを作ってみました。

Arduinoを使って、といってもやってることはサーボを回転させてるだけなのですが電源の問題、回転させるステージの作成、といくつか解決すべき課題もあって、おもしろかったです。

Arduino_GoPro_Panorama0

Arduino制御のサーボが白い回転ステージを30秒間隔で90°回転させます。カメラはカメラ本体の機能を使って30秒間隔で撮影します。ので2分間で90°ずつ位置がずれた4 枚の写真が撮影されます。つなげれば時間差はありますが、360°パノラマ写真ができるということになります。

・カメラについて

GoPro HERO 2にはインターバル撮影機能(Time Lapse)がついていて、0.5~60秒の間隔ごとに写真撮影する機能がついています。このモードで30秒間隔で撮影させます。

・サーボについて

S125-1Tを購入しました。いろんなサイトで使い方が紹介されていますし、360°以上回転するものでもあったので、パノラマ撮影には最適かなと。回転させるステージは付属の白いパーツが使えそう。これにプラスチックの板をかぶせて1/4Wねじをつけました。このネジはカメラの三脚の穴にフィットするサイズなのだそうです。*2  サーボと三脚のアタッチメントも作ってもよかったのですが、秋葉原にあったスマホを固定する三脚用パーツが安かったので(500円)こちらを使用。

Arduino_GoPro_Panorama1

・電源

サーボ側はエネループ直列 x4(5.5V出てました。ってあれ1本1.2Vなのになぁ、おかしい・・・)。さらにArduino側に5.2V 700mAのスマホ用バッテリーを使いました。

Arduino_GoPro_Panorama2

Arduino

30秒間隔で90°ずつサーボでカメラ台を回転させるプログラムです。Servoライブラリを使用。6番ピンをサーボに接続しています。これでステージ90°回転→カメラ撮影(GoPro)→Arduino撮影・・・と交互に行います。

[java]

#include <Servo.h>

Servo servom;

void setup(){

servom.attach(6);

Serial.begin(9600);

}

void loop(){

servom.writeMicroseconds(700); //基準位置より90°回転からスタート

delay(30000);

servom.writeMicroseconds(700+700/3);

delay(30000);

servom.writeMicroseconds(700+700*2/3);

delay(30000);

servom.writeMicroseconds(1400);

delay(30000);

Serial.println("end");

}

[/java]

プログラム自体はシンプルなのですが、2つ問題が。

1. このサーボではwrite(angle)では角度と値が一致しないので、

writeMicroseconds(uS)  で、値と角度の対応を調べました。正確に測ったわけでなく、おおよその値ですが、233くらいの値で90°に対応していることが分かりました。

2. 0~500くらいではsleep中でもわずかに振動しながら動いてしまうため、ぶれる可能性がありました。そこで0からではなく700uS以上の値を使っています。きっとなにか理由があるのだと思います。詳しい方、どなたか教えていただけるとありがたいです。

・撮影

セットして撮影開始。3時間後、先にGoProの方がバッテリー切れしており、意外なことにサーボの方はまだ動き続けていました。

11Mピクセルで391枚、約200分の撮影でした。日没はダメだったのですが、月の方は出現してから上っていくまでの様子がばっちり撮れました。

Arduino_GoPro_Panorama4

撮れた写真、どう加工しようかな。というお話は別のエントリーで。

*1 サーボについてはこちらを参考にしました。またサーボの原理についてはこちらが非常に分かりやすかったです。

*2 この方法であれば三脚穴があるカメラなら何でもいけるということになります。GoProはハウジング入れて170g。パナのHX-WA10 230gもいけました。ところが本命だったD40は、重すぎてダメ。おそらくもっと大きなサーボを使う必要があります。カメラと回転ステージの接続については、こちらの記事を参考にさせていただきました。

* 2012.01.06 記事その2を作成しました。