Projet ICN5 2016/2017
Sommaire |
Participants
- Gabrielle REDON
Cahier des charges
L'objet final sera constitué des composants ci-dessous.
- une broderie de type mandala ;
- un micro-contrôleur comme un Arduino Lily-Pad ;
- un dispositif électronique à base de registres à décalage pour commander un grand nombre de LEDs ;
- de LEDs dissiminés sur l'ensemble de la broderie ;
- un capteur de type accéléromètre peut être ajouté pour commander des comportements différents.
Réalisations
Disposition des LEDs sur le mandala
Pour simuler la répartition des LEDs sur la mandala, le logiciel géogébra a été utilisé.
Le programme géogébra est : Fichier:Mandala LEDs.ggb.
Le dessin obtenu est :
Cet autre programme géogébra montre les groupes de LEDs à allumer en même temps : Fichier:LED mandala groupes.ggb.
Groupe | Nombre |
---|---|
Groupe rouge | 32 LEDs |
Groupe violet | 32 LEDs |
Groupe rose | 32 LEDs |
Groupe azur | 16 LEDs |
Groupe jaune | 24 LEDs |
Groupe noir | 32 LEDs |
Groupe bleu | 32 LEDs |
Groupe vieux rose | 32 LEDs |
Tous groupes | 232 LEDs |
Schéma du mandala avec les dimensions agrandies pour la réalisation finale : Fichier:LED mandala espace.ggb.
Test du dispositif électronique
Les registres à décalage sont des composants qui permettent d'obtenir un grand nombre de sorties numériques. Les valeurs de ces sorties peuvent être positionnées avec un petit nombre de sorties du micro-contrôleur. Dans le cas des registres à décalage 74HC595 que nous allons utiliser il suffit de 3 sorties pour pouvoir programmer les sorties du registre à décalage. De plus, il est possible d'enchaîner autant de registres à décalage qu'on le souhaite. Ici nous allons enchainer 3 registres pour un nombre total de sorties de 24. Nous pourrons ainsi commander 24 groupes de LEDs.
Voici le montage sur plaque d'essai pour trois 74HC595 en cascade.
Par ailleurs nous souhaitons commander plusieurs groupes de LEDs avec une seule sortie. Or une seule sortie d'un registre à décalage ne permet pas d'alimenter plus qu'une LED. Il faut donc utiliser des transistors pour alimenter plusieurs LEDs avec une seule sortie.
Le montage d'utilisation d'un transistor NPN est donné dans ce schéma.
Dans notre cas le transistor utilisé est un classique BC547 tiré d'un kit Arduino. Ce transistor peut encaisser un courant de 100mA sous une tension de 45V. La tension maximale est sur-dimensionnée par rapport à la pile de 9V que nous utilisons. Par contre le courant est assez limité. Considérant que nos LEDs consomment Iled=20mA sous une tension de 1,8V, nous voyons que nous pouvons seulement alimenter cinq groupes de LEDs en parallèle, quatre pour avoir une marge de sécurité. Par contre, il est possible de commander plusieurs LEDs en série par groupe, le courant consommé sera le même. Il n'est pas possible de mettre un nombre infini de LEDs en série. En effet, le voltage total ne doit pas dépasser celui de l'alimentation, 9V ici. Le transistor lui-même nécessite, au minimum, 0,2V pour fonctionner, il reste 8,8V pour les LEDs, de quoi alimenter quatre LEDs en série. Nous nous contenterons ici d'en mettre trois.
Pour en revenir au schéma nous avons Valim=9V, VCE=0,2V, Vled=1,8V. La loi d'Ohm, U=RxI, impose donc une résistance R1=VR1/Iled=(9-0,2-3*1,8)/0,02. Soit 170 Ohm. A noter que la résistance R3 est négligée car très faible. Dans le montage des résistances de 220 Ohm sont utilisées, les LEDs ne sont donc pas à leur brillance maximale.
La résistance R2 sert à limiter le courant arrivant sur la commande du transistor, c'est à dire sur sa base. Cette limitation est nécessaire pour éviter de griller le composant. Attention le courant doit tout de même être suffisant pour mettre le transistor en mode saturé où il se comporte comme un interrupteur. Pour connaître le courant minimum à appliquer, il suffit de diviser le courant qui doit circuler à travers le transistor, du collecteur à l'émetteur par le gain du transistor. Prenons un gain de 100 pour un BC547 générique, sachant que nous allons faire circuler un courant d'environ 80mA dans le transistor, il faudrait un courant minimum de 0,8mA sur la base du transistor. Cela dit, la fiche technique recommande un courant de 5mA pour obtenir un VCE de 0,2V avec un courant ICE de 100mA. La documentation technique indique que pour un courant sur la base de 5mA et un courant traversant de 100mA, la tension VBE est de 0,9V. Donc, sachant que le transistor est commandé en 5V par un Arduino, la loi d'Ohm impose une résistance R2=(5-0,9)/0,005. Soit une résistance R2 de 820 Ohm. La résistance R3 est encore négligée.
Voici le montage sur plaque d'essai pour allumer 12 LEDs avec une seule sortie en utilisant un transistor (insérer une photo).
Et ça marche :
Toutes les LEDs contrôlées par le transistor sont bien allumées mais comme elles ne sont pas du même type l'appareil photo ne montre que les plus brillantes.
Circuits électroniques
Pour pouvoir prendre le moins de place possible sur la broderie, il faut concevoir un circuit imprimé avec des composants de surface.
Circuits électroniques principaux
Ce circuit imprimé est assez complexe. Après différents essais, une version fonctionnelle est obtenue : Fichier:Mandala.fzz.
Il faut aussi réaliser des circuits imprimés pour les LEDs. Pour éviter de la dissipation d'énergie par effet joule (chaleur) il est préférable de monter les LEDs en série puis de mettre des groupes de LEDs en parallèle. Ci-dessous une version de ce circuit pour des LEDs uniformément distribuées avec des modèles différents pour les début, milieu et fin de chaîne : Fichier:PorteLEDs.fzz.
Il est aussi possible de concevoir un unique modèle de circuit imprimé pour porter les LEDs isolées Fichier:GenericPorteLEDs.fzz.
Pour ces circuits, les empreintes utilisées pour les LEDs étaient celles des résistances soit 0603 impérial, il a donc été nécessaire de les changer par du 3015 métriques (soit environ de dimensions 1206 impériales). Cependant cette modification n'a été effectuée que sur les portes LED génériques, le seul modèle qui sera utilisé.
Calculs pour l'organisation des LEDs
Les composants que nous souhaitons utiliser pour les circuits imprimés sont des composants de surface : des LEDs bleues KPL-3015QBC-D et des transistors MMBT3904.
Les LEDs consomment 20mA sous 3,3V. Les transistors sont donnés pour une intensité maximale de 200mA. Par contre, la fiche technique ne donne les valeurs en saturation que pour un courant traversant de 50mA. Cependant au vu des courbes de la fiche, il semble possible de travailler avec un courant traversant de 100mA à condition d'avoir un courant de 10mA sur la base. Dans ces conditions la tension VCE de saturation s'établit à 0,2V et la tension VBE de saturation à 0,9V. Donc deux LEDs bleues KPL-3015QBC-D peuvent être mises en série pour un total de 2x3,3V soit 6,6V. La résistance R1 en série avec les LEDs doit donc être R1=(9-0,2-6,6)/0,02=110 Ohm. La résistance de limitation du courant sur la base est R2=(5-0,9)/0,01=410 Ohm. A noter qu'il faudrait s'assurer que les registres à décalage puissent fournir 10mA par sortie, cela semble possible au vu de la fiche technique mais est à confirmer dans la pratique.
Avec ces valeurs une sortie ne peut commander que 5 lignes parallèle de 2 LEDs en série. Soit 10 LEDs au total. Comme le montre le tableau ci-dessous nous ne disposerions pas d'assez de sorties pour tous les groupes de LEDs.
Groupe | 10 (2x5) LEDs maximum | 12 (2x6) LEDs maximum | 15 (3x5) LEDs maximum | 18 (3x6) LEDs maximum |
---|---|---|---|---|
Groupe rouge | 4 sorties | 3 sorties | 3 sorties | 2 sorties |
Groupe violet | 4 sorties | 3 sorties | 3 sorties | 2 sorties |
Groupe rose | 4 sorties | 3 sorties | 3 sorties | 2 sorties |
Groupe azur | 2 sorties | 2 sorties | 2 sorties | 1 sortie |
Groupe jaune | 3 sorties | 2 sorties | 2 sorties | 2 sorties |
Groupe noir | 4 sorties | 3 sorties | 3 sorties | 2 sorties |
Groupe bleu | 4 sorties | 3 sorties | 3 sorties | 2 sorties |
Groupe vieux rose | 4 sorties | 3 sorties | 3 sorties | 2 sorties |
Tous les groupes | 29 sorties | 22 sorties | 22 sorties | 15 sorties |
Le tableau montre qu'il faut un minimum de 12 LEDs par sortie pour pouvoir gérer tous les groupes.
Avec les mêmes LEDs il faut passer à 6 lignes parallèles de 2 LEDs en série. Cela signifie une consommation de 120mA par transistor. C'est inférieur à la limite absolue de 200mA. D'après les courbes de la fiche technique cela doit pouvoir se faire en assurant un courant de 12mA sur la base. La tension VCE de saturation devrait rester en dessous de 0,3V et la tension VBE de saturation devrait approcher 0,95V. La résistance R1 reste comparable à un peu plus de 100 Ohm par contre R2 descend aux environs de 340 Ohm. Si 12mA sont trop importants pour les sorties à décalage il est possible de réduire la consommation au détriment de l'augmentation de la tension VCE de saturation. Même avec un VCE de 1V, deux LEDs en série seraient encore possible, la résistance R1 tomberait alors à 70 Ohm.
Si, en pratique, la solution avec 12 LEDs KPL-3015QBC-D (polarity mark qui indiquent le négatif) n'est pas viable, il est possible de changer de LEDs. En effet, les LEDs bleues ont toujours besoin d'une tension plus élevée que les LEDs d'autres couleurs. Ainsi les LEDs rouge de la même famille KPL-3015EC, travaillent sous 2V. Il est donc possible d'en mettre 5*3=15 par transistor et c'est surement la solution qui sera utilisée lors de la finalisation du projet. Il est aussi possible, si l'on souhaite rester sur des LEDs bleues, de prendre des LEDs à faible consommation comme les KA-3021LVVBS-D. Ces LEDs sont un peu plus larges et délivrent seulement 0,05 candelas au lieu des 0,2 candelas des LEDs KPL (soit 4 fois moins puissantes). Par contre elles ne consomment que 2mA. Il est donc possible de mettre 10 fois plus de LEDs par groupe soit une centaine. Là encore des tests sont nécessaires pour savoir si la brillance de LEDs 2mA est suffisante.
Une autre problématique est aussi la consommation totale. Chaque ensemble de 2 LEDs en série consomme 20mA. Quelle puissance d'alimentation faut-il prévoir pour le Mandala ? Cette consommation dépend du nombre total de LEDs allumées en même temps donc des animations prévues pour le mandala.
Mise en pratique
Pour valider les calculs et les hypothèses de la section précédente des tests ont été réalisés avec un Arduino Uno, le circuit avec les registres à décalage et 32 portes LEDs génériques. Sur le circuit principal, trois transistors ont été soudés avec des résistances de 330 Ohms sur la commande et des résistances de 2 Ohms sur l'émetteur. Sur les portes LEDs ont été soudées des LEDs bleues KPL-3015QBC-D et des résistances de 100 Ohms. Les portes LEDs sont groupés par deux (deux LEDs et une résistance). Deux transistors sont connectés à 5 groupes en parallèle et un autre est connecté à 6 groupes en parallèle.
L'Arduino est programmé en utilisant la bibliothèque ShiftPWM : https://github.com/elcojacobs/ShiftPWM.
Le test à été réalisé en alimentant l'Arduino par un port USB et les LEDs par une pile 9V. Le test a été tout à fait concluant comme ont pu en juger les parents venus se renseigner sur l'ICN lors de la matinée portes ouvertes.
Une fois la faisabilité assurée, d'autres circuits porte LEDs ont été créés car la version générique n'était pas utilisable au centre du mandala où la densité en LEDs est importante :
- une version en arc : Fichier:ArcPorteLEDs.fzz ;
- une version en V : Fichier:NuagePorteLEDs.fzz ;
- une version en rayon long : Fichier:RayonPorteLEDs.fzz ;
- une version en rayon court : Fichier:RayonMinPorteLEDs.fzz.
Voici une représentation des différents circuits porte LEDs :
A réaliser
- Finaliser le calcul de la consommation total et trouver le type et le nombre de piles adaptées.
- Faire un schéma du dispositif total : lilypad, circuits et leurs connexions électriques, piles, tissu, cadre.
- Choix du tissu et des éléments de broderie (coton, cannetille, jaseron, paillette).
- Plan de disposition des circuits porte LED et de la broderie intégrée.
- Test (essai de charge avec groupes différents) des circuits d'essai commandés (en cours d'acheminement): soudure, essais de fonctionnement.