FEATHER-MICROPYTHON-NEOPIXEL
Introduction
L'arrivée de LEDs disposant d'une puce pilote dédicacée facilite grandement l'intégration de LEDs RGB dans change radicalement la donne en allégeant le travail du microcontrôleur, le câblage et permet au développeur de se concentrer sur l'application.
Le WS2812 avec source de lumière intégrée (WS2812 Integrated Light Source) — plus communément nommé NeoPixel par Adafruit — est la dernière avancée dans la quête pour obtenir des LEDs pleine de couleurs, simple a mettre en oeuvre, évolutive et abordable. Les leds rouge, vert et bleue sont intégrées côte à côte sur un petit composants montés en surface, lui-même intégré sur la puce du pilote (le contrôleur de la LED), le tout contrôlé par un simple fil de donnée qui passe d'une LED à l'autre.
Les LEDs NeoPixel peuvent être utilisés individuellement, arrangés pour former une longue chaîne ou assemblés pour réaliser des formes intéressantes.
Ces LEDs sont arrangées sous différentes formes (voir la gamme disponible chez MC Hobby):
NeoPixel sur ESP8266 MicroPython
La bibliothèque neopixel est déjà présente dans les Firmwares MicroPython. Cela permet de démarrer rapidement, il y a cependant quelques restrictions.
La bibliothèque convient uniquement pour la génération de NeoPixel avec flux de donnée à 800 KHz. |
Le bibliothèque ne prend pas en charge:
- l'ancienne génération de NeoPixel (flux de donnée à 400 KHz)
- les LEDs NeoPixel RGBW.
Les broches de l'ESP8266 compatibles pour commander des NéoPixels sont les suivantes:
Broche | Compatibilité |
14 | NeoPixel compatible. |
12 | non testé. |
13 | NeoPixel compatible. |
15 | NeoPixel compatible. |
0 | NE PAS UTILISER. Broche de boot. |
16 | NON FONCTIONNEL pour NeoPixel |
2 | NeoPixel compatible. |
5 | NeoPixel compatible. Bus I2C (SCL) |
4 | NeoPixel compatible. Bus I2C (SDA) |
Raccordement
Broche ESP8266 | Broche NeoPixel | Note |
GND | GND | Masse commune |
3V | 5V | Neopixel fonctionne aussi sous 3.3V. Elles sont moins brillante et ont plus de mal à produire du bleu. Attention: le signal doit aussi être en 3.3V |
2 | DIN | Le signal doit entrer par la broche Data IN. Ne pas se tromper avec Data OUT! si le signal est branché sur DOUT (Data Out) alors les LEDs ne recevront pas les informations de couleur. |
Code d'exemple
Le script d'exemple suivant montre comment commander un NeoPixel Stick de 8 LEDs
# Utilisation de la bibliothèque neopixel avec Feather ESP8266
# sous MicroPython
#
# Shop: https://shop.mchobby.be/55-leds-neopixels-et-dotstar
# Wiki: https://wiki.mchobby.be/index.php?title=MicroPython-Accueil#ESP8266_en_MicroPython
from machine import Pin
from neopixel import NeoPixel
from time import sleep
# NeoPixel( broche_signal, nbre_de_led )
np = NeoPixel( Pin(2), 8 )
# Fixer la couleur la couleur du premier pixel
# avec un tuple (r,g,b) ou chaque valeur est
# située entre 0 et 255
np[0] = (255,0,0) # rouge
# couleur des autres pixels
np[1] = (0, 255, 0) # vert
np[2] = (0, 0, 128) # bleu (1/2 brillance)
# Voir aussi HTML Color Picker
# https://www.w3schools.com/colors/colors_picker.asp
np[3] = (255, 102, 0) # Orange
np[4] = (255, 0, 102) # Rose bonbon
np[5] = (153, 51, 255) # Violet
np[6] = (102, 153, 255) # bleu pastel
np[7] = (153, 255, 153) # vert pastel
# Envoyer l'info au NeoPixels
np.write()
sleep(2)
# fill() permet de remplir tout
# le NeoPixel avec une seule couleur
colors = [ (255,0,0), (0, 255, 0), (0, 0, 128),
(255, 102, 0) , (255, 0, 102), (153, 51, 128),
(102, 153, 128), (153, 255, 128) ]
for color in colors:
np.fill( color )
np.write()
sleep(2)
# Eteindre les NeoPixels
np.fill( (0,0,0) )
np.write()
Ressouces
- Référence officielle NeoPixel sous ESP8266
- Le tutoriel NeoPixel pour Arduino contenant de nombreuses informations et recommandations.
Où acheter
- Le Feather Huzzah ESP8266 utilisé dans ce tutoriel.
- Le NeoPixel Stick utilisé dans ce tutoriel.
- La la gamme NeoPixel disponible chez MC Hobby
Tutoriel réaliser par Meurisse D. pour MC Hobby SPRL
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : « Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.
L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.