İçindekiler:

Vintage Döner Telefon Çevirmeli PC Ses Kontrolü: 7 Adım (Resimlerle)
Vintage Döner Telefon Çevirmeli PC Ses Kontrolü: 7 Adım (Resimlerle)

Video: Vintage Döner Telefon Çevirmeli PC Ses Kontrolü: 7 Adım (Resimlerle)

Video: Vintage Döner Telefon Çevirmeli PC Ses Kontrolü: 7 Adım (Resimlerle)
Video: Hatay..! Sen benim..🤍 2024, Temmuz
Anonim
Image
Image
Kadranı Kaldır
Kadranı Kaldır

Eğer benim gibiyseniz, kendinizi sık sık bilgisayarınızın sesini değiştirirken buluyorsunuz. Bazı videolar diğerlerinden daha yüksek seslidir, bazen podcast'leri veya müzikleri dinlerken bilgisayarınızda sesin kapatılmasını istersiniz ve bir telefon araması aldığınızda sesi hızla kısmanız gerekebilir. Bilgisayarınızda yerleşik medya denetimleri yoksa, eski bir döner telefon kadranını Windows PC'niz için bir ses denetimine dönüştürebilirsiniz.

Bu ses kontrol cihazı, USB aracılığıyla bilgisayarınıza takılır ve açık olan her programın sesini, çevirdiğiniz numaraya göre otomatik olarak ayarlar. Bir "2" çevirirseniz, ses seviyesi %20'ye ayarlanır. Bir "8" çevirin ve %80'e ayarlanacaktır. "0" çevirmek, onu %0'a ayarlar ve sessiz gibi davranır. Görev çubuğunuzdaki ses kontrolüne tıklamaktan daha hızlı, tatmin edici ve daha eğlenceli.

Gereçler

  • Vintage Bell Systems Trimline döner telefon
  • Arduino Nano
  • M3 dişli ısı ayarlı ekler
  • M3 makine vidaları
  • Dirençler (470 ohm ve 10k ohm)
  • Tel
  • 3D yazıcıya erişim

Adım 1: Çalışma Teorisi

Bu projede kullanılan Bell Systems Trimline dahil olmak üzere döner telefonlar tamamen analog elektromekanik cihazlardır. Kadranı çevirdiğinizde, bir yay kadranı orijinal konumuna geri döndürür. Her sayıyı geçerken bir anahtar kısa bir süreliğine kesilir (veya bağlanır), bir darbe oluşturur. Tek yapmamız gereken, hangi numaranın çevrildiğini belirlemek için bu darbeleri saymaktır.

guidomax, bunun tam olarak nasıl çalıştığına dair derinlemesine bilgi veren harika bir Eğitilebilirler öğreticisine sahiptir ve orada daha fazla ayrıntı bulabilirsiniz.

Bu proje için, darbeleri saymak için Arduino Nano kullanıyoruz. Arduino daha sonra seri bağlantı yoluyla numarayı PC'ye gönderir. Arka planda çalışan ve bu seri bağlantıyı izleyen temel bir Python betiği yazdım. Bit aldığında, sayıyı alır ve uygun birimi ayarlamak için Python Core Audio Windows kitaplığını kullanır.

Windows ve bu kitaplıkla ilgili sınırlamalar nedeniyle, komut dosyası genel sistem hacmini (görev çubuğunuzdaki ana kaydırıcı) ayarlamaz. Bunun yerine, o anda çalışmakta olan her program için ayrı birimi ayarlar. Etki, programlar arasında farklı göreli ses düzeylerini koruyamamanız dışında aynıdır.

2. Adım: Kadranı Çıkarın

Kadranı Kaldır
Kadranı Kaldır

Bu adım basittir: çevirme mekanizmasını çıkarmak için Trimline telefon ahizenizi sökmeniz yeterlidir. Esasen kendi kendine yeten bir modüldür, bu yüzden onu ahizeden sökmeniz yeterlidir.

