Connectez et contrôlez les bandes LED RVB WS2812 via Raspberry Pi

Connectez et controlez les bandes LED RVB WS2812 via Raspberry
Connectez et controlez les bandes LED RVB WS2812 via Raspberry

#! / usr / bin / env python3

# rpi_ws281x exemple de strandtest de bibliothèque

# Auteur: Thomas DiCola (tony@tonydicola.com)

#

# Port direct de l’exemple de strandtest de la bibliothèque Arduino NeoPixel. Vitrines

# animations diverses sur une bande de NeoPixels.

importation temps

de rpi_ws281x importation *

importation argparse

# Configuration de la bande LED:

LED_COUNT = 16 # Nombre de pixels LED.

LED_PIN = 18 # Broche GPIO connectée aux pixels (18 utilise PWM!).

#LED_PIN = 10 # broche GPIO connectée aux pixels (10 utilise SPI /dev/spidev0.0).

LED_FREQ_HZ = 800000 # Fréquence du signal LED en hertz (généralement 800 kHz)

LED_DMA = dix # Canal DMA à utiliser pour générer un signal (essayez 10)

LED_BRIGHTNESS = 255 # Défini sur 0 pour le plus sombre et 255 pour le plus clair

LED_INVERT = Faux # True pour inverser le signal (lors de l’utilisation d’un changement de niveau de transistor NPN)

LED_CHANNEL = 0 # défini sur ‘1’ pour les GPIO 13, 19, 41, 45 ou 53

# Définissez les fonctions qui animent les LED de différentes manières.

def colorWipe(bande, Couleur, wait_ms=50):

«  » « Effacer la couleur sur un pixel à la fois. » «  »

pour je dans gamme(bande.numPixels()):

bande.setPixelColor(je, Couleur)

bande.spectacle()

temps.dormir(wait_ms/1000,0)

def théâtreChase(bande, Couleur, wait_ms=50, itérations=dix):

«  » « Animation de chasseur de style léger de cinéma. » «  »

pour j dans gamme(itérations):

pour q dans gamme(3):

pour je dans gamme(0, bande.numPixels(), 3):

bande.setPixelColor(je+q, Couleur)

bande.spectacle()

temps.dormir(wait_ms/1000,0)

pour je dans gamme(0, bande.numPixels(), 3):

bande.setPixelColor(je+q, 0)

def roue(pos):

«  » « Générez des couleurs arc-en-ciel sur 0 à 255 positions. » «  »

si pos < 85:

revenir Couleur(pos * 3, 255 pos * 3, 0)

elif pos < 170:

pos – = 85

revenir Couleur(255 pos * 3, 0, pos * 3)

autre:

pos – = 170

revenir Couleur(0, pos * 3, 255 pos * 3)

def arc en ciel(bande, wait_ms=20, itérations=1):

«  » « Dessinez un arc-en-ciel qui s’estompe sur tous les pixels à la fois. » «  »

pour j dans gamme(256*itérations):

pour je dans gamme(bande.numPixels()):

bande.setPixelColor(je, roue((je+j) & 255))

bande.spectacle()

temps.dormir(wait_ms/1000,0)

def rainbowCycle(bande, wait_ms=20, itérations=5):

«  » « Dessine un arc-en-ciel qui se répartit uniformément sur tous les pixels. » «  »

pour j dans gamme(256*itérations):

pour je dans gamme(bande.numPixels()):

bande.setPixelColor(je, roue((int(je * 256 / bande.numPixels()) + j) & 255))

bande.spectacle()

temps.dormir(wait_ms/1000,0)

def théâtreChaseArc-en-ciel(bande, wait_ms=50):

«  » « Animation de chasseur de style de lumière de cinéma arc-en-ciel. » «  »

pour j dans gamme(256):

pour q dans gamme(3):

pour je dans gamme(0, bande.numPixels(), 3):

bande.setPixelColor(je+q, roue((je+j) % 255))

bande.spectacle()

temps.dormir(wait_ms/1000,0)

pour je dans gamme(0, bande.numPixels(), 3):

bande.setPixelColor(je+q, 0)

# La logique du programme principal suit:

si __Nom__ == ‘__principale__’:

# Arguments de processus

analyseur = argparse.ArgumentParser()

analyseur.add_argument(«-c», ‘–clair’, action=‘store_true’, Aidez-moi=«effacer l’affichage à la sortie»)

args = analyseur.parse_args()

# Créer un objet NeoPixel avec une configuration appropriée.

bande = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL)

# Initialisez la bibliothèque (doit être appelée une fois avant les autres fonctions).

bande.commencer()

impression (‘Appuyez sur Ctrl-C pour quitter.’)

si ne pas args.clair:

impression(‘Utiliser l’argument « -c » pour effacer les LED à la sortie’)

essayer:

tandis que Vrai:

impression («Animations à effacement des couleurs».)

