Внешний запуск камер с глобальным затвором на NVIDIA Jetson
Здесь описано, как перевести камеру с глобальным затвором в режим внешнего запуска (trigger) и синхронизировать захват кадров с внешним событием.
Подготовка
Установка pip и пакетов V4L2
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo pip install v4l2
Подключение
У камер с глобальным затвором, например Omnivision OV7251, OV9281, OV2311, есть вход сигнала внешнего запуска — XVS. Чтобы синхронизировать захват с аппаратным событием, подайте на него сигнал запуска 3,3 В от Arduino, Raspberry Pi или похожей платы. Длительность импульса запуска — от 1 мкс до 1 мс.
Запуск камеры через OpenCV
Скачайте пример для внешнего запуска из репозитория на GitHub и запустите камеру командой python arducam_external_trigger_demo.py -d 0 в терминале. Параметр -d 0 означает /dev/video0.

Клавиша «t» включает режим внешнего запуска, клавиша «c» — выключает его. Экспозицию и усиление настройте в другом окне терминала командами v4l2-ctl, например:
Экспозиция:
v4l2-ctl -d 0 -c exposure=3000
Усиление:
v4l2-ctl -d 0 -c gain=15

Захват в OpenCV по умолчанию ждёт кадр ограниченное время. Драйвер камер Arducam для V4L2 позволяет изменить или отключить этот таймаут, чтобы работать с более длинными интервалами между сигналами запуска.
Задать таймаут (в мс):
v4l2-ctl -c frame_timeout=4000
Отключить таймаут:
v4l2-ctl -c disable_frame_timeout=1
Запуск камеры в VLC
Откройте VLC и выберите /dev/video0 в качестве устройства захвата.

В меню Adjustments and Effects на странице v4l2 controls можно включить режим внешнего запуска и настроить экспозицию и усиление.

Советы
OpenCV буферизует один кадр, поэтому до получения первого кадра сигнал запуска нужно подать дважды.