Turinys:

„LoL Shield“garso spektro VU matuoklis: 4 žingsniai (su nuotraukomis)
„LoL Shield“garso spektro VU matuoklis: 4 žingsniai (su nuotraukomis)

Video: „LoL Shield“garso spektro VU matuoklis: 4 žingsniai (su nuotraukomis)

Video: „LoL Shield“garso spektro VU matuoklis: 4 žingsniai (su nuotraukomis)
Video: Индикатор уровня сигнала (VU meter) 2024, Liepa
Anonim
„LoL Shield“garso spektro VU matuoklis
„LoL Shield“garso spektro VU matuoklis

Tai garso spektro VU matuoklis, naudojant „LoL Shield“, skirtą „Arduino“. „LoL Shield“yra 14 x 9 LED matrica, kuri tinka „Arduino“kaip skydas ir yra valdoma efektyviu metodu, žinomu kaip „Charlieplexing“. Jį sukūrė Jimmie P. Rodgersas. Šiame projekte naudojama greito Furjė transformacijos biblioteka, skirta „Arduino“, kad būtų galima analizuoti garso signalą, suskaidyti jį į dažnių juostas ir rodyti šią informaciją „LoL Shield“. „Arduino“mikrovaldiklis yra pakankamai greitas, kad apskaičiuotų greitą Furjė transformaciją. Jis atitinka savo pavadinimą ir yra stebėtinai greitas ir tikslus. Kadangi visą darbą atlieka mikrovaldiklis, šis projektas yra visiškai nešiojamas, jei naudojate baterijas. Šio projekto tinklalapis yra adresu https://andydoro.com/vulol/ & amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; lt; br /& amp; amp; amp; amp; amp; amp; amp; amp; amp; amp amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; gt; Reikalingos dalys:

  • „LoL Shield“
  • „Arduino“(rekomenduojama „Diavolino“)
  • garso lizdas (aš naudoju 1/4 colio monofoninį kištuką)
  • Arduino kodas
  • maitinimo šaltinis (nuolatinės srovės šaltinis, USB kabelis, 9 V baterija ir kt.)

1 žingsnis: Surinkite „LoL Shield“

Surinkite „LoL Shield“
Surinkite „LoL Shield“

Vykdykite instrukcijas, kaip surinkti „LoL Shield“čia. Žiūrėk, tai truko neilgai!

2 veiksmas: litavimo laidai prie garso lizdo

Lituoklis prijungia garso lizdą
Lituoklis prijungia garso lizdą

Aš naudoju 1/8 colio monofoninį telefono kištuką, kaip jis vadinamas „Radioshack“, tačiau galite naudoti bet kokį garso kabelį, tinkantį jūsų garso sistemai. Jei norite, galite naudoti mikrofoną. Jei norite tokio tipo kištuko, Lituodavau du laidus. Naudojau raudoną ir juodą. „LoL Shield“palieka laisvus analoginius kaiščius 4 ir 5. Mano kodas naudoja kaištį 5. Raudoną laidą galite prijungti prie „LoL Shield“analoginio 5 kaiščio, o juodąjį laidą - prie GND. Jums nereikia jo lituoti, aš tiesiog perkišiau laidą ir sulenkiau.

3 žingsnis: užprogramuokite „Arduino“

Programa „Arduino“
Programa „Arduino“

Dabar turime užprogramuoti „Arduino“valdyti „LoL Shield“.

Rekomenduojama naudoti „Diavolino“, kad būtų galima valdyti „LoL Shield“, kad būtų išvengta „vaiduoklių“poveikio šviesos diodams dėl žalio paviršiaus tvirtinimo šviesos diodo, prijungto prie standartinio „Arduino“kaiščio 13, tačiau standartinis „Arduino“veiks gerai.

Tam reikia dviejų „Arduino“bibliotekų: - FFT bibliotekos, rastos „Arduino“forume, - „Charlieplexing“bibliotekos, skirtos „LoL Shield“

Bibliotekų diegimas „Arduino“gali būti šiek tiek bauginantis, jei to dar nepadarėte anksčiau, bet jums pasiseks!

Vykdykite „Arduino“bibliotekų diegimo instrukcijas čia:

www.arduino.cc/en/guide/libraries

FFT biblioteka nutraukia garso signalą 64 dažnių juostose. „LoL Shield“yra 14 x 9 šviesos diodų. Mes suskirstome 64 dažnių juostas į 14 dažnių juostas. Mes išmetame kai kuriuos duomenis, nes 14 nėra tolygiai padalijami į 64, bet whatsvs. Kiekvieno dažnių diapazono vertė pakeičiama nuo 0 iki 9.

Galite nukopijuoti žemiau esantį „Arduino“kodą, gauti kodą iš „GitHub“(rekomenduojama) arba atsisiųsti. ZIP failą, kuriame yra bibliotekos ir „Arduino“kodas.

Čia yra „GitHub“nuoroda:

github.com/andydoro/LoLShield-FFT

Žemiau yra „Arduino“kodas:

/* FFT, skirtas „LoL Shield v0.9“, pateikė Andy Doro https://andydoro.com/pagal FFT biblioteką ir kodą iš „Arduino“forumų bei „Charlieplexing“bibliotekos, skirtos „LoL Shield“. */

#įtraukti „Charliplexing.h“

#include "fix_fft.h"

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

int i = 0, val;

void setup () {LedSign:: Init (); // Inicijuoja „LoL Shield“}

void loop () {

už (i = 0; i <128; i ++) {val = analogRead (AUDIOPIN); duomenys = val; im = 0; };

fix_fft (duomenys, im, 7, 0);

(i = 0; i <64; i ++) {data = sqrt (duomenys * duomenys +im * im ); // tai gauna absoliučią masyvo reikšmių vertę, todėl mes susiduriame tik su teigiamais skaičiais};

// vidutinės juostos kartu (i = 0; i <14; i ++) {data_avgs = duomenys [i*4] + duomenys [i*4 + 1] + duomenys [i*4 + 2] + duomenys [i*4 + 3]; // vidurkis kartu data_avgs = žemėlapis (data_avgs , 0, 30, 0, 9); // atnaujinti LoL reikšmes}

// nustatyti „LoLShield“

for (int x = 0; x <14; x ++) {for (int y = 0; y <9; y ++) {if (y <data_avgs [13-x]) {// 13-x apverčia strypus taip žemai į aukštus dažnius vaizduojama iš kairės į dešinę. LedSign:: rinkinys (x, y, 1); // įjungti šviesos diodą} else {LedSign:: Set (x, y, 0); // išjunkite šviesos diodą}}}

}

4 žingsnis: Mėgaukitės

Mėgautis!!
Mėgautis!!

& amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; lt; br & amp; amp; amp; amp; amp amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; gt; Prijunkite garso lizdą prie stereo, „iPod“, kompiuterio ir tt Maitinkite „Arduino“naudodami nuolatinės srovės maitinimo šaltinį, USB iš kompiuterio ar baterijų- tai visiškai nešiojamas. Galite įdėti į skrybėlę ar diržo sagtį. Baltos šviesos diodai yra tokie ryškūs, kad juos sunku užfiksuoti vaizdo įraše. Atrodo, kad nuo jų sklinda purpurinė liepsna! Atsisėskite ir mėgaukitės!

Mikrovaldiklių konkursas
Mikrovaldiklių konkursas
Mikrovaldiklių konkursas
Mikrovaldiklių konkursas

Mikrokontrolierių konkurso finalininkas

Rekomenduojamas: