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.

OV5640

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.