#! / 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 10 modules LED RVB WS2812 - 8 embouts - Pilotes intégrés pour Arduino Raspberry Pi ESP32
-
Zicojia Contrôleur LED Programmable HC008, 133 Modes D'Effet, Contrôle 2048 Pixels LED pour Bande Lumineuse LED RVB WS2811 WS2812
