Почему светодиод мерцает, когда работает мой код, но не образцы? [закрыто]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему светодиод мерцает, когда работает мой код, но не образцы? [закрыто]

Сообщение Anonymous »

У меня есть светодиодная матрица ADAFRIT Проблема.

Код: Выделить всё

import random
import math

WIDTH, HEIGHT = 64, 64

# --- Color Helpers ---
def get_cool_color():
hue = random.randint(160, 260)  # Cool color range: blue, teal, violet
saturation = 1.0
value = 1.0
return hsv_to_rgb(hue / 360.0, saturation, value)

def hsv_to_rgb(hue, saturation, value):
hue_section = int(hue * 6)
fractional = (hue * 6) - hue_section
p = int(255 * value * (1 - saturation))
q = int(255 * value * (1 - fractional * saturation))
t = int(255 * value * (1 - (1 - fractional) * saturation))
v = int(255 * value)

hue_section = hue_section % 6
if hue_section == 0:
return (v, t, p)
elif hue_section == 1:
return (q, v, p)
elif hue_section == 2:
return (p, v, t)
elif hue_section == 3:
return (p, q, v)
elif hue_section == 4:
return (t, p, v)
elif hue_section == 5:
return (v, p, q)

def set_pixel(matrix, x, y, color, intensity = 1.0):
if 0 = fade_duration:
self.phase = 'hold'
self.phase_start_tick = self.tick

elif self.phase == 'hold':
if ticks_in_phase >= 50:  # ~5 seconds at 20 FPS
self.phase = 'fade_out'
self.phase_start_tick = self.tick
self.current_matrix = self.base_matrix

elif self.phase == 'fade_out':
fade_duration = 20  # ~1 second at 20 FPS
factor = max(1.0 - (ticks_in_phase / fade_duration), 0.0)
self.current_matrix = self.apply_fade(factor)
if ticks_in_phase >= fade_duration:
self.phase = 'black'
self.phase_start_tick = self.tick

elif self.phase == 'black':
if ticks_in_phase >= 20:   # 1 second at 20 FPS
self.next_pattern()
self.current_matrix = [[(0, 0, 0) for _ in range(WIDTH)] for _ in range(HEIGHT)]

return self.current_matrix

def apply_fade(self, factor):
return [
[tuple(int(channel * factor) for channel in self.base_matrix[y][x]) for x in range(WIDTH)]
for y in range(HEIGHT)
]
< /code>
main.py
import pygame
from animations import EyeAnimations
from patterns import PatternManager

WIDTH, HEIGHT = 64, 64
SCALE = 8
FPS = 30

# Initialize Pygame
def init_pygame():
pygame.init()
screen = pygame.display.set_mode((WIDTH * SCALE, HEIGHT * SCALE))
pygame.display.set_caption("Wall Art Bot Simulator")
clock = pygame.time.Clock()
return screen, clock

def draw_matrix(screen, matrix):
for y in range(HEIGHT):
for x in range(WIDTH):
color = matrix[y][x]
pygame.draw.rect(screen, color, (x*SCALE, y*SCALE, SCALE, SCALE))

def main():
running = True
screen, clock = init_pygame()
start_time = pygame.time.get_ticks()
zzz_start_time = pygame.time.get_ticks()
is_sleeping = False
is_pattern = False
eye_animations = EyeAnimations()
pattern_manager = PatternManager()

while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_p:
is_pattern = not is_pattern

if event.key == pygame.K_SPACE:
if not is_pattern:
is_sleeping = not is_sleeping
start_time = pygame.time.get_ticks()
zzz_start_time = pygame.time.get_ticks()
else:
is_pattern = not is_pattern
is_sleeping = False
start_time = pygame.time.get_ticks()
zzz_start_time = pygame.time.get_ticks()

if not is_pattern:
if not is_sleeping:
matrix = eye_animations.generate_blinking_eyes(start_time)
else:
matrix = eye_animations.generate_sleeping_eyes(start_time, zzz_start_time)
else:
frame = pattern_manager.update()
matrix = frame

draw_matrix(screen, matrix)
pygame.display.flip()
clock.tick(FPS)

pygame.quit()

if __name__ == "__main__":
main()
Я следовал инструкциям readme от hzeller GitHub, все паяль и мощность хороши и работают правильно.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... he-samples
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»