İçindekiler:

Retro LED Şerit Ses Görüntüleyici: 4 Adım (Resimlerle)
Retro LED Şerit Ses Görüntüleyici: 4 Adım (Resimlerle)

Video: Retro LED Şerit Ses Görüntüleyici: 4 Adım (Resimlerle)

Video: Retro LED Şerit Ses Görüntüleyici: 4 Adım (Resimlerle)
Video: Led Işıklı Oda 😫🤤#Shorts 2024, Aralık
Anonim
Image
Image
Parça listesi
Parça listesi

Bir müzisyen ve elektrik mühendisliği öğrencisi olarak bu iki alanın kesiştiği her projeye bayılırım. Bazı kendin yap işitsel görselleştiriciler gördüm (burada, burada, burada ve burada), ancak her biri kendim için belirlediğim iki hedeften en az birini kaçırmıştı: profesyonel bir yapı kalitesi ve nispeten büyük bir ekran (wmpy 8*8 LED matrisi burada yeterli olmaz!). Bazı eski yeteneklerle ve 40" x 20" boyutunda oturan bu sesli görselleştirici, bu hedeflerin her ikisini de gerçekleştirir.

Dikey fotoğraflar için şimdiden özür dilerim. Birçoğu sosyal medya için çekildi.

Adım 1: Parça Listesi

Bu parçalardan birkaçı zaten etrafta yatıyordu. Bağlantılar tamamen referans içindir. Lütfen gereksiz pahalı bileşenler satın almayın.

Elektronik

  1. WS2811 60LEDS/m @ 5m, IP30 (Su Geçirmez Olmayan), Adreslenebilir - Bunlar o zamanlar WS2812'den daha ucuzdu. Burada biraz hareket alanınız var ama boyutların doğru olduğundan ve LED'lerle gerçekten konuşabildiğinizden emin olun. Ayrıca WS2811'lerin 12V, WS2812'lerin ise 5V olduğunu unutmayın.
  2. 9 x 3-Pin JST Konnektörler + Prizler
  3. DC 12V 20A (240W) Güç Kaynağı - Başlangıçta 2 LED şerit yapmayı planladım ve evinizi yıkacak bir hoparlör seti istedim. Her ışık şeridi en kötü senaryoda 90W'dir (onaylamak için ölçmedim), bu da beni hoparlörler + amplifikatör için ~ 60W bıraktı. 15A seçeneği zaten sadece 4 dolardı.
  4. Güç kablosu (3 Uçlu)
  5. Arduino Uno - Etrafta yatan bir R3'üm vardı, onu kullandım. Nakavtlardan birinden veya başka bir satıcıdan daha ucuz bir seçenek bulabilirsiniz.
  6. TRRS Breakout - Aux girişi için
  7. L7805 5V Regülatör - 12V giriş kabul eden herhangi bir 5V regülatör çalışacaktır.
  8. 330 nF, 100 nF kapasitörler - L7805 veri sayfası başına
  9. 2 x 10kR, 2 x 1kR, 2 x 100 nF kapasitör - ses girişine ağırlık vermek için
  10. Stereo Alıcı - herhangi bir eski stereo alıcı, aux girişi (3,5 mm veya RCA) olduğu sürece çalışacaktır. 15 dolara craigslist'ten bir Panasonic RA6600 aldım. Benzerleri için Goodwill, craigslist ve diğer tasarruf mağazalarını kontrol etmenizi öneririm.*
  11. Hoparlörler - BT hoparlörleri değil. Sadece bir hoparlör seti. Alıcınızla hangi empedansın uyumlu olduğuna dikkat edin. Goodwill'de 6 $ karşılığında 3 adet 20W (=yüksek) hoparlör seti buldum ve bu bir "orta" ve iki "ön" hoparlörle geldi.
  12. Logitech BT Ses Adaptörü - bu cihaz sesi stereo hoparlörlere ve devrenize aktarabilir
  13. RCA erkek - RCA erkek kablo
  14. yardımcı kablosu

