OV5640 FPC Camera Module

Das OV5640 FPC Camera Module ist ein kompakter 5-MP-Rolling-Shutter-Farbsensor mit Autofokus. Es wird über den Board-to-Board-Steckverbinder an OpenMV Cam Basisplatinen montiert und ermöglicht so flache Aufbauten.

OV5640

Vollständiges Datenblatt, Fotos und Bestellinformationen finden Sie auf der OV5640-Produktseite.

Bemerkung

Derzeit nicht auf der OpenMV N6 unterstützt.

Highlights

  • 5-MP-Rolling-Shutter-Sensor (2592x1944)

  • Autofokus, F2.0-Blende, variable Brennweite

Verwendung

Streamen Sie QVGA-Video (320x240) in RGB565 — das OV5640 arbeitet als reguläres Kameramodul für jede Bildverarbeitungspipeline:

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

Das OV5640 verfügt außerdem über einen On-Board-JPEG-Kompressor — setzen Sie das pixformat auf csi.JPEG, und der Sensor liefert komprimierte Einzelbilder direkt über den Kamera-Bus an die OpenMV Cam, sodass der Host für die Verarbeitung statt für die Codierung frei bleibt. Steuern Sie die Kompressionsqualität (0-100) mit csi.CSI.quality — höhere Werte erhalten mehr Details, allerdings zum Preis größerer Einzelbilder.

Erfassen Sie JPEG-Einzelbilder bei 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())

Erfassen Sie JPEG-Einzelbilder bei 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())

Erfassen Sie JPEG-Einzelbilder bei vollen 5 MP — 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())

Das OV5640 verfügt über ein Autofokus-Objektiv mit Schwingspulenantrieb. Lösen Sie über csi.CSI.ioctl mit csi.IOCTL_TRIGGER_AUTO_FOCUS einen einzelnen Autofokus-Durchlauf aus — der Sensor fährt den Fokusmotor einmal durch und stellt sich auf das ein, was sich vor ihm befindet:

csi0.ioctl(csi.IOCTL_TRIGGER_AUTO_FOCUS)

Setzen Sie den ioctl erneut ab, sobald sich die Szene ändert — der Autofokus erfolgt einmalig, nicht kontinuierlich.