Nikonデジイチインターバルタイマをつくる(Arduinoソフト完成編)

できました

構成が単純だったこともあり完成に漕ぎ着きました。外観はこんな感じです、中は本当にギチギチです。

分かりにくいですがLCDとプッシュボタンにライトを点灯させています、やっぱりサブカメラが今時IXY200って何とかしないとダメですねぇ。SONYのExmorRのフラッシュメモリビデオカメラなんて良いかなと検討中です。

回路図は最終版ではこのようになりました、フォトカプラのTLP621-2をRLS/WUP信号の間に入れて電源OFFでシャッター作動現象を回避しています。また13番ピンを入力として使用するためにArduinoボード上のLEDを除去しています。LCDのR/W等を省略してやりくりすれば必要無いですので、もしこの作例を作りたいという方がいらっしゃいましたら、ピンの定義はスケッチ中のIO.hにまとめてありますので適当に再アサインして使用してください。

バイナリサイズは7.5Kとなりました、旧ATmega168のArduinoにも入ります。ハード構成は前回ざっと説明しましたが、ソフトの機能としては基本的にNikon純正の外部インターバルタイマのMC-36の上位互換となっており、ディレイ、インターバル、リリースの3点をミリセカンド単位で指定が可能で、設定はEEOROMに保存することができます。シャッター数はどさっと9999まで、操作はゲーム屋らしくロータリーエンコーダと2ボタンで行います。

あとはこのタイマを使って撮った作例、なんですが今週はお盆でどこも混雑してそうなので再来週末くらいに行ってきます。ソフトで被写界深度は以前のエントリーの通り、クオリティと手間的にNGなのでまたティルトシフトレンズ借りようかと。その間仕事の方も若干余裕が出てきたので、今回ソフト制作でハマった点などいろいろ書いてみようかと思います。

Nikonデジイチインターバルタイマをつくる(Arduinoハードウェア概要編)

ハードが大まかに完成

ケースは定番のタカチのプラケースを削って仕上げてみました、型番はSS-125だと思います。小さくまとめるようと無理に詰めすぎで失敗ですね、加工もすっごく雑だ。どうでもいいですがキングジムさん「透明、白字」のテープの細いの出してください、12mmはこうゆう用途にはちょっと太すぎ。

構成としてはArduinoDuemilanoveをメインに、16X2のLCD(秋月SD1602HUOB)を表示用、ロータリーエンコーダー(秋月EC16B)をパラメータ操作用、照光プッシュボタン×2を同じく操作用、ロータリースイッチを電源スイッチ兼照光モード操作用、といった構成で仕上げました。回路図としてはこんな感じ。

方針としてはハンダや外部部品を極力省略して信頼性を上げる作戦です。LEDは全てPWMで点灯させています。調子に乗ってLCDのコントラスト制御もPWMで直結してみたのですが、周波数が低いせいかデューティー比を上げるとアナログTVをカメラで撮ったようにストライプ状になってしまいます。ちょうど見やすいコントラスト領域だとそれほど目立たないのでそのままにしてしまいましたが、マネしないほうが良いと思います。LC回路で平滑化して使うと良いんでないでしょうか。

カメラに繋いでテスト

懸念の電源で、前回Arduinoは6V~的なことを書いていましたが、定格は7V~のようです。回路図を見るとピン入力のVINは逆電流防止用のダイオードをショートカットしているようなので、ダメモトで繋いでみました。

結果としては問題なく動作して、簡単なテストコードを書いてボタン連動でシャッターを動作させる所まで確認できました。念のため可変電圧電源を繋いで下限を探ってみましたが5.5V程度まではイケるようです。ただ不具合も何点か見つかっています。Arduino標準のLCD操作ライブラリのLiquidCrystalは検索すると出てきますが初期化シーケンスが適当なので高確率で初期化失敗して何も表示されない状態になります。また、デフォルトだとピンが入力に設定されているせいかArduino側の電源を落とすとReady/Release両方がLになってしまいシャッターが落ちてしまいます。間にフォトカプラを入れる必要がありそうです。

Nikonデジイチインターバルタイマをつくる(10pターミナル解析編)

車盗られてウツウツですが進めています。ハードの目処はついたので制御コードを本格的に書く前に手持ちのMC-36の挙動を基に10ピンターミナルの仕様を解析します。

ニコン10ピンターミナルの仕様

ニコン中級機以上に搭載されている10ピンターミナルですが、色々解析されている方が多いので情報には困りません。とりあえずピンアサインを調べなければならないのですが。

ニコンのデジタル一眼レフにGPSを繋ぐ

などにストレートに載っています。出典は海外サイトらしいのですが、実は手元にGPS接続ケーブルのMC-35がありバラしてみたところ、

