Модуль камери з глобальним затвором¶
Модуль камери з глобальним затвором — це монохромний датчик, який захоплює швидкий рух без артефактів роликового затвора. Підходить для високошвидкісного відстеження, дронів і знімків технічного зору. Модуль постачається з датчиком MT9V024 або MT9V034.
Повний технічний опис, фотографії та інформацію про замовлення дивіться на сторінці продукту 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())