
En cours d'écriture
Lors des développements, on a essayé et testé plusieurs processeurs :
Finalement, pour limiter le nombre de cartes, nous sommes partis sur deux cartes à base de SH4, faites par nous,
combinant un processeur SH4 (SH7750R) et un gros FPGA d'Altera (EP1S25). Elles ont les caractéristiques suivantes :
Le schéma des cartes mères est disponible ici au format pdf.
Les cartes mères sont reliées au réseau par l'intermédiaire de clefs USB-WiFi, ce qui nous permet de monter les disques des PC de développement en NFS et de nous logger dessus à distance.
La vidéo est traitée par une carte SH4/Stratix, appelée SHiX1 dans le schéma d'architecture globale. Elle est reliée à deux caméras OV7620 par l'intermédiaire d'une interface simple. Les deux caméras permettent d'avoir deux vues différentes du terrain de jeu :
Les caméras OV7620 d'Omnivision sont des petites caméras numériques, utilisées dans les CMUcam, dont voici les caractéristiques qui nous intéressent :
La sortie vidéo étant numérique (même si elles disposent aussi d'une sortie de contrôle analogique noir et blanc), ces caméras sont particulièrement bien adaptées à une interface par FPGA.
Notre carte mère dispose d'un bus d'extension relié au FPGA de 32 bits. On peut donc y brancher deux caméras pour peu qu'on sélectionne un format de sortie 8 bits (il faut garder quelques lignes pour les
horloges et le bus I2C).
Le bus d'entrée-sortie du FPAG est en 3.3V mais est compatible 5V. Il n'y a donc pas besoin d'interface entre le FPGA et les caméras. Mais c'est là que se pose le problème du crosstalk (diaphonie). Les caméras sont éloignées de la carte mère d'environ 30cm et y sont reliées par un câble en nappe. Si on ne fait pas attention à ce câble,
le couplage entre les fils peut être tel que les pixels reçus (et les synchronisation) sont impossibles à interpréter. C'est le crosstalk.
Il existe deux sortes de crosstalk, le capacitif et l'inductif. Dans les câbles et les circuits imprimés, contrairement à un croyance répandue, c'est l'inductif qui prime.
Pour le contrôler ou l'éliminer, il existe plusieurs solutions :
Le schéma de la carte d'interface est disponible ici au format PDF.
La carte mère principale, appelée SHiX2 dans le schéma global, se charge de toutes les tâches hormis la vidéo : algorithme de déplacement, acquisition des capteurs, génération du contrôle des moteurs, ... Le partage des tâches est effectué ainsi :
Au niveau électrique, la partie logique est complètement séparée des parties puissance par des optocoupleurs.
Ces capteurs regroupent les capteurs de couleur des balles entrées dans le robot ainsi que les ILS pour connaître la position du barillet. Ils arrivent sur un convertisseur analogique-numérique 8 voies (MCP3208) qui est interfacé en SPI avec le FPGA de la carte mère.
Les capteurs de présence/couleur des balles se composent d'une LED haut rendement cyan (Superflux) et d'une photodiode adaptée à cette longueur d'onde. Nous avons choisi une longueur d'onde bien précise pour limiter
l'influence des lumières extérieures éventuelles.