Bu proje için Trimline modelini seçtim çünkü bu çevirme modülü, diğer döner telefonların çoğunda bulacağınızdan daha kompakt.

Birkaç deneme dönüşü yaparsanız, ana konuma dönerken anahtarın tıklandığını duymalısınız.

3. Adım: Muhafazayı Yazdırın

Muhafazayı Yazdır
Muhafazayı Yazdır

Muhafaza parçalarını yazdırmak için sağlanan iki STL dosyasını kullanın. Tercih ettiğiniz herhangi bir filament malzemesini kullanabilirsiniz (PLA kullandım). Kullandığınız belirli ayarlar o kadar önemli değil, ancak "Rotary_Top" kısmı için destekleri kullanmanızı tavsiye ettim. Projenin geri kalanında çalışırken bu iki bölümü yazdırabilirsiniz.

Adım 4: Arduino'nuzu Programlayın

Arduino'nuzu Programlayın
Arduino'nuzu Programlayın

Arduino Nano'nuza yükleyeceğiniz kod, bu proje için mükemmel çalıştığı için doğrudan guidomax'ın eğitiminden alınmıştır:

int needToPrint = 0;int sayı; int = 2;

int lastState = DÜŞÜK;

int trueState = DÜŞÜK;

uzun lastStateChangeTime = 0;

int temizlendi = 0;

// sabitler

int dialHasFinishedRotatingAfterMs = 100;

int debounceGecikme = 10;

geçersiz kurulum() {

Seri.başla(9600);

pinMode(in, INPUT); }

boşluk döngüsü () {

int okuma = digitalRead(in);

if ((millis() - lastStateChangeTime) > dialHasFinishedRotatingAfterMs) { // kadran çevrilmiyor veya çevrilmeyi yeni bitirdi.

if (needToPrint) { // aranması yeni bittiyse, numarayı seri // satırına göndermemiz ve sayımı sıfırlamamız gerekir. Sayıyı 10 ile değiştiririz çünkü '0' 10 darbe gönderir.

Serial.print(sayım % 10, Aralık);

NeedToPrint = 0;

sayı = 0;

temizlendi = 0; } }

if (okuma != lastState) { lastStateChangeTime = millis();

}

if ((millis() - lastStateChangeTime) > debounceDelay) { // geri dönme - bu, sabitlendiğinde gerçekleşir

if (okuma != trueState) { // bu, anahtarın kapalı->açık konumundan yeni çıktığı veya tam tersi anlamına gelir. trueState = okuma; if (trueState == HIGH) { // eğer yüksekse darbe sayısını artırın.

say++;

NeedToPrint = 1; // bu numarayı yazdırmamız gerekecek (kadranın dönüşü bittiğinde)

}

}

}

lastState = okuma; }

Adım 5: Her Şeyi Kablolayın

Her Şeyi Kablolayın
Her Şeyi Kablolayın
Her Şeyi Kablolayın
Her Şeyi Kablolayın
Her Şeyi Kablolayın
Her Şeyi Kablolayın

Bu proje için kablolama gerçekten basit. Arama modülünün arkasında vidalı iki altıgen direk bulunmalıdır. Bunlar anahtar bağlantıları. Polarite önemli değil.

Not: Fotoğraflarda kablolarımın renklerini dikkate almayınız. Toprak ve 5V'yi karıştırdım, bu yüzden bunlar aslında tersine döndü.

Post A'dan (GND) bir kablo bağlayın ve Arduino Nano'nuzdaki bir topraklama pimine bağlayın. İkinci bir kablo alın ve onu ve üçüncü bir kabloyu 470 ohm'luk direncin bir tarafına lehimleyin. İkinci tel kadran üzerindeki B Noktasına (+) gidecektir. Üçüncü tel, 10k ohm direncin bir tarafına lehimlenecektir. Dördüncü bir tel alın ve 470 ohm direncin diğer tarafından Arduino Nano'daki Pin 2'ye lehimleyin. Son olarak, 10k ohm'luk direncin diğer tarafını Arduino Nano'daki 5V pinine beşinci bir kablo bağlamalıdır.

