Mündəricat:

Retro LED Şerit Audio Vizualizator: 4 Addım (Şəkillərlə birlikdə)
Retro LED Şerit Audio Vizualizator: 4 Addım (Şəkillərlə birlikdə)

Video: Retro LED Şerit Audio Vizualizator: 4 Addım (Şəkillərlə birlikdə)

Video: Retro LED Şerit Audio Vizualizator: 4 Addım (Şəkillərlə birlikdə)
Video: Mənim işim meşəni müşahidə etməkdir və burada qəribə bir şey baş verir. 2024, Noyabr
Anonim
Image
Image
Parça siyahısı
Parça siyahısı

Bir musiqiçi və elektrik mühəndisliyi tələbəsi olaraq bu iki sahəni kəsən hər hansı bir layihəni sevirəm. Bəzi DIY audio vizualizatorları gördüm (burada, burada, burada və burada), amma hər biri özüm üçün qurduğum iki məqsəddən ən az birini qaçırmışdı: peşəkar bir quruluş keyfiyyəti və nisbətən böyük bir ekran (səliqəsiz 8*8) LED matrisi burada kifayət etməyəcək!). Bəzi vintage qabiliyyəti və 40 "x 20" ölçüsündə oturan bu audio vizualizator hər iki hədəfi də yerinə yetirir.

Şaquli şəkillər üçün əvvəlcədən üzr istəyirik. Bir çoxu sosial media üçün çəkildi.

Addım 1: Parça siyahısı

Bu hissələrdən bir neçəsi artıq yatmışdım. Bağlantılar sırf istinad üçündür. Xahiş edirəm lazımsız bahalı komponentlər almayın.

Elektronika

  1. WS2811 60LEDS/m @ 5m, IP30 (Su keçirməyən), Ünvanlı - Bunlar o vaxt WS2812 -dən daha ucuz idi. Burada bir az boşluq var, ancaq ölçülərin düzgün olduğundan və LED -lərlə danışa biləcəyinizdən əmin olun. WS2811 -lərin 12V, WS2812 -lərin isə 5V olduğunu unutmayın.
  2. 9 x 3-Pinli JST Konnektorları + Qəbizlər
  3. DC 12V 20A (240W) Güc Təchizatı-Əvvəlcə 2 LED şeridi düzəltməyi planlaşdırırdım və evinizə zərbə endirmək istəyirdim. Hər bir işıq şeridi ən pis halda 90W-dir (təsdiq etmək üçün ölçmədim), bu da məni dinamiklər və gücləndirici üçün ~ 60W-a qədər tərk etdi. 15A variantı hər halda cəmi 4 dollar ucuz idi.
  4. Elektrik kabeli (3 uclu)
  5. Arduino Uno - Ətrafımda uzanan bir R3 var idi, buna görə də istifadə edirdim. Bir nokautdan və ya başqa bir satıcıdan daha ucuz bir seçim tapa bilərsiniz.
  6. TRRS Breakout - Aux giriş üçün
  7. L7805 5V Regulator - 12V girişi qəbul edən hər hansı bir 5V tənzimləyicisi işləyəcək.
  8. 330 nF, 100 nF kondansatörler - L7805 məlumat cədvəlinə görə
  9. 2 x 10kR, 2 x 1kR, 2 x 100 nF kondansatörler - audio girişi əymək üçün
  10. Stereo Alıcı - hər hansı bir vintage stereo alıcı, aux girişi (3.5mm və ya RCA) olduğu müddətdə işləyəcək. Panasonic RA6600 craigslistini 15 dollara aldım. Goodwill, craigslist və digər qənaətcil mağazaların bənzərlərini yoxlamağı məsləhət görürəm.
  11. Dinamiklər - BT dinamikləri deyil. Sadəcə dinamik dəsti. Alıcınızla hansı empedansın uyğun olduğuna diqqət yetirin. Goodwill -də 6 dollara 3 ədəd 20W (= yüksək) dinamik dəsti tapdım və bu "mərkəz" və iki "ön" dinamiklə gəldi.
  12. Logitech BT Audio Adapter - bu cihaz səsi stereo dinamiklərə və dövrənizə ötürə bilər
  13. RCA kişi - RCA kişi kabeli
  14. Aux kabeli

Avadanlıq

  1. 2x6 (8ft) - Təzyiqlə müalicə olunmur. HD və ya Lowe's -də ~ 6 dollar və ya daha az olmalıdır
  2. 40% İşıq Aktiv Akril - 18 "x 24" x 1/8 "sifariş verdim və texniki olaraq 17.75" x 23.5 "idi. Lazer kəsməyə gedərkən onu sarımda saxlayın.
  3. Taxta Ləkə - Yalnız kiçik bir qutuya ehtiyacınız var. Minwax qırmızı maun istifadə etdim və çox gözəl çıxdı. Mən mütləq qaranlıq bir ton məsləhət görürəm. Əvvəlcə əyaləti sınadım və o qədər də gözəl görünmədi.
  4. Lak - Əvvəlcə Steve Ramsey tərəfindən hazırlanan bu videoya baxın və ən yaxşı nəyin işlədiyini özünüz qərar verin. Yarı parıltılı bir sprey qutusu aldım (parıltı mövcud deyildi) və düzünü desəm, o qədər də təsir etmirdi. Ancaq vaxt məhdudiyyəti səbəbindən yalnız bir palto çəkdim.
  5. 40 x 1/2 "Taxta vintlər - Əlimdə yuvarlaq baş var idi, amma bacarsanız düz bir üst istifadə etməyi məsləhət görürəm. Bunun inşaat keyfiyyətinə mane olacağını düşünmürəm, amma əvvəlcə ağac emalı ilə daha yaxından tanış olan hər kəsdən soruşmaqdan çekinmeyin.
  6. Hurda ağac, qorilla yapışqan, isti yapışqan, lehim, tel və əmr zolaqları (cırtdan üslubu, 20 orta və ya 10 böyük)

* Yuxarıdakı 9-13-ü əvəz edəcək bu layihəni tamamilə "sıfırdan" etmək üçün bir səs çubuğu qurmağı planlaşdırıram. Yazın sonuna qədər bu təlimatı yeniləyəcəyimi ümid edirəm.

Addım 2: Prototipləşdirmə

Prototipləşdirmə
Prototipləşdirmə

Bu bölmə tamamlamanız lazım olan bir şey deyil, amma layihənin gedişatında necə göründüyünü göstərmək istəyirəm.

Burada LEDləri ilan naxışına yapışdırdım və üstünə qatlanmış zibil torbası ilə işıq yayılması ilə sınaq keçirirdim (Xərcləri azaltmağa çalışırsınızsa akrilə alternativ olaraq bunu çox tövsiyə edirəm. fərqli bir şəkildə bağlayın).

10x10 quruluşu mənim üçün işlədi, ancaq 8x12 və ya 7x14 -ə üstünlük verə bilərsiniz. Təcrübə etməkdən çekinmeyin. Stereo almadan əvvəl bir gücləndirici tapdım və çörək taxtamda bağladım və bundan əvvəl audio təhlili üçün noutbukumdan dövrə qədər səs oxudum və eyni zamanda eşitmək üçün telefonuma "oynat" düyməsini vurdum.

Mən iki dəfə ölçüdə, bir dəfə kəsməkdə böyük bir inanclıyam. Beləliklə, nə etsəniz də, bu təlimatı izləyin və hazır olacaqsınız.

Addım 3: Dövrə + Kod

Dövrə + Kod
Dövrə + Kod
Dövrə + Kod
Dövrə + Kod
Dövrə + Kod
Dövrə + Kod

Kod GitHub -da mövcuddur.

