İçindekiler:
Video: CRAZY L.O.L SPEKTRUM ANALİZÖRÜ: 6 Adım (Resimlerle)
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bugün 4 LoL Shield'i bir araya getirerek 36 bantlı bir ses spektrum analizörünün nasıl yapıldığını paylaşmak istiyorum. Bu çılgın proje, bir stereo ses sinyalini analiz etmek, onu frekans bantlarına dönüştürmek ve bu frekans bantlarının genliğini 4 x LoL Kalkanlarında görüntülemek için bir FFT kitaplığı kullanır.
Başlamadan önce lütfen aşağıdaki videoyu izleyin:
Adım 1: İHTİYACIMIZ OLAN ŞEYLER
Ana elektronik bileşenler aşağıdaki gibidir:
- 4 adet x Arduino Uno R3.
- 4 adet x LoLShield PCB. PCBWay (Tam özellikli özel PCB prototip hizmeti) bana bu LoLShield baskılı devre kartlarını destekledi.
- 504 adet x LED, 3mm. Her LoLShield'in 126 LED'e ihtiyacı vardır ve 4 farklı led rengi ve tipi (dağıtılmış veya dağınık) seçebiliriz.
- 1 adet x Taşınabilir Şarj Cihazı Güç Bankası Pili 10000/20000mAh.
- 4 adet x Erkek Başlık 40pin 2.54mm.
- 2 adet x USB Tip A/B kablosu. Biri Arduino programlaması için, diğeri Arduino'yu bir güç bankasından çalıştırmak için kullanılır.
- 1 adet x 3.5mm Dişi Stereo Ses Jakı.
- 1 adet x 3.5mm 1 Erkek - 2 Kadın Ses Ayırıcı Adaptör veya Çoklu Kulaklık Ses Ayırıcı.
- 1 adet x 3.5mm Stereo Ses Jakı Erkek-Erkek Konnektör Kablosu.
- 1m x 8P Gökkuşağı Şerit Kablo.
- 1m x İki Çekirdekli Güç Kablosu.
- 1 adet x Şeffaf Akrilik, A4 boyutunda.
2. Adım: ŞEMATİK
LoLShield, Arduino için 9x14 charlieplexing LED matrisidir ve bu tasarım herhangi bir akım sınırlayıcı direnç İÇERMEZ. LED'ler ayrı ayrı adreslenebilir, bu nedenle bilgileri 9×14 led matriste görüntülemek için kullanabiliriz.
LoL Shield, diğer uygulamalar için D0 (Rx), D1 (Tx) ve A0 - A5 analog pinlerini serbest bırakır. Aşağıdaki resim, bu proje için Arduino Uno pinlerinin kullanımını göstermektedir:
Ses spektrum analizörümde 4 x (Arduino Uno + LoLShield) var. Güç kaynağı ve 3,5 mm stereo ses jakı aşağıdaki şematik olarak bağlanmıştır:
Adım 3: LOL SHIELD PCB & LED LEHİM
1. LoL KALKAN PCB
Ѽ. PCB tasarımına şu adresten başvurabilirsiniz: https://github.com/jprodgers/LoLshield by Jimmie P. Rodgers.
Ѽ. PCBWay bana bu LoLShield baskılı devre kartlarını hızlı teslimat ve yüksek kaliteli PCB ile destekledi.
2. LED LEHİM
Ѽ. Her LoLShield 126 led'e ihtiyaç duyar ve 4x LoLShield için farklı tür ve renkler kullandım:
- 1 x LoLShield: dağınık led, kırmızı renk, 3mm.
- 1 x LoLShield: dağınık led, yeşil renk, 3mm.
- 2 x LoLShield: dağınık olmayan (şeffaf) led, mavi renk, 3mm.
Ѽ. LoLShield PCB ve LED'i Hazırlama
Ѽ. 126 LED'i LoLShield PCB'ye lehimleme. LED'leri her sıra lehimledikten sonra pil ile kontrol etmeliyiz - 14 LED
TOP LoLSHIELD
ALT LoLSHIELD
Ѽ. Bir LoLShield'ı bitirin ve kalan 3 LoLShield'ı lehimlemeye devam edin.
Adım 4: BAĞLANTI VE MONTAJ
Ѽ. 4xLoLShield'a güç kaynağı ve ses sinyali lehimleme. Bir stereo sinyali iki ses kanalı kullanır: Arduino Uno'ya A4 ve A5 analog pinlerinde bağlanan sol ve sağ.
- A4: Sol Ses Kanalı.
- A5: Sağ Ses Kanalı.
Ѽ. 4 x Arduino Uno'yu akrilik plaka üzerine hizalama ve monte etme.
Ѽ. 4 x LoLShield'ı 4 x Arduino Uno'ya takma.
Ѽ. Akrilik plaka üzerine taşınabilir şarj cihazı güç bankası ve ses jakını yapıştırın
Ѽ. Tamamlandı!
Adım 5: PROGRAMLAMA
LoLShield'ın Charlieplexing yöntemine ve Hızlı Fourier Dönüşümü'ne (FFT) dayalı olarak nasıl çalıştığına şu adresten bakmalısınız:
en.wikipedia.org/wiki/Charlieplexing
github.com/kosme/fix_fft
Charlieplexing için Arduino dijital pinlerinin "üç durumu"na dikkat ediyoruz: "HIGH" (5V), "LOW" (0V) ve "INPUT". "GİRİŞ" modu, Arduino pinini yüksek empedans durumuna getirir. Referans:
www.arduino.cc/en/Tutorial/DigitalPins
Projemde, ses frekans bantları 4 x LoL Shield üzerinde gösteriliyor ve aşağıda gösterildiği gibi açıklanıyor:
Her Arduino, sol/sağ kanaldaki ses sinyalini okur ve FFT'yi gerçekleştirir.
for (i=0; i < 64; i++) { Audio_Input= analogRead(RIGHT_CHANNEL); // Sağ kanaldaki ses sinyalini oku A5 - ARDUINO 1 & 2 //Audio_Input = analogRead(LEFT_CHANNEL); // Sol kanaldaki ses sinyalini oku A4 - ARDUINO 3 & 4 Real_Number = Audio_Input; Hayali_Sayı = 0; } fix_fft(Gerçek_Sayı, Hayali_Sayı, 6, 0); // (i=0; i< 32;i++) { Real_Number = 2*sqrt(Real_Number * Real_Number + Imaginary_Number için N_WAVE=6 (2^6=64) ile Hızlı Fourier Dönüşümü gerçekleştirin * Hayali_Sayı); }
Ѽ. Arduino 1 - Sağ kanalın (A5) 01 ~ 09 genlik frekans bantlarını görüntüleyin.
for (int x=0; x < 14; x++) { for (int y=0; y < 9; y++) { if (x < Real_Number[y]) // 01 - 09 frekans bantlarını göster { LedSign::Set (13-x, 8-y, 1); // LED AÇIK } else { LedSign::Set(13-x, 8-y, 0); // LED KAPALI } } }
Ѽ. Arduino 2 - Sağ kanalın (A5) 10 ~ 18 genlik frekans bantlarını görüntüleyin.
for (int x=0; x < 14; x++) { for (int y=0; y < 9; y++) { if (x < Gerçek_Sayı[9 + y]) // 10 ila 18 arasındaki frekans bantlarını görüntüle { LedSign::Ayarla(13-x, 8-y, 1); // LED AÇIK } else { LedSign::Set(13-x, 8-y, 0); // LED KAPALI } } }
Ѽ. Arduino 3 - Sol kanalın (A4) 01 ~ 09 genlik frekans bantlarını görüntüleyin.
Kod Arduino 1 ile aynıdır ve ses sinyali sol kanalı Arduino'ya analog pin A4'te bağlanır.
Ѽ. Arduino 4 - Sol kanalın 10 ~ 18 genlik frekans bantlarını görüntüleyin.
Kod Arduino 2 ile aynıdır ve ses sinyali sol kanalı Arduino'ya analog pin A4'te bağlanır.
6. Adım: BİTİR
Bu taşınabilir spektrum analizörü, 3,5 mm stereo ses jakı aracılığıyla doğrudan bir dizüstü bilgisayar/masaüstü, cep telefonu, tablet veya diğer müzik çalarlara bağlanabilir. Bu proje çılgın görünüyor, umarım beğenirsiniz!
okuduğunuz için teşekkürler!!!