#liste_articles {display:block}

Détection de toucher d’un couple de barreaux

samedi 16 mai 2009

 

Détection de toucher d’un couple de barreaux

Solution retenue

La solution retenue est l’utilisation d’un couple de barreaux, mais avec seulement l’information "on/off" : couple touché / couple non touché.

Le principe est le suivant : un barreau est au potentiel de VCC, un second est à la masse via une résistance de rappel (de l’ordre de 1.5 MΩ). En cas de contact, la tension sur ce barreau au dessus de la résistance de rappel sera facilement mesurable avec un convertisseur analogique numérique (CAN).

Implémentation

La difficulté principale est le nombre de barreaux mis en oeuvre par le grand nombre de barreaux (60 couples, donc 120 barreaux). Outre l’aspect mécanique (on ne devrait pas être loin de la dizaine de kilos et des 100 mètres linéaires de barreaux), il faut aussi pourvoir mesurer 60 entrées analogiques pour la détection du toucher.

Les deux premières journées de résidence de Ian à ERASME ont principalement été utilisées pour analyser les besoins et contraintes techniques de l’interactif, et effectuer un choix de composants.

Multiplexage

L’utilisation d’un Arduino étant quasiment un pré-requies, il était nécessaire de résoudre l’équation suivante : comment effectuer des conversions analogies sur 60 capteurs avec un 6 convertisseurs A/N ?

Deux solutions ont été envisagées :

  • l’externalisation de la fonction CAN, sur des chips dédiés multivoies (comme par exemple le TLC540),
  • le multiplexage des signaux via des composants spécialisés

La deuxième solution a été retenue, principalement pour des raisons de coût et de simplicité de mise en oeuvre. Après un survol rapide de la faune disponible pour cette fonction, nous avons choisi le CD4067 (datasheet), permettant de multiplexer 16 entrées vers une sortie. La commutation est déterminée par 4 bits (bus d’adresse) permettant de sélectionner quelle entrée est dirigée vers l’unique sortie.

En utilisant 4 CD4067, il est donc possible de multiplexer 64 voies vers 4 CANs de l’Arduino. Les lignes du bus d’adresse, pilotées par l’Arduino, seront partagées par les 4 multiplexeurs.

Design du circuit

Lorsque l’on a 60 entrées sur un circuit électronique, on est rapidement confronté au problème du routage des pistes de cuivre sur ce circuit, en particulier avec les contraintes que nous avons actuellement à ERASME : circuits simple face (sauf exception ou quelques pistes), pas de gravure de 0.4 mm (lire : "le pas de gravure"), circuit maximum de 80x100 mm (limitation logiciel CAD).
Il nous est apparu rapidement qu’il serait impossible de caser l’ensemble des composants sur le circuit.

Schéma de la carte "mère"
Schéma de la carte fille

Ian a proposé de diviser le problème sur plusieurs circuits : l’Arduino sera implanté sur une carte "mère", et chaque multiplexeur sera sur une carte fille dédiée. Un bus contenant les 6 CAN, l’alimentation, et le bus d’adresse reliera les cartes entre elles. Chaque carte fille sera dotée d’un bornier 16 voies pour la liaison avec les barreaux de détection, et d’un sélecteur de CAN permettant de choisir à quel convertisseur A/N de l’Arduino il sera relié.
Les résistances de rappel seront implantées sur le circuit de chaque carte fille.
La carte mère possèdera en outre deux connecteurs d’extension permettant, le cas échéant, de mettre en oeuvre les ports inutilisés.

Par ailleurs, l’architecture carte mère / cartes filles permet de changer facilement une carte en cas de maintenance, ou afin de bénéficier de fonctionnalités supplémentaires (ajout d’I/O, cartes filles plus évoluées avec traitement du signal, etc...).

A cet effet, il serait souhaitable de laisser les CAN 4 et 5 disponible sur l’Arduino, afin de de pouvoir utiliser le bus I2C utilisant ces ports si cela s’avère nécessaire à l’avenir (pilotage de LEDs par exemple).

Enfin, la disponibilité des lignes ayant la capacité de faire du PWN à été privilégiée (les 6 canaux PWM sont disponibles via les connecteurs JP_EXT).
Cela permettra peut être de piloter un éclairage à base de LED.

Alimentation

L’alimentation du circuit sera fournie par la connexion USB.
Dans le pire des cas (contact de tous les barreaux de détection directement à 3.3v, consommation maximum des différents circuits intégrés), la consommation maximum sera de 40mA, largement acceptable pour la norme USB (100mA à 500mA en fonction des cas).
Un fusible de protection réarmable calibré à 50mA (hold [1]) /150mA (trip [2]) [3] est inclus sur la carte mére.

Intégration mécanique

Les cartes pourront être superposées en couches, ou alignées côte à côte, en
fonction des contraintes d’intégration dans le socle de la cage.

Typon de la "carte mère"

Pour plus de solidité, le header de l’Arduino pour le raccordement au PC/Mac est repris sur la carte, au lieu d’être utilisé directement depuis la carte Arduino.
Les deux connecteurs JP_EXT mettent 7 lignes d’entrée sortie inutilisées à disposition, dont 6 peuvent faire du PWM.
Trois straps sont utilisés afin d’éviter de recourir au double face, ou aux fils "volants".
Le connecteur JP_BUS est coudé (en direction du bas de l’image), ce qui permet de faire passer une nappe HE10 14 voies de carte en carte. Au final, le circuit est très simple, aussi bien pour la carte mère que les cartes filles. Il est cependant envisagé à terme de remplacer la carte mère afin de piloter 60 ou 120 LEDs en PWM pour fournir un feedback visuel à l’utilisateur. Pour l’instant, cette tâche est confiée à un montage spécialisé concu par Interface-Z.

Il reste une place conséquente sur le circuit de la carte "mère" pour que Ian y intègre un artwork EZ3kiel s’il le désire (et si le graphisme bicolore l’inspire :).

Typon de la carte fille

La carte fille se contente de relier les lignes des barreaux de mesure au multiplexeur CD4067. Les lignes en provenance des barreaux sont connectées à la carte par l’intermédiaire de deux borniers à vis 8 voies au pas de 2.54mm. Une solution alternative à base de connecteurs molex KK est aussi envisagée. Cette dernièer solution permettrait un branchement/débranchement très rapide des lignes à la carte fille. En revanche, elle présente l’inconvénient de devoir sertir les lignes dans le connecteur à brancher, ce qui peut poser des problèmes en cas de maintenance sur site. Le bornier à vis, sur ce point, ne nécessite pas de connectique compliquée, mais il est plus long à connecter.
Les resistances de rappel à la masse sont intégrées "sous" le CD4067.

Au final, les circuits mesurent 55.9mm x 76.20mm hors nappe HE10 de bus.
Lorsque les 4 cartes filles et la carte mère seront empilées, la hauteur totale ne devrait pas dépasser 60 mm.

BOM

BOM pour la carte mère et bus
ComposantQtitéFournisseur/RefPrix
Arduino mini pro 1 Sparkfun DEV-08824 13.64
Resistance 0Ω 2512 10 (MOQ [4]) Farnell 9235825 1.94
Resistance 0Ω 1206 50 (MOQ) Farnell 9336974 1.90
Fusible RAYCHEM MICROSMD005F 5 (MOQ) Farnell 1345915 2.80
Connecteur femelle FH050 32 (MOQ Gotronic 08007 2.90
Embase M HE10 coudée 14V MULTICOMP MC9B232-1434 1 Farnell 1099016 0.38
Connecteur nappe F HE10 DROIT 14V MULTICOMP MC6FD014-30P1 5 Farnell 1099237 2.50
Condensateur 10µF 16V NICHICON UWX1C100MCL1GB 5 (MOQ) Farnell 8823022 0.74
Plaque présensibilisée 100mm x 160m CIF AA16 1 Farnell 1267738 4.04
Cable conversion RS232TTL/USB TTL-232R 3.3V 1 Ladyada TTL-232R 3.3V 20.00

Total : 50.84

BOM pour 4 cartes filles
ComposantQtitéFournisseur/RefPrix
TI CD4067BE 4 Farnell 1470913 4.48
Resistance 0Ω 2512 4 Farnell 9235825 0.00 (sur MOQ carte mère)
Resistance 0Ω 1206 8 Farnell 9336974 0.00 (sur MOQ carte mère)
Resistance 1.5MΩ 1206 150 (MOQ) Farnell 9237011 5.55
Embase M HE10 coudée 14V MULTICOMP MC9B232-1434 1 Farnell 1099016 0.38
Connecteurs sécables HE14 2x6 voies MH200 1 GoTronic 08002 0.90
Bornier à vis sur CI 8 voies 2.54mm Phoenix Contact 8 Farnell 3041438 22.48
Embouts isolés Télémécanique 0.5mm (par 100) 1 Farnell 1206996 8.16

Total : 41.95

Total général : 92.79 €

[1hold est la valeur minimale de courant supportée par le fusible, i.e. c’est la valeur à laquelle on est sûrs que le fusible ne va pas couper le circuit

[2trip est la valeur à laquelle on est sûr que le circuit sera coupé

[3pour les fusibles réarmables automatiquement, il y a malheureusement un facteur 3 entre les valeurs trip et hold (la zone entre les deux valeurs est un no-man’s land d’incertitude concernant le comportement du fusible) ; il faut donc parfois faire des choix cornéliens concernant leur utilisation. Dans notre cas, la valeur trip est supérieure à ce que le port USB est censé fournir sans négociation préalable

[4Minimum Order Quantity

Documents :

par Michel Blanc