Der OV7670 ist ein Bildsensor mit DSP, der mit einer Auflösung
von max. 640×480 mit max. 30fps arbeitet; dies entspricht 0,3 Megapixel. Die aufgenommenen
Videodaten können vor der Ausgabe durch den DSP verarbeitet werden. Dies kann man mit dem
SCCB-Bus steuern.
In den folgenden Beispielen wird ein OV7670-Modul ohne FIFO-Puffer verwendet.
Dies ist im Grunde genommen eine I²C-Schnittstelle, über die man alle Kontroll-Register der Kamera ansteuern kann. Durch diese Register lassen sich verschiedenste Parameter der Kamera justieren, z.B. Weißabgleich, Belichtung, Bildauflösung, etc. Man muss nur die richtigen Wert in die Register schreiben und die Kamera arbeitet mit den veränderten Parametern. Hierfür wird hier die Arduino Wire-Library verwendet.
Diese Schnittstelle wird durch die Pins D0 bis D7 dargestellt und liefert Bilddaten immer byteweise hintereinander.
Pin-Name | Typ | Beschreibung |
---|---|---|
VDD / 3V3 | Stromversorgung | |
GND | Stromversorgung | |
SDIOC | Input | SCCB clock |
SDIOD | Input/Output | SCCB data |
VSYNC | Output | Vertikale Synchronisation |
HREF | Output | Horizontale Synchronisation |
PCLK | Output | "Pixel clock" |
XCLK | Input | System clock |
D0-D7 | Output | Parallele Videosignal-Ausgänge |
RESET | Input | Reset (Active low) |
PWDN | Input | Power down (Active high) |
Zum Speichern der Bilddaten verwende ich das SD-Card-Modul TE417.
Leider habe ich keine vernünftigen Ergebnisse mit dem
Code von Hardik Kalasua
bekommen.
Wer bessere Ergebnisse erzielt, kann mir dies gerne mitteilen.
Evtl. hilft auch der Code von ComputerNerd weiter...