Global Shutter -kameramoduuli¶
Global Shutter Camera Module on monokromaattinen sensori, joka kaappaa nopean liikkeen ilman rolling shutter -artefakteja. Sopii suuren nopeuden seurantaan, droneihin ja konenäön tilannekuviin. Moduuli toimitetaan joko MT9V024- tai MT9V034-sensorilla.
Täydellisen datalehden, kuvat ja tilaustiedot löydät Global Shutter Camera Module -tuotesivulta.
Kohokohdat¶
752x480 global-shutter-monokromaattisensori
80 FPS QVGA-tarkkuudella, 200 FPS QQVGA-tarkkuudella, 400 FPS QQQVGA-tarkkuudella
55 dB:n dynaaminen alue
Yhteensopiva kaikkien modulaaristen OpenMV Cam -peruskorttien kanssa
Käyttö¶
Suoratoista harmaasävyvideota tarkkuudella 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())
Sensori aktivoi automaattisesti pikselien yhdistämisen (binning) alemmilla resoluutioilla — 2x QVGA:lla (320x240) tai pienemmällä, 4x QQVGA:lla (160x120) tai pienemmällä — mikä lyhentää ulkolukuaikaa suhteellisesti ja nostaa kehysnopeutta. Kameran on kuitenkin yhä integroitava valoa pyydetyn valotusikkunan ajan, joten yhdistä kehyskoon pienennys lyhyempään valotuskattoon ominaisuuden csi.CSI.auto_exposure kautta saavuttaaksesi todella korkeammat nopeudet (kuva on tummempi — varaudu lisävalaistukseen):
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())
Liipaisutila kohdistaa pikselien integroinnin täsmälleen jokaisen csi.CSI.snapshot-kutsun kanssa, jolloin kaappaukset synkronoituvat tilannekuvaan eivätkä kameran vapaasti käyvään kehyskelloon — hyödyllinen synkronoinnissa ulkoiseen tapahtumaan tai toiseen sensoriin. Ota se käyttöön komennolla csi.CSI.ioctl arvolla csi.IOCTL_SET_TRIGGERED_MODE — kehysnopeus laskee suunnilleen puoleen vapaasti käyvän tilan nopeudesta, koska ulkoluku ei enää limity seuraavan kehyksen integroinnin kanssa:
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())