Donanım

  1. 2x6 (8ft) - Basınçla işlem görmemiş. HD veya Lowe's'de ~6 $ veya daha az olmalıdır
  2. %40 Işık Geçirgen Akrilik - 18" x 24" x 1/8" sipariş ettim ve teknik olarak 17.75" x 23.5" idi. Lazer kesime gittiğinizde ambalajında saklayın.
  3. Ahşap Lekesi - Sadece küçük bir kutuya ihtiyacınız var. Minwax kırmızı maun kullandım ve çok güzel oldu. Kesinlikle koyu bir ton tavsiye ederim. Başlangıçta taşralı denedim ve o kadar güzel görünmüyordu.
  4. Lake - Öncelikle, Steve Ramsey'in bu videosunu izleyin ve en iyisinin ne olduğuna kendiniz karar verin. Bir sprey kutu yarı parlak aldım (parlaklık yoktu) ve dürüst olmak gerekirse, o kadar da yapmadı. Ama aynı zamanda zaman kısıtlaması nedeniyle sadece bir kat yaptım.
  5. 40 x 1/2" Ahşap vidalar - Benim elimde yuvarlak başlı vardı ama mümkünse düz üst kullanmanızı tavsiye ederim. Bunun yapı kalitesini etkileyeceğini düşünmüyorum ama önce ahşap işçiliğine daha aşina olan birine sormaktan çekinmeyin.
  6. Hurda ahşap, goril tutkalı, sıcak tutkal, lehim, tel ve komut şeritleri (cırt cırt tarzı, 20 orta veya 10 büyük)

* Bu projeyi tamamen "sıfırdan" yapmak için yukarıdaki 9-13'ün yerini alacak bir ses çubuğu yapmayı planlıyorum. Bu talimatı yaz sonuna kadar güncellemeyi umuyorum.

2. Adım: Prototipleme

prototipleme
prototipleme

Bu bölüm tamamlamanız gereken bir şey değil, ancak projenin ilerlerken nasıl göründüğünü göstermek istiyorum.

Burada, yılan desenindeki LED'leri bantladım ve kendi üzerine katmanlı çöp torbası aracılığıyla ışık difüzyonu deniyordum (masrafları düşürmeye çalışıyorsanız, bunu akriliğe alternatif olarak şiddetle tavsiye ederim. Yine de yapmanız gerekecek. farklı bir şekilde takın).

10x10'luk bir kurulum benim için çalıştı, ancak 8x12 veya 7x14'ü tercih edebilirsiniz. Denemekten çekinmeyin. Müzik setim olmadan önce, bir amplifikatör buldum ve onu breadboard'uma bağladım ve ondan önce, ses analizi için dizüstü bilgisayarımdan devreye ses çaldım ve aynı anda duymak için telefonumda "oynat" düğmesine bastım.

Ben iki kere ölçüye, bir kere kesmeye çok inanan biriyim. Yani ne yaparsanız yapın, bu kılavuzu takip edin ve hazır olacaksınız.

Adım 3: Devre + Kod

Devre + Kod
Devre + Kod
Devre + Kod
Devre + Kod
Devre + Kod
Devre + Kod

Kod GitHub'da mevcuttur.

