LoL Shield Audio Spectrum VU mjerač: 4 koraka (sa slikama)
LoL Shield Audio Spectrum VU mjerač: 4 koraka (sa slikama)
Anonim
LoL Shield Audio Spectrum VU mjerač
LoL Shield Audio Spectrum VU mjerač

Ovo je VU mjerač audio spektra koji koristi LoL Shield za Arduino. LoL Shield je 14 x 9 LED matrica koja pristaje na Arduino kao štit i kontrolira se učinkovitom metodom poznatom kao Charlieplexing. Dizajnirao ga je Jimmie P. Rodgers. Ovaj projekt koristi biblioteku Fast Fourier Transform za Arduino za analizu audio signala, njegovo razbijanje na frekvencijske opsege i prikaz tih informacija na LoL Shieldu. Arduino mikrokontroler je dovoljno brz da izračuna brzu Fourierovu transformaciju. Opravdava svoje ime i iznenađujuće je brz i točan. Budući da sav posao obavlja mikrokontroler, ovaj je projekt potpuno prenosiv ako koristite baterije. Web stranica za ovaj projekt nalazi se na adresi 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; lt; br /& amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; gt; Potrebni dijelovi:

  • LoL štit
  • Arduino (preporučuje se Diavolino)
  • audio priključak (koristio sam muški mono 1/8 "telefonski utikač)
  • Arduino kod
  • napajanje (istosmjerno napajanje, USB kabel, 9V baterija itd.)

Korak 1: Sastavite LoL Shield

Sastavite LoL Shield
Sastavite LoL Shield

Slijedite upute za sastavljanje LoL Shielda ovdje. Vidite, to uopće nije dugo trajalo!

Korak 2: Lemljenje žica na audio utičnicu

Spajanje žica na audio priključak
Spajanje žica na audio priključak

Koristim muški mono 1/8 telefonski utikač, kako se zove na Radioshacku, ali možete koristiti bilo koji audio kabel koji odgovara vašem audio sustavu. Možete koristiti mikrofon ako želite. Za ovu vrstu utičnice, Lemio sam dvije žice. Koristio sam crvenu i crnu. LoL Shield ostavlja analogne pinove 4 i 5 slobodnim za ulaze. Moj kôd koristi pin 5. Crvenu žicu možete priključiti na analogni pin 5 LoL štita, a crnu žicu na GND. Ne morate ga lemiti, samo sam provukao žicu i savio je.

Korak 3: Programirajte Arduino

Program Arduino
Program Arduino

Sada moramo programirati Arduino za kontrolu LoL Shield -a.

Preporučuje se korištenje Diavolina za upravljanje LoL Shieldom kako bi se spriječili efekti "duhova" na LED diodama zbog zelene LED diode za površinsko postavljanje spojene na pin 13 na standardnom Arduinu, ali standardni Arduino će raditi dobro.

Za to su potrebne dvije Arduino knjižnice: - FFT knjižnica koja se nalazi na Arduino forumu - Charlieplexing knjižnica za LoL Shield

Instaliranje knjižnica za Arduino može biti pomalo zastrašujuće ako to niste učinili prije, ali bit ćete u redu!

Slijedite upute o instaliranju Arduino knjižnica ovdje:

www.arduino.cc/en/guide/libraries

FFT knjižnica razbija audio signal u 64 frekvencijska područja. LoL Shield ima 14 x 9 LED dioda. Prosječujemo 64 frekvencijska područja zajedno u 14 frekvencijskih opsega. Bacamo neke podatke jer se 14 ne dijeli na 64 ravnomjerno, već na bilo koje. Vrijednost svakog frekvencijskog područja preslikava se od 0 do 9.

Arduino kôd možete kopirati u nastavku, nabaviti ga s GitHub -a (preporučeno) ili preuzeti. ZIP datoteku koja uključuje knjižnice i Arduino kôd.

Evo veze na GitHub:

github.com/andydoro/LoLShield-FFT

Ispod je Arduino kod:

/* FFT za LoL Shield v0.9 Andy Doro https://andydoro.com/na temelju FFT knjižnice i koda s Arduino foruma i Charlieplexing knjižnice za LoL Shield. */

#include "Charliplexing.h"

#include "fix_fft.h"

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

int i = 0, val;

void setup () {LedSign:: Init (); // Pokreće LoL Shield}

void loop () {{100} {101}

za (i = 0; i <128; i ++) {val = analogno čitanje (AUDIOPIN); podaci = val; im = 0; };

fix_fft (podaci, im, 7, 0);

za (i = 0; i <64; i ++) {podaci = sqrt (podaci * podaci +im * im ); // ovo dobiva apsolutnu vrijednost vrijednosti u nizu, pa se bavimo samo pozitivnim brojevima};

// prosječni stupci zajedno za (i = 0; i <14; i ++) {data_avgs = podaci [i*4] + podaci [i*4 + 1] + podaci [i*4 + 2] + podaci [i*4 + 3]; // prosječno zajedno data_avgs = karta (data_avgs , 0, 30, 0, 9); // ponovne vrijednosti za LoL}

// postavite LoLShield

for (int x = 0; x <14; x ++) {for (int y = 0; y <9; y ++) {if (y <data_avgs [13-x]) {// 13-x mijenja tako niske stupce do visokih frekvencija prikazane su slijeva nadesno. LedSign:: Set (x, y, 1); // uključite LED diodu} else {LedSign:: Set (x, y, 0); // isključite LED diodu}}}

}

Korak 4: Uživajte

Uživati!!
Uživati!!

& 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; gt; Priključite audio utičnicu u svoj stereo, iPod, računalo itd. Napajajte Arduino istosmjernim napajanjem, USB-om iz vašeg računala ili baterijama- ovo je potpuno prenosivo. Možete ga staviti u šešir ili kopču za remen. Bijele LED diode su toliko svijetle da ih je teško snimiti videozapisom. Čini se da s njih izlazi ljubičasti plamen! Sjednite i uživajte!

Natjecanje za mikrokontroler
Natjecanje za mikrokontroler
Natjecanje za mikrokontroler
Natjecanje za mikrokontroler

Finalist na natjecanju za mikrokontrolere

Preporučeni: