Go Down

Topic: Contrôler des LEDS ? (Read 19197 times) previous topic - next topic

Senescence

Bonjour à tous,

Je me présente, je suis musicien et je gère de l'électronique sur scène et j'ai pour objectif de toujours rendre l'électronique musicale plus visuelle et plus humaine. Pas question de rester bloquer derrière un ordinateur.
Et je travaille sur un projet de controleur d'effet utilisant le Leap Motion ...
Mais j'aimerais le rendre encore plus visuel, avec un objet couvert de LEDs qui montrerait le déplacement de la main au dessus du Leap Motion. J'ai pensé chercher du coté de l'Arduino. Mais c'est tout nouveau pour moi et je lis beaucoup de tutos mais ça reste encore obscur.

L'idée c'est de récupérer le signal du Leap motion pour allumer des petites barres de LEDS.
1. Plus la main est proche du Leap Motion plus les LEDs brillent fort.
2. Les barres de LEDs s'allument en fonction du déplacement de la main. Cette dernière étape a, je vois, été réalisée (en gros) par quelqu'un ici (vidéo) : http://thesis.diegozaks.com/2013/09/30/finger-tracking-led-light-up-using-processing-arduino-leap/

Maintenant je ne sais pas trop vers quel matériel me tourner. Quels types de barres de LEDs, comment réaliser le montage, alimenter les LEDs, etc.
Si quelqu'un ici a des pistes, je suis preneur.
Au lieu d'une LED par point de mapping, je pensais allumer une petite barre de 4 ou 6 LEDs (pour plus de visibilité sur scène).  Et avec bien plus de points mappés. Les barres de LEDs, une par une, ou deux par deux, s'allument en suivant le déplacement de la main au dessus du contrôleur ...

Je prends toute idée de matériel, de cablage de tout ça ... Et après je me lance au bidouillage pour que ça réponde à ce que je cherche.
Mais ma première étape c'est le matériel, l'alimentation des LEDs et leur connection à l'arduino.

Merci pour toute idée !

barbudor

Bonsoir

Un truc qui marche bien, ce sont les LEDS RGB adressables.
C'est à dire qu'elles sont associées soit sur un circuit imprimé, soit dans le chip LED avec un circuit de contrôle qui permet de piloter les 3 composantes RGB en 256 niveaux chacun, soit théoriquement 16 millions de couleurs.

2 types de controle existent :
- mono fil (type contrôleur WS2812)
- de type SPI à 2 fils (type contrôleur WS2801, WS2811 ou LDP8806) : plus fiable sur longue distance

Tu peux trouver :
- des leds individuelles à monter sur circuit imprimé : www.adafruit.com/products/1379
- des NeoPixel chez Adafruit qui ont déjà un petit circuit et tu peux cabler comme tu veux. C'est la mode du "Wearable Electronics" pour faire des habits de lumière qui clignotent partout : http://www.adafruit.com/products/1260
- des petits barreaux, matrices, etc .. pré-assemblés encore chez Adafruit : http://www.adafruit.com/category/37_168
- Des bandeaux souples jusqu'à 5m : chez Adafruit ou sur ebay. Compter environ 15 à 30€ du mètre avec 30, 60 ou 144 LEDs par mètre.
- Des gros pixels de 12mm ou 30mm

Quelques recherches eBay par exemple :
http://www.ebay.fr/sch/i.html?_sacat=0&_from=R40&LH_BIN=1&_nkw=addressable+rgb+led&LH_PrefLoc=2&_sop=15
http://www.ebay.fr/sch/i.html?_odkw=addressable+rgb+led&LH_BIN=1&_sop=15&_osacat=0&_from=R40&LH_PrefLoc=2&_trksid=p2045573.m570.l1313.TR0.TRC0.Xaddressable+rgb+led+strip&_nkw=addressable+rgb+led+strip&_sacat=0
http://www.ebay.fr/sch/i.html?_odkw=addressable+rgb+led+strip&LH_BIN=1&_sop=15&_osacat=0&_from=R40&LH_PrefLoc=2&_trksid=p2045573.m570.l1313.TR0.TRC0.Xaddressable+rgb+led+12mm&_nkw=addressable+rgb+led+12mm&_sacat=0
http://www.ebay.fr/sch/i.html?_odkw=rgb+led+pixe+30mm&LH_BIN=1&_sop=15&_osacat=0&_from=R40&LH_PrefLoc=2&_trksid=m570.l3201&_nkw=rgb+led+pixel+30mm&_sacat=0


Un Arduino peut facilement gérer jusqu'à 250 LEDs
Après c'est la mémoire et le temps de rafraichissement qui posent problème.

Y'a de quoi s'amuser.

AlienArea51

The truth is elsewhere !!

