Global Shutter Camera Module

De Global Shutter Camera-module is een monochrome sensor die snelle beweging vastlegt zonder rolling-shutter-artefacten. Geschikt voor hogesnelheidsvolgen, drones en machine vision-momentopnames. De module wordt geleverd met de MT9V024- of de MT9V034-sensor.

Global Shutter Camera Module

Voor de volledige datasheet, foto’s en bestelinformatie, zie de Global Shutter Camera Module productpagina.

Hoogtepunten

  • 752x480 global-shutter monochrome sensor

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

  • 55 dB dynamisch bereik

  • Compatibel met alle modulaire OpenMV Cam-basisborden

Gebruik

Stream grijswaardenvideo op 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())

De sensor activeert automatisch pixel-binning bij lagere resoluties — 2x bij QVGA (320x240) of kleiner, 4x bij QQVGA (160x120) of kleiner — wat de uitleestijd evenredig verkort en de framesnelheid omhoog stuwt. De camera moet echter nog steeds licht integreren gedurende het gevraagde belichtingsvenster, dus combineer de verlaging van de framesize met een kortere belichtingslimiet via csi.CSI.auto_exposure om de hogere snelheden daadwerkelijk te halen (de afbeelding wordt donkerder — reken op extra verlichting):

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

Triggered modus lijnt de pixelintegratie precies uit met elke csi.CSI.snapshot-aanroep, zodat opnames synchroniseren met de momentopname in plaats van met de vrijlopende frameklok van de camera — nuttig om te synchroniseren met een extern event of een andere sensor. Schakel het in via csi.CSI.ioctl met csi.IOCTL_SET_TRIGGERED_MODE — de framesnelheid daalt tot ongeveer de helft van de vrijlopende modus omdat de uitlezing niet langer pipeline’t met de integratie van het volgende frame:

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