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