このように全てしっかりシルク印刷してありましたので以下にまとめておきます。ケーブルの色はMC-35も変換コネクタ製作用に買ったMC-21も同じだったので、おそらく10pinターミナル用アクセサリは全て同じだと思います。

ケーブルカラーピン番号正式名称備考
1VBAT+6Vバッテリー電源
2RXシリアルデータtoCamera
3IO1不明
4SGNDシグナルグランド
5PGNDバッテリーグランド
6TXシリアルデータfromCamera
7RLSシャッターリリース
8VCC+5V
9WUPシャッター半押しAF作動状態
10N.C.未使用

MC-21をカットして汎用化

自作外部機器を付けるにせよ信号を解析するにせよそのままではやりにくいので汎用コネクタを中間に入れます。私は不恰好なのは承知でセントロニクス14Pを入れてみました。これなら当分入手に困らないはず。

MC-36の動作を解析する

ピンアサインはおおよそ判明したので、手持ちの外部インターバルタイマのMC-36、

リモート | ニコンイメージング

これの機能をざっくり説明しますとループ開始前のディレイ、シャッター時間(バルブの場合)、インターバル(シャッター時間込み)、シャッター回数を指定してリモートでコントロールできるという機器です。時間は全て秒単位なので動画っぽい物を取るにはツカエネーという訳です。これをこんな感じでオシロで解析します、信号はSGND、RLS、WUP、VCCのみを繋げてあります。

あやしい絵ズラですね、実は車が盗難に会った時警察が家に来たのですが、リビングがこの状況でおお焦り。結局狭い玄関口で被害届を書いてもらいました、説明も面倒ですし。

まずRLSとWUPの挙動を解析します。設定はディレイ5sec、シャッター1sec、インターバル5sec、横軸の1マスが1sec、縦軸は2Vです。

RLSがちょっと特殊でスリープ状態ですと2V程度でプルアップされているようです、一旦これは置いておいてWUPはシャッターリリースの2000msec前にLすれば良いようです。

次はシャッター動作に必要なRLSの最短時間を調べます。設定はディレイ5sec、シャッター0sec、インターバル5secで見てみると。

カーソルで計測するとちょうど100msecという結果になりました。

次にVCCの挙動があやしいという話がありましたので調べてみます。設定は同じく設定はディレイ5sec、シャッター0sec、インターバル5secで、今度は2ch(下)をVCCに接続します。

どうもRLS=HもしくはWUP=Lにされるまで出力されないようです、はっきりさせる為にRLSとWUPのMC-36<->D300間の接続をそれぞれ切り離して2回計測してみました。するとRLSのみ変化してもVCCは無反応、WUPの時のみはVCCが来ました。つまりWUP=Lになるとスリープが解除されVCCが出力される仕様になっているようです。

どうする電源

VCCはスリープで+0Vになってしまうので、今回の製作機器には使えないことが判明しました。一方VBATは実測で5.92V程度、こちらはカメラ側の電源によらず電圧が来ているのですがバッテリーの生状態では8V近くありますので何らかの保護回路を経由されている様子です。Arduinoの最低入力電圧が6Vですので微妙に下回っています。負荷を入れると確実に電圧は落ちると思いますので危険ですねぇ。多分低ドロップのレギュレターで余裕を見た数字だと予想されますが。

10pinターミナルでシャッター制御する解析まとめ

  • WUP=L RLS=L立下りエッジでシャッターが切れる、Blubだと両L維持時間がそのままシャッター速度になる
  • MC-36の場合WUP=LはRLS=Lの2000msec前に
  • RLSは最短100msec
  • VCCはスリープ状態で+0Vになる、WUP=Lでスリープが解除され電圧が来る
  • VBATは実測5.9V程度で頼りない

こんな所でしょうか、電源が問題になりそうです。

迷いトランポ探しています

なまえ:

レジアスエースDX シルバー 2007年モデル、ナンバー 横浜400ね1180、車体番号 TRH200-0058730

とくちょう:

DXに前後カラーバンパーを入れています、ホイールは写真と違って復刻版の、

MOONEYES – ENKEI BAJA II Wheel エンケイ バハ II ホイール

にヨコハマmap E340Cを履かせています。リアゲート上部にアルミ板金とブラインドリベットを使って自作した巨大で不恰好なカメラカバーが付いています。

にちじ:

6月28日夕刻に居なくなっていたことに気づく。

盗まれたァ!

多いとは聞いていましたがやられました、、、調べたらここ2年連続盗難車ランキングぶっちぎりの1位だそうで。車両保険に入っていたのが唯一の救いです。写真は無いのですが積載していたバイクもコンボで持っていかれました、こちらはDUCATI M900’99モデル横浜 す1566、車体番号ZDM1NC3NXXB022186になります。オールペンの弱いキャンディの入った青になっています。

その後、、発見されず(9月1日追記)

