La caméra OV7670 est une petite caméra VGA basée sur un capteur CMOS. Cette caméra peut facilement être interfacée sur une carte Arduino. Cette page explique comment la caméra peut être connectée à l'arduino Uno grâce à une petite carte de développement sur laquelle la caméra est déja montée. Cette carte est très bon marché comme vous pouvez le constater :
Désignation | Caractéristiques |
---|---|
Matrice | 640x780 |
Formats supportés | YUV YCbCr 4/2/2 / RGB565 / RGB555 / GRB 4/2/2 / Raw RGB Data |
Taille de la lentille | 1/6" |
Images par seconde | 30 fps for VGA |
Sensibilité | 1.1 V/Lux-sec |
Le câblage suivant a été utilisé pour connecter la caméra OV7670 à l'Arduino :
L'Arduino demande l'acquisition d'une image à la caméra et envoie cette image via la liaison USB au PC. Une application sous Windows lit les données et affiche l'image sur l'écran. Le code source pour l'Arduino et l'application Windows peuvent téléchargés en bas de cette page.
L'acquisition fonctionne directement 'out of the box', voici quelques exemples d'acquisitions:
![]() |
![]() |
La caméra est équipée d'un controôlleur de gain automatic (AGC). Ce contrôlleur peut être particulièrement lent si l'acquisition se fait à une fréquence d'échantillonage trop basse :
![]() |
![]() |
Parfois, la synchronisation entre la caméra et l'application ne fonctionne pas correctement :
![]() |
![]() |
Le problème principal de cette architecture est la lenteur du système. Étant donné que l'Arduino Uno a une fréquence maximale de 16MHz, le traitement des données et la transmission se font très lentement. Sur les captures ci-dessus et selon la luminosité, l'image est actualisée toutes les 4 à 5 secondes. Selon moi, cette caméra ne peut être utilisée qu'avec une résolution plus basse ou avec un processeur plus performant.
Le code source Arduino, l'application Windows et la documentation constructeur (datasheet) peuvent être téléchargés ci-dessous :
ReadSerialPortWin.exe (Application Windows)