2016-09-03 1 views
0

J'ai ce code ci-dessous les données de tuyauterie à une bande de LED RVB. Le code fonctionne bien. La librairie Adafruit Dotstar (https://github.com/adafruit/Adafruit_DotStar) possède également un exemple strandtest.py en plus du code ci-dessous. Dans l'exemple de test, il est possible de réduire la luminosité des voyants en utilisant strip.setBrightnes (2). J'ai dupliqué ce code dans le même emplacement général dans le code ci-dessous mais cela ne change pas la luminosité de la LED. Je soupçonne un bug dans la librairie mais j'aimerais quand même trouver une solution pour réduire la luminosité des LED. Je suis à bout de nerfs (lire NOOB). Toute aide réduisant la luminosité de la LED est appréciée.Réduire la luminosité d'une bande de LED (Adafruit Dotstar RGB Strip) en utilisant Python

#!/usr/bin/python 

import PIL 
from PIL import Image 
from dotstar import Adafruit_DotStar 
filename = "/home/pi/Adafruit_DotStar_Pi/marilynlowerres.jpg" 

datapin = 10 
clockpin = 11 
strip  = Adafruit_DotStar(0, datapin, clockpin) 

rOffset = 3 
gOffset = 2 
bOffset = 1 
strip.begin() 
strip.setBrightness(2) 
print "Loading..." 
img = Image.open(filename).convert("RGB") 
pixels = img.load() 
width = img.size[0] 
height = img.size[1] 
print "%dx%d pixels" % img.size 
gamma = bytearray(256) 
for i in range(256): 
    gamma[i] = int(pow(float(i)/255.0, 2.7) * 255.0 + 0.5) 
print "Allocating..." 
column = [0 for x in range(width)] 
for x in range(width): 
    column[x] = bytearray(height * 4) 
print "Converting..." 
for x in range(width): 
    for y in range(height): 
    value= pixels[x, y] 
    y4= y * 4 
    column[x][y4]= 0xFF 
    column[x][y4 + rOffset] = gamma[value[0]] 
    column[x][y4 + gOffset] = gamma[value[1]] 
    column[x][y4 + bOffset] = gamma[value[2]] 
print "Displaying..." 
while True: 
    for x in range(width): 
     strip.show(column[x]) 

Répondre

0

Voici une solution pour réduire la luminosité des pixels fournie par Adafruit Industries. Merci Adafruit!

column[x][y4 + rOffset] = gamma[value[0]/2] # Gamma-corrected R 
    column[x][y4 + gOffset] = gamma[value[1]/2] # Gamma-corrected G 
    column[x][y4 + bOffset] = gamma[value[2]/2] # Gamma-corrected B