首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用python点亮led灯

用python点亮led灯
EN

Stack Overflow用户
提问于 2019-02-20 18:48:57
回答 1查看 464关注 0票数 0

我正试着在我的钢琴和蟒蛇的帮助下,点亮我来自adafruit的dotstar led条带!

我从键盘获取所需的信息,然后尝试用python点亮键盘。唯一的问题是,这是一个巨大的延迟。如果我一次按多个键,输入的信息就会变得太慢。

如果我删除代码来点亮我的led,它做得很好,没有任何延迟。有什么方法可以让我加快速度吗?

我是python的新手,所以任何技巧都会很有帮助!

到目前为止,我的代码如下:

代码语言:javascript
复制
import pygame.midi
import board
import adafruit_dotstar as dotstar
dots = dotstar.DotStar(board.MOSI, board.SCK, 120, brightness=1)

def print_devices():
    for n in range(pygame.midi.get_count()):
        print (n,pygame.midi.get_device_info(n))

if __name__ == '__main__':
    pygame.midi.init()
    print_devices()



def number_to_note(number):
    notes = ['c', 'c#', 'd', 'd#', 'e', 'f', 'f#', 'g', 'g#', 'a', 'a#', 'b']
    return notes[number%12]

def number_to_note(number):
    notes = ['c', 'c#', 'd', 'd#', 'e', 'f', 'f#', 'g', 'g#', 'a', 'a#', 'b']
    return notes[number%12]

def readInput(input_device):
    while True:
        if input_device.poll():
            event = input_device.read(1)[0]
            data = event[0]
            timestamp = event[1]
            note_number = data[1]
            velocity = data[2]
            print (number_to_note(note_number), velocity)
            dots[0] = (100, 255, 100)


if __name__ == '__main__':
    pygame.midi.init()
    my_input = pygame.midi.Input(3) 
    readInput(my_input
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-20 19:07:32

尝试线程化led函数

代码语言:javascript
复制
import threading
Import time
lock = threading.Lock()
def feedLED(dots,color):
    with lock:
        Start=time.time()
        dots[0] = color
        print('led', time.time()-Start) 

While周期中实现它

代码语言:javascript
复制
...
timestamp = event[1]
note_number = data[1]
velocity = data[2]
print (number_to_note(note_number), velocity)
color = (100, 255, 100)
threading.Thread(target = feedLED, args = (dots,color)).start()
...

但是,我觉得你有一些设置错误,因为这个操作应该是相当快的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54784512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档