Módulo de Câmera Global Shutter

O Módulo de Câmera Global Shutter é um sensor monocromático que captura movimento rápido sem artefatos de rolling-shutter. Adequado para rastreamento de alta velocidade, drones e snapshots de visão de máquina. O módulo é fornecido com o sensor MT9V024 ou MT9V034.

Módulo de Câmera Global Shutter

Para o datasheet completo, fotos e informações de compra, consulte a página do produto Módulo de Câmera Global Shutter.

Destaques

  • Sensor monocromático global-shutter de 752x480

  • 80 FPS em QVGA, 200 FPS em QQVGA, 400 FPS em QQQVGA

  • Faixa dinâmica de 55 dB

  • Compatível com todas as placas-base modulares da OpenMV Cam

Uso

Transmita vídeo em escala de cinza a 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())

O sensor ativa automaticamente o binning de pixels em resoluções mais baixas — 2x em QVGA (320x240) ou menor, 4x em QQVGA (160x120) ou menor — o que reduz proporcionalmente o tempo de leitura e eleva a taxa de quadros. No entanto, a câmera ainda precisa integrar luz pela janela de exposição solicitada, então combine a redução do framesize com um limite de exposição mais curto via csi.CSI.auto_exposure para realmente atingir as taxas mais altas (a imagem ficará mais escura — planeje iluminação extra):

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())

O modo acionado (triggered) alinha a integração de pixels exatamente com cada chamada csi.CSI.snapshot, de modo que as capturas se sincronizam com o snapshot em vez do clock de quadro de execução livre da câmera — útil para sincronizar com um evento externo ou outro sensor. Habilite-o através de csi.CSI.ioctl com csi.IOCTL_SET_TRIGGERED_MODE — a taxa de quadros cai para aproximadamente metade do modo de execução livre porque a leitura não faz mais pipeline com a integração do próximo quadro:

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())