Vu metre devrelerin de ses sinyalinin seviyesine göre ledler ışık verir bu devrede belirli frekanslara göre ledler ışık veriyor (çeşitli hesaplamalar ve PWM kontrol) ATtiny13 mikrodenetleyici ile yapılan Ledli renkli müzik devresi, dans ışıkları veya disko ışıkları projesi. Ses sinyalinde ki belirli frekanslara göre ledlerin ışık vermesini sağlıyor. Yeşil, kırmızı, mavi renk 3 farklı şerit led kullanılabilir veya tek RGB şerit led kullanabilirsiniz.
Proje, Ses Sinyali Toplama (ADC, Sinyal Örnekleme) ve gerçek zamanlı olarak üç frekans bandını ayıran LED’lerin müzikle senkronize ışık vermesini sağlayan DSP (Dijital Sinyal İşleme) hesaplamalarını kullanıyor. Bu proje aynı zamanda gerçek zamanlı DFT’nin (Ayrık Fourier Dönüşümü) yalnızca 64B RAM ve 1024B FLASH bulunan ATtiny13 gibi küçük MCU’da mümkün olduğunu gösteren iyi bir örnek.
Renkli Müzik devresinin şeması ve mosfetler ile ATtiny13 çıkışlarının güçlendirilmiş halinin şeması;
Bu projede ATtiny13’ün üç ana görevi vardır: LED’leri kullanarak ses sinyalini okumak, sinyali işlemek ve frekans bantlarını görselleştirmek.
1. Ses Sinyali Toplama (ADC, Sinyal Örnekleme)
Giriş sinyali kaynağı herhangi bir ses sinyali olabilir. MCU, gerekli FS ( Örnekleme Frekansı ) ile analog sinyali (sinyal edinimi) okumak için ADC’yi kullanır . Bu faz, N sinyal örneği üretir – zaman alanında ayrık sinyal.
2. Sinyal İşleme (DFT)
Ardından, sinyaller bir DFT algoritması kullanılarak zaman alanından frekans alanına dönüştürülür. Bu fazın ürünü, N frekansın genliklerini temsil eden N değerleridir, burada özel frekans F(n) = FS/N’dir. Ayrık zamanlı bir sistemin bir özelliği olan Nyquist frekans kuralı nedeniyle , daha fazla sinyal analizi için yalnızca N/2 örnek kullanabiliriz. Algoritma karmaşıklığını basitleştirmek için karmaşık sayıların yalnızca gerçek bir kısmının kullanıldığını lütfen unutmayın.
3. LED Görselleştirme (PWM)
Sonunda MCU, önceki aşamadaki bilgilere dayanarak bazı görselleştirmeler yaptı. Her LED bir frekans bant genişliğini temsil eder. MCU tüm frekans genliklerini kontrol eder ve LED’leri değiştirerek PWM Yazılımını simüle eder, sonuç olarak LED parlaklığının oldukça iyi kontrolünü sağlar.
En Önemli Proje Zorlukları
1. DSP hesaplamaları, çok fazla ATtiny13 kaynağı tüketen gerçek sayılar gerektirir
Float/double ile ilgili hesaplamalar, RAM, CPU zamanı ve FLASH alanının çoğunu alır. Bu, projenin gerçekleşmesi için kritik bir konuydu. Çözüm, tüm gerçek sayıları tamsayılarla değiştirmeyi mümkün kılmaktı.
2. FFT algoritmaları, ATtiny13’ün sunduğundan daha fazla RAM gerektirir
Gerçek sayıların ortadan kaldırılması iyi bir optimizasyon hilesiydi ama yine de verimli bir algoritma uygulamak mümkün değildi. Çözüm, 6 noktalı DFT için önceden hesaplanmış twiddle çarpanları eklemek, kısa tamsayılar dizisini kullanmak ve karmaşık sayıların yalnızca gerçek kısmı için hesaplamalara odaklanmaktı (sic!). Sonuç olarak 31 byte (%48.4) RAM diziler için ayrıldı ve 33 byte (%51.6) programın kullanımına bırakıldı.
Twiddle faktörlerinin neden PROGMEM’de değil de RAM’de depolandığını merak eden bazı ukalalar için. Bu bir optimizasyon. PROGMEM’den veri almak ekstra adımlar gerektirdiğinden, RAM’den veriye erişim biraz daha hızlıdır. Daha fazla bilgi için buraya tıklayın .
3. FFT algoritmaları, ATtiny13’ün sunduğundan daha fazla alan gerektirir
FFT’nin (Hızlı Fourier Dönüşümü) popüler uygulamaları, ATtiny13’ün sunduğundan daha fazla program alanı gerektirir. Başlangıçta, algoritmanın karmaşık sayıların her iki kısmını da hesaplamak ve bir sonraki aşama için bir sinyal gücü ürünü olarak hesaplamak için tasarlandığını belirtmekte fayda var. Ancak, ~%20 daha fazla program alanı ve >%50 daha fazla RAM gerektirir. Çözüm, saf versiyonun bazı özelliklerini birleştirmekti – bu, FFT algoritmalarında kullanılan önceden hesaplanmış twiddle faktörleriyle DFT’dir ve bu proje için yeterince iyi olan, karmaşık sayıların yalnızca gerçek kısmı için hesaplama yapar. Sonuç olarak program boyutu ~464 bayttır (%45,3).
Devreyi breadboard üzerine kurup denedim ses kaynağı olarak MP3 oynatıcı çıkışını kullandım ATtiny13 3 numaralı ses girişi pinindeki 100k direnç fazla geldi testlerde 39k kullandım. ATtiny13 çıkışlarında kullanılan mosfetler 50N06, IRFZ44, IRF3205 olabilir.
Renkli Müzik RGB Şerit ve Ayrı Şerit Led Test videosu;
Şerit ledin türüne göre kanal başına 5…10 metre led bağlanabilir. Daha varla metrajda şerit led için daha güçlü mosfet ve soğutucu gerekir. Videoda gördüğünüz gibi RGB şerit led ve ayrı şerit ledler ile deneme yaptım RGB şerit led fena sayılmaz ama ayrı ledler daha iyi görümün sağladı
Ayrıca daha önce paylaştığım “Şerit Ledli Mikrofon Vu Metre Devresi” yazısında ki devre ile test yaptım güzel çalışıyor mikrofon ile kullanımı kurulum için çok daha kolay olur ses çıkışını mosfetin Gate bacağından aldım yani mosfete gerek yok.
Yerleşim planına göre çok güzel işler çıkartılabilir ayrıca mikrodenetleyici çıkışlarında triyak bağlayarak 220v lamba kontrol edilebilir. Disko ışıkları devresi (v1, v2) için PCB hazırladım (kontrol ettim ama denemedim) PCB boyutları 47x30mm tek katlı
Not: Ben yazılımın ilk versiyonunu uyguladım meğer v2 varmış. Yazar; Bu sefer, ses sinyalinin güç spektrumunu hesaplamak için azaltılmış bellek erişimiyle optimize edilmiş DFT algoritmasının tam bir uygulamasını kullandım. Bu sürümde efektler çok daha iyi! demiş. Henüz denemedim ama iyi sonuç vereceği ilk versiyondan belli
Basit Atmel Programlayıcı (Seri Port ISP) yazısın da bahsettiğim gibi ATtiny13 yazılımını yüklemek için seri isp programlayıcı kullandım yazılım ise ponyprog. ATtiny13 sigorta ayarları; FUSE_L=0x6A FUSE_H=0xFF F_CPU=1200000 (F_CPU için ponyprog üzerinde bir ayar bulamadım) Son olarak mikrodenetleyici, yazılım yükleme ile uğraşmak istemeyenler için çok iyi olmasada analog bir devre var; RGB Şerit Ledli Tek Kanal Mikrofon Vu Metre
Kaynak: blog.podkalicki.com/attiny13-dance-lights-with-dft/
Renkli Müzik devresine ait PCB, Kod tüm dosyalar için alternatif link:
Şifre-Pass: 320volt.com
Yayım tarihi: 2021/03/20 Etiketler: atmel avar projeleri, ATtiny13, disko ışıkları