Senescence

Merciiiiiii !!!



ça c'est PARFAIT !

Quel est le souci avec la mémoire et le taux de rafraichissement ?
Et saurais tu m'expliquer comment cabler ça avec l'arduino (quel board d'ailleurs ?) et comment l'alimenter ?

Merci mille fois pour ton aide !

Senescence

Voici un autre exemple en vidéo de ce que je veux faire :

http://www.youtube.com/watch?v=6Fyv95ohkxg

J'ai encore du mal à finir ma liste de matériel pour controler 3 bandes de LEDs ...  :~

barbudor

Ben si tu l'as déjà fait, c'est bon ?  :smiley-mr-green:

Sinon, la photo que tu a mise n'est pas un produit prêt à l'emploi. Ce qui t'apparait en bande est en fait une bande de stockage. Ce qui est vendue sur ce produit ce sont des chips LEDs. Donc un composant CMS a souder sur quelque chose.
Si tu veux du bandeaux de LEDs comme sur cette video il faut utiliser le 2eme lien "addressable rgb led strip"

Aujourd'hui, le 1er lien renvoi vers une annonce ou tu peux choisir plusieurs choses. Notamment "5m WS2811 Digital LED strip (white)"
Il s'agit donc d'un bandeau de 5m a fond blanc avec des RGB avec le contrôleur WS2811 intégrée.
Il existe en version waterproof et non-waterproof. En version waterproff, le bandeau de led est dans un étuit transparent souple qui peut se couper comme le bandeau lui même à n'importe quelle taille. Attention parce qu'aux extrémité, ce n'est plus waterproof. Si tu as besoin de waterproof il faut isoler proprement les extrémités.
C'est le modèle 30 LED par mètre soit un total de 150 LED sur 5m.
A toi de voir si la densité te convient puisqu'il existe aussi 60 ou 144 LED par mètre. Le prix suit ...

Ce type de bandeau peut se controler avec une simple Arduino UNO.

Attention toutefois à l'alimentation.
150 LEDs RGB ca consomme si tu allume tout en blanc. 20mA par LED mais x3 parqu'il y a 3 LEDs (R, G, B) dans le chip.
Total 150 * 3 * 0,02 = 9A !!!!!
Il te faut donc au minimum un alim 10A/50W sous 5V
http://www.ebay.fr/sch/i.html?_odkw=power+supply+5V+50W&LH_BIN=1&_sop=15&_osacat=0&_from=R40&LH_PrefLoc=2&_trksid=p2045573.m570.l1313.TR0.TRC0.XAC%2FDC+power+supply+5V+50W&_nkw=AC%2FDC+power+supply+5V+50W&_sacat=0

Si tu peux, prend un peux plus : 15A pour avoir de la marge.

Cette alim permettra aussi d'alimenter l'Arduino MAIS il ne faut pas cabler :
Code: [Select]
ALIM -> Arduino -> LED
L'Arduino ne supporterait pas le passage des 9A.
IL faut donc faire une derivation :
Code: [Select]
ALIM -+---> Arduino
      \---> LED


Une broche sortie numérique (Digital Output) sur l'Arduino et la lib Adafruit NeoPixel : https://github.com/adafruit/Adafruit_NeoPixel

Voilà pour ce qui de commander les LED

Maintenant le Leap Motion....
Malheureusement lui il est USB, il lui faut un driver qui n'existe que pour PC ou MAC.
Donc je pense : No Way

Il te faudra donc aussi un PC/Mac avec un soft pour traiter le LeapMotion (je suppose que d'ailleurs le traitement des données du Leap Motion demande pas mal de capacité, au dela de ce que peux faire un Arduino.
Il te faudra donc une appli PC/Mac (environnement de dev a définir - que sais tu faire dans ce domaine) qui communique avec l'Arduino.
Au minimum Arduino branché en USB vu comme un port série -> échange de messages et ordres donnés par l'appli PC pour controler les LEDs. SI besoin, passage en Ethernet, Wifi ou Bluetooth

Je ne sais pas si j'en ai dis trop et que tu étais déjà ok, ou si j'ai pu aider...


Senescence

Merci 1000 fois ! Ton aide m'est très précieuse et me permet d'y voir plus clair dans le matériel.
Coté Leap Motion, j'en fais mon affaire. Il me sert à controler le son sur scène, donc il est bien branché en USB au mac.
Et dans le MAC, j'utilise Processing qui me permettra de renvoyer les données à l'Arduino pour controler les LEDs.

Des strips de 4m c'est trop pour moi.
J'aimerais 3 strips d'un mètre de ce type donc :



1M 60LEDs/M WS2811 Led Digital strip light Dream RGB Individually Addressable 5V

Donc pour ces 3 strips en parallèle, peux tu me donner plus de précision sur le montage avec l'Arduino et l'alim ? J'avoue que ces histoires d'alim me dépassent encore ...
Ça fait donc 3x60 = 180 LEDs à alimenter !


L'arduino sera branché en USB donc j'imagine que ça suffit à l'alimenter. Et ensuite je dois comprendre le montage pour alimenter les strips.

Merci encore ...

barbudor

Tu peux couper comme tu veux
Si tu achete un strip de 5m tu auras un meilleur prix. Tu coupe 3 morceaux de 1m et il t'en reste 2 pour autre chose.

Tu veux la meme chose sur les 3 strips ou differents ?

Senescence

L'idée c'est que tous les strips réagiront de la même façon mais, dans l'idéal, certains avec un léger délai à l'allumage et à l'extinction mais bon, dans un premier temps, faire marcher tout le monde en même temps, ce sera déjà bien.

barbudor

Salut,
Désolé, le vendredi soir c'est télé :)

Ci dessous un gros plan sur un bandeau de LED. Il s'agit d'un modèle 30 LEDs par mètre mais le 60 LEDs par mètre est similaire, juste les lEDS sont plus serrées. Comme tu peux le voir :
- Il y a un sens (indiqué par la flèche)
- un petit symbole de ciseaux qui indique que tu peux coupe à cet endroit là. Tu as un point de coupure comme celui-ci après chaque LED : donc tu peux vraiment couper un grand bandeau comme tu veux.

Tu va donc avoir N bandeaux qui vont diposer de 3 pins de chaque coté :
- Coté "entrée" : VCC (=+5V), DI (=Data Input), GND (=GND ;))
- Coté "sortie" : VCC, DO (=Data Out), GND

Les VCC et GND peuvent être reliés en série (je ne représente qu'un fil mais cela concerne VCC et GND) :
Code: [Select]
ALIM ----> Bandeau 1 -----> Bandeau 2 ----> Bandeau 3
Ou bien en étoile (appelé aussi parallèle ou dérivation)
Code: [Select]

       /--> Bandeau 1
ALIM --+--> Bandeau 2
       \--> Bandeau 3


Ceci est vrai pour les Alims indépendemment de la suite ci-dessous car contrairement au Data, les alims n'ont pas de sens (il n'y a pas de VCC Out ou de VCC In).
A toi de choisir le mode le plus facile à cabler.
Pour le cablage des alims, il faudra prendre du cable suffisant. Palons donc un peu d'ampères

Chaque composant LED RGB contient 3 LEDS : Rouge, Vert, Bleu. Chacun de ces LEDs consomme au maximum 20mA. Ti tu allume la LED en blanc (Rouge vert et bleau à fond) la LED RGB consomme 60mA. Si tu allume tes 180 LEDs en blanc, même un fraction de seconde, tu va consommer : 10,8A
1) Il te faut une alim suffisante. On applique un facteur de sécurité (derating) qui consiste à prendre une alim surdimensionné pour éviter les surchauffe. Donc vise une alim délivrant 15A sous 5V c'est à dire 75W.
Je ne trouve pas sur ebay de 75W. Après 50W, on saute direct à 100W : http://www.ebay.fr/sch/i.html?_odkw=power+supply+5V+AC%2FDC+100W&LH_BIN=1&_sop=15&_osacat=0&_from=R40&LH_PrefLoc=2&_trksid=p2045573.m570.l1313.TR0.TRC0.Xpower+switching+supply+5V+AC%2FDC+100W&_nkw=power+switching+supply+5V+AC%2FDC+100W&_sacat=0

