Global Shutter Camera Module

Il Global Shutter Camera Module è un sensore monocromatico che cattura il movimento veloce senza artefatti da rolling shutter. Adatto al tracciamento ad alta velocità, ai droni e agli snapshot di visione artificiale. Il modulo viene fornito con il sensore MT9V024 o MT9V034.

Global Shutter Camera Module

Per il datasheet completo, le foto e gli ordini, consulta la pagina prodotto Global Shutter Camera Module.

In evidenza

  • Sensore monocromatico 752x480 a global shutter

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

  • Gamma dinamica di 55 dB

  • Compatibile con tutte le base board modulari OpenMV Cam

Utilizzo

Trasmetti video in scala di grigi 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())

Il sensore attiva automaticamente il binning dei pixel a risoluzioni più basse — 2x a QVGA (320x240) o inferiore, 4x a QQVGA (160x120) o inferiore — il che riduce proporzionalmente il tempo di lettura e aumenta il frame rate. La camera deve comunque integrare la luce per la finestra di esposizione richiesta, quindi abbina la riduzione della framesize a un limite di esposizione più breve tramite csi.CSI.auto_exposure per raggiungere effettivamente le velocità più elevate (l’immagine sarà più scura — prevedi illuminazione aggiuntiva):

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

La modalità triggered allinea l’integrazione dei pixel esattamente a ogni chiamata csi.CSI.snapshot, così le catture si sincronizzano con lo snapshot anziché con il clock di frame a corsa libera della camera — utile per sincronizzarsi con un evento esterno o un altro sensore. Abilitala tramite csi.CSI.ioctl con csi.IOCTL_SET_TRIGGERED_MODE — il frame rate scende a circa la metà della modalità a corsa libera perché la lettura non si sovrappone più in pipeline con l’integrazione del frame successivo:

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