Загрузка данных


import serial
import time
import mss
import numpy as np

# ===== НАСТРОЙКИ =====
PORT = 'COM3'      # ПОМЕНЯЙ НА СВОЙ! 
BAUD = 115200
NUM_LEDS = 56
# =====================

try:
    arduino = serial.Serial(PORT, BAUD, timeout=1)
    time.sleep(2)
    print(f"Подключено к Arduino на порту {PORT}")
except Exception as e:
    print(f"Ошибка подключения: {e}")
    exit()

sct = mss.mss()

def send_color(r, g, b):
    data = bytearray(b'Ada')
    data.append(0)
    data.append(0)
    data.append(0x55)
    
    for _ in range(NUM_LEDS):
        data.append(r)
        data.append(g)
        data.append(b)
    
    arduino.write(data)
    arduino.flush()

print("Запуск AmbiLight... Нажми Ctrl+C для остановки")

try:
    while True:
        screenshot = sct.grab(sct.monitors[1])
        img = np.array(screenshot)
        
        avg_color = img.mean(axis=(0, 1))
        
        r = int(avg_color[2])
        g = int(avg_color[1])
        b = int(avg_color[0])
        
        send_color(r, g, b)
        print(f"R={r:3d} G={g:3d} B={b:3d}")
        
        time.sleep(0.05)

except KeyboardInterrupt:
    print("\nПрограмма остановлена")
    arduino.close()