結局発見されず保険金が下り車両の所有権は保険会社に移ることとなりました。積載物の分は丸損なのでかなりトホホな状況なことに変わりはないのですが。もし該当車両を目撃された方がいらっしゃいましたらまずは警察までご一報を。

手書きデプスマップを使った被写界深度(DOF)表現

デプスマップを作る

手間の割りにあまり良い結果を得られませんでしたが一応メモを残しておきます。タネ明かしをすれば非常にシンプルな方法なのですが、手書きでデプスマップを書いてレイヤ演算で2Dブラーをかけます。ソフトは今回Premiereを使用しましたが、レイヤ演算が可能なソフトなら何でも再現可能だと思います。

今回使用した元イメージです、絵ズラが良いので以前海外で撮った物を使ってみます。

まず基準となる距離を適当に決めてペイントソフトで別レイヤーを起こして塗っていきます。参照されるのは輝度値なので実は色は何でも良いです。

あとは適当に補完して塗りつぶします。今回は距離=輝度となるような塗り方ですが、逆でも問題無いので塗り易い方で。

完成しました!、それにしてもひどいヤッツケ振りだ。。当然ですが本当はスムーズに階調が付くよう描くべきです。実験ですし手間が勿体無いのでこの程度で。

Premiereで合成

次に作ったデプスマップをPremiereで処理します。イメージをクリップに追加してエフェクトの「アリスマチック」で「差」演算にしてフォーカスを合わせたいカラーを設定します。

するとこのように指定カラーから離れているほど輝度が高くなるイメージになります。

さらにクリップをネスト化し、対象のイメージにエフェクトの「ブラー(合成)」でブラーレイヤーに先程のクリップを指定します。するとこのように最初にアリスマチックで指定した値を中心に段階的にブラーが入る絵になる=被写界深度的表現となります。

ここまではPhotoshop等でも可能ですがPremiereなら先ほど指定した値にキーフレームを埋め込んでフォーカスが移動している風なアニメーションができます。試しに動画にしてみたのですがうーーーーん。もう少し真面目にマップを作らないとダメな模様です。

次は・・・

前回ニコン機のインターバル撮影関係の機能がダメだといった感じの内容を書きましたが、なら自分で何とかしてしまえということで、

Arduinoでミリセカンドまで指定できる外部インターバルタイマを作ってみましょうという魂胆です。久しぶりに秋葉原で電子部品を買い集めてみましたが結構な金額になってしまいました。贅沢な趣味です、電子工作。今日の所はこの辺まで組みあがりました。

久しぶりのまとまった量のハンダ付けで失敗しまくりです、あまりにヒドイ。それにしてもArduinoはすっごく楽ですね、流行るのも分かる気がします。

PC-Eレンズでユニクロカレンダー的な動画をつくる

すごい久しぶりにデジカメねたです。といっても数エントリーしかないけどな!

UNIQLO CALENDAR

先週公開されたユニクロカレンダー良いですよね、

UNIQLO CALENDAR

ティルト・シフトレンズで撮ったミニチュア風写真を動画風に仕上げた物のようです、グッと来たのでツーリングの予定をキャンセルして自分でも撮ってみることにしました。天候が微妙になったのでどのみちキャンセルな結末なんですが。

PC-E Micro 85mmを借りてきた

本当は45mmが良かったのですが、生憎予約有りとのことでしたので85mmを借りてきました。

PC-E Micro NIKKOR 85mm f/2.8D | ニコンイメージング

去年ナノクリで一気にリプレースされたニコンのティルト・シフトレンズ群の一本です。定価も一気にアップして315,000円、高い!まず買えない。

機能的にはこのように物理的に撮像面に対して光学系を傾斜できるので、ピント面をある程度平面的にコントロールできるというレンズです。今回のように本来被写界深度が弱い無限遠を無理矢理ボカす用途にも使えますが、逆に合わせることも可能です。

開放で近距離を撮るとこのように良くあるデジイチ的被写界深度になりますが、

ティルトで傾斜させ無理矢理ピントを合わせるとこうなります。

限界まで絞ってもこうはならないですね、しかし平面的ですので下に物を置いて傾けてみると、

このように仕掛けがバレてしまいますが、さらにレボルビングを使って合わせてやると、

この通りです、商材撮影なんかでマクロの使用頻度の多い方はかなり有用なんでないでしょうか?単焦点でMFのみという今時ハードコアなレンズですが。あとニコンのマクロなので実効F値なのも注意ですね。さすがに露出計はちゃんと絞りに連動する上、プレビューボタンもありますので想像してたよりはかなり使い易かったです。

被写体を探す旅に

ニコンの中級機以上はインターバル撮影機能があるので、メニュー操作だけで撮れるハズ、だったのですが、やっぱりというかミニチュアっぽく見える構図はかなり限定されているようです、動画にする前提だと動きも欲しいのでさらに高難易度に。地上からですとがんばってこの程度ですかねぇ。

