OV5640 FPC Camera Module¶
De OV5640 FPC Camera Module is een compacte 5MP rolling-shutter kleursensor met autofocus. Hij wordt op OpenMV Cam-basisborden gemonteerd via de board-to-board-connector voor low-profile bouwsels.
Voor de volledige datasheet, foto’s en bestelinformatie, zie de OV5640-productpagina.
Notitie
Momenteel niet ondersteund op de OpenMV N6.
Hoogtepunten¶
5MP (2592x1944) rolling-shutter sensor
Autofocus, F2.0-diafragma, variabele brandpuntsafstand
Gebruik¶
Stream QVGA (320x240) RGB565-video — de OV5640 werkt als een gewone cameramodule voor elke beeldverwerkingspijplijn:
import csi
import time
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.QVGA)
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
print(clock.fps())
De OV5640 heeft ook een ingebouwde JPEG-compressor — stel het pixformat in op csi.JPEG en de sensor levert gecomprimeerde frames rechtstreeks aan de OpenMV Cam over de camerabus, zodat de host vrij blijft voor verwerking in plaats van codering. Regel de compressiekwaliteit (0-100) met csi.CSI.quality — hogere getallen behouden meer detail ten koste van grotere frames.
Leg JPEG-frames vast op 1280x720 (HD):
import csi
import time
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.JPEG)
csi0.framesize(csi.HD)
csi0.quality(90)
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
print(clock.fps())
Leg JPEG-frames vast op 1920x1080 (FHD):
import csi
import time
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.JPEG)
csi0.framesize(csi.FHD)
csi0.quality(90)
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
print(clock.fps())
Leg JPEG-frames vast op volle 5MP — 2592x1944 (WQXGA2):
import csi
import time
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.JPEG)
csi0.framesize(csi.WQXGA2)
csi0.quality(90)
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
print(clock.fps())
De OV5640 heeft een autofocuslens met voice-coil-actuator. Activeer één autofocus-doorloop via csi.CSI.ioctl met csi.IOCTL_TRIGGER_AUTO_FOCUS — de sensor laat de focusmotor één keer sweepen en vergrendelt op wat zich ervoor bevindt:
csi0.ioctl(csi.IOCTL_TRIGGER_AUTO_FOCUS)
Geef de ioctl opnieuw uit telkens wanneer de scène verandert — de autofocus is eenmalig, niet continu.