外部ストロボ同期用 .
スレーブユニットの作成 |
小型三脚に付けた 昔々の GN.30. ストロボ
![](Strobo_x2.jpg)
まずは いきなりですが、うまく行った場合の
スレーブストロボ効果確認サンプル写真です。
被写体の基板側面に、スレーブユニットを使用して
もう 1灯のストロボを同期照射した場合の効果例。
撮影したデータは (トリミングとリサイズ) 以外は
加工していません
ストロボ発光無し 手持ち
![](EX_strobo-non.jpg)
被写体深度と 手ぶれに やや不満
カメラ内蔵ストロボ 1灯
![](EX_strobo-x1.jpg)
立体感と 発色性に やや不満
カメラストロボ 1灯 + 外部ストロボ同期点灯
![](EX_strobo-x2.jpg)
エイヤ!で撮った割りには、だいぶ良く写りました。
|
さて本題です .
スレーブユニットの回路
最近のデジカメ内蔵ストロボは、2回発光しているため
単純なスレーブユニットでは、同期しません。
動作例です
赤が、マスター側のストロボ発光パルス
黄色(下側)がスレーブ側の発光パルスです。
![](slave_puls.jpg)
2回目のパルスで発光します。
(この例では、230mS遅れで2回目が発光しています)
1発しか発光しないストロボの発光は無視します
![](singl_pls.jpg)
スレーブ側(黄色)は 発光しません。
つまり 同期させるためには、分周が必要となります。
また、2回目の発光を いつまでも 待ってる様では
使い物になりませんから、待ち時間が過ぎたら 1回目の
発光は取り消して最初から待つような仕組みも必要です
とはいえ結論から言うと単に 1回目を無視して 2回目で外部ストロボを
点灯させるだけですから、TTLのFF等を使っても 構成できるのですが、
時定数など アナログ的な調整が必要となり、マイコン回路でソフト制御
する場合に比べると、再現性でかないませんし 小細工が大変です。
ということで、大好きなAVRマイコンを使って、
ソフト制御で 本発光に同期できるようにします。
tiny461版の回路例
![](slave_curcuit.jpg)
< 仕様案 >
・プリ発光対応スレーブユニット
・動作確認用にLED表示付き
・電源は+5Vで動作(電池4.5Vも考慮)
割込1個と、外部駆動用のポートが 2個あれば出来ますので Tiny2313でも 十分ですが、今回は 実験用の基板に PCM1792制御基板を流用しますので、Tiny461を使用しました。
基板を流用すると 色々弊害も出ます。
作成に手抜きをしたいので、ポートの 間にあわせ などが良い例です。
今回のような場合は、割込処理に INT0/INT1 等を使用すれば良いのですが たまたまそのポートは、LCD用にふさがっていますので、簡単に流用できる、PCINT4(ピンチェンジインタラプト4番)を使用しました。
このPCINT4採用が、予測不能のバグ発生の原因でした。
ソフトのアルゴリズム(というほどのものでもないが)は、親カメラの ストロボ発光で生ずる、フォトトランジスタ の受光パルスで 割込処理する というものです。
割込先でカウントし 2回目なら スレーブ発光するという 極めて単純なものです。
しかし、なんと 発光しなかったり タイミングが合わなかったりと 思惑通りに動きません。 こんな時、LCD駆動部を積んでいる強みが 発揮されます。 処理内容を
表示できるので デバッグが簡単になります。
さて、LCDに表示させてみると、数が合わないのです。
うぅ〜ン ・・・・・ 0、1、2 の たった 3こ の数字を数えられない
バグの結論
ピンチェンジインターラプトは波形によっては1発のパルスで、 2回の割込が発生する。 割込パルス幅分の ディレーを見るか カウント値を考慮する必要がある。
ということです。
INT0/INT1等の割込処理の場合は、同期ポイントを エッジの上/下、レベルで判断、等細かく設定できますが、ピンチェンジインターラプトはピンの状態が変化したら割込が発生する・・・という曖昧な動作になります。
今回のケースでは 外部ストロボを同期したいので 処理中のディレーは入れる場所には注意が必要ですが、デレィー無しで割込処理すると、必ず発光1回で
2回発生します (実際はプリ発光と本発光で4回) ので 立ち下がり エッジ駆動が 期せずして 実現したという オマケがつきました。
使用部品
・フォトトランジスタ : 赤外タイプを使用する。
可視光タイプは蛍光灯等の脈流に反応する。
・駆動用トランジスタ : PE3057のシンクロ端子電圧は約30Vなので
2SC1815クラスでOK。
・シンクロ端子 : ホットシュータイプでシンクロコード付きシューが
売られてるので それを流用して使用。
|
完成 !!
![](Tripod_slave-2.jpg)
小型三脚に、自由雲台とシンクロコード付きホットシューを組み合わせます。
三脚 ちっちぇ〜
![](Strobo_x2.jpg)
少し 三脚が小さかったようで 「頭でっかち」
秋月の単三電池3本BOXとアクリルケースに収めて最終形態。
基板は、1cm程カットしてますが塩梅良く収納できます。
![](slave_UNIT_Casing.jpg)
最近のマイコンは、電源電圧5Vにこだわらず シビアな要求が無い
レベルで使用するなら 電圧の安定化も不要なので 出たとこ勝負の
3.9V(電池生出し)で動かしてます。 (BrownOutは、2.6V設定)
便利になったものです。
|
参考ソース画面
かなり内容的に 端折ってますので
このままでは動きませんが 肝は入ってます
ご参考まで
![](souce.jpg)
実際には LED駆動や LCD駆動 他、 が 入ります
質問がありましたので、ちょっとだけ補足
Q: 最後の方で while(1)の永久ループになっているが?
AS: WatchDogTimerで 2秒後に 最初から回るようになってます。
Q: j とか i の ループタイマーがうまく設定できないのだが?
AS: 変数宣言時にvoratileを付けます。 ex. volratile int i,j;
|
|