İçindekiler:

Ses Değiştirici: 9 Adım
Ses Değiştirici: 9 Adım

Video: Ses Değiştirici: 9 Adım

Video: Ses Değiştirici: 9 Adım
Video: Ses Değiştirici İşaretler 2024, Temmuz
Anonim
Ses Değiştirici
Ses Değiştirici

İş yerinde müziğinizin sesini yükselttiğiniz ve birinin sizinle konuşmaya çalıştığını fark etmediğiniz oldu mu? Daha da kötüsü, hiç işte uyumak istediniz, ancak biri (patronunuz gibi) odanıza gelmek üzereyken uyanmanın iyi bir yolunu bulamadınız mı? Sahibim. Bu sorunları çözmek için Arduino tabanlı SoundSwitcher'ı icat ettim. Temel olarak bu, bir ses kaynağı (benim durumumda bir iPod) ve neler olup bittiğini size bildiren Ladyada'nın Dalga kalkanı arasında geçiş yapmak için 6 transistör kullanır. Ardından Arduino'yu istediğiniz sensör tipine bağlayabilirsiniz. Örneğin, benimki bir Paralaks Ping ultrasonik telemetre, mikrofon, kapı zili düğmesi ve bilgisayara bağlı (yeni bir e-postada uyarılar). Cep telefonunuzun ne zaman çaldığını (ekran aydınlanır) algılamak için bir foto rezistör bağlayarak veya bir Paralaks CH4 sensörü bağlayarak daha da ileri gidebilirsiniz, böylece hücre arkadaşınız çok fazla metan gazı aldığından hücrenizdeki metan seviyelerinin yükseldiğine dair erken uyarı alabilirsiniz. öğle yemeğinde lahana. Her neyse, çoğunuz muhtemelen bu probleminiz yok (keşke olmasaydım). Projenin gerçekte ne yaptığının yanı sıra, metni bir wav dosyasına dönüştürme ve dosyaları Arduino üzerinde Seri üzerinden SD karta aktarma hakkında talimatlar da veriyor.. Umarım bunlar, projelerinde başkaları için faydalı olabilir. NOT: Tüm bu konularda oldukça yeniyim, bu yüzden işleri doğru yaptığımın garantisi yok. Bu, transistörlerle tasarladığım ilk proje, bu yüzden bir yerlerde bazı kapaklar ve diyotlar eksik olabilir… Herhangi birinin tavsiyesi varsa, duymaktan ve dahil etmekten memnuniyet duyarım.

Adım 1: Parçalar

Parçalar
Parçalar
Parçalar
Parçalar

1- Arduino1- Wave Shield (Ladyada)6 - 2n3904 transistörler6 - 330 Ohm dirençler6 - 22 Ohm dirençler2 - 10k Ohm dirençler (düğmeler için pullup'lar)2 - butonlar2 - Stereo erkek kulaklık konnektörleri1 - dişi stereo kulaklık konnektörüSen ne istersen onu yaptım1 - Mikrofon1 - Paralaks Ping Ultrasonik Mesafe Bulucu1- Fotosel1 - E-postayı kontrol eden ve seri üzerinden Arduino'ya bağlanan bir Ruby betiği çalıştıran bilgisayar

Adım 2: Transistörler

transistörler
transistörler

Transistörler esas olarak şeyleri yükseltmek için veya anahtarlar olarak kullanılır. Bu durumda transistörleri anahtar olarak kullanıyorum. Arduino pinini yükselttiğimde transistör, onlara bağlı cihazdan kulaklığıma ses gelmesine izin veriyor. Her iki taraftaki üç transistör, her ses kaynağı için zemini ve sol ve sağ stereo kanalları değiştirmeme izin veriyor. Birkaç direnç denedim ve bunlara karar verdim. Transistörler ısınmaz ve ona bağlı Arduino pini yüksek olduğunda transistörün kendisinden gelen direnç çok düşüktür. Bu önemli, böylece iyi, boğuk olmayan bir ses elde edebilirim. Bir sonraki adımda şematikte görebileceğiniz gibi, transistörlerin her biri, tabanı kontrol etmek için Arduino pinine gidecek şekilde bağlanır (aralarında bir dirençle). Yayıcı hem toprağa (direnç ile) hem de ses girişine bağlanır. Toplayıcı, kulaklıkların ses çıkışına bağlıdır. İşte transistörlerin anahtar olarak kullanılmasıyla ilgili güzel bir web sayfası

3. Adım: Hepsini Bir Araya Bağlayın

Hepsini Bir Araya Bağlayın
Hepsini Bir Araya Bağlayın

Şematik oldukça basit. Akılda tutulması gereken bir şey, dalga kalkanının Arduino'da bir grup pim kullanmasıdır, bu yüzden bunlardan uzak durun (onları tahtada lehimle doldurdum). Transistörler için 8 ve 9 pinlerini kullandım (8, dalga kalkanı, 9 harici ses kaynağı oynatır). Mikrofon için analog pin 0 kullanıldı (yine de pek iyi çalışmıyor, bunun üzerinde çalışıyorum). "Yoksay" butonu için analog pin 1 kullanılır. Bu düğmeye basıldığında, önceden tanımlanmış bir süre boyunca tüm sensörler yok sayılır. Analog pin 2 bir "kapı zili" dir. Diğer şeyler için hala bazı ücretsiz pinler var. Analog pin 3'te çaldığını algılamak için cep telefonu ekranına koyduğum bir foto rezistör eklemeyi planlıyorum. Denediğimde buraya ekleyeceğim.

Adım 4: Sensörler

Sensörler
Sensörler

Şu anda olayları tetiklemek için aşağıdaki "sensörleri" (muhtemelen girişler daha doğrudur) kullanıyorum: -Kapı zili için basma düğmesi - Bu oldukça basittir, böylece birinin bir düğmeye basmasını sağlar ve kulaklıklarınızdan bir ses çalacaktır birinin etrafta olduğunu bilmeni sağlamak. Kullandığım buton, varsayılan olarak devreyi kapattı ve butona basıldığında devreyi açtı (sadece bunlar vardı). Çekme dirençlerini unutmayın (genellikle devre açıkken iyi bir yüksek sinyal vermeye yardımcı olmak için telin Arduino pin tarafına giden 10k Ohm'luk bir direnç). Benimki Arduino Analog Pin 2'ye bağlı.-Parallax Ping Ultrasonik telemetre - Yakında biri olduğunda bana haber ver (yani, biri kabininize girmek üzere). Benimki Arduino Pin 6'ya bağlı (sensörün beyaz kablosunda). Sensörün kırmızı kablosu 5 volta gider ve siyah kablo toprağa gider.-Mikrofon - Bu, birisinin sizinle konuştuğunu algılamak içindir. Kulaklık taktığının farkına varmayan ve konuşmaya başlayan adamları bilirsin. Hâlâ bunun üzerinde çalışıyorum, görünüşe göre sparkfun'dan aldığım mikrofonla iyi bir okuma yapabilmek için bir ön amfiye ihtiyacım var. Bir sonraki ilginç adım, sesin birkaç saniyesini dalga kalkanındaki bir dosyaya kaydetmek ve ardından müziğinizi kapatmadan önce önemsediğiniz bir şey olup olmadığını anlamak için onu oynatmak olacaktır.-Bilgisayar - Şu anda bu bir Ruby kullanıyor. yeni e-postayı kontrol etmek için komut dosyası ve Arduino'nun yeni bir e-posta alındığını bildirmek için seri bağlantı noktasına bir sinyal gönderir. Açıkçası bununla çok daha fazlasını yapabilirsin. Temel olarak, bilgisayarın uyarabileceği herhangi bir şey, kulaklıklarınız aracılığıyla uyarmasını sağlayabilirsiniz. Bilgisayarın bazı AT&T seslerini kullanarak otomatik olarak bir dalga dosyası oluşturmasını ve ardından seri yoluyla Arduino'ya göndermesini sağlayabilirsem harika olurdu. Yine de bu bir çıkış yolu.-Cep telefonu çalma sensörü - Bunun için Radio Shack'ten (The Shack) bir fotosel kullandım. Analog pin 4'e ve ardından 5 volta bağladım. Ayrıca Arduino'daki pin 4'ü toprağa bağlayan taraftan 10k Ohm'luk bir direnç yapmanız gerekiyor (aksi takdirde sinyal değişmeyecek). Telefonum için Arduino'da okunan analogda kullandığım fotosel 400'ün üzerine çıkarsa ekran aydınlanıyor. Diğer Potansiyel Sensörler-Masa Telefonu zil sensörü - Belki mikrofon bunu algılayabilir. Telefona bağlı olarak, muhtemelen bunu yapmanın birkaç yolu vardır. Genel amaçlı bir çözüm bulup bulamayacağımı görmek için bunun hakkında biraz daha düşünmem gerekecek.-Lazer ve bir foto rezistör - Bir lazer işaretçisini hücre açıklığınızın üzerinden bir foto rezistöre doğrultabilirsiniz. Biri kabininize girdiği için ışık kesildiğinde, bir uyarı çalabilirsiniz.-CH4 gaz dedektörü - Hücrenizdeki yükselen metan seviyelerini tespit edin. Bu, yakınlardan geçen gaza karşı erken uyarı sistemi olarak hizmet etmeye yardımcı olabilir.

Adım 5: Komut Satırı Metninden Konuşmaya

İşte metni konuşmaya çevirmek için çok hızlı yazdığım küçük bir yardımcı program. C# ile freeVisual C# 2008 Express Edition ile yazılmıştır. Bunu çalıştırmak için muhtemelen. Net 3.5'e ihtiyacınız olacak. Kod dahildir, ancak yalnızca exe'yi istiyorsanız, zip dosyasındaki CommandLineText2Speech/CommandLineText2Speech/bin/Release içinde alabilirsiniz. Aracı çalıştırmak için bir komut istemi açabilir, exe'yi koyduğunuz dizine gidebilir ve CommandLineText2Speech.exe yazabilirsiniz. Bunun çıktısını verecektir: Kullanım: Kurulu sesleri listelemek için:CommandLineText2Speech.exe whatvoices

Metni bir wav'a dönüştürmek için:CommandLineText2Speech.exe [ses] [hız - varsayılan 0 (-10 ila 10)] [hacim - varsayılan 80 (0 ila 100)] "[dönüştürülecek metin]" [çıktı dosyası]Başka bir deyişle muhtemelen ilk önce şunu çalıştırmak isteyeceksiniz:CommandLineText2Speech.exe whatvoicesBu, bilgisayarınıza hangi sesleri yüklediğinizi listeleyecektir. Aracı çalıştırmak için bir sesin adına ihtiyacınız olacak. Windows ile gelen sesler harika değil, AT&T'de oldukça iyi olan sesler var. Metni bir wav dosyasına dönüştürmenin yanında şunu yapınCommandLineText2Speech.exe "Microsoft Sam" 0 80 "Bu bir testtir" test.wavİşte bunun anlamı şudur:"Microsoft Sam"- ses, bu Windows ile birlikte gelen ses, sahip olduğunuz boşluk olduğu için tırnak içine almak için 0- Normal Hız (-10'dan 10'a gidebilir)80- Normal Hacim (0'dan 100'e gidebilir)"Bu bir testtir"- Wav dosya testine dönüştürülecek metin.wav- wav dosyasının adı ne olacak

6. Adım:

Ekli Ruby kodu, yeni bir e-posta olup olmadığını görmek için aşağıdaki kontrolleri yapar ve varsa bunu Arduino'da yerleşik USB'den Seri arabirime aracılığıyla Arduino'ya aktarır. Seri (muhtemelen arabellek boyutu) üzerinden yüksek hızlı bağlantılar yaparken sorunlar yaşadım. Dosyanın ayarlarının tümü dosyanın en üstündedir. Bu, bir wav dosyası oluşturmak için C# programımı kullanır. Muhtemelen hepsini tek bir dile dönüştürmeliyim, Ruby'nin büyük bir hayranıyım, ancak metinden wav'ı çok kolay oluşturacak gibi görünmüyordu, bu yüzden küçük C# uygulamasını yazdım. Ayrıca ruby'ye de ihtiyacınız olacak. seri mücevher, onu da dahil ettim. Kurmak için (Ruby'yi kurduktan sonra) gem'i indirdiğiniz dizinin komut istemine "gem install win32-serial-0.5.1-x86-mswin32-60.gem" yazın. Bu programın çalışması için ihtiyacınız olan tek şey bu.

7. Adım: Kod

Arduino taslağımı ekledim. İçinde yardımcı olacak birçok yorum var. Temel olarak tüm girişleri kontrol etmeye devam eder, eğer bunlardan biri patlarsa, sesi Dalga Kalkanı'na çevirir ve bu uyarıyla ilişkili wav dosyasını çalar.

Adım 8: Programları Çalıştırın

Tamam, şimdi tüm parçalara sahipsiniz. Bunun doğru şekilde çalışmasını sağlamak için yapmanız gerekenler1. Arduino2'ye Wave Shield kurun. Arduino'yu Bilgisayara Bağlayın (veya XBee'yi kullanın) - Donanım yazılımının zaten kurulu olduğunu varsayıyorum3. Ruby checkEmail.rb komut dosyasını çalıştırın4. Müziğinizin keyfini çıkarın, Arduino e-postanızı okuması gerektiğinde veya çevrenizde bir şey algıladığında sizi kesecektir.

9. Adım: Bitmiş Ürün Videosu

İşte ses değiştirici iş başında

Önerilen: