LoL Shield Audio Spektr VU Metr: 4 Addım (Şəkillərlə birlikdə)
LoL Shield Audio Spektr VU Metr: 4 Addım (Şəkillərlə birlikdə)
Anonim
LoL Shield Audio Spektr VU Ölçən
LoL Shield Audio Spektr VU Ölçən

Bu, Arduino üçün LoL Shield istifadə edən bir səs spektrli VU sayğacdır. LoL Shield, Arduinoya bir qalxan olaraq uyğun gələn və Charlieplexing kimi tanınan səmərəli bir üsulla idarə olunan 14 x 9 LED matrisdir. Jimmie P. Rodgers tərəfindən hazırlanmışdır. Bu layihə, səs siqnalını analiz etmək, tezlik diapazonlarına ayırmaq və bu məlumatı LoL Shield -də göstərmək üçün Arduino üçün Fast Fourier Transform kitabxanasından istifadə edir. Arduino mikro nəzarətçisi, sürətli bir Fourier çevrilməsini hesablamaq üçün kifayət qədər sürətlidir. Adına uyğun gəlir və təəccüblü dərəcədə sürətli və dəqiqdir. Bütün işlər mikrokontrolör tərəfindən edildiyindən, batareyalardan istifadə etsəniz bu layihə tamamilə portativdir. Bu layihənin veb səhifəsi https://andydoro.com/vulol/ & amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; lt; br /& ampquot amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; gt; Lazım olan hissələr:

  • LoL Shield
  • Arduino (Diavolino tövsiyə olunur)
  • audio jak (kişi mono 1/8 "telefon prizindən istifadə etdim)
  • Arduino kodu
  • enerji təchizatı (DC enerji təchizatı, USB kabel, 9V batareya və s.)

Addım 1: LoL Shield yığın

LoL Shield yığın
LoL Shield yığın

LoL Shield -i burada yığmaq üçün təlimatları izləyin. Bax, bu çox çəkmədi!

Addım 2: Lehim Tellərini Audio Jakına bağlayın

Audio Jakına Lehim Telləri
Audio Jakına Lehim Telləri

Radioshack -da deyildiyi kimi kişi mono 1/8 telefon fişindən istifadə edirəm, ancaq audio sisteminizin qurulmasına uyğun olan hər hansı bir səs kabelindən istifadə edə bilərsiniz. İstəsəniz mikrofondan istifadə edə bilərsiniz. Bu tip fiş üçün, İki teli lehimlədim. Qırmızı və qara istifadə etdim. LoL Shield 4 və 5 -ci analoq pinləri giriş üçün pulsuz buraxır. Kodum pin 5 -dən istifadə edir. Qırmızı teli LoL Shield -in 5 -ci analog pininə və qara teli GND -ə bağlaya bilərsiniz. Lehimləməyinizə ehtiyac yoxdur, sadəcə telin içindən keçirib əydim.

Addım 3: Arduino proqramı

Proqram Arduino
Proqram Arduino

İndi LoL Shield nəzarət etmək üçün Arduino proqramlaşdırmalıyıq.

Standart Arduino -da pin 13 -ə qoşulan yaşıl səthli LED səbəbiylə LED -lərdə "xəyal qurma" təsirlərinin qarşısını almaq üçün LoL Shield -i idarə etmək üçün Diavolinodan istifadə etmək tövsiyə olunur, lakin standart bir Arduino yaxşı işləyəcək.

Bunun üçün iki Arduino kitabxanası lazımdır: - Arduino forumunda tapılan FFT kitabxanası - LoL Shield üçün Charlieplexing kitabxanası

Arduino üçün kitabxana qurmaq, əvvəllər etməmisinizsə, bir az çətin ola bilər, amma yaxşı olacaqsınız!

Arduino kitabxanalarının quraşdırılması ilə bağlı təlimatları buradan edin:

www.arduino.cc/en/guide/libraries

FFT kitabxanası 64 tezlik diapazonunda səs siqnalını pozur. LoL Shield 14 x 9 LED -dir. Orta hesabla 64 tezlik diapazonunu 14 tezlik bandına ayırırıq. Bəzi məlumatları atırıq, çünki 14 bərabər şəkildə 64 -ə bölünmür, ancaq whatevs. Hər bir tezlik aralığının dəyəri 0 ilə 9 arasında dəyişir.

Aşağıdakı Arduino kodunu kopyalaya, kodu GitHub -dan əldə edə bilərsiniz (tövsiyə olunur) və ya kitabxanalar və Arduino kodunun daxil olduğu. ZIP faylını yükləyə bilərsiniz.

Budur GitHub bağlantısı:

github.com/andydoro/LoLShield-FFT

Aşağıda Arduino kodu verilmişdir:

/* Andy Doro tərəfindən LoL Shield v0.9 üçün FFT https://andydoro.com/FFT kitabxanasına və Arduino forumlarının koduna və LoL Shield üçün Charlieplexing kitabxanasına əsaslanır. */

#"Charliplexing.h" daxil edin

#"fix_fft.h" daxil edin

#define AUDIOPIN 5 char im [128], data [128]; char data_avgs [14];

int i = 0, dəyər;

void setup () {LedSign:: Init (); // LoL Qalxanı işə salır}

boşluq döngəsi () {

for (i = 0; i <128; i ++) {val = analogRead (AUDIOPIN); məlumatlar = dəyər; im = 0; };

fix_fft (məlumatlar, im, 7, 0);

for (i = 0; i <64; i ++) {data = sqrt (data * data +im * im ); // bu, serialdakı dəyərlərin mütləq dəyərini alır, buna görə də yalnız müsbət ədədlərlə məşğul oluruq};

// orta çubuqlar (i = 0; i <14; i ++) {data_avgs = data [i*4] + data [i*4 + 1] + data [i*4 + 2] + data [i*4 + 3]; // ortalama birlikdə data_avgs = xəritə (data_avgs , 0, 30, 0, 9); // LoL} üçün yenidən eşleme dəyərləri

// LoLShield qurun

for (int x = 0; x <14; x ++) {for (int y = 0; y <9; y ++) {if (y <data_avgs [13-x]) {// 13-x barları o qədər aşağı çevirir yüksək frekanslar soldan sağa təmsil olunur. LedSign:: Set (x, y, 1); // LED -i yandırın} başqa {LedSign:: Set (x, y, 0); // LED söndürün}}}

}

Addım 4: Zövq alın

Zövq alın !!
Zövq alın !!

& ampquotAmp & ampquot; amp; amp; amp; amp; amp; amp; amp; gt; Audio jakını stereo, iPod, kompüter və s. Qoşun. Arduino-ya DC enerji təchizatı, kompüterinizdən USB və ya batareyalarla qoşun- bu tamamilə portativdir. Bir şapka və ya kəmər tokasına qoya bilərsiniz. Ağ LED -lər o qədər parlaqdır ki, videoya çəkmək çətindir. Görünür onlardan bənövşəyi bir alov çıxır! Geri oturun və zövq alın!

Mikrokontroller Müsabiqəsi
Mikrokontroller Müsabiqəsi
Mikrokontroller Müsabiqəsi
Mikrokontroller Müsabiqəsi

Mikro nəzarətçi yarışmasında finalçı

Tövsiyə: