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