Çörək taxtası, bir lövhəyə lehimləmək və ya öz PCB -ni dizayn etmək. Burada sizin üçün ən uyğun olanı edin. Buradakı demom bir çörək taxtasında işləyir, amma səs çubuğunu qurduğumda hər şeyi bir PCB -yə köçürəcəyəm. Adaptordan güc almaq üçün qadın ucunu kəsin və qara izolyasiyanı çıxarın. Həqiqi kabelləri adapter terminallarına vidalayacaq qədər soyun. AC ilə işləyərkən həmişə diqqətli olun! Bunun xaricində, burada yalnız bir neçə şeyi qeyd etmək lazımdır.

  1. Başqa bir şey, torpaq yollarınızın yaxşı olduğundan əmin olmaqdır. Adapterdən Arduino'ya aux girişinə qədər topraklama lazımdır ki, bu da Logitech BT qəbuledicisindəki yerə, oradan isə stereoya bağlıdır. Bunlardan biri qırıq və ya pis bir əlaqədirsə, çox səs -küylü bir səs girişi və buna görə də çox səs -küylü bir ekran əldə edəcəksiniz.
  2. Audio Giriş BiasingAudio, telefonunuzdan və ya dizüstü kompüterinizdən və ya hər hansı bir yerdən -2.2 ilə +2.2V arasında oynayacaq. Arduino yalnız 0 -dan +5V -ə qədər oxuya bilir, buna görə də səs girişinə önəm verməlisiniz. Bu op amper ilə səmərəli şəkildə həyata keçirilə bilər, ancaq enerji istehlakı bir problem deyilsə (bəlkə 240 Vt enerji təchizatı almısınız?), Rezistorlar və kondansatörlərlə də edilə bilər. Seçdiyim dəyərlər fərqli idi, çünki əlimdə 10 uF kondansatör yox idi. Seçdiyiniz şeyin işə yarayacağını görmək üçün simulyatorla oynaya bilərsiniz.
  3. Fourier Dönüşümlərindən istifadə edən hər hansı bir layihədə, onları müzakirə edən bir arxa bölmə olacaq. Artıq təcrübəniz varsa, əla! Əks təqdirdə, başa düşməyiniz lazım olan şey, bir siqnalın bir anlıq şəklini çəkmələri və həmin anda həmin siqnalda hansı tezliklərin mövcud olduğu barədə məlumatları geri qaytarmalarıdır. Günahın Fourier çevrilməsini (440 (2*pi*t)) götürsəniz, siqnalınızda 440Hz tezliyinin olduğunu bildirir. 7*sin (440 (2*pi*t)) + 5*sin (2000 (2*pi*t)) Fourier çevrilməsini götürsəydiniz, həm 440Hz, həm də 2000Hz siqnalının olduğunu və mövcud olduqları nisbi dərəcələr. İstənilən sayda komponent funksiyası olan hər hansı bir siqnal üçün bunu edə bilər. Bütün audiolar yalnız sinusoidlərin cəmi olduğundan, bir qrup anın Fourier çevrilməsini həyata keçirə bilərik və həqiqətən nələrin baş verdiyini görə bilərik. çevirmək Bu barədə daha çox məlumatı burada tapa bilərsiniz, amma qısa izah budur ki, əslində çevrilmə verdiyimiz siqnal çox pisdir və pəncərələr bunu bizim üçün düzəldir. İstifadə etməsəniz kod pozulmayacaq, amma ekran o qədər də təmiz görünməyəcək. Daha yaxşı alqoritmlər ola bilər (məsələn, YAAPT), amma KISS prinsiplərinə uyğun olaraq nəyi istifadə etməyi seçdim Fast Fourier Transform və ya FFT üçün çox yaxşı yazılmış Arduino kitabxanaları olan artıq mövcud idi.
  4. Arduino hər şeyi real vaxt rejimində işlədə bilərmi? Hər şeyin real vaxt rejimində görünməsi üçün Arduinonun 128 nümunə götürməsi, FFT -ni işləməsi, ekranın dəyərlərini idarə etməsi və ekranı çox tez yeniləməsi lazımdır. 150 bpm -də 1/16 not dəqiqliyi istəsəniz (əksər pop mahnılarının ən yüksək tempinə yaxındır), hər şeyi 100 saniyədə işləməlisiniz. Əlavə olaraq, insan gözü 30mss çərçivə uzunluğuna uyğun olan 30FPS -də görə bilir. Bu blog yazısı mənə ən böyük güvəni vermədi, amma Arduinonun davam edib -etməyəcəyini öz gözlərimlə görmək qərarına gəldim. Hesablama mərhələsi çox məhdudlaşdırıcı bir faktordur, ancaq UINT16 -ların 128 uzunluğunda bir FFT -ni yalnız 70 saniyədə işlədə bildim. Bu səs toleransları içərisində idi, ancaq vizual məhdudiyyətdən iki qat çox. Əlavə araşdırmalar zamanı FFT simmetriyasından istifadə edən və yalnız real dəyərləri hesablayan Arduino FHT tapdım. Başqa sözlə, təxminən 2 qat daha sürətlidir. Və kifayət qədər əminliklə, bütün dönmə sürətini ~ 30 msn -ə çatdırdı. Burada ekran qətnaməsinə dair başqa bir qeyd. Fs Hz -də nümunə götürülmüş N FFT uzunluğu, N -ci qutuları qaytarır, burada kth bin k * Fs/N Hz -ə uyğun gəlir. Səs girişini oxuyan və nümunələr götürən Arduino ADC normal olaraq ~ 9.6kHz -də işləyir. Bununla birlikdə, FFT yalnız 1/2 * Fs -ə qədər olan tezliklər haqqında məlumat verə bilər. İnsanlar 20 kHz -ə qədər eşitə bilirlər, buna görə ideal olaraq> 40 kHz -də nümunə götürmək istərdik. Bir az daha sürətli çalışmaq üçün ADC -ni sındırmaq olar, amma heç bir yerdə. Sabitliyi itirmədən gördüyüm ən yaxşı nəticə 14 kHz ADC idi. Əlavə olaraq, hələ də real vaxt effekti əldə edə biləcəyim ən böyük FFT N = 128 idi. Bu o deməkdir ki, hər bir bölmə daha yüksək tezliklərdə yaxşı olan, lakin aşağı ucunda pis olan ~ 109Hz -ni təmsil edir. Yaxşı bir vizuallaşdırıcı, hər bir çubuq üçün [16.35, 32.70, 65.41, 130.81, 261.63, 523.25, 1046.50, 2093.00, 4186.01] Hz -də ayrılmalara uyğun gələn bir oktava ayırmağa çalışır. 109Hz, ilk 2.5 oktavanın hamısının bir çöpdə olması deməkdir. Hələ də, hər bir kovanın ortalamasını götürərək, yaxşı bir vizual effekt əldə edə bildim. Ümid edirəm ki, bu qarışıqlıq deyil və kodun özü həqiqətən nələrin baş verdiyini aydınlaşdırmalıdır, ancaq məntiqli olmadığını aşağıda soruşmaqdan çekinmeyin.

