Neopixels

NeoPixel Introduction

L'entreprise de Limor Fried, en photo ci-contre, travaille beaucoup pour la communauté des makers. L'entreprise commercialise des produits qui sont en open source et écrit les drivers pour les utiliser. Les drivers sont en open source aussi. L'idée est d'utiliser NeoPixel pour fabriquer des vumètres.

Neopixel est un système qui s'appuie sur trois LEDs, une rouge, une verte et la bleue, connectées à un circuit de gestion qui est contrôlable sur un seul câble "1 wire".

Chaque "LED" (en fait trois, RGB) est adressable individuellement et les LEDs sont chainables. Avec les trois couleurs RGB de base, on peut faire du blanc et mélanger comme d'habitude en allant de 0 à 255 pour chaque couleur. On peut aussi déterminer l'intensité de chaque couleur.

NeoPixel est la marque proposée par Adafruit. NeoPixel s'appuie sur trois circuits différents possibles en 5V qui sont WS2812, WS2811 et SK6812. Il existe aussi des versions 12V.

Avec l'aide de deux composants, un microcontrôleur, par exemple un Arduino et du code, alors chaque LED est adressable individuellement. Le code Arduino utilise une bibliothèque développée par Adafruit et de fait ce qui nous reste à programmer est très simple. Ci-contre, Lady Ada (Limor Fried) présente ses NeoPixels.

Après avoir fait un peu joujou, j'affirme que c'est trop cool !

Approvisionnement

En ce qui nous concerne, nous allons commander quelque chose de compatible sur Aliexpress, un "ring" de 24 LEDs. L'anneau doit pouvoir fonctionner avec un Arduino, c'est pour cela que nous avons besoin de sélectionner un certain type d'imitation chinoise du NeoPixel d'Adafruit, qui doit fonctionner avec la bibliothèque d'Adafruit.

On va commander un anneau qui utilise la puce WS2818. Le tarif est dérisoire et on peut en commander 3 pour être autour de 10€.

La description du vendeur est un peu "technique"... C'est une traduction approximative, on croise les doigts, ça ira !

Quelques liens avant de sortir le fer à souder

Fer à souder

Comme le montre l'image ci-contre nous avons quatre connecteurs :

  • 5V et GND permettent d'alimenter le truc
  • DI ou DIN représente la broche de contrôle
  • DO ou DOUT est le connecteur de chainage des rubans et autres anneaux

Connexions

  • Dans l'exemple (voir ci-dessous) donné par le site on connecte DI à la broche D6 de l'Arduino en passant par une résistance de 470R
  • On peut alimenter l'anneau directement avec le 5V de l'Arduino mais ce n'est pas recommandé
  • On ajoute un petit condensateur entre le plus et le moins, 1000µF ou plus

Commentaires

  • La résistance est obligatoire
  • La broche 5V sort 0.5 A au maximum. Une LED peut consommer à fond et en intensité maximale 60 milliampères soit 0.06 A. Cela signifie qu'avec les 24 LEDs allumées on est au plus du double de la capacité de l'Arduino. Cela ne fonctionnera donc pas
  • Le condensateur est conseillé, la valeur n'est pas trop importante, 1000µF ou plus, mais bon, on peut faire avec ce que l'on a sous la main... Et puis cela fonctionne sans.

Pour programmer l'arduino il faudra installer une bibliothèque spécifique proposée par Adafruit. Il faudra commencer le script Arduino avec un include

#include <Adafruit_NeoPixel.h> 

Premier test

La première étape consiste à vérifier le bon fonctionnement du système. Dans l'IDE Arduino, dans le gestionnaire des bibliothèques, il faut installer la bibliothèque NeoPixel visible ci-dessous en troisième position.

Une fois que la bibliothèque est installée, on peut utiliser l'exemple fourni par Adafruit : Fichier, Exemples, Adafruit NeoPixel, strandtest

Ci-dessous un petit exemple de ce que cela donne.

Pour moins de 5€ on a fait un collier de perles lumineuses à Marge Bender.

Le code qui tourne est celui de démonstration proposé par Adafruit.

L'Arduino alimente NeoPixel ring et du coup, c'est trop cool, on va le laisser comme ça, ne rien toucher.

On va recommander des NeoPixels parce que s'amuser avec est un grand plaisir, et c'est si simple que les idées commencent à fuser !