Anahtar açıkken (her "darbe" sırasında olduğu gibi) pimi yükseğe çekmek için dirençleri ve 5V pimini kullanıyoruz.

Adım 6: Montaj

toplantı
toplantı
toplantı
toplantı

Muhafazanın Rotary_Top parçasının altı küçük deliğe sahip olduğunu fark etmelisiniz. Bunlar dişli ısı ayarlı kesici uçlarınız içindir. İlk üç (üst yüzeyin alt tarafında) döner kadranı monte etmek içindir. Alttaki üç, Rotary_Base'i Rotary_Top'a vidalamak içindir.

Isı ayarlı uçlar bir havya (veya özel bir alet) ile ısıtılabilir ve ardından deliklere itilebilir. Isı, ek parçaları güvenli bir şekilde yerinde tutmak için ısı çıkarıldıktan sonra sertleşecek olan plastiği eritecektir. Isı ayarlı ek parçaları kullanmak, vidaları doğrudan plastiğe geçirmekten çok daha hoştur.

Altı ısı ayarlı ek parçayı yerleştirin. Ardından kadranı monte etmek için birkaç kısa (10 mm ya da öylesine) M3 makine vidası kullanın. Metal parmak durdurucunun gideceği oyuktaki çentiğe dikkat edin. Ardından USB kablosu bağlı Arduino Nano'yu dikkatli bir şekilde muhafazanın içine yerleştirin (gevşektir, monte edilmemiştir) ve tabanı yerine vidalayın.

Kasayı masanıza yapıştırmak için muhtemelen çift taraflı bant veya 3M Komut Şeritleri kullanmak isteyeceksiniz, böylece kadranı çevirdiğinizde hareket etmeyecektir.

7. Adım: Python Komut Dosyasını Ayarlayın

Python Komut Dosyasını Ayarlayın
Python Komut Dosyasını Ayarlayın

İlk olarak, Python'un kurulu olduğundan emin olun (Python 2 aşamalı olarak kullanımdan kaldırıldığı için Python 3'ü kullanın).

Ardından gerekli iki kitaplığı yüklemeniz gerekecek: PyCAW ve PySerial.

Kullanmak:

"pip install pycaw" ve "pip install pyserial" (Python penceresinden veya Windows Powershell'den)

Ardından Arduino Nano'nuzun hangi bağlantı noktasına bağlı olduğunu kontrol edin. Bunu Arduino IDE içinden kontrol edebilirsiniz. Bu bağlantı noktasının seçili olduğundan emin olun, ardından seri monitörü açın. Baud hızınızın 9600 olarak ayarlandığından emin olun ve ardından seri monitörde göründüklerinden emin olmak için bazı numaraları çevirin.

Varsa, "rotary.py" kodunu port numaranızla düzenleyin. Komut dosyasını çalıştırırsanız, artık bir numara çevirerek ses düzeyini değiştirebilmeniz gerekir.

Son adım, bilgisayarınızı başlattığınızda komut dosyasını otomatik olarak arka planda çalışacak şekilde ayarlamaktır.

Bunu yapmak için, "rotary.py"yi arka planda çalışmasına izin verecek şekilde "rotary.pyw" olarak değiştirin. Ardından bu komut dosyasını aşağıdaki klasöre yerleştirin: C:\Users\current_user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Açıkçası, "current_user" öğesini gerçek kullanıcı klasör adınızla değiştirmeniz gerekecek.

Bu kadar! Bilgisayarınız her başlatıldığında, o Python betiği çalışmaya başlayacaktır. Arduino'dan gelen seri bağlantıyı izleyecek ve tüm program hacimlerini çevirdiğiniz her şeye ayarlayacaktır!

Arduino Yarışması 2020
Arduino Yarışması 2020
Arduino Yarışması 2020
Arduino Yarışması 2020

Arduino Yarışması 2020'de İkincilik

Önerilen: