刚开始使用Python,所以下面的代码可能非常差,但现在可以使用。
我有以下问题; 我正在使用Pimoroni Unicorn Hat(带帽子)用于Raspberry Pi,保持LED点亮的唯一方法是使用循环。要关闭和打开LED /动画,我创建了多个Python文件:
我遇到的问题是我需要reload(getvar)
才能从control-led.py中的txt文件更新变量,在第一个While True
我有一个{{1}所以这没问题,但在第二个循环中我需要设置一个time.sleep(2)
以获得led工作的动画。所以现在每0.01秒更新一次这个值..它导致高CPU,我认为这不是正确的方法。
你们可以帮帮我吗?
Control-led.py
time.sleep(0.01)
var.py
import varget
import time
import math
import unicornhat as unicorn
unicorn.set_layout(unicorn.HAT)
unicorn.rotation(90)
unicorn.brightness(0.5)
width,height=unicorn.get_shape()
'''
VARS
0. Turn off
1. Turn on white light
2. Home Axis animation
'''
while True:
reload(varget)
time.sleep(2)
if varget.a == 0:
unicorn.off()
elif varget.a == 1:
unicorn.set_all(255,255,255)
unicorn.show()
elif varget.a == 2:
i = 0.0
offset = 30
while varget.a == 2:
i = i + 0.3
for y in range(height):
for x in range(width):
r = 0
g = 0
r = (math.cos((x+i)/2.0) + math.cos((y+i)/2.0)) * 64.0 + 128.0
g = (math.sin((x+i)/1.5) + math.sin((y+i)/2.0)) * 64.0 + 128.0
b = (math.sin((x+i)/2.0) + math.cos((y+i)/1.5)) * 64.0 + 128.0
r = max(0, min(255, r + offset))
g = max(0, min(255, g + offset))
b = max(0, min(255, b + offset))
unicorn.set_pixel(x,y,int(r),int(g),int(b))
unicorn.show()
time.sleep(0.01)
reload(varget)
varget.py
import sys
print sys.argv[1]
file = open("./var.txt", "w")
file.write(sys.argv[1])
file.close