お台場の例のアレです。丸1日いろいろ周ったのですが、やっぱり定番的に高所から45度付近で見下ろす絵に落ち着くようです、三脚を立てられておいしいロケーションをフレーミングできる展望台をどれだけ知ってるかがポイントでしょうか?

そういうわけでお待たせの動画です。

これの為だけにプレミア会員にしてみましたが、やっぱり解像度がある程度ないとインパクト無いです、動画サイトだとどうしても横位置に固定されるのも痛いところ。

雑感

今回の機材はD300なのでAPS機でボケは小さめになるせいもあり、最初は本当にそれっぽい絵が撮れるかなり不安だったのですが、構図を選べばそこそこ行けるようです。今回使ったPC-E85mmの性能に助けられた面もあります、色物と思いきや開放でもカリっと写ってフレアも少ない良いレンズです。

ついでに撮ったすごく適当な作例。でも値段がなぁ。あとニコンさんにはインターバル撮影関係の機能強化をお願いしたいですねぇ、1秒未満の時間を設定できないとか低速連続撮影(レート設定可能)にすると上限100コマ制限が入るのでこれもイマイチと。APS機は画素数はほどほどにして動画とかこっち方面の進化で行くと良いんでないでしょうか?

予告みたいな

今回のように真面目?にティルトシフトレンズを使いミニチュア的に見せる方法もありますが、ソフトウェア的に加工する方法もあるようです、色々見てみたのですがゲーム系とはいえCGプログラマから見るとあんまりな物が多く、え!これでお金とんの?という感想です。実験してうまく行ったらポスト処理でより綺麗にミニチュア表現が可能な手法を紹介したいと思います。自前でソフトを書く羽目になったら少し先になると思いますが(またそれかよ!)

ReadyNASで遊ぶ(つもりだった)

どもです。仕事の方が佳境で精神的にマイっちゃってます。次世代機ツライっす。

で、久しぶりに小ネタができましたので晒しておきます。

NASを導入しましたよ

年末に値段がググっと下がった液晶テレビ、ひかりTV目当てでREGZAのZ7000を買ってみました。ところがネットTVはあまりのもっさりぶりに早々に放置、だったのですがTV単体での録画機能が思いのほか便利でもう録画しまくりです。最初はUSBバスパワーで動作する2.5HDDを使っていたのですが、容量が心許ないのでNASを導入しました。国内のBやらIやらのでも良かったのですが、せっかくなので遊べる物というわけでコレですコレ。

NETGEARのReadyNAS duo、元々クセのあるデザインのネットワーク機器で有名なNETGEARですが、InfraNTというやはりクセのあるNASメーカーを買収して出しているのがコレなようです。外装は前面以外は金属製で、カチっとした高級感があります。ちなみにCPUはSPARCだそうです、かつてtelnet経由でしか触れないお高い彼がいまやご家庭の下働きで時代を感じますねぇ。私はNTT-Xストアで21000円+送料無料で入手しました。ただHDDはSeagateの例のバグファームの物らしいので即交換です。

ダイナミックDNS設定

NASといえばリモートアクセスですね!、早速ダイナミックDNSの設定にかかります。今時NASでアドオン機能追加は結構ありますが、ReadyNASはさらに仕様が公開されていてフォーラムも活発です。ダイナミックDNS自動更新デーモンといえばddclientが有名ですが、早速アドオン化されている模様です。

NETGEAR ReadyNAS • View topic – DynDns

あっさり動作してしまったのですが、手順を一応メモしておきますと、インストール後一旦DynDnsサービスを止めてwebrootという共有を作ります。中を見ると既に/webroot/ddclient/ddclient.confというファイルが既にあるので、これを使用中のダイナミックDNSサービスに合わせて設定します。

Managed DNS | Outsourced DNS | Anycast DNS

だとこんな感じでしょうか

daemon=300
pid=/var/run/ddclient.pid
cache=/ramfs/ddclient.cache
#do not activate ssl
ssl=no
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
login=※ログイン名
password=※パスワード
protocol=dyndns2
server=members.dyndns.org
wildcard=YES
※取得したドメイン名

サービス起動後リブートしないとダメなようです。

まとめ

本当はこの辺で少しヒネる、というか自分でアドオン書いて対応させる予定だったのですが、肩透かしを食らった気分です。幸いx86のクロスコンパイラも公開されていますので、適当なOSSを自前ビルドして何でもアドオン化できます。玄箱みたいな完全なLinuxBOXだと一見様お断り風になってしまいますが、アドオンなら誰でも使えますしね。ただセキュリティには気をつけないとですが。何かネタを思いついたら書いてみます、何か無いかナァ。