voir les articles ►◄ Rubrique:
.:: Cockpit et mod's perso : l'électronique ::.
Sunday 09 May 2004

Cockpit & mod perso : l'électronique
---------------------------------------------

Pour les amateurs passionnés et éclairés de Falcon 4, la réalisation d'un cockpit est le must absolu. L'immersion est totale et le réalisme proche de ce que l'on peut ressentir dans un vrai Faucon.

Après avoir réinstallé Falcon 4 sur mon PC, je me suis mis à rêver moi aussi de me retrouver dans un environnement proche de la réalité, d’avoir un jour un cockpit.

Pour que ce soit réaliste et pas trop difficile à réaliser, quel principe choisir pour démarrer ce projet ?
Des éléments séparés ayant chacun une fonction particulière ?
Comment connecter tout cela sur un PC et interagir avec le simulateur?
……………
Un bus !!!!! C’est la solution. Oui mais quel bus ????

Après des recherches sur la toile et des rencontres sur C6, une idée apparaît : une carte interface USB -> I2C !!!
L’USB, ça devient démocratique, chaque nouveau PC en est pourvu et pas seulement que d’une sortie.

L’I2C, c’est d’abord un bus et depuis le temps qu’il existe, il s’est beaucoup répandu ; de plus en plus de fabricants intègrent cette technologie et l’utilisation du bus est très bien documenté.

Le voilà donc le fil d’Ariane : faut piocher dans cette voie, surtout que la famille des circuits intégrés I2C est ma fois très complète. On trouve de tout : des drivers de LED, des interfaces entrées/sorties, des convertisseurs analogique/numérique et leur pendant numérique/analogique, tout ce que l’on a besoin pour réaliser la partie électronique d’un cockpit


C’est bien joli tout cela, mais il manque des explications.


Le Bus I2C c’est quoi, petite présentation
--------------------------------------------------

