CRAZY L.O.L SPECTRUM ANALYZER: 6 Langkah (dengan Gambar)
CRAZY L.O.L SPECTRUM ANALYZER: 6 Langkah (dengan Gambar)
Anonim
ANALISA SPECTRUM CRAZY L. O. L
ANALISA SPECTRUM CRAZY L. O. L
ANALISA SPECTRUM CRAZY L. O. L
ANALISA SPECTRUM CRAZY L. O. L

Hari ini saya ingin berkongsi bagaimana membuat penganalisis spektrum audio - 36 jalur dengan menggabungkan 4 LoL Shields bersama. Projek gila ini menggunakan perpustakaan FFT untuk menganalisis isyarat audio stereo, menukarnya menjadi jalur frekuensi, dan memaparkan amplitud jalur frekuensi ini pada 4 x LoL Shields.

Sebelum memulakan, sila tonton video di bawah:

Langkah 1: PERKARA YANG KITA PERLUKAN

Komponen elektronik utama adalah seperti di bawah:

  • 4pcs x Arduino Uno R3.
  • 4pcs x LoLShield PCB. PCBWay (perkhidmatan prototaip PCB khusus ciri penuh) menyokong saya papan litar bercetak LoLShield ini.
  • 504pcs x LED, 3mm. Setiap LoLShield memerlukan 126 LED dan kita boleh memilih 4 warna & jenis led yang berbeza (tersebar atau tidak tersebar).
  • 1pcs x Bateri Power Charger Portable Bank 10000 / 20000mAh.
  • 4pcs x Header Lelaki 40pin 2.54mm.
  • 2pcs x Kabel Jenis A / B USB. Satu digunakan untuk pengaturcaraan Arduino, yang lain adalah untuk menghidupkan Arduino dari power bank.
  • Jack Audio Stereo Wanita 1pcs x 3.5mm.
  • 1pcs x 3.5mm 1 Male to 2 Female Audio Splitter Adapter atau Multi Headphone Audio Splitter.
  • 1pcs x 3.5mm Stereo Audio Jack Male-Male Connector Cable.
Imej
Imej
  • Kabel Riben Pelangi 1m x 8P.
  • 1m x Kabel Kuasa Dua Inti.
  • 1pcs x Clear Acrylic, saiz A4.

Langkah 2: SKIMATIK

SKIMATIK
SKIMATIK

LoLShield adalah matriks LED charlieplexing 9x14 untuk Arduino dan reka bentuk ini TIDAK termasuk sebarang perintang penghad semasa. LED boleh dialamatkan secara individu, jadi kami dapat menggunakannya untuk memaparkan maklumat dalam matriks 9 × 14 led.

LoL Shield meninggalkan D0 (Rx), D1 (Tx) dan pin analog A0 hingga A5 percuma untuk aplikasi lain. Gambar di bawah menunjukkan penggunaan pin Arduino Uno untuk projek ini:

Imej
Imej

Penganalisis spektrum audio saya mempunyai 4 x (Arduino Uno + LoLShield). Bekalan kuasa dan bicu audio stereo 3.5mm dihubungkan seperti skema di bawah:

Imej
Imej

Langkah 3: LOL SHIELD PCB & LED SOLDERING

1. LoL SHIELD PCB

Ѽ. Anda boleh merujuk kepada reka bentuk PCB di: https://github.com/jprodgers/LoLshield oleh Jimmie P. Rodgers.

Imej
Imej

Ѽ. PCBWay menyokong saya papan litar bercetak LoLShield ini dengan penghantaran cepat dan berkualiti tinggi PCB.

Imej
Imej

2. PENJUALAN LED

Ѽ. Setiap LoLShield memerlukan 126 led dan saya menggunakan pelbagai jenis & warna untuk 4x LoLShields seperti berikut:

  • 1 x LoLShield: dipimpin tersebar, warna merah, 3mm.
  • 1 x LoLShield: dipimpin yang disebarkan, warna hijau, 3mm.
  • 2 x LoLShield: LED yang tidak tersebar (jelas), warna biru, 3mm.

Ѽ. Menyiapkan LoLShield PCB dan LED

Imej
Imej

Ѽ. Memateri 126 LED ke LoLShield PCB. Kita harus memeriksa LED dengan bateri setelah menyolder setiap baris - 14 LED

LUAR BIASA TERTINGGI

Imej
Imej

KEDUA BAWAH

Imej
Imej

Ѽ. Selesaikan satu LoLShield dan teruskan solder 3 LoLShield yang tinggal.

Imej
Imej

Langkah 4: SAMBUNGAN DAN PERSATUAN

Ѽ. Bekalan kuasa pematerian dan isyarat audio ke 4xLoLShield. Isyarat stereo menggunakan dua saluran audio: kiri dan kanan yang disambungkan ke Arduino Uno pada pin analog A4 & A5.

  • A4: Saluran Audio Kiri.
  • A5: Saluran Audio Kanan.
Imej
Imej

Ѽ. Menyelaraskan & memasang 4 x Arduino Uno pada plat akrilik.

Imej
Imej

Ѽ. Memasang 4 x LoLShield ke 4 x Arduino Uno.

Imej
Imej

Ѽ. Lekatkan power bank pengecas mudah alih dan bicu audio pada plat akrilik

Imej
Imej

Ѽ. Selesai!

Imej
Imej

Langkah 5: PROGRAM

Anda harus merujuk kepada bagaimana LoLShield berfungsi berdasarkan kaedah Charlieplexing dan Fast Fourier Transform (FFT) di:

en.wikipedia.org/wiki/Charlieplexing

github.com/kosme/fix_fft

Untuk Charlieplexing, kami memperhatikan "tiga keadaan" pin digital Arduino: "TINGGI" (5V), "RENDAH" (0V) dan "INPUT". Mod "INPUT" meletakkan pin Arduino dalam keadaan impedans tinggi. Rujukan di:

www.arduino.cc/en/Tutorial/DigitalPins

Dalam projek saya, jalur frekuensi audio dipaparkan pada 4 x LoL Shield dan ia dijelaskan seperti yang ditunjukkan di bawah:

Imej
Imej

Setiap Arduino membaca isyarat audio di saluran kiri / kanan dan melakukan FFT.

untuk (i = 0; i <64; i ++) {Audio_Input = analogRead (RIGHT_CHANNEL); // Baca isyarat audio di saluran kanan A5 - ARDUINO 1 & 2 // Audio_Input = analogRead (LEFT_CHANNEL); // Baca isyarat audio di saluran kiri A4 - ARDUINO 3 & 4 Real_Number = Audio_Input; Nombor khayalan = 0; } fix_fft (Real_Number, Imaginary_Number, 6, 0); // Lakukan Transformasi Fourier Cepat dengan N_WAVE = 6 (2 ^ 6 = 64) untuk (i = 0; i <32; i ++) {Real_Number = 2 * sqrt (Real_Number * Real_Number + Imaginary_Number * Angka Bayaran ); }

Ѽ. Arduino 1 - Paparan jalur frekuensi amplitud 01 ~ 09 saluran kanan (A5).

untuk (int x = 0; x <14; x ++) {untuk (int y = 0; y <9; y ++) {if (x <Real_Number [y]) // Jalur frekuensi paparan 01 hingga 09 {LedSign:: Set (13-x, 8-y, 1); // LED ON} lain {LedSign:: Set (13-x, 8-y, 0); // LED MATI}}}

Ѽ. Arduino 2 - Paparan jalur frekuensi amplitud 10 ~ 18 saluran kanan (A5).

untuk (int x = 0; x <14; x ++) {untuk (int y = 0; y <9; y ++) {if (x <Real_Number [9 + y]) // Jalur frekuensi paparan 10 hingga 18 {LedSign:: Tetapkan (13-x, 8-y, 1); // LED ON} lain {LedSign:: Set (13-x, 8-y, 0); // LED MATI}}}

Ѽ. Arduino 3 - Jalur frekuensi amplitud paparan 01 ~ 09 saluran kiri (A4).

Kodnya sama seperti Arduino 1 dan isyarat kiri saluran kiri menyambung ke Arduino pada pin analog A4.

Ѽ. Arduino 4 - Memaparkan jalur frekuensi amplitud 10 ~ 18 saluran kiri.

Kodnya sama dengan Arduino 2 dan isyarat kiri saluran kiri menyambung ke Arduino pada pin analog A4.

Langkah 6: SELESAI

SELESAI
SELESAI
SELESAI
SELESAI
SELESAI
SELESAI
SELESAI
SELESAI

Penganalisis spektrum mudah alih ini boleh menyambung terus ke komputer riba / desktop, telefon bimbit, tablet atau pemain muzik lain melalui bicu audio stereo 3.5mm. Projek ini nampaknya gila, saya harap anda menyukainya!

Terima kasih kerana membaca !!!

Disyorkan: