技术

相机的闪光灯控制

适用产品

序言

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简介

以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的时间

// 将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的时间

// 闪光灯点亮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 );

// 曝光时间设置为500us
SetCamExposureTime( s_hCam, 500 );