|
|
|
|||
Vous êtes ici : Home > Fiches Techniques > Une camera pour nos robots |
UNE CAMERA POUR NOS ROBOTS
|
||||||||||||||||||||||||||||||||||||||
oFonctionnement
de la caméra
|
||||||||||||||||||||||||||||||||||||||
Voici le schéma de la caméra, l'objectif était de mettre les composants les plus importants directement sur la carte camèra. C'est à dire les alimentations 3.3 V, les portes pour l'interfaçage 3.3V / 5V, et la FIFO. La carte mesure environ 55 x 55 mm, et nous avons réussit à tout y intégrer.
La taille maximale de l'image, est de 352 x 288 pixels. ce qui fait une image de 101 376 x 8 bits, un peu plus de 100 KBytes. Nous avions deux choix pour la mémoire : une RAM traditionnel, mais il aurait fallu générer l'adresse, et une FIFO, dont l'acces se fait en série. La deuxième solution présente l'avantage de pouvoir charger une image en même temps qu'on l'acquérit. Nous avons donc choisit une FIFO de 256 KBytes, ce qui nous permet de stoquer deux images et diminue encore un peu plus les temps d'acquisitions. La référence de cette FIFO est MSM518221, elle est fabriquée par OKI. L'interfacage est divisé en trois parties : Les entrées de commande (IN), les sorties (OUT) et les transfert de données (DATA). La caméra fonctionne de la façon suivante : un bus de donnée 8 bits unique pour toutes les E/S et trois pins d'accès à l'ecriture / lecture des E/S (IN_EN, OUT_EN et DATA_EN). En aucun cas les pattes IN_EN, OUT_EN et DATA_EN ne doivent être à l'état bas en même temps, cela provoquerait un conflit sur le bus 8 bits. Comme le HDCS-1020 est un composant 3.3V, il a fallu choisir des familles de portes (74VHC541, 74VHC573 et 74VHC04) en 3.3V et 5V Tolerant. Les familles acceptées sont VHC, LVC et LVX, nous avons choisit la VHC, la plus facile à trouver. Les autres doivent aussi fonctionner, il est parfois conseillé d'éviter de mélanger les familles. |
||||||||||||||||||||||||||||||||||||||
oLes
entrées sorties de la carte
|
||||||||||||||||||||||||||||||||||||||
Lorsque IN_EN est à l'état bas, le port 8 bit est en entrée, on peut donc changer l'état des données suivantes :
Lorsque OUT_EN est à l'état bas, le port 8 bit est en sortie, on peut donc acceder à l'état des données suivantes :
Lorsque DATA_EN est à l'état bas, le port 8 bit est en sortie, on peut donc acceder au pixels de l'image DATA. Selon l'état du jumper J3, la FIFO peut être incrémentée à chaque lecture de DATA ou en écriture sur SRCLK. Le plus rapide étant de loin la lecture sur DATA, une seul impulsion à générer contre 2 pour SRCLK. |
||||||||||||||||||||||||||||||||||||||
oL'interface
ISA
|
||||||||||||||||||||||||||||||||||||||
Pour adapter la caméra sur notre robot TYPE 1, il a fallu l'interfacer sur le BUS ISA. Notre caméra se prète parfaitement au BUS ISA : un bus de donnée, et des bits d'adresse. Il ne reste plus qu'a faire le décodage d'adresse, et le tour est joué.
Sur notre carte au format PC104 un comparateur 8 bits (74HC688) vérifie que les 7 premiers bits d'adresse sont corrects, et deux multiplexeurs (74HC138) pour les 3 bits d'adresse restants (Un pour les entrées et un pour les sorties). Ici la carte permet de gérer deux caméras, ce qui explique les deux connecteurs. Nous avons choisit comme adresse de base 0x300 pour la caméra 1 et 0x302 pour la deuxième caméra. |
||||||||||||||||||||||||||||||||||||||
oLa
plateforme de test
|
||||||||||||||||||||||||||||||||||||||
Une fois la carte fabriquée, il a fallu la tester. Une bibliothèque (CAM.H) permet d'écrire, de lire dans les regsitres, de faire l'acquisition d'une image et de l'afficher à l'écran. Voici une capture d'écran : Sur la gauche apprait les quatres composantes de l'image (Rouge, Vert 1, Bleu et Vert 2) on voit aussi les histogrammes de chacune des composantes. Ces histogrammes nous permettent de connaitre la saturation et de d'ajuster le temps d'exposition afin d'obtenir l'image la plus riche possible. Et voici quelques résultats d'acquisition avec notre système d'ajustement automatique : Il faut environ 300 ms pour acquérir une image couleur 351x288 pixels. Ce temps est dû à la lenteur de transfert du BUS ISA, la seule solution pour aller plus vite est d'utiliser le DMA du bus. Mais la complexité de cette solution ne sera pas rentable, puisque le DMA sera à 8 MBytes/s au maximum. Tout dépend de l'application, mais 3 images par seconde peut être largement suffisant. Il ne faut pas non plus oublier que les temps de traitement sont souvent bien plus longs ! |
||||||||||||||||||||||||||||||||||||||
oQuelques
liens
|
||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
oContact
|
||||||||||||||||||||||||||||||||||||||
Pour toutes questions envoyer moi un mail: Sinclair | ||||||||||||||||||||||||||||||||||||||
|