Arduino, LED WS2812B et TCO

Toutes les discussions sur l'Arduino !

Modérateur : MOD

Répondre
Avatar du membre
jlb
Fécond
Messages : 686
Enregistré le : jeu. 04 oct. 2012, 15:38
Echelle pratiquée : N
Prénom : Jean-Luc
Site Internet : http://modelleisenbahn.triskell.org

Arduino, LED WS2812B et TCO

Message par jlb » mar. 31 déc. 2013, 19:15

Bonsoir,

Je vais parler un peu de ce que je fais avec les LED WS2812B. Ces LED sont des LED RGB un peu particulières. Elles comprennent dans un boîtier CMS 5050 3 LED : une rouge, une verte et une bleue, ainsi qu'un circuit logique qui :
1 - pilote chaque couleur via une PWM 8 bits (donc 256 couleur par canal pour un total de 16 millions de couleurs)
2 - sont interfacées via une liaison série : chaque WS2812B comporte une broche d'entrée et une broche de sortie. On les chaîne en branchant la sortie de la LED de rang i sur l'entrée de la LED de rang i+1.

Le fonctionnement est le suivant : on envoie une série de bits à la première LED de la chaîne, elle prélève les 24 premiers (8 bits x 3 canaux) et transmet les suivants sans y toucher. La suivante dans la chaîne fait de même et ainsi de suite.

La vitesse est de 800kbits/s ce qui permet de rafraichir un sacré paquet de LED en un temps très court.

Bien évidemment il y a une bibliothèque pour Arduino. Elle est développée par Adafruit qui commercialise des accessoires de mode à base de WS2812 sous la dénomination NeoPixel. Il me semble qu'elle ne fonctionne que sur AVR.

Elle est assez simple à utiliser. On dispose d'une classe C++ Adafruit_NeoPixel que l'on instancie en donnant le nombre de LED dans la chaîne, la pin sur laquelle la chaîne est connectée et un paramètre de fonctionnement (vitesse et ordre des couleurs)

On dispose de quelques fonctions permettant de spécifier la couleur d'une LED en particulier et de show() qui rafraichit toute la chaîne. La mise en œuvre n'est pas plus compliquée que celle des feux routiers de l'article de Christian dans le LR de janvier.

Ces LED existent en ruban autocollant ou bien en composants individuels. Adafruit propose aussi des artefacts plus exotiques.

J'ai pour ma part acheté 10 exemplaires de ces LED pour essais. Je les ai soudées sur un circuit imprimé représentant une aiguille :

Image

Voici un petit film montrant l'usage que je compte en faire, c'est un ignoble bricolage avec 2 épaisseurs de papier et des pinces pour tenir le tout :



J'ai compté qu'il me faut environ 440 LED pour mon TCO, ça va m'occuper 5 minutes :mrgreen:

Avatar du membre
likiki
Causant
Messages : 296
Enregistré le : dim. 29 avr. 2012, 14:21
Echelle pratiquée : H0 3R
Prénom : Christian
Site Internet : http://passionnement.forumactif.org
Localisation : Corbeil Essonne

Re: Arduino, LED WS2812B et TCO

Message par likiki » mer. 01 janv. 2014, 19:56

Génial l'idée, bon courage pour les 1000 soudures qui t'attende. :mdr2:
Cordialement,

Christian.

Avatar du membre
jlb
Fécond
Messages : 686
Enregistré le : jeu. 04 oct. 2012, 15:38
Echelle pratiquée : N
Prénom : Jean-Luc
Site Internet : http://modelleisenbahn.triskell.org

Re: Arduino, LED WS2812B et TCO

Message par jlb » mer. 01 janv. 2014, 22:19

Boah, j'ai aussi 6 cartes 4 alimentations qui m'attendent avec 440 composants par carte :) environ 8000 soudures :noel: Alors le TCO c'est de la gnognotte :siffle:

Avatar du membre
likiki
Causant
Messages : 296
Enregistré le : dim. 29 avr. 2012, 14:21
Echelle pratiquée : H0 3R
Prénom : Christian
Site Internet : http://passionnement.forumactif.org
Localisation : Corbeil Essonne

Re: Arduino, LED WS2812B et TCO

Message par likiki » mer. 01 janv. 2014, 22:21

8000 soudures ?????? :mort:
Cordialement,

Christian.

Avatar du membre
jlb
Fécond
Messages : 686
Enregistré le : jeu. 04 oct. 2012, 15:38
Echelle pratiquée : N
Prénom : Jean-Luc
Site Internet : http://modelleisenbahn.triskell.org

Re: Arduino, LED WS2812B et TCO

Message par jlb » mer. 01 janv. 2014, 22:23

:siffle: 2 jours par carte

Avatar du membre
Roc
Promesse tenue
Messages : 21148
Enregistré le : jeu. 22 févr. 2007, 12:51
Prénom : Olivier
Club : Intermittent des Rigollots©
Localisation : Aude

Re: Arduino, LED WS2812B et TCO

Message par Roc » mer. 01 janv. 2014, 22:50

Image

Ce type doit être dérangé ! Image
Image

:mdr:
[center].[/center]

Avatar du membre
Arduino
Prolixe
Messages : 1698
Enregistré le : mer. 25 sept. 2013, 16:14

Re: Arduino, LED WS2812B et TCO

Message par Arduino » jeu. 02 janv. 2014, 08:46

Ce sont les gens les plus fous qui réalisent les choses les plus extraordinaires.

Bravo Jean-Luc :applause: !

Avatar du membre
jlb
Fécond
Messages : 686
Enregistré le : jeu. 04 oct. 2012, 15:38
Echelle pratiquée : N
Prénom : Jean-Luc
Site Internet : http://modelleisenbahn.triskell.org

Re: Arduino, LED WS2812B et TCO

Message par jlb » jeu. 02 janv. 2014, 09:39

Merci Christian :)

8000 pour les 6 cartes, pas 8000 par carte :) Ça fait que 12 jours de boulot (moins en fait en montant les cartes en parallèle, on perd moins de temps à chercher la place des composants) et je vous assure que c'est moins pénible que de creuser une tranchée :mort:

Voici le proto de l'engin :

Image

Avatar du membre
Roc
Promesse tenue
Messages : 21148
Enregistré le : jeu. 22 févr. 2007, 12:51
Prénom : Olivier
Club : Intermittent des Rigollots©
Localisation : Aude

Re: Arduino, LED WS2812B et TCO

Message par Roc » jeu. 02 janv. 2014, 09:53

jlb a écrit :8000 pour les 6 cartes, pas 8000 par carte :)

Ah bon !
Là, c'est (un peu) plus raisonnable ! :diable:

:wink:
[center].[/center]

Avatar du membre
likiki
Causant
Messages : 296
Enregistré le : dim. 29 avr. 2012, 14:21
Echelle pratiquée : H0 3R
Prénom : Christian
Site Internet : http://passionnement.forumactif.org
Localisation : Corbeil Essonne

Re: Arduino, LED WS2812B et TCO

Message par likiki » jeu. 02 janv. 2014, 19:18

La photo le confirme, il est fou. :mdr2:

Sacré boulot, félicitation. :siffle:
Cordialement,

Christian.

Avatar du membre
Arduino
Prolixe
Messages : 1698
Enregistré le : mer. 25 sept. 2013, 16:14

Re: Arduino, LED WS2812B et TCO

Message par Arduino » ven. 03 janv. 2014, 10:44

likiki a écrit :La photo le confirme, il est fou. :mdr2:

Sacré boulot, félicitation. :siffle:


Il n'est pas fou, il fait simplement partie d'une bande de fous ! :lol:

Je vous invite à bien parcourir son site internet et celui de son copain ( http://lestrainsdutertre.redheberg.com/ ... Index.html ) ; je ne serais pas surpris d'apprendre qu'ils ont mis au point une machine à souder par laser pour gagner du temps en montant leurs cartes à 8000 soudures.

Ils en sont bien capables ! :roll:

Moi aussi je dis bravo à la bande des trois. :applause:

Christian

Avatar du membre
jlb
Fécond
Messages : 686
Enregistré le : jeu. 04 oct. 2012, 15:38
Echelle pratiquée : N
Prénom : Jean-Luc
Site Internet : http://modelleisenbahn.triskell.org

Re: Arduino, LED WS2812B et TCO

Message par jlb » dim. 23 févr. 2014, 18:02

Bonjour,

Finalement il y aura un Arduino dans mon TCO pour gérer les LED WS2812(B) :noel:

Comme je l'explique ici : http://modelleisenbahn.triskell.org/spip.php?article81 le rafraichissement des LED demande un temps trop important pour une chaîne de LED longue (une centaine dans mon cas) et le rafraichissement est ininterruptible. Si le micro devait aussi gérer les messages CAN, un ou plusieurs messages CAN pourraient être perdus pendant le rafraichissement.

Je vais donc faire une carte bi-processeur, un PIC 18F26K80 et un Arduino Nano ou autre (à définir). Les deux communiqueront par le bus SPI. Le PIC gérera le CAN, assurera la passerelle CAN->SPI et gérera le balayages du cadre infra-rouge. L'Arduino gérera les LED et peut-être un afficheur LCD.

Je viens de tester la communication SPI entre un Uno et un PIC avec succès.

Répondre