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()