Les NeoPixels sont des LEDS RVB intelligentes ultra lumineuses. On peut les associer pour former des bandeaux, des rectangles etc....
Exemple : ce petit module sous la forme d'un stick, est équipé de 8 NeoPixels WS2812
|
Chaque NeoPixel possède à l’intérieur :
- une LED RVB
- un circuit électronique intégré, le WS281
- une patte Data in (données entrantes) et une patte Data out (données sortantes).
Les NeoPixel sont chainable entre eux, c’est à dire que les données entrantes de l’un vont être les données sortantes du suivant et ainsi de suite.
Cette information est transmise très rapidement d’un NeoPixel à l’autre et chaque NeoPixel prend l’information qui le concerne.
Le 1er NeoPixel aura l'adresse 0, le suivant 1 etc.....
On parle de LED adressables.
Les données viennent d’un seule broche d’un microcontrôleur comme Microbit, ESP ou Arduino.
Le microcontrôleur doit envoyer une information concernant :
- L'adresse du NeoPixel concerné. Ex : np[0] pour le pixel d'adresse 0
- La luminosité de 0 à 255 pour chaque canal en Rouge Vert Bleu Ex : (255, 0, 0) pour un pixel rouge
|
Microbit MicroPython Neopixel WS2812
Programme pour allumer les 3 premiers NeoPixels du stick de 8 Néopixels connecté à la broche 0 (repère P0 shield Grove)
from microbit import * from neopixel import NeoPixel # import de la bibliothèque NeoPixel
np = NeoPixel(pin0, 8) # crée un objet np de 8 Néopixels connectés broche 0 (repère P0 shield Grove)
np[0] = (255, 0, 0) # affecte du rouge au 1er NeoPixel (adresse = 0) np[1] = (0, 255, 0) # affecte du verte au 2ème NeoPixel (adresse = 1) np[2] = (0, 20, 0) # affecte du vert pale au 3ème NeoPixel (adresse = 2) np.show() # écriture des données vers les NeoPixels
|
Microbit MicroPython Neopixel WS2812
Programme pour allumer 3 NeoPixels en bleu du stick
from microbit import * from neopixel import NeoPixel # import de la bibliothèque NeoPixel
np = NeoPixel(pin0, 8) # crée un objet np de 8 Néopixels connectés broche 0 (repère P0 shield Grove)
for x in range(2, 5): # boucle pour x de 2 à 4 (2 compris, 5 non compris) np[x] = (0, 0, 20) # affecte du bleu au NeoPixel d'adresse x
np.show() # écriture des données vers les NeoPixels
|
Microbit MicroPython Neopixel WS2812
Programme pour affecter une couleur et une intensité aléatoire aux 8 NeoPixels
from microbit import * from neopixel import NeoPixel from time import sleep_ms from random import randint
np = NeoPixel(pin0, 8)
while True: # Pour chaque NeoPixel, de x = 0 à 7 for x in range(0, 8): # intensité aléatoire entre 0-60 par canaux RVB r = randint(0, 60) v = randint(0, 60) b = randint(0, 60)
# Affecte le tuple (r, v, b) au NeoPixel np[x] = (r, v, b)
# Envoi des données aux Neopixels np.show() sleep_ms(100)
|
Créé avec HelpNDoc Personal Edition: Créer facilement des fichiers Qt Help