Modulo camera OV5640 FPC

Il modulo camera OV5640 FPC è un compatto sensore a colori rolling-shutter da 5MP con autofocus. Si monta sulle schede base OpenMV Cam tramite il connettore board-to-board per realizzazioni a basso profilo.

OV5640

Per il datasheet completo, le foto e le informazioni d’ordine, consulta la pagina prodotto OV5640.

Nota

Al momento non supportato sulla OpenMV N6.

Punti salienti

  • Sensore rolling-shutter da 5MP (2592x1944)

  • Autofocus, apertura F2.0, lunghezza focale variabile

Utilizzo

Trasmetti video QVGA (320x240) RGB565: la OV5640 funziona come un normale modulo camera per qualsiasi pipeline di elaborazione delle immagini:

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

La OV5640 dispone anche di un compressore JPEG integrato: imposta il pixformat su csi.JPEG e il sensore consegna frame compressi direttamente alla OpenMV Cam attraverso il bus della camera, così l’host resta libero per l’elaborazione anziché per la codifica. Controlla la qualità di compressione (0-100) con csi.CSI.quality: valori più alti preservano più dettagli a costo di frame più grandi.

Acquisisci frame JPEG a 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())

Acquisisci frame JPEG a 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())

Acquisisci frame JPEG a piena risoluzione 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())

La OV5640 ha un obiettivo con autofocus ad attuatore voice-coil. Attiva una singola passata di autofocus tramite csi.CSI.ioctl con csi.IOCTL_TRIGGER_AUTO_FOCUS: il sensore sposta il motore della messa a fuoco una volta e si blocca su qualunque cosa abbia di fronte:

csi0.ioctl(csi.IOCTL_TRIGGER_AUTO_FOCUS)

Riemetti l’ioctl ogni volta che la scena cambia: l’autofocus è a colpo singolo, non continuo.