Kazalo:

LoL Shield Audio Spectrum VU meter: 4 koraki (s slikami)
LoL Shield Audio Spectrum VU meter: 4 koraki (s slikami)

Video: LoL Shield Audio Spectrum VU meter: 4 koraki (s slikami)

Video: LoL Shield Audio Spectrum VU meter: 4 koraki (s slikami)
Video: Тоси-боси и бог тлена ► 6 Прохождение Kena: Bridge of Spirits 2024, November
Anonim
LoL Shield Audio Spectrum VU meter
LoL Shield Audio Spectrum VU meter

To je merilnik VU zvočnega spektra, ki uporablja LoL Shield za Arduino. LoL Shield je 14 x 9 LED matrika, ki se prilega Arduinu kot ščit in se upravlja z učinkovito metodo, znano kot Charlieplexing. Oblikoval ga je Jimmie P. Rodgers. Ta projekt uporablja knjižnico Fast Fourier Transform za Arduino za analizo zvočnega signala, njegovo razčlenitev na frekvenčne pasove in prikaz teh informacij na LoL Shieldu. Mikrokrmilnik Arduino je dovolj hiter, da izračuna hitro Fourierjevo transformacijo. Uresničuje svoje ime in je presenetljivo hiter in natančen. Ker vse delo opravlja mikrokrmilnik, je ta projekt popolnoma prenosljiv, če uporabljate baterije. Spletna stran tega projekta se nahaja na naslovu 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; lt; br /& amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; gt; Potrebni deli:

  • LoL ščit
  • Arduino (priporočeno Diavolino)
  • avdio priključek (uporabil sem moški mono 1/8 "telefonski vtič)
  • Koda Arduino
  • napajanje (enosmerno napajanje, kabel USB, 9V baterija itd.)

1. korak: Sestavite LoL Shield

Sestavite LoL Shield
Sestavite LoL Shield

Sledite navodilom za sestavljanje LoL Shield tukaj. Vidite, to sploh ni trajalo dolgo!

2. korak: Spajkanje žic na avdio priključek

Spajkanje žic na avdio priključek
Spajkanje žic na avdio priključek

Uporabljam moški moški 1/8 telefonski vtič, kot se imenuje na Radioshacku, vendar lahko uporabite kateri koli avdio kabel, ki je primeren za nastavitev vašega zvočnega sistema. Če želite, lahko uporabite mikrofon. Za to vrsto vtiča, Spajal sem dve žici. Uporabil sem rdečo in črno. LoL Shield pusti analogne nožice 4 in 5. za vhode proste. Moja koda uporablja pin 5. Rdečo žico lahko pritrdite na analogni pin 5 LoL Shield -a, črno žico pa na GND. Ni vam ga treba spajkati, samo dal sem žico in jo upognil.

Korak: Program Arduino

Program Arduino
Program Arduino

Zdaj moramo programirati Arduino za nadzor LoL Shield.

Priporočljivo je, da za krmiljenje LoL Shielda uporabite Diavolino, da preprečite učinke "duhov" na LED diodah zaradi zelene LED za površinsko montažo, priključene na pin 13 na standardnem Arduinu, vendar bo standardni Arduino deloval dobro.

Za to sta potrebni dve knjižnici Arduino: - knjižnica FFT, najdena na forumu Arduino - knjižnica Charlieplexing za LoL Shield

Namestitev knjižnic za Arduino je lahko rahlo zastrašujoča, če tega še niste storili, vendar vam bo uspelo!

Sledite navodilom za namestitev knjižnic Arduino tukaj:

www.arduino.cc/en/guide/libraries

Knjižnica FFT razbije zvočni signal v 64 frekvenčnih pasovih. LoL Shield je 14 x 9 LED. 64 frekvenčnih pasov skupaj povprečimo v 14 frekvenčnih pasov. Zavračamo nekaj podatkov, ker se 14 ne deli enakomerno na 64, ampak na vse. Vrednost vsakega frekvenčnega območja se preslika od 0 do 9.

Spodaj lahko kopirate kodo Arduino, dobite kodo iz GitHub (priporočeno) ali prenesete datoteko. ZIP, ki vključuje knjižnice in kodo Arduino.

Tukaj je povezava GitHub:

github.com/andydoro/LoLShield-FFT

Spodaj je koda Arduino:

/* FFT za LoL Shield v0.9 Andyja Dora https://andydoro.com/na podlagi knjižnice FFT in kode s forumov Arduino in knjižnice Charlieplexing za LoL Shield. */

#include "Charliplexing.h"

#include "fix_fft.h"

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

int i = 0, val;

void setup () {LedSign:: Init (); // Inicializira LoL Shield}

void loop () {

for (i = 0; i <128; i ++) {val = analogRead (AUDIOPIN); podatki = val; im = 0; };

fix_fft (podatki, im, 7, 0);

za (i = 0; i <64; i ++) {podatki = sqrt (podatki * podatki +im * im ); // to dobi absolutno vrednost vrednosti v matriki, zato imamo opravka samo s pozitivnimi številkami};

// povprečni stolpci skupaj za (i = 0; i <14; i ++) {data_avgs = podatki [i*4] + podatki [i*4 + 1] + podatki [i*4 + 2] + podatki [i*4 + 3]; // povprečje skupaj data_avgs = zemljevid (data_avgs , 0, 30, 0, 9); // vrednosti preslikave za LoL}

// nastavimo LoLShield

for (int x = 0; x <14; x ++) {for (int y = 0; y <9; y ++) {if (y <data_avgs [13-x]) {// 13-x obrne črte tako nizko do visokih frekvenc so predstavljene od leve proti desni. LedSign:: Set (x, y, 1); // LED prižgemo} else {LedSign:: Set (x, y, 0); // izklop LED diode}}}

}

4. korak: Uživajte !

Uživajte !!
Uživajte !!

& 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; gt; Priključite avdio vtičnico v stereo, iPod, računalnik itd. Napajajte Arduino z enosmernim napajanjem, USB iz računalnika ali baterij- to je popolnoma prenosljivo. Lahko bi ga dali v klobuk ali zaponko za pas. Bele LED diode so tako svetle, da jih je težko posneti na video. Zdi se, da iz njih prihaja vijolični plamen! Sedite in uživajte!

Natečaj za mikrokrmilnik
Natečaj za mikrokrmilnik
Natečaj za mikrokrmilnik
Natečaj za mikrokrmilnik

Finalist natečaja za mikrokrmilnik

Priporočena: