emre259

Uzman
Katılım
17 Aralık 2024
Mesajlar
774
Çözümler
5
Beğeniler
651
En başta: Bu projeyi neden yaptım?

Kulaklığımın ses tekeri cızırtı yapıyordu, ve ben masamda istediğim an istediğim uygulamanın sesini değiştirebileceğim, aslına bakacak olursak çok gerekli olmayan ama hayatımı kolaylaştırdığını düşündüğüm 'konfor' ürünü yaptım.

Türkiye’de satılan ses kontrol cihazlarının çoğunu inceledim. Ürün gamı çok geniş değil. Genel olarak fiyatları 700–800 TL bandında ve büyük bir kısmı ekran içermiyor, sadece sistem sesini kontrol edebiliyor, arka planda esnek şekilde çalışan bir sistem sunmuyor. Yurtdışı işin içine girince maliyet daha da artıyor.
Ekran görüntüsü 2025-12-20 141426.webp

Ben bu projede aynı işi çok daha gelişmiş şekilde, ama olabilecek en düşük maliyetle yapmayı hedefledim. Maliyet kısmını en sonda tartışacağız, değip değmediğini size bırakıyorum.

Bu rehberde anlattığım sistemde:

Tek renk OLED ekran bulunuyor​
Aynı anda birden fazla uygulamanın sesini kontrol edebiliyorum​
Arka planda sınırsız sayıda ses profili / ses kaynağı tanımlayabiliyorum​
15 saniye dokunulmadığında ekranda göz hareketi (idle animasyon) çalışıyor​
Arduino + Python birlikte çalışıyor ve sistem tamamen otomatik​

Kullanılan Malzemeler
Ekran görüntüsü 2025-12-20 141228.webp

  • Arduino Nano (CH340 USB çipli)
  • Rotary Encoder (butonlu)
  • 1.3 inç I2C OLED Ekran (SSD1106)
  • Dişi–Dişi jumper kablolar
  • (İsteğe bağlı boya malzemeleri)

Not: Arduino Nano klon kullandım, orijinal olmasına gerek yok. Her anlamda bunun çok daha üst segmentini yapabiliriz ama tüm malzemelerde en ucuzunu seçtim.

Bağlantı Şeması

Bağlantıları oldukça sade tuttum. OLED ekran I2C üzerinden, encoder ise dijital pinler üzerinden çalışıyor.

OLED Ekran Bağlantıları

VCC → Arduino 5V
GND → Arduino GND
SCL → Arduino A5
SDA → Arduino A4

Rotary Encoder Bağlantıları

CLK → D2
DT → D3
SW (Buton) → D4
VCC → 5V
GND → GND

Önemli: Arduino Nano klon bir adet 5V çıkışı sunuyor. Burda iki kabloyu ortak bağlayacağız. Ekran'dan çıkan VCC ile Encoder'dan çıkan + pinlerinin kablosu ortak bağlanacak. Ayrıca yine iki modüldeki GND kabloları da ortak bir şekilde bağlanıp arduino'ya takılacak.

Sistemi çalıştırmak için manuel bağlantılar tamam. Şimdi sırada yazılım kısmı var. Önce bilgisayarımıza sırasıyla:

Arduino IDE ve CH340 USB sürücüsüsünü kuruyoruz.

Kurulumdan sonra gerekli Kütüphaneler için Arduino IDE içinden şu yolu izleyin: Sketch-->Include Library-->Manage Library
Buradan:

U8g2
Adafruit_GFX
Encoder

eklentilerini kuruyoruz. Daha sonra Sol üstteki menüden Dosya > Yeni diyerek tertemiz, boş bir sayfa açıyoruz. Ekranda kod yazıyorsa hepsini silin.

Daha sonra, kart takılı iken Tools-->Boards-->Arduino AVR Boards-->Arduino Nano seçimini yapın. Usb hangi porta takılı ise görev yöneticisinden kontrol edin ve Tools sekmesinden port seçeneğini düzgün port ile değiştirin. (Daha sonra sistem portu otomatik tanıyacak.) Ardından size Arduino için verdiğim kodu olduğu gibi yapıştırın ve 'Upload' diyin.

Bizim için Arduino sadece kontrol ve arayüz görevini yapıyor.
Asıl ses değişimi bilgisayar tarafında oluyor. Bu yüzden kontrolleri hiç kaçırmayan stabil bir sistem elde ediyoruz.

Python Tarafı – Ses Kontrolünü Otomatikleştirme

Bu sistemin asıl gücü burada. Bilgisayara Python 3.10+'u kurulum sırasında “Add Python to PATH” işaretli olacak şekilde kuruyoruz. Daha sonra CMD üzerinden

"pip install pyserial pycaw comtypes" diyoruz.

Python Ne Yapıyor?

Arduino’dan gelen seri veriyi okuyor Hangi uygulamanın seçili olduğunu biliyor

Encoder dönüşüne göre:

Spotify​
Chrome​
Discord​
Oyunlar​
Sistem sesi

gibi istediğim kadar uygulamanın sesini oyunda dahi olsam ayrı ayrı kontrol edebiliyorum. Discord ile sohbet sesi Spotify ile müzik sesi gibi gibi. Burada uygulama sayısı sınırsız. En sevdiğim yanı Forza Horizon'da artık araba teybi kullanıyormuş gibi hissetmek :D

Sonlara doğru gelirken ana sayfada sağ tıklayıp yeni bir metin belgesi oluşturuyoruz. Bunun içine kaynak olarak verdiğim Phyton kodunu yapıştırıp kaydedip kapatıyoruz. Txt uzantılı metin belgesini py uzantısı ile değiştiriyoruz. Bundan sonra scripti 'py' çalıştırıp gerekli kontorlleri sağlayabilirsiniz.

Kozmetik:

Ben intrenette bulduğum ücretsiz modelleri kullandım. Model yapmasını bilenler çok daha kalifiye tasarımlar çıkarabilir. (Aşağıda mevcut) 3D modelleri @Hamza Ensar Sağlam aracalığıyla sorunsuz şekilde satın aldım. Kutuları boyadım ve 20 saat kadar kurumasını bekledim. Gerekli birleştirmeleri yapıp Ardunio'yu masamın altına salıverdim. Kablo kirliliği ve boyutu en aza indirmek için böyle yaptım.
20251219_182853.webp


Sürekli program mı çalıştırmam lazım?

Hayır
, her şey stabil çalışıyor ise artık otomatikleştirebiliriz. Zaten arduino ile işimiz yok, phyton için ise masaüstünüzde duran py uzantılı dosyayı pyw olarak değiştirin. Klavyenizden Windows Tuşu + R tuşlarına aynı anda basın. Açılan "Çalıştır" kutusuna shell:startup yazıp Enter'a basın. Dosyanızın kısayolunu oluşturup buraya atın ve kapatın. Artık tamamen gizli ve otomatik olarak her açılışta sistem kendisi açılacak. (Masaüstündeki dosyayı düzenlemek isteyebilirsiniz diye bıraktık, herhangi bir klasöre atabilirsiniz.) Artık portu otomatik tanıyıp size yansıtmadan çalıştıracak.

Video olarak sonuca göz atmak isterseniz:



İsteyen herkes bu rehberi takip ederek aynı sistemi birebir kurabilir. Gelelim reel maliyete. Toplam harcadığım para 875 TL. Ben değdiğini düşünüyorum. Siz neler düşünüyorsunuz? Böyle bir şeye ihtiyacınız var mı?

Kaynaklar:
 
Son düzenleyen: Moderatör: