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.
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:
Kullanılan Malzemeler
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:
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
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.
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:
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.
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
- 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 sesigibi 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
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.
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: