技術情報

カメラによるストロボ制御

該当製品

はじめに

BUシリーズ、BGシリーズ、BCシリーズ(I/Oコネクタ搭載モデルのみ)、DUシリーズ、DDUシリーズ及びEXシリーズ (以下B/D/Eシリーズ) には、高性能なGPIO (General Purpose Input/Output) が備わっています。GPIO機能を組み合わせることにより、カメラによるストロボの発光タイミング制御を実現出来ます。

  1. 1.GPIOの概要
  2. 2.GPIOの極性
  3. 3.ストロボ信号出力の設定方法

1.GPIOの概要

GPIOの内部構成として、BUシリーズの例を以下に示します。

BUシリーズにおけるGPIO内部構成
BUシリーズにおけるGPIO内部構成

ストロボ制御としては、出力ピン (BUシリーズではLine1) もしくは入出力ピン (BUシリーズではLine2) を使用できます。入出力ピンを使用する場合は、LineModeAllの該当するビットを出力モードに切り替える必要があります。

// Line2を出力に切り替える場合
SetCamLineMode(s_hCam, CAM_LINE_SELECTOR_LINE2, CAM_LINE_MODE_OUTPUT );

2.GPIOの極性

接続するストロボにより、入力極性が異なります。

B/D/Eシリーズの工場出荷設定では、GPIOの出力は負極性になっています。正極性入力のストロボをお使いの場合は、LineInverterAllレジスタを使用しカメラの極性を反転してください。

以下に、ストロボの接続例を示します。

負極性の場合
負極性の場合
正極性の場合
正極性の場合

// Line2の出力信号を反転し、正極性にする
SetCamLineInverter(s_hCam, CAM_LINE_SELECTOR_LINE2, true );

3.ストロボ信号出力の設定方法

3.1.ExposureActiveを使用する場合

標準的な接続方法である、カメラの露光期間にストロボを発光させる方法です。

トリガモードOff、TriggerSequence1 (Levelモード) 及びTriggerSequence6 (Bulkモード) では、この方法をお使いください。

ExposureActiveを使用したストロボ信号出力
ExposureActiveを使用したストロボ信号出力
ExposureActiveを使用したタイミング
ExposureActiveを使用したタイミング

// Line2の出力信号をExposureActiveに切り替える
SetCamLineSource (s_hCam, CAM_LINE_SELECTOR_LINE2, CAM_LINE_SOURCE_EXPOSURE_ACTIVE);

3.2.Timer0Activeを使用する場合

露光時間が短く、ストロボの発光/消灯の遅延が問題となるケースがあります。この場合ストロボの輝度が安定している部分でのみ露光時間を行う事が有効です。

B/D/Eシリーズには、TimerControlというパルス発生器が備わっています。これを用いることにより、ストロボ発光とカメラの露光を任意に設定可能です。

この使用方法は、TriggerSequence0 (Edgeモード) でのみご利用いただけます。

※本機能はBGシリーズ (CCDモデル)、BG205M-CSではご利用いただけません

Timer0Activeを使用したストロボ信号出力
Timer0Activeを使用したストロボ信号出力
Timer0Activeを使用したタイミング
Timer0Activeを使用したタイミング

// ストロボを700 us点灯させ、中央500 usを露光する場合のサンプル

// Timer0Active信号の基準信号にトリガ受付を指定
SetCamTimerTriggerSource(s_hCam, CAM_TIMER_TRIGGER_SOURCE_FRAME_TRIGGER );

// Timer0Active信号の遅延を設定 (遅延なしに設定)
SetCamTimerDelay( s_hCam, 0 );

// Timer0Active信号の幅を700usに設定
SetCamTimerDuration( s_hCam, 700 );

// Line2の出力信号をTimer0Activeに切り替える
SetCamLineSource (s_hCam, CAM_LINE_SELECTOR_LINE2, CAM_LINE_SOURCE_TIMER0_ACTIIVE );

// トリガ信号検出から露光開始までの遅延を100usに設定
SetCamTriggerDelay( s_hCam,100 );

// 露光時間を500 usに設定
SetCamExposureTime( s_hCam, 500 );