colorWipe(bande, Couleur(255, 0, 0)) # Lingette rouge

colorWipe(bande, Couleur(0, 255, 0)) # Lingette bleue

colorWipe(bande, Couleur(0, 0, 255)) # Lingette verte

impression («Animations de poursuite en théâtre.)

théâtreChase(bande, Couleur(127, 127, 127)) # Chasse au théâtre blanc

théâtreChase(bande, Couleur(127, 0, 0)) # Chasse au théâtre rouge

théâtreChase(bande, Couleur( 0, 0, 127)) # Chasse au théâtre bleu

impression (« Animations arc-en-ciel. »)

arc en ciel(bande)

rainbowCycle(bande)

théâtreChaseArc-en-ciel(bande)

sauf KeyboardInterrupt:

si args.clair:

colorWipe(bande, Couleur(0,0,0), dix)

  • Lot de 4 anneaux LED RVB 16 x WS2812 5050 avec pilotes intégrés 16 bits pour Arduino Raspberry Pi ESP8266 Nodemcu DC5 V
    Puce LED : LED RVB WS2812B SMD5050 LED adressable : chaque pixel est individuellement adressable et vous aurez besoin d'une seule broche Arduino pour contrôler toutes les LED. Connecteur : connecteur RVB 3P Compatibilité du contrôleur : fonctionne parfaitement avec le contrôleur programmable, SP103E, SP105E, K1000C, T1000S, etc. [Application] pour les accessoires d'éclairage de scène, la décoration d'éclairage de voiture, la transformation de source de lumière de haut-parleur électrique domestique, l'éclairage de maison intelligente, le matériel d'automatisation LED, la décoration de modèle pédagogique, les produits d'éclairage électronique et électrique, etc.
  • 5V 24 Bits Lampe Anneau Lumineux LED WS2812B 5050 LED Ring Compatible avec Arduino Raspberry Pi LED Display, avec Pilotes Intégrés
    Ce que vous obtenez - Un seul anneau avec 24 LED RVB adressables individuellement, assemblés et testés. LED intelligentes ultra lumineuses --- 24 LED intelligentes ultra lumineuses disposées en cercle avec un diamètre extérieur de 3,3 pouces (85 mm). Les anneaux sont "chaînés" - reliant la broche de sortie de l'un à l'entrée de l'autre. Aucune résistance d'étranglement externe --- Chacun a un entraînement à courant constant d'environ 18 mA, de sorte que les couleurs sont très uniformes même avec des changements de tension, et aucune résistance d'étranglement externe n'est requise, ce qui améliore la conception. Juste 5V DC --- alimentez-le avec 5VDC et vous êtes prêt à basculer. Il existe une ligne de données qui a un protocole très spécifique à la synchronisation. Service après-vente : Si vous n'êtes pas satisfait de nos produits ou si vous avez des questions, n'hésitez pas à nous contacter. Nous trouverions une solution satisfaisante à tous vos problèmes.
  • DC 5V 24 Bits Anneau LED RGB, WS2812 5050 LED Ring for Arduino Raspberry Pi LED Display, avec Pilotes Intégrés LED Ring 5V RGB Diamètre intérieur 2,8 pouces
    【BAGUES À CHAÎNE】Ils tournent en rond et en rond! LED 24 bits intelligentes ultra lumineuses sont disposées en cercle avec un diamètre extérieur de 3,35 "(85mm). Les anneaux sont« chaînables »- connectez la broche de sortie de l'une à la broche d'entrée de l'autre.Protection intelligente contre les inversions de branchement, les inversions de branchement n'endommagent pas le circuit intégré. 【PIN UNIQUE MICRO-CONTRÔLEUR】Utilisez une seule broche de micro-contrôleur pour en contrôler autant que vous pouvez en chaîner! Chaque LED est adressable car la puce du pilote est à l'intérieur de la LED. Se présente sous la forme d'un anneau unique avec 24 bits LED RGB adressables individuellement assemblées et testées. 【COURANT CONSTANT 18MA】Anneau LED 24 bits chacun a un entraînement à courant constant de 18 mA, de sorte que la couleur sera très cohérente même si la tension varie, et aucune résistance de starter externe n'est nécessaire pour rendre la conception mince. 【LIGNE DE DONNÉES AU PROTOCOLE DE SYNCHRONISATION】Propulsé par 5VDC et vous êtes prêt pour le rocher. Il existe une seule ligne de données avec un protocole très spécifique au timing. Le protocole étant très sensible au timing, il nécessite un micro-contrôleur en temps réel tel qu'un AVR, un PIC, un mbed, etc. 【CŒURS AVR】Notre bibliothèque merveilleusement écrite prend en charge ces pixels! Comme il nécessite un assemblage réglé à la main, il ne concerne que les cœurs AVR, mais d'autres peuvent avoir porté ce code de pilote de puce, veuillez donc rechercher sur Google. Un processeur de 8 MHz ou plus rapide est requis.