Я огляделся вокруг, пытаясь найти способ, который будет исчезать между одним цветом в Python. Большинство примеров, которые я нашел, обычно относятся к устройству или другому языку, который не хорошо переводится.Python - RGB LED Color Fading
В настоящее время у меня есть модифицированный фрагмент кода, который использовался для создания эффекта дыхания, который работал довольно хорошо, исчезая от 0 до 255, например. Теперь у меня установлен цвет from
, скажем, зеленый; мерцает; затем устанавливает to
цвет:
def colorFade(strip, colorFrom, colorTo, wait_ms=20, steps=10):
steps = 200
step_R = int(colorTo[0])/steps
step_G = int(colorTo[1])/steps
step_B = int(colorTo[2])/steps
r = int(colorFrom[0])
g = int(colorFrom[1])
b = int(colorFrom[2])
for x in range(steps):
c = Color(int(r), int(g), int(b))
for i in range(strip.numPixels()):
strip.setPixelColor(i, c)
strip.show()
time.sleep(wait_ms/1000.0)
r += step_R
g += step_G
b += step_B
Телефонный код:
colorFade(strip, [200, 0, 0], [0, 200, 0])
Попробуйте с помощью '' steps = 200.0'' - вы, вероятно, неправильно вычисляете переменную step_R/G/B из-за целочисленного деления. – jasonharper
Трудно работать с вопросом, который меняется. Может быть, потребуется некоторое время и сделать * one * edit? –
Как это написано в настоящее время, вы назначаете «шаги» в первой строке функции, маскирующей args шагов. –