Addım 4: Montaj

Məclis
Məclis
Məclis
Məclis
Məclis
Məclis

Daha əvvəl də qeyd etdiyim kimi, peşəkar bir tikinti keyfiyyəti olan bir şey istədim. Əvvəlcə taxta çubuqları birlikdə yapışdırmağa başladım, amma bir dostum (və təcrübəli mexaniki mühəndis) fərqli bir yanaşma təklif etdi. 2x6 ölçüsünün həqiqətən 1,5 "x 5" olduğunu unutmayın. Və aşağıdakı maşınlardan hər hansı biri ilə işləyərkən diqqətli olun.

  1. Lazım gələrsə 2x6x8 və qum götürün. 2 "x 6" x 22 "hissələrə bölün. Bu, qarışıqlıq halında" yandırmaq "üçün iki çubuq verir.
  2. Hər 22 "hissəsini götürün və 1,5" x ~ 1,6 "x 22" lövhələr düzəltmək üçün uzun bir yolda gördüm. Son üçdə birini bir masa mişarında kəsmək çətin ola bilər, buna görə bir band mişarına keçə bilərsiniz. Hər şeyin mümkün olduğu qədər düz olduğundan əmin olun. Əlavə olaraq, 1.6 "bir bələdçidir və 1.75 -ə qədər gedə bilər. Mənim əsərlərim belə idi, amma hamısı bir -birinə bərabər olduğu müddətcə çox da önəmli deyil. Məhdudlaşdırıcı amil 18 "-dəki akrildir.
  3. Parçaların sonunda hər iki tərəfdə 1/8 "və 3/4" dərinliyindən bir qədər çox olan U şəklini işarələyin. Qeyd: Fərqli bir akril istifadə etsəniz, dərinlik dəyişəcək. <3/4 "-də akrilim heç bir şəkildə işıq yaymır. Bir az da tamamilə yayılır. Hər hansı bir" boncukdan "qaçmaq istəyirsən. Bu Hackaday mesajını yaxşı bir istinad olaraq gördüm, amma mükəmməl bir yayılma əldə etmək çox çətin!
  4. Bir masa üstü yönləndirici ilə, bu orta U'yu çubuğun sonuna qədər kəsin. 22 "ehtiyacınızdan daha uzundur, buna görə də uclarını qırmaqdan narahat olmayın. Routerlər çətin ola bilər, ancaq U genişliyinin yarısından bir qədər geniş olan bir az alın və 1 -dən çox kəsərkən diqqətli olun. Bir anda 8 "material. Təkrarlayın: Hamısını 2 keçiddə etməyə çalışmayın. Ağaca zərər verəcəksiniz və çox güman ki özünüzə zərər verəcəksiniz. Routerin fırlanması ilə 1-4 arası kəsiklərlə işləyin və 5-8-ə qarşı işləyin. Bu, yönlendiricinin fırlanma anını ən yaxşı şəkildə idarə etməyinizi təmin edir.
  5. LED şeridini 30 LED bölmələrə kəsin (yalnız hər 3 LED dəsti ünvanlıdır). Yəqin ki, bir neçə əlaqəni silmək lazımdır. Bu şeritləri yollar boyunca qoyun. Bir tərəf göyərtədə oturmalı, digər tərəfində isə JST qəbuledici üçün kiçik bir otaq olmalıdır. Təəssüf ki, bunun bir şəklini ala bilmədim, ancaq əlavə edilmiş diaqrama baxın. Uzunluğu burada qeyd edin, amma hələ heç nə kəsməyin.
  6. Hər çubuğun genişliyini ölçün. Bu və 7 -ci addımdakı uzunluqla lazer akrili 10 zəruri düzbucağa kəsdi. Biraz qısa olmaqdansa bir az uzun olmaq daha yaxşıdır. Yanarsa, izopropil ilə silin.
  7. Hər bir akril çubuğun 5 -ci addımda qeyd etdiyiniz uzunluqda oturduğunu təsdiqləyin və sonra çubuğu bu uzunluğa endirin.
  8. Akrilik yapışdırmaq üçün iki körpü parçasına ehtiyacınız var. Bu, hər hansı bir şey yaranarsa, işıq şeridlərinin asan saxlanmasına imkan verir. Bu parçalar təxminən [eninizdə] - 2 * 1/8 "uzunluğunda 1/2" kvadrat üzlü olmalıdır, lakin bir az sıx uyğun olmalıdır. Bu parçaları möhkəm bir şəkildə yerinə yetirdikdən və lamellərin ön üzü ilə yuyulduqdan sonra, hər bir körpünün ortasından çıtaların kənarından deliklər qazın. Hər bir matkabı bərabər etmək üçün əlinizdən gələni edin. Körpüləri vidalı vəziyyətdə saxlamayın, ancaq ola biləcəyinə əmin olun. Vidanı çox aşağıya endirməməyə və taxtanı parçalamamağa diqqət edin.
  9. Bu nöqtədə çıtaları ləkələyin və hər hansı bir bitirmə tətbiq edin.
  10. İndi körpüləri vidalayın. Düz oturduqlarından əmin olun! Əks təqdirdə, bir növ qaşıq əlavə etməlisiniz. Körpülərə goril yapışqan (üstünlük verilən) və ya isti yapışqan (şim kimi qatlana bilən) tətbiq edin və akril yapışdırın. Çubuğun özünə heç bir yapışqan tətbiq etməyin.
  11. Bir LED şeridindən başqa hamısının bir tərəfində lehim JST qabları. İşarələnmiş oxlarla verilənlərin hamısını eyni yerə qoyun. JST tellərini digər uclarına lehimləyin. Hər bir konnektordan daha çox tel çıxarmaq lazım ola bilər. Bağlandıqda bağlantıların düzgün olacağından əmin olun! LED -lərin arxasındakı yapışqan dəhşətlidir, buna inanmayın. LED -ləri orta yola qoyun və zolaqlardakı göstərilən istiqamətə diqqət yetirərək onları qorilla yapışqanla yapışdırın. Unutmayın ki, hər şeyi yelləyirsiniz.
  12. İlk lövhədə, adapterdən güc + torpaq və Arduinodan siqnal almaq üçün kifayət qədər uzun telləri lehimləyin.
  13. Çubuqları və körpüləri geri vidalayın. Komanda şeridlərini arxaya yapışdırın (velcro tərzi, yuxarıda və aşağıda 2 orta və ya mərkəzdə 1 böyük). Bütün lazımi əlaqələri qurun və ~ 3 "aralığında divardan asın. Əməyinizin bəhrələrindən zövq alın.

Tövsiyə: