Video: Arduino Soundlab: 3 Adım
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Basit bir Arduino kullanarak bile, FM sentez tekniği ile çok çeşitli şaşırtıcı seslerin üretilebilmesi inanılmaz. Daha önceki bir talimatta bu, 12 önceden programlanmış sese sahip bir sentezleyici ile gösterilmişti, ancak bir izleyici, ses parametrelerinin potansiyometrelerle tam kontrolüne sahip olmanın çok daha havalı olacağını öne sürdü ve öyle de oldu!
Bu ses laboratuvarında tonlar 8 parametre ile kontrol edilebilir: 4'ü ses yüksekliğinin ADSR zarfı için ve 4'ü dokuyu belirleyen frekans modülasyonu için.
8 potansiyometrenin eklenmesi, tuş sayısı pahasına olmadı: 8 tuştan oluşan üç set birbiri ardına birkaç mikrosaniye, toplamda iki tam oktava karşılık gelen toplam 24 tuş için okunur. Aslında, iki Arduino pini kullanılmamaktadır ve 40 tuşa genişletmek mümkün olacaktır.
Vahşi seslerin nasıl çıkarılacağıyla ilgili videoya bakın, işte kısa bir genel bakış:
* A=saldırı: Bir tonun maksimum ses yüksekliğine ulaşma süresi (8ms-2s aralığı)
* D=çürüme: Bir tonun sabit ses düzeyine inmesi için geçen süre (8ms-2s aralığı)
* S=sürdürülebilir: sabit ses seviyesi (%0-100 aralığı)
* R=bırakma: bir tonun sönme süresi (8ms-2s aralığı)
* f_m: modülasyon frekansının taşıyıcı frekansına oranı (0,06-16 aralığı) 1'in altındaki değerler alt tonlara, yüksek değerler yüksek tonlara neden olur
* beta1: notanın başındaki FM modülasyonunun genliği (0,06-16 aralığı) küçük değerler ses dokusunda küçük değişikliklere neden olur. büyük değerler çılgın seslerle sonuçlanır
* beta2: notanın sonundaki FM modülasyonunun genliği (0,06-16 aralığı) Ses dokusunun zamanla gelişmesini sağlamak için beta2'ye beta1'den farklı bir değer verin.
* tau: FM genliğinin beta1'den beta 2'ye evrimleşme hızı (8ms-2s aralığı) Küçük değerler notanın başında kısa bir patlama, büyük değerler uzun ve yavaş bir değişim verir.
Adım 1: İnşaat
Açıkçası, bu hala bir prototip, umarım bir gün ben veya bir başkası bu büyük, güçlü ve güzeli büyük tuşlarla ve potansiyometreler için gerçek kadranlarla harika bir muhafaza içinde inşa eder….
Gerekli bileşenler:
1 Arduino Nano (Sadece 6 analog girişi olan Uno ile çalışmaz)
24 buton
1kOhm - 100kOhm aralığında 8 potansiyometre
Ses kontrolü için 10kOhm'luk 1 potansiyometre
1 kapasitör - 10 mikrofarad elektrolitik
1 adet 3,5 mm kulaklık jakı
1 LM386 ses yükseltici çipi
2 1000 mikrofarad elektrolitik kapasitör
1 seramik 1 mikrofarad kapasitör
1 mikro anahtar
1 8Ohm 2Watt hoparlör
1 adet 10x15cm prototip tahtası
Ekteki şemaları anladığınızdan emin olun. 24 düğme, D0-D7'de okunmak ve D8, D10 ve D11'de etkinleştirilmek üzere 8'li 3 grup halinde bağlanır. Tencere +5V'a sahiptir ve uç musluklarda topraklanır ve merkezi musluklar A0-A7 analog girişlerine beslenir. D9, ses çıkışına sahiptir ve ses kontrolü için 10kOhm'luk bir potansiyometreye AC-bağlıdır. Ses doğrudan kulaklıkla dinlenebilir veya bir LM386 ses yükseltici çipi ile güçlendirilebilir.
Hepsi 10x15cm'lik bir prototip tahtaya sığıyor, ancak düğmeler iyi çalmak için çok yakın, bu yüzden daha büyük bir klavye yapmak daha iyi olur.
Devre, Arduino Nano üzerindeki USB bağlantısı üzerinden veya harici bir 5V güç kaynağı ile çalıştırılabilir. 2xAA pil kutusu ve ardından bir yükseltici dönüştürücü, mükemmel bir güç sağlama çözümüdür.
2. Adım: Yazılım
Ekli taslağı Arduino Nano'ya yükleyin ve hepsi çalışmalıdır.
Kod yalındır ve değiştirilmesi kolaydır, makine kodu ve kesinti yoktur, ancak zamanlayıcı ile etkileşim kurmak, düğme okumasını hızlandırmak ve ADC'nin davranışını kontrol etmek için kayıtlarla birkaç doğrudan etkileşim vardır. potansiyometre okuması için
3. Adım: Gelecekteki İyileştirmeler
Topluluktan gelen fikirler her zaman açığız!
En çok düğmelerden rahatsız oluyorum: küçükler ve basıldığında sert tıklıyorlar. Basması daha rahat olan daha büyük düğmelere sahip olmak gerçekten güzel olurdu. Ayrıca, kuvvete veya hıza duyarlı düğmeler, notaların yüksekliğini kontrol etmeye olanak tanır. Belki 3 yollu butonlar veya dokunmaya duyarlı butonlar işe yarayabilir?
Diğer güzel şeyler ise ses ayarlarını EEPROM'a kaydetmek olacaktır, EEPROM'da kısa melodileri saklamak da çok daha ilginç müzikler yapmanızı sağlayacaktır. Son olarak, daha karmaşık sesler üretilebilir, eğer biri perküsyon seslerini hesaplama açısından verimli bir şekilde nasıl üreteceğini biliyorsa, bu harika olurdu…