L'I2C (Inter-Integrated Circuit), fait partie des bus séries : 3 fils pour tout faire passer.
A l'origine, au début des années 80, Philips, son concepteur, l'avait créé pour minimiser les liaisons entres les circuits intégrés numériques de ses produits (Téléviseurs, éléments HiFi, magnétoscopes, voire même certains oscilloscopes...), la quantité de données à faire circuler était faible d'ou ses premières caractéristiques :
- adressage des circuits sur 7 bits
- vitesse plafonnée à 100 kbit/s
- compatibilité avec le CBUS (ancêtre de l'I2C chez Philips)

Toutes les spécifications de ce bus sont disponibles sur le serveur de Philips.

Figure 1 Représentation du bus I2C (Master = interface USB -> I2C)

Depuis, il a fait son petit bonhomme de chemin et de nombreux fabricants l'intègrent dans leurs composants et appareils, et les revues d'électroniques (Elektor , Electronique Pratique et j’en oublie) l'ont adopté et fait connaître du grand public.
En vrac, quelques circuits disponibles sur le marché :
- expandeur de bus (entrée/sortie 8 bits)
- convertisseur A/N et N/A
- récepteur infra-rouge (télécommande RC5)
- capteur de température
-chargeur de batterie Ni-Cd
-décodeur télétexte
-micro-contrôleurs (notamment les 80C552 et 80C652)
-PLL pour tuner HF
- ...

Face à l'explosion du nombre de circuits I2C disponibles et au trafic en très forte augmentation, Philips a publié en 1992 (je crois) les nouvelles spécifications de l'I2C :
- compatibilité totale avec l'ancien I2C, mais abandon de la compatibilité CBUS
- adressage étendu sur 10 bits
- vitesse montée à 400 kbit/s (dans le respect des normes CEM, s'il vous plait)

Le bus I2C a encore aujourd'hui le vent en poupe car il est de plus en plus utilisé dans l'électronique grand-public, parfois déguisé sous une norme pour des besoins particuliers comme le SMBus qui est implanté dans tous les nouveaux PC à base de chipset Intel 430TX ou postérieur, ou encore le fameux DDC qui équipe tous les moniteurs et cartes vidéo récents.

Très récemment, Philips a introduit une nouvelle extension de la norme I2C qui étend sa vitesse à 3.4 Mbits/s, mais je n'ai pas beaucoup d'info sur ce sujet. Il faut surveiller le site de Philips pour avoir du nouveau.

La carte interface USB -> I2C
--------------------------------------

Mes recherches de la carte interface appropriée m’ont conduit à m’intéresser à une solution proposée par la société Devasys basée aux Etats Unis.
Si vous voulez en savoir plus c’est là : : http://www.devasys.com/

Après analyse, la carte répond tout à fait aux attentes, le prix demandé n’est pas excessif et le délai de livraison tout à fait acceptable. Pour la modique somme de 100US$ et un délai de 7 jours, j’avais ma carte. Les premiers essais allaient pouvoir débuter.
Enfin…….!!!!!

Cette carte la voilà :



Caractéristiques du produit :
----------------------------------

La carte interface USB -> I2C fournis une solution simple pour les clients qui veulent relier leur hardware à un PC.
La carte fournit 20 bit d’entrée/sortie configurables par l’utilisateur ainsi que d’une interface I2C de 90 Kbps de vitesse de transfert.

Dispositifs principaux :
- Interface USB de 12 Mbps de vitesse de transfert vers le PC Host
- Microcontrôleur Cyprès AN2131QC
- 20 bits d’I/O numérique configurable par l’utilisateur, accessible par un connecteur à 34 broches
- Interface I2C de 90Kbps de vitesse de transfert, EEprom I2C de 16KB, connecteur à 5 broches pour connecter des interfaces externe I2C
- LED d’état USB, allumé pour indiquer l’énumération, clignotement pour indiquer le trafic USB, éteinte une fois déconnecté.
- Break LED,utile pour le développement de nouveaux progiciels, également contrôlables par l'intermédiaire de notre API
- Petite taille (3.0 "X 2.25") avec des trou de 0.125" de diamètre dans les coins pour la fixation
- Le progiciel téléchargeable simplifie des mises à jour et tient compte de la personnalisation du code
- L’interface de programmation d'applications inclus procure à votre application une mise en service rapide

Applications

- Pont USB vers I2C pour interfacer une grande variété de composants I2C
- Pont USB vers I/O digitales pour interfacer des interrupteurs, des LED ou tout autre matériel
- Pont USB vers FIFO pour interfacer des FPGA ou tout autre matériel
- Platte forme de développement faible coût pour AN2131QC
- Interface prototyping rapide
- Acquisition de données

Matériel

L’interface USB full speed donne à votre matériel la possibilité de se connecter à chaud, ainsi qu’une vitesse de transfert de 12Mbps qui correspond aux standards de l’industrie.

- Utilise le microcontrôleur de Cypress Semiconductors, le AN2131QC
- Tension d’alimentation de l’interface configurable par jumper, possibilité d’être alimenté par le bus USB ou par une alimentation externe
- Jumper permettant l’écriture dans l’EEProm prévenant toute écriture accidentelle

Toutes ces informations peuvent être obtenues sur le site internet du fabricant.

La partie Download contient tout ce dont on a besoin : les drivers de la carte, des exemples de programmes d’utilisation en Visual Basic et en C++, ainsi qu’un très bon API User Guide. Des exemples de programmes en Delphi sont disponibles aussi, sur demande auprès de l’auteur

Un schéma électronique de la carte est disponible : http://www.devasys.com/i2ciob/schematic.pdf


Bon, c’est bien joli tout cela, mais maintenant, va falloir utiliser cette interface, réaliser la première interface.

Et ou trouver les circuits I2C,et combien ça va coûter.

Le site internet de Philips me donnera toutes les réponses. J’ai trouvé la liste des revendeurs officiels en Suisse. Vous la trouverez aussi pour votre pays. Un coup de fil au premier sur la liste et je tombe sur un mec vraiment sympa. Je lui demande des prix pour les composants que j’ai retenu et il me demande ce que je veux en faire. Je tente une explication. Plutôt que d’entendre un type qui me prenne pour un doux rêveur, il me dit que c’est original. Il me dit qu’il va entreprendre des démarches auprès de Philips pour qu’on me fasse parvenir les IC comme échantillons plutôt que de les acheter. D’autant plus qu’il faut un nombre minimal de 30 pièces par Ic pour pouvoir les obtenir.

Génial, pas besoin de remuer ciel et terre pour trouver d’autres pits buiulder comme moi, par ce que je ne vais pas utiliser les 30 circuits à moi tout seul.

Bon quand faut y aller, faut y aller. !!!!!!!!


Ma première interface : Les sorties
-------------------------------------------

Je vais commencer par quoi ? Pour ma première interface, je ne vais pas me dégoûter, je vais choisir l’interface qui me semble le plus à ma portée, l’affichage des alarmes dans le pit.

La chance est avec moi. Comme je suis abonné depuis plusieurs années à une très connue et excellente revue d’électronique pour amateur, Elektor pour ne pas la nommer, je fouine dans l’index des articles et je trouve une référence à un article intitulé : Interface I2C pour RCX (LEGO). Je me jette sur l’article pour en savoir un peu plus et c’est exactement ce que je veux faire : une interface qui permet d’allumer 8 LED connectée sur un bus I2C. Ce sera le point de départ pour mon aventure.

Je me rends sur le site de Philips, je recueille et consulte les datasheet des composants utilisés ainsi que de tous les composants de la famille I2Cde Philips.
Sur la base du schéma trouvé dans Elektor, j’élabore un bout de schéma électronique, je l’adapte à mes besoins soit 16 sorties. Je soumets ma réalisation à un spécialiste.
Verdict, pas de fautes grossières d’électronique, les normes sont respectées, c’est OK. Alors, c’est parti.

La documentation sur le composant I2C PCA9552 : PCA9552_3.pdf.

Sur cette interface, je vais connecter tous les voyants d’alarme, indicateurs et toute les signalisations.

Le schéma de la carte s des sorties

Schéma de l'interface des sorties


Je rédige la liste des composants nécessaires et me mets en quête de ce dont j’ai besoin pour réaliser ce premier prototype.
Pour les circuits intégrés I2C je m’adresse à mon revendeur officiel Philips en Suisse et je reçois mes échantillons. Pour les autres composants, je m’adresse à un grossiste local du style Conrad Electronic. Tous les composants nécessaires rassemblés, je me lance dans la réalisation de mon premier prototype dont voici la photo.



Photo du prototype de la carte des sorties

Après quelques heures de réflexion et de soudures, la voilà, c’est fait.
Le premier proto est enfin réalisé, reste maintenant à faire allumer ces LED.

Une autre aventure commence. Je ne suis pas programmeur, mais je me décide de me lancer.
Je choisis Delphi parce que dans le cadre de mon travail et de certain de mes amis, je sais trouver des compétences dans ce langage de programmation. Compétences à ne pas négliger vu mes connaissances quasi nulles en programmation.
L’aide du fournisseur de la carte interface USB -> I2C m’a été aussi très précieuse, il m’a fournis un excellent exemple de programmation de sa carte en Delphi.

Après plusieurs jours de recherches, de lignes de code, de tâtonnements, voilà enfin les premières lumières.Ca n’a pas été facile, les datasheet ont du au préalable délivrer leurs secrets.
Oui, ça fonctionne, les LED s’allument conformément à ce qui se passe dans le cockpit.
Quand la LED représentant le voyant du Master Caution s’illumine dans le simulateur, la LED correspondante sur mon interface s’illumine aussi.
C’est gagné, le concept retenu semble le bon. A confirmer avec l’étape suivante, une interface qui va gérer les actions sur les switches et interrupteurs du cockpit.



L’interface des entrées
----------------------------

Deuxième étape, l’interface des entrées.
Le circuit intégré retenu est le circuit de Philips : le PCA9555.
Les données du circuit : PCA9555_3.pdf.

Sur cette interface, je vais connecter tous les boutons, switches et interrupteurs peuplant un cockpit.

Le schéma de la carte des entrées :



16_I_I2C_PCA9555_V2

Le schéma en fonction actuellement en est à la version no 2. Chaque interrupteur ou switche est câblé maintenant avec 2 fils.
Une troisième version du schéma est en préparation, permettant le contrôle de 64 boutons.


Et une photo du prototype version 1.



Photo du prototype de la carte des entrées Version 2

Plusieurs lignes de code de plus et les actions sur les switches et interrupteurs engendrent l’action équivalente dans le simulateur : j’actionne le levier du train d’atterrissage et le train sort avant d’atterrir (ça vaut mieux non).

Ca se confirme, le concept de bus I2C semble le bon et répond aux attentes.

La carte afficheur 7 segments
-------------------------------------

Je vais utiliser cette carte pour afficher le nombre de chaffs et de flares encore disponibles dans l’avion.
Le circuit intégré retenu est le circuit de Philips le SAA1064.
Les données du circuit : SAA1064

Sur cette interface, je vais connecter les afficheurs alphanumériques pour les chaff et les flares

Le schéma de la carte afficheur 7 segments :



Schéma électronique de la carte afficheur 7 segments





Et une photo du prototype.



Photo du prototype de la carte afficheur 7 segments

Encore du code et ça fonctionne aussi.


La carte afficheur LCD 2 lignes 24 caractères.
-------------------------------------------------------

Pour afficher les informations du DED, j’ai besoin d’un afficheur LCD alphanumérique de 5 lignes de 24 caractères. Mes recherches sur la toile ne m’on pas permis de trouver un tel afficheur, il n’existe aucun fournisseur à ce jour proposant ce genre d’afficheur.
J’ai pu trouver, dans la cave de notre société, de vieux téléphones, abandonnés de tous, avec des écrans LCD alphanumériques de 2 lignes par 24 caractères. Après négociations avec ma hiérarchie, j’ai pu récupérer 2 modèles de ces vieux téléphones donc 2 afficheurs.

Cool, j’ai du matériel pour m’attaquer à ma prochaine interface, l’afficheur DED.

Le circuit intégré retenu est le circuit de Philips, le PCA9555
Les données du circuit : PCA9555_3.pdf.

Le schéma de la carte d’affichage DED 2 lignes 24 caractères :



Schéma électronique de la carte afficheur LCD alphanumérique












Et une photo du prototype de la carte afficheur LCD alphanumérique.



Photo du prototype de la carte afficheur LCD alphanumérique


























Et une photo de l’ensemble carte interface + afficheur


Photo de l'ensemble carte interface + afficheur


Et une photo de l’afficheur 2 lignes pendant un vol



Photo de l'afficheur en fonction.

L’extraction des données du DED m’a posé quelques soucis, mais voilà enfin les 2 premières lignes du DED qui s’affichent.

Oui, je sais, il en manque. Mais j’y travaille.

Besoin d’un écran plus grand, vous n’auriez pas ça sous le coude ?

La carte afficheur LCD graphique
-----------------------------------------

Etape suivante, j’ai acheté un afficheur graphique de 128 points par 64 qui me permettra d’afficher la totalité des informations du DED, soit les 5 lignes de 24 caractères.

Le circuit intégré retenu est le circuit de Philips : le PCA9555.
Les données du circuit : PCA9555_3.pdf.

Le schéma de la carte d’affichage DED graphique :



Schéma électronique de la carte afficheur LCD graphique






















Et une photo du prototype de la carte afficheur LCD graphique DED



Photo du prototype de la carte afficheur LCD graphique DED


























Et une photo de l’ensemble carte interface + afficheur.



Photo de l'ensemble carte interface + afficheur LCD graphique DED


























Et une photo de l’afficheur LCD graphique.



Photo de l'afficheur LCD graphique

La j’ai encore du code à écrire. Ca se présente un peu moins bien, la manière d’afficher les caractères est différente de l’afficheur alphanumérique. Le contrôleur n’a pas de générateur de caractères intégré.
Cela prendra un peu plus de temps, mais, j’y arriverai aussi.


Les étapes suivantes
------------------------

Les interfaces CAN
------------------------

Les potentiomètres situés sur le panel Manual Trim sur la console gauche peuvent aussi êtres gérés par le système. Il suffit de les raccorder sur des circuits intégrés I2C de type convertisseurs analogique -> numériques. De cette manière, il sera possible de régler les différents trim dans le cockpit.
Les potentiomètres situés sur l’ICP réglant le contraste du HUD seront gérés de la même manière.

L’interface RWR
---------------------

La shared memory de Falcon contient toutes les informations pour pouvoir afficher sur un petit display LCD graphique les informations radar. Comme afficheur, on peut utiliser un écran récupéré sur un organiseur personnel style Palm Pilot ou équivalent. Le point un peu délicat est de connaître précisément le brochage de l’afficheur pour l’interfacer correctement.

Dans le même ordre d’idée, on peut très bien imaginer appliquer le même principe pour les écrans des MFD, en partant du principe que dans la prochaine version de Falcon, la possibilité nous sera donnée de rendre ces écrans fonctionnels.

Les interfaces CNA
------------------------

Avec ce type d’interface, on pourrait connecter les instruments analogiques par exemple l’horizon artificiel, l’indicateur de vitesse ou l’altimètre.

  Zarpjj
   
- Executé en 0.0065460 ms -
- 2 requetes au total -
- ©2003 Bernard Valencelle 'Benhur' -