Spotify Dot Matrix

Spotify'da çalan şarkıları gerçek zamanlı olarak Arduino Uno ve MAX7219 Dot Matrix üzerinde gösteren proje.

Proje Hakkında

Bu projede Python bilgisayardaki aktif Spotify başlığını okur ve seri port üzerinden Arduino Uno'ya gönderir. Arduino gelen veriyi MAX7219 Dot Matrix üzerinde kayan yazı olarak gösterir.

Kullanılan Donanımlar

Arduino Uno
MAX7219 Dot Matrix (4x 8x8)
USB Kablo & Jumperlar
Python + PyGetWindow API

Devre Bağlantıları

Spotify Dot Matrix projesinde Arduino Uno ile MAX7219 tabanlı 8x8 LED Dot Matrix ekranı SPI haberleşmesi kullanılarak bağlanmaktadır.

Arduino Uno - 8x8 Dot Matrix Bağlantı Şeması

Arduino Kodu

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4

#define DATA_PIN 11
#define CLK_PIN 13
#define CS_PIN 10

MD_Parola ekran = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

String gelenMesaj = "Spotify Hazir";

void setup() {
  Serial.begin(9600);
  ekran.begin();
  ekran.setIntensity(5);
  ekran.displayClear();
}

void loop() {
  if (Serial.available()) {
    gelenMesaj = Serial.readStringUntil('\n');
  }

  if (ekran.displayAnimate()) {
    ekran.displayText(
      gelenMesaj.c_str(),
      PA_LEFT,
      60,
      0,
      PA_SCROLL_LEFT,
      PA_SCROLL_LEFT
    );
  }
}

Python Kodu

import serial
import time
import pygetwindow as gw

arduino = serial.Serial("COM9", 9600)
time.sleep(2)

eski = ""

def turkce_temizle(yazi):
    cevir = str.maketrans("çğıöşüÇĞİÖŞÜ", "cgiosuCGIOSU")
    return yazi.translate(cevir)

yasakli = [
    "Microsoft Edge",
    "Google Chrome",
    "Opera",
    "Komut",
    "Administrator",
    "Arduino",
    "Visual Studio",
    "Discord"
]

while True:
    pencereler = gw.getAllTitles()
    spotify_baslik = ""

    for baslik in pencereler:
        if baslik and " - " in baslik:
            if not any(kelime in baslik for kelime in yasakli):
                spotify_baslik = baslik
                break

    if spotify_baslik != "" and spotify_baslik != eski:
        eski = spotify_baslik
        spotify_baslik = turkce_temizle(spotify_baslik)

        print("Gonderiliyor:", spotify_baslik)
        arduino.write((spotify_baslik + "\n").encode("utf-8"))

    time.sleep(2)

Galeri

Spotify Dot Matrix Projesi Tamamlanmış Hali