Mündəricat:
Video: CRAZY L.O.L SPECTRUM ANALIZER: 6 addım (şəkillərlə)
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Bu gün 4 LoL Shields bir araya gətirərək 36 spektrli bir səs spektri analizatorunun necə hazırlanacağını bölüşmək istərdim. Bu dəli layihə, stereo səs siqnalını təhlil etmək, tezlik diapazonlarına çevirmək və 4 x LoL Shields -də bu tezliklərin amplitüdünü göstərmək üçün FFT kitabxanasından istifadə edir.
Başlamadan əvvəl, aşağıdakı videoya baxın:
Addım 1: İhtiyacımız olan şeylər
Əsas elektron komponentlər aşağıdakılardır:
- 4 ədəd x Arduino Uno R3.
- 4 ədəd x LoLShield PCB. PCBWay (Tam xüsusiyyətli xüsusi PCB prototip xidməti) mənə bu LoLShield çap elektron lövhələrini dəstəklədi.
- 504 ədəd x LED, 3 mm. Hər LoLShield üçün 126 LED lazımdır və 4 fərqli LED rəng və növ seçə bilərik (yayılmış və ya yayılmamış).
- 1 ədəd x Portativ Şarj Cihazı Power Bank Batareyası 10000/20000mAh.
- 4 ədəd x Kişi Başlığı 40pin 2.54mm.
- 2 ədəd x USB Tip A/B kabeli. Biri Arduino proqramlaşdırması üçün, digəri isə Arduinoya bir güc bankından enerji vermək üçündür.
- 1 ədəd x 3,5 mm Qadın Stereo Audio Jak.
- 1 ədəd x 3,5 mm 1 Kişi -2 Qadın Səs Ayırıcı Adaptoru və ya Çoxlu Qulaqlıq Səs Bölücü.
- 1 ədəd x 3,5 mm Stereo Audio Jack Kişi-Kişi Bağlayıcı Kabeli.
- 1m x 8P Gökkuşağı Şerit Kabeli.
- 1m x İki Nüvəli Güc Kablosu.
- 1 ədəd x Şəffaf Akril, ölçü A4.
Addım 2: ŞEMATİK
LoLShield, Arduino üçün 9x14 charlieplexing LED matrisidir və bu dizayn heç bir cərəyan məhdudlaşdıran rezistor daxil deyil. LED -lər ayrı -ayrılıqda ünvanlanır, buna görə məlumatı 9 × 14 LED matrisdə göstərmək üçün istifadə edə bilərik.
LoL Shield, D0 (Rx), D1 (Tx) və analog pinləri A0 -dan A5 -ə digər tətbiqlər üçün pulsuz olaraq buraxır. Aşağıdakı şəkil bu layihə üçün Arduino Uno pinlərinin istifadəsini göstərir:
Audio spektr analizatorumda 4 x (Arduino Uno + LoLShield) var. 3,5 mm gücündə olan stereo audio jak aşağıdakı sxemə görə bağlanmışdır:
Addım 3: LOL SHIELD PCB və LED Lehimləmə
1. LoL SHIELD PCB
. PCB dizaynına müraciət edə bilərsiniz: https://github.com/jprodgers/LoLshield by Jimmie P. Rodgers.
. PCBWay mənə sürətli çatdırılma və yüksək keyfiyyətli PCB ilə bu LoLShield çap elektron lövhələrini dəstəklədi.
2. LED Lehimləmə
. Hər bir LoLShield üçün 126 led lazımdır və 4x LoLShields üçün aşağıdakı kimi fərqli növ və rənglərdən istifadə etdim:
- 1 x LoLShield: yayılmış led, qırmızı rəng, 3 mm.
- 1 x LoLShield: yayılmış led, yaşıl rəng, 3 mm.
- 2 x LoLShield: yayılmamış (aydın) led, mavi rəng, 3 mm.
. LoLShield PCB və LED hazırlanır
. LoLShield PCB üzərində 126 LED lehimləmə. Hər cərgəni lehimlədikdən sonra LEDləri batareya ilə yoxlamalıyıq - 14 LED
TOP LOLSHIELD
Alt LoLSHIELD
. Bir LoLShield bitirdikdən sonra qalan 3 LoLShield lehimləməyə davam edin.
Addım 4: BAĞLAMA VƏ MONTAJ
. 4xLoLShield -ə lehimləmə enerji təchizatı və səs siqnalı. Stereo siqnal iki audio kanaldan istifadə edir: A4 və A5 analog pinlərində Arduino Uno -ya qoşulan sol və sağ.
- A4: Sol Audio Kanal.
- A5: Sağ Səs Kanalı.
. Akril lövhədə 4 x Arduino Uno hizalanması və montajı.
. 4 x LoLShield -i 4 x Arduino Uno -ya bağlayın.
. Akril lövhədə portativ şarj cihazının güc bankını və səs yuvasını yapışdırın
. Bitdi!
Addım 5: PROGRAMLAMA
LoLShield -in Charlieplexing metodu və Fast Fourier Transform (FFT) əsasında necə işlədiyinə müraciət etməlisiniz:
en.wikipedia.org/wiki/Charlieplexing
github.com/kosme/fix_fft
Charlieplexing üçün Arduino rəqəmsal pinlərinin "üç vəziyyətinə" diqqət yetiririk: "HIGH" (5V), "LOW" (0V) və "INPUT". "GİRİŞ" rejimi Arduino pinini yüksək empedans vəziyyətinə gətirir. İstinad:
www.arduino.cc/en/Tutorial/DigitalPins
Layihəmdə səs tezliyi bantları 4 x LoL Shield -də göstərilir və aşağıda göstərildiyi kimi təsvir olunur:
Hər bir Arduino sol/ sağ kanalda səs siqnalını oxuyur və FFT yerinə yetirir.
for (i = 0; i <64; i ++) {Audio_Input = analogRead (RIGHT_CHANNEL); // Səs siqnalını A5 kanalında oxuyun - ARDUINO 1 & 2 // Audio_Input = analogRead (LEFT_CHANNEL); // A4 sol kanalında səs siqnalını oxuyun - ARDUINO 3 & 4 Real_Number = Audio_Input; Xəyali_Sayı = 0; } fix_fft (Real_Number, Imaginary_Number, 6, 0); // Fast i Fourier Transformunu N_WAVE = 6 (2^6 = 64) ilə (i = 0; i <32; i ++) {Real_Number = 2 * sqrt (Real_Number * Real_Sayı +Xəyali_Sayı * Xəyali_Sayı ); }
. Arduino 1 - Sağ kanalın (A5) 01-09 amplitüd tezlik diapazonlarını göstərin.
for (int x = 0; x <14; x ++) {for (int y = 0; y <9; y ++) {if (x <Real_Number [y]) // 01 -dən 09 -a qədər tezlik diapazonlarını göstərin {LedSign:: Set (13-x, 8-y, 1); // LED ON} başqa {LedSign:: Set (13-x, 8-y, 0); // LED söndürüldü}}}
. Arduino 2 - Sağ kanalın (A5) 10 ~ 18 amplitüd tezlik diapazonlarını göstərin.
for (int x = 0; x <14; x ++) {for (int y = 0; y <9; y ++) {if (x <Real_Number [9+y]) // 10 ilə 18 arasındakı tezlik diapazonlarını göstərin {LedSign:: Set (13-x, 8-y, 1); // LED ON} başqa {LedSign:: Set (13-x, 8-y, 0); // LED söndürüldü}}}
. Arduino 3 - Sol kanalın (A4) 01-09 amplitüd tezlik diapazonlarını göstərin.
Kod Arduino 1 ilə eynidır və sol kanal A4 analog pinində Arduino -ya qoşulur.
. Arduino 4 - Sol kanalın 10 ~ 18 amplitüd tezlik diapazonlarını göstərin.
Kod Arduino 2 ilə eynidır və səs siqnalı sol kanal A4 analog pinində Arduino -ya qoşulur.
Addım 6: SONLA
Bu portativ spektr analizatoru 3,5 mm stereo audio jak vasitəsilə birbaşa noutbuka/ masaüstünə, cib telefonuna, planşetə və ya digər musiqi pleyerlərinə qoşula bilər. Bu layihə çılğın görünür, ümid edirəm bəyənəcəksiniz!
Oxuduğunuz üçün təşəkkürlər !!!