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.
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.
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 :).
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
Composant | Qtité | Fournisseur/Ref | Prix |
---|---|---|---|
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
Composant | Qtité | Fournisseur/Ref | Prix |
---|---|---|---|
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 €