2) Il faut câbler avec du fil adapté.
Si tu câble en étoile, chaque bandeau nécessite seulement 3.6A (60 LEDs). Je ne vais pas te parler en mm2 de section, plus simplement, tu prend du câble électrique à 2 fils comme on utilise couramment pour l'électricité standard (lampe de chevet, appareils électroniques, ...). Il s'agit de câble normalement ok jusqu'à 10A.
Si tu câble en série, le premier câble entre l'Alim et le 1erbandeau va prendre tout le courant. Il faut donc un cable plus costaud. Tu peux prendre le type utilisé avec les appareils électrique plus consommateur type appareils avec prise de terre (ordinateurs, prise électriques avec terre, ...) qui est normalement certifié pour 16A. Pour les suivants, tu peux redescendre au cable 10A puisque le courant diminue.

3) Tu dois alimenter les LEDs directement à partir de l'Alim, pas à travers l'Arduino.

Si tu compte alimenter ton Arduino via le port USB du Mac, rien de plus a faire pour l'Arduino.
Si tu compte utiliser une liaison sans fil (bluetooth, wifi ou ethernet parce que l'alim ne passe pas par Ethernet) ou si ton Arduino est loin du Mac, il faudra considérer alimenter l'Arduino depuis l'Alim 5V des LEDs, en étoile par rapport aux bandeaux (même si les bandeaux sont eux même alimentés en série, l'Arduino doit être en étoile) :

Code: [Select]
ALIM -+--> Bandeau 1 -----> Bandeau 2 ----> Bandeau 3
      \--> Arduino

       /--> Bandeau 1
ALIM --+--> Bandeau 2
       +--> Bandeau 3
       \--> Arduino



La suite ci-dessous ...

barbudor

Maintenant parlons des Data.

Pour que l'Arduino pilote un bandeau de LED il suffit de 2 choses :
- 1 signal numérique (digital output) qui rentre dans le DI (Digital Input) du bandeau
- que le GND de l'Arduino soit relié au GND du/des bandeaux. Donc surtout si ton Arduino est alimentée par l'USB, il faudra quand même une liaison entre le GND de l'Arduino et le GND de l'Alim des LED. Il ne passe pas beaucoup de courant, donc un petit fil suffira. Le même que celui que tu utiliseras pour le signal numérique ("fil de câblage électronique")

Tu auras 3 bandeaux.

Si tu veux exactement la même chose sur les 3 bandeaux, le montage en parallèle fonctionne si les 3 bandeaux sont proches l'un de l'autre :
Code: [Select]

                               /-> (DI) Bandeau 1
Arduino Dx --------------------+-> (DI) Bandeau 2
                               \-> (DI) Bandeau 3


Si tu veux des choses différentes, tu as 2 solutions :
i) Le chainage en série
Code: [Select]
Arduino Dx  ----> (DI) Bandeau 1 (DO) -----> (DI) Bandeau 2 (DO) ----> (DI) Bandeau 3
ii) 3 commandes séparées
Code: [Select]
Arduino Dx  ----> (DI) Bandeau 1
Arduino Dy  -----> (DI) Bandeau 2
Arduino Dz   ----> (DI) Bandeau 3


Pareil, suivant le câblage, l'un peut être plus ou moins facile.
Attention dans le cas i) si tu place les 3 bandeaux l'un au dessus de l'autre, pour assurer le cablage en série, celui du milieu doit être dans le sens opposé. Par exemple :
Code: [Select]

Arduino Dx ----------------------> (DI) Bandeau 1 (DO) >-\
                              /--< (DO) 2 uaednaB (DI) <-/
                              \--> (DI) Bandeau 3


Je pense que le i) est le plus simple. un chouia plus de fils mais ça sera plus facile au niveau soft de piloter les 3 bandeaux séparément que comme un seul long bandeau.

J'espère que tout cela continue à éclairer ta lanterne.

Senescence

Merci mille fois pour ton aide ! Tout ça me parait plus clair à présent.
Je n'ai pas choisi les LEDs dont tu parles mais des strips à 4 pins : 5v - R-G-B. Leur contrôle me parait plus simple.
je vais avoir 3 bandes en parallèle.
Deux contrôlées exactement de la même façon et la 3ème sur un autre contrôle.

Dans un premier temps il va me falloir comprendre comment cabler ce petit monde pour y arriver.
J'ai opté pour un proto shield pour souder tout ça correctement vu que le but est de le trimballer en concerts, faut que ce soit un minimum costaud.

Par anticipation, la question que je me pose est la suivante (en examinant les tutos de code, je ne trouve pas ma réponse) : si j'utilise un programme qui anime les leds, peut-on switcher ce programme pour un autre sur commande ? (midi par exemple)
En fait, elles réagiront toutes de la même façon en permanence mais j'aurai juste besoin de changer leur couleur à certains moments.

barbudor

Attention
Ce dont tu parles ne sont pas des LEDs adressables individuellement
Mais tout le bandeau sera à la même couleur.
Il n'y a pas de contrôleur dans chaque LED, donc tout ce que je viens d'expliquer ne te sert à rien mais à rien du tout.
Çà ne fonctionne pas de la même façon.

Senescence

Non non, j'ai bien fait attention de choisir des leds adressables.
J'ai pris ces bandeaux : http://www.adafruit.com/products/1138

J'ai choisi celles ci parce qu'il y a énormément de tutos pour les utiliser, ça va m'aider à commencer à jouer !  XD

barbudor

Si tu as pris celles-ci,  tres bien. Ce sont les mêmes que celles d'eBay. Juste plus chères + ce que les douanes risquent de te réclamer.
Et il y a bien 3 fils. Pas 4.
Pour les tutos, si tu reprends mon 1er post,  c'est chez Adafruit que t'avais déjà orienté. Ils marchent tout aussi bienavec les strips d'eBay.

Go Up