2016-09-03 12 views
0

以下のコードをRGB LEDのストリップに配管します。コードは正常に動作します。 Adafruit Dotstarライブラリ(https://github.com/adafruit/Adafruit_DotStar)には、以下のコードに加えてstrandtest.pyの例もあります。テスト例では、strip.setBrightnes(2)を使用してLEDの輝度を下げることができます。私は以下のコードで同じ一般的な場所にそのコードを複製しましたが、LEDの輝度は変わりません。私はライブラリの不具合を疑うが、私はまだLEDの明るさを減らすための解決策を見つけることを望むだろう。私は賢明な終わりである(NOOBを読む)。 LEDの明るさを下げる助けがあれば助かります。Pythonを使用してLEDストリップ(Adafruit Dotstar RGBストリップ)の輝度を下げる

#!/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]) 

答えて

0

ここでは、Adafruit Industriesによって提供されるピクセル輝度を下げるためのソリューションがあります。ありがとうございました!

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