CHDK
CHDK(Canon Hacker’s Development Kit)に関するアレコレ
CHDKの導入に関しては、CHDK for KAPにまとめています。
無限遠にフォーカスを固定
CHDKでインターバル撮影をする場合、フォーカスを固定してしまうことで、インターバルの間隔を短くすることができます。
カイトフォトの場合、無限遠に固定することが多いわけですが、その場合には、以下のようなスクリプトを追加します。どちらも、luaの場合です。
set_foucasを使う
フォーカスの距離を指定する方法です。
完全な無限遠を指定することはできませんが、このコマンドで指定できる最大値を指定する形で無限遠の指定としています。
そして、指定の後、オートフォーカスをロックしてしまいます。
set_focas(65535)
sleep(500)set_aflock(1)
sleep(500)
set_propを使う
カメラが持っている無限遠の指定を利用する方法です。
set_propを利用することで、この表にあるような機能を呼び出すことができますので、これを利用して無限遠を指定します。
機種(Digicのバージョン)によっては、設定する値が違いますので、注意が必要です。
こちらも、設定の後、オートフォーカスをロックします。
set_prop(6,3)
sleep(2000)set_aflock(1)
sleep(500)
2011年2月8日 Posted by staff_u | コメント
S90の準備完了
カイトフォトで使うカメラには、常に強い衝撃にさらされる可能性が付きまといます。特に、最近のカメラはどれもレンズ部分が伸びるタイプのものばかりなわけですが、この部分は特に脆い。この部分をぶつけてしまうと、かなりの確率でカメラを壊すことになります。
そこで、A570ISの時には、標準で用意されているコンバージョンレンズアダプターを付けることでレンズへのダメージを防いでいたのですが、S90にはこうしたアダプターが用意されていません。
しかし、探せばあるもので、今回入手したのがこちら。金属製で結構しっかりした感じです。
ebayで落札したのですが、到着までにひと月以上もかかってしまいました。
落札した後に、同様のものが国内でも入手可能なことを知ったのですが、送料込みで1800円ほどでしたので、まあ仕方なしという感じですね。
で、装着した姿はこんな感じです。
30gほど重くなりますが、レンズをしっかりとガードしてくれますので仕方ありません。
ニューカメラの準備も整ったのでテストに行きたいところではありますが、連日の雪のおかげで、穏やかな天気の時には筋肉痛が…(苦笑)
しばらくは、GoPro HDで雪の降る中が中心になりそうで、S90の出番は当分無さそうです。
Rigがやっと完成
AuRiCoを入手してから1年半。ずーっと放置してしまったのですが、勢いでなんとかRigの形に完成させました。
主要な部品は
- コントローラーのAuRiCo
- 1.5mmのアルミ板
- サーボモーターはGWS Micro 2BB MG
- 電源はeneloopの単四を3本
- ギアは12歯と45歯の組み合わせ
といった感じです。
シャッターはCHDKのUSB-Remoteを使っています。CHDK標準装備のUSB-Remoteで行けるかと思ったのですが、残念ながらシャッターの半押し状態にしかならず、スクリプトで処理しています。
スクリプトのオートスタートも設定してしまっているので、カメラの電源オン&Rigの電源オンで撮影開始となります。
部品のサイズや重量バランスなどをあまり考えずに始めてしまったので、ちょっと無理やりな感じはありますが、カメラ込で500gをちょっと超えるくらいの重量に収まりました。
アルミ板をもう少し薄いものに、サーボモーターをさらに小型のものにすればもう少しは軽量化はできそうです。
もう少し寒くなって、積もった雪が安定してくれたらテストでしょうか。
New Kap Camera
カイトフォトでCHDKを使い始めてから、うちのメインだったPowerShot A570 IS。
2007年に登場したカメラですから、まだ3年といったところではありますが、もう少し広角でDigic IVの機種が欲しくなり、いろいろと悩んだ結果、Powershot S90の中古品を入手しました。
入手したカメラのファームウェアは1.01bで、CHDKはあっさりと動いてくれています。
標準でRAWが撮影可能なカメラですが、CHDKでRAWを有効にすれば、撮影モードに関係なくRAWで撮影できるようになります。ただし、DNG4PS-2の対応機種には入っていないため、カメラで直接DNGを出力する必要があります。
また、Minimalistic Intervalometerのスクリプトも問題なく動きましたので、インターバル撮影も問題はありません。しかし、RAW(DNG)で出力する場合には、間隔を6秒程度にしないと、処理が間に合わないためか、スクリプトが途中で止まってしまいました。このあたりは、SDカードを変えてみたりして、もう少しテストしてみたいと思います。
単三電池ではなく小型のバッテリーを使うこと、大型の液晶なことを考えると、撮影中はディスプレーをオフにするようにスクリプトに手を加えなければならなさそうです。
ついでに、CHDKを始めてから入手したPowerShotを並べてみました。ずいぶんと集めたもんだと思います(苦笑)
まだすべてのカメラが動いてくれています。
当面はA570がメインのままですかね…特に、雪の間は。
2010年12月8日 Posted by staff_u | コメント(2)
速度と精度を考えると…
Ultra Intervalometerは非常に手軽なインターバル撮影用のスクリプトなのですが弱点がいろいろとあります。
ひとつは、インターバルの指定の問題。
処理と処理の間の時間を指定する形になっているため、厳密に何秒おきに撮影するといったことが困難なことでしょう。
もうひとつは処理速度の問題。
これは、Ultra Intervalometerの問題というよりも、uBasicの問題でして、このスクリプト言語の処理速度が遅いんです。
まあ、カメラに無理やりスクリプト処理を導入しているわけで、ぜいたくなことは言えないわけですが、それでも、何とかしたいという願望は出てくるわけでして…。そして、導入されてしまったのがLuaです。
CHDK上のuBasicと比較して、様々なライブラリーが用意されていたり、処理速度も100倍速いなんて話もあります。
Luaで作られ公開されているスクリプトは、まだ、数が少ないのですが、インターバル撮影に関してはこちらのページに2つのスクリプトが公開されています。
非常にシンプルで雛形に使いやすそうな「Minimalistic Intervalometer」ですが、カメラの処理時間も考慮して、指定した間隔でシャッターを切るようにプログラムされています。
そこで、これをベースに1枚目までの待ち時間の処理を追加したのがこちらです。「mint_cus.lua」といったファイル名で保存してください。
--[[
@title Minimalistic Intervalometer custom
@param a Shooting interval, min
@default a 0
@param b ...sec
@default b 5
@param c Delay 1st sequence (min)
@default c 1
@param d Delay 1st sequence (sec)
@default d 0
--]]
Interval = a*60000 + b*1000
Delay = c*60000 +d*1000
function TakePicture()
press("shoot_half")
repeat sleep(50) until get_shooting() == true
press("shoot_full")
release("shoot_full")
repeat sleep(50) until get_shooting() == false
release "shoot_half"
end
sleep(Delay)
repeat
StartTick = get_tick_count()
TakePicture()
sleep(Interval - (get_tick_count() - StartTick))
until false
A570でのテスト結果ですが、RAWをオンにした状態でも5秒単位でシャッターを切ることに成功しています。他の機種でも画素数や処理能力、メディアの速度などにもよりますが、このあたりはクリアできるのできるのではないでしょうか?
さらにA570用に設定を加えて無限遠にフォーカスをロックして、ピント合わせの時間も排除したバージョンでは、非常に高い精度で3秒単位もクリアしています(ただ、機種によって設定しなければならない部分があるので今回は公開していません)。
Ultra Intervalometerではちょっと枚数がかせげないんだよな…と感じている方は、ちょっと試してみてはいかがでしょう?
2010年9月15日 Posted by staff_u | コメント(2)






