Модуль камеры с глобальным затвором

Модуль камеры с глобальным затвором — это монохромный датчик, который захватывает быстрое движение без артефактов скользящего затвора. Подходит для высокоскоростного отслеживания, дронов и снимков машинного зрения. Модуль поставляется с датчиком MT9V024 или MT9V034.

Модуль камеры с глобальным затвором

Полный datasheet, фотографии и информацию для заказа см. на странице продукта Global Shutter Camera Module.

Ключевые особенности

  • Монохромный датчик 752x480 с глобальным затвором

  • 80 FPS при QVGA, 200 FPS при QQVGA, 400 FPS при QQQVGA

  • Динамический диапазон 55 дБ

  • Совместим со всеми модульными базовыми платами OpenMV Cam

Использование

Потоковая передача видео в оттенках серого при 320x240 (QVGA):

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.QVGA)
clock = time.clock()

while True:
    clock.tick()
    img = csi0.snapshot()
    print(clock.fps())

Датчик автоматически активирует объединение пикселей при более низких разрешениях — 2x при QVGA (320x240) или меньше, 4x при QQVGA (160x120) или меньше — что пропорционально сокращает время считывания и повышает частоту кадров. Тем не менее камере всё равно нужно интегрировать свет в течение запрошенного окна экспозиции, поэтому сочетайте уменьшение framesize с более коротким ограничением экспозиции через csi.CSI.auto_exposure, чтобы действительно достичь более высоких частот (изображение будет темнее — рассчитывайте на дополнительное освещение):

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.QQVGA)
csi0.snapshot(time=2000)  # let auto-exposure settle
csi0.auto_exposure(True, exposure_us=5000)  # cap exposure
clock = time.clock()

while True:
    clock.tick()
    img = csi0.snapshot()
    print(clock.fps())

Триггерный режим выравнивает интеграцию пикселей точно с каждым вызовом csi.CSI.snapshot, поэтому захваты синхронизируются со снимком, а не со свободно идущим кадровым тактовым сигналом камеры — полезно для синхронизации с внешним событием или другим датчиком. Включите его через csi.CSI.ioctl с csi.IOCTL_SET_TRIGGERED_MODE — частота кадров падает примерно до половины от режима свободного хода, потому что считывание больше не конвейеризуется с интеграцией следующего кадра:

import csi
import time

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.VGA)
csi0.snapshot(time=2000)

csi0.ioctl(csi.IOCTL_SET_TRIGGERED_MODE, True)

clock = time.clock()
while True:
    clock.tick()
    img = csi0.snapshot()
    print(clock.fps())