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

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

Global Shutter Camera Module

Повний технічний опис, фотографії та інформацію про замовлення дивіться на сторінці продукту Global Shutter Camera Module.

Особливості

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

  • 80 кадрів/с при QVGA, 200 кадрів/с при QQVGA, 400 кадрів/с при 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) або менше — що пропорційно скорочує час зчитування та підвищує частоту кадрів. Однак камера все одно повинна інтегрувати світло протягом запитаного вікна витримки, тому зменшення розміру кадру поєднуйте зі скороченням обмеження витримки через 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())