用Python点亮led灯

2024-06-01 06:04:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试着用我的钢琴和Python来点亮我的dotstar led灯带!在

我从键盘上得到我需要的信息,然后我尝试用python打开它。唯一的问题是,这是一个巨大的延迟。如果我一次按多个键,输入的信息就太慢了。在

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

我对python相当陌生,所以任何提示都会非常有用!在

以下是我目前为止的代码:

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

Tags: toimportboardeventnumberinputifdevice
1条回答
网友
1楼 · 发布于 2024-06-01 06:04:44

尝试使用led功能

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循环中实现它

^{pr2}$

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

相关问题 更多 >