Breadboard, bir perfboard lehimleyin veya kendi PCB'nizi tasarlayın. Burada senin için en iyisi neyse onu yap. Buradaki demom bir devre tahtası üzerinde çalışıyor, ancak ses çubuğunu oluşturduğumda her şeyi bir PCB'ye aktaracağım. Adaptörden güç almak için dişi ucunu kesin ve siyah izolasyonu çıkarın. Adaptör terminallerine vidalamak için gerçek kabloları yeterince soyun. AC ile çalışırken daima dikkatli olun! Bunun dışında, burada dikkat edilmesi gereken birkaç şey var.

  1. Toprak Yolları Bir diğer şey, toprak yollarınızın iyi olduğundan emin olmaktır. Adaptörden Arduino'ya, ayrıca Logitech BT alıcısındaki toprağa ve oradan da stereodaki toprağa bağlanacak olan aux girişine ihtiyacınız var. Bunlardan herhangi biri bozuk veya kötü bir bağlantıysa, çok gürültülü bir ses girişi ve dolayısıyla çok gürültülü bir görüntü elde edersiniz.
  2. Aux kablosu üzerinden, telefonunuzdan veya dizüstü bilgisayarınızdan veya herhangi bir yerden çalınan Ses Girişi BiasingSes, -2.2 ila +2.2V arasında oynayacaktır. Arduino yalnızca 0 ila +5V okuma kapasitesine sahiptir, bu nedenle ses girişini önyargılı hale getirmeniz gerekir. Bu, op amp'lerle verimli bir şekilde gerçekleştirilebilir, ancak güç tüketimi bir sorun değilse (belki de 240W'lık bir güç kaynağı satın aldınız mı?), dirençler ve kapasitörler ile de yapılabilir. Seçtiğim değerler farklıydı çünkü elimde 10uF kapasitör yoktu. Seçtiğiniz şeyin işe yarayıp yaramadığını görmek için simülatörle oynayabilirsiniz.
  3. Fourier DönüşümleriFourier dönüşümlerini kullanan herhangi bir proje, bunları tartışan bir arka plan bölümüne sahip olacaktır. Zaten deneyiminiz varsa, harika! Değilse, anlamanız gereken tek şey, bir sinyalin anlık görüntüsünü almaları ve o anda o sinyalde hangi frekansların mevcut olduğu hakkında bilgi vermeleridir. Dolayısıyla, günahın(440(2*pi*t)) Fourier dönüşümünü alırsanız, bu size sinyalinizde 440 Hz'lik bir frekansın bulunduğunu söyleyecektir. 7*sin(440(2*pi*t)) + 5*sin(2000(2*pi*t)) Fourier dönüşümünü alırsanız, size hem 440Hz hem de 2000Hz sinyalin mevcut olduğunu söyler ve mevcut oldukları göreceli dereceler. Bunu, herhangi bir sayıda bileşen işlevine sahip herhangi bir sinyal için yapabilir. Tüm ses sadece sinüzoidlerin bir toplamı olduğundan, bir grup anlık görüntünün Fourier dönüşümünü alabilir ve gerçekte neler olduğunu görebiliriz. Kodda, Fourier'i almadan önce sinyalimize bir pencere uyguladığımızı da göreceksiniz. dönüştürmek. Bununla ilgili daha fazla bilgiyi burada bulabilirsiniz, ancak kısa bir açıklama, dönüşüme verdiğimiz sinyalin gerçekten berbat olduğu ve pencerelerin bunu bizim için düzelttiğidir. Bunları kullanmazsanız kodunuz bozulmaz, ancak ekran o kadar temiz görünmez. Daha iyi algoritmalar olabilir (örneğin YAAPT), ancak KISS ilkelerini izleyerek ne kullanmayı seçtim Fast Fourier Dönüşümü veya FFT için iyi yazılmış birkaç Arduino kitaplığı olan zaten mevcuttu.
  4. Arduino her şeyi gerçek zamanlı olarak işleyebilir mi? Her şeyin gerçek zamanlı olarak görünmesi için Arduino'nun 128 örnek alması, bu FFT'yi işlemesi, ekran için değerleri değiştirmesi ve ekranı çok hızlı bir şekilde güncellemesi gerekir. 150bpm'de (çoğu pop şarkının üst uç temposuna yakın) 1/16'lık nota hassasiyeti istiyorsanız, her şeyi 100 msn'de işlemeniz gerekir. Ek olarak, insan gözü 30msn kare uzunluklarına karşılık gelen 30FPS'de görebilir. Bu blog yazısı bana pek güven vermedi, ancak Arduino'nun dayanıp dayanamayacağını kendim görmeye karar verdim. Kendi kıyaslamamdan sonra, R3'ümle çok gurur duydum. Hesaplama aşaması açık ara sınırlayıcı faktördü, ancak UINT16'ların 128 uzunluğundaki bir FFT'sini sadece 70msn'de işleyebildim. Bu, ses toleransları dahilindeydi, ancak görsel kısıtlamanın iki katından fazlaydı. Daha ileri araştırmalarda, FFT simetrisinden yararlanan ve yalnızca gerçek değerleri hesaplayan Arduino FHT'yi buldum. Başka bir deyişle, yaklaşık 2 kat daha hızlı. Ve tabii ki, tüm döngü hızını ~30msn'ye getirdi. Ekran çözünürlüğüyle ilgili burada bir not daha. Fs Hz'de örneklenen bir uzunluk N FFT, N kutu döndürür; burada kth bin, k * Fs/N Hz'e karşılık gelir. Ses girişini okuyan ve örnek alan Arduino ADC normalde ~9.6kHz'de çalışır. Ancak, FFT yalnızca 1/2 * Fs'ye kadar olan frekanslar hakkında bilgi verebilir. İnsanlar 20kHz'e kadar duyabilir, bu nedenle ideal olarak >40kHz'de örnekleme yapmak isteriz. ADC, biraz daha hızlı çalışması için saldırıya uğrayabilir, ancak oraya yakın değil. Kararlılığı kaybetmeden gördüğüm en iyi sonuç 14kHz ADC'deydi. Ek olarak, gerçek zamanlı bir etki elde etmek için işleyebildiğim en büyük FFT N=128 idi. Bu, her bir kutunun ~109Hz'yi temsil ettiği anlamına gelir; bu, daha yüksek frekanslarda iyi, ancak düşük uçta kötüdür. İyi bir görselleştirici, her çubuk için [16.35, 32.70, 65.41, 130.81, 261.63, 523.25, 1046.50, 2093.00, 4186.01] Hz'deki ayrımlara karşılık gelen bir oktav ayırmaya çalışır. 109Hz, ilk 2,5 oktavın hepsinin bir kutuda olduğu anlamına gelir. Kısmen her bir kovanın ortalamasını alarak iyi bir görsel efekt elde edebildim, burada bir kova bu sınırların ikisi arasındaki bir kutu grubudur. Umarım bu kafa karıştırıcı değildir ve kodun kendisi gerçekten neler olup bittiğini açıklığa kavuşturmalıdır, ancak mantıklı değilse aşağıda sormaktan çekinmeyin.

Adım 4: Montaj

toplantı
toplantı
toplantı
toplantı
toplantı
toplantı

Daha önce de belirttiğim gibi, profesyonel yapı kalitesine sahip bir şey istedim. Başlangıçta çıtaları birbirine yapıştırmaya başladım, ancak bir arkadaşım (ve yetenekli makine mühendisi) farklı bir yaklaşım önerdi. 2x6'nın gerçekten 1,5" x 5" olduğunu unutmayın. Ve lütfen aşağıdaki makinelerden herhangi biriyle çalışırken dikkatli olun.

  1. 2x6x8'inizi alın ve gerekirse zımparalayın. 2" x 6" x 22" boyutlarında kesin. Bu size, hata yaparsanız "yakmak" için iki çıta sağlar.
  2. Her 22" bölümü alın ve 1,5" x ~ 1,6" x 22" çıtalar yapmak için uzunlamasına bir masa testeresinden geçirin. Son üçte bir masa testeresinde kesmek zor olabilir, bu nedenle şerit testereye geçebilirsiniz. Sadece her şeyin olabildiğince düz olduğundan emin ol. Ek olarak 1,6" bir kılavuzdur ve 1,75"e kadar çıkabilir. Benim parçalarım böyleydi ama hepsi birbirine eşit olduğu sürece çok da önemli değil. Sınırlayıcı faktör, 18 inçlik akriliktir.
  3. Parçaların ucunda, her iki tarafta 1/8 inç ve 3/4 inçten biraz daha derin olan bir U şekli işaretleyin. NOT: Farklı bir akrilik kullanırsanız derinlik değişecektir. < 3/4" değerinde, akriliğim ışığı hiç yaymaz. Biraz daha fazla olduğunda, tamamen yayılır. Herhangi bir "boncukluluk"tan kaçınmak istersiniz. Bu Hackaday gönderisini iyi bir referans olarak buldum, ancak mükemmel difüzyonu elde etmek çok zor!
  4. Bir masa üstü yönlendirici ile, o orta U'yu çıta boyunca tamamen kesin. 22", ihtiyacınız olandan daha uzundur, bu yüzden yaparsanız uçların ufalanması konusunda endişelenmeyin. Yönlendiriciler yanıltıcı olabilir, ancak biraz U genişliğinin yarısından biraz daha geniş olsun ve 1/'den fazla kesmeye dikkat edin. Bir seferde 8 "malzeme. Tekrarla: Hepsini 2 geçişte yapmaya çalışmayın. Ahşaba zarar vereceksiniz ve muhtemelen kendinize zarar vereceksiniz. 1-4'lük kesimlerde yönlendiricinin dönüşüyle çalışın ve 5-8'de buna karşı çalışın. Bu, yönlendiricinin torku üzerinde en iyi kontrole sahip olmanızı sağlar.
  5. LED şeridini 30 LED'lik bölümlere ayırın (yalnızca her 3 LED seti adreslenebilir). Muhtemelen bağlantılardan birkaçını sökmeniz gerekecek. Bu şeritleri raylar boyunca döşeyin. Bir taraf aynı hizada oturmalı ve diğerinde, aynı hizada oturacak olan JST yuvası için küçük bir alan olmalıdır. Maalesef bunun bir resmini alamadım, ancak ekteki şemaya bakın. Uzunluğu burada işaretleyin, ancak henüz hiçbir şeyi kesmeyin.
  6. Her çıtanın genişliğini ölçün. Bununla ve 7. adımdaki uzunlukla, lazer akriliği 10 gerekli dikdörtgene keser. Biraz kısa olmaktansa biraz uzun olmak daha iyidir. Yanarsa, izopropil ile silin.
  7. Her bir akrilik çıtanın 5. adımda işaretlediğiniz uzunlukta oturduğundan emin olun, ardından çıtayı bu uzunluğa kadar kesin.
  8. Şimdi akriliği takmak için iki köprü parçasına ihtiyacınız var. Bu, herhangi bir şey olması durumunda ışık şeritlerinin kolay bakımını sağlar. Bu parçalar kabaca [genişliğiniz] - 2 * 1/8" uzunluğunda ve 1/2" kare yüzlü olmalıdır, ancak biraz sıkı oturmalıdır. Bu parçalar sıkıca yerinde ve çıtaların ön yüzü ile aynı hizadayken, çıtaların dışından her köprünün ortasından delikler açın. Her matkabı eşit hale getirmek için elinizden gelenin en iyisini yapın. Köprüleri vidalı tutmayın, olabileceklerinden emin olun. Vidayı fazla aşağı çakmamaya ve ahşabı ayırmamaya dikkat edin.
  9. Bu noktada, çıtaları boyayın ve herhangi bir cila uygulayın.
  10. Şimdi köprüleri vidalayın. Aynı hizada oturduklarından emin olun! Değilse, bir çeşit şim eklemeniz gerekecektir. Köprülere goril tutkalı (tercih edilen) veya sıcak tutkal (bir altlık olarak ikiye katlanabilir) uygulayın ve akriliği yapıştırın. Çıtanın kendisi boyunca herhangi bir yapıştırıcı uygulamayın.
  11. Lehim JST prizleri, biri hariç tüm LED şeridin bir tarafına. Hepsini işaretli oklarla gösterilen aynı uca koyun. JST fişlerinin tellerini diğer uçlara lehimleyin. Her konektörde daha fazla kablo soymanız gerekebilir. Fişe takıldığında bağlantıların doğru olduğundan emin olun! LED'lerin arkasındaki yapıştırıcı korkunç, bu yüzden ona güvenmeyin. LED'leri orta rayın altına yatırın ve şeritler üzerinde belirtilen yöne dikkat ederek goril yapıştırıcı ile yapıştırın. Her şeyi salladığınızı unutmayın.
  12. İlk çıta üzerinde, adaptörden güç + toprak ve Arduino'dan sinyal alacak kadar uzun kabloları lehimleyin.
  13. Çıtaları ve köprüleri geri vidalayın. Komut şeritlerini arkaya takın (cırt cırt stili, üstte ve altta 2 orta veya ortada 1 büyük). Gerekli tüm bağlantıları yapın ve ~3" aralıklarla duvara asın. Emeğinizin meyvelerinin tadını çıkarın.

Önerilen: