Innehållsförteckning:

LoL Shield Audio Spectrum VU Meter: 4 steg (med bilder)
LoL Shield Audio Spectrum VU Meter: 4 steg (med bilder)

Video: LoL Shield Audio Spectrum VU Meter: 4 steg (med bilder)

Video: LoL Shield Audio Spectrum VU Meter: 4 steg (med bilder)
Video: По следам древней цивилизации? 🗿 Что, если мы ошиблись в своем прошлом? 2024, November
Anonim
LoL Shield Audio Spectrum VU -mätare
LoL Shield Audio Spectrum VU -mätare

Detta är en ljudspektrum VU -mätare som använder LoL Shield för Arduino. LoL Shield är en 14 x 9 LED -matris som passar på Arduino som en sköld och styrs genom en effektiv metod som kallas Charlieplexing. Den designades av Jimmie P. Rodgers. Detta projekt använder ett Fast Fourier Transform -bibliotek för Arduino för att analysera en ljudsignal, dela upp den i frekvensband och visa den informationen på LoL Shield. Arduino -mikrokontrollern är tillräckligt snabb för att beräkna en snabb Fourier -transformation. Den lever upp till sitt namn och är förvånansvärt snabb och korrekt. Eftersom allt arbete utförs av mikrokontrollern är detta projekt helt portabelt om du använder batterier. Webbsidan för detta projekt finns på 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; 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; gt; Delar som krävs:

  • LoL Shield
  • Arduino (Diavolino rekommenderas)
  • ljuduttag (jag använde en hane mono 1/8 "telefonplugg)
  • Arduino -kod
  • strömförsörjning (likström, USB -kabel, 9V batteri, etc.)

Steg 1: Montera LoL Shield

Montera LoL Shield
Montera LoL Shield

Följ instruktionerna för att montera LoL Shield här. Se, det tog inte lång tid alls!

Steg 2: Lödtrådar till ljuduttaget

Lödtrådar till ljuduttaget
Lödtrådar till ljuduttaget

Jag använder en hane -mono 1/8 telefonkontakt, som den heter på Radioshack, men du kan använda vilken ljudkabel som helst som passar din ljudsystemsinställning. Du kan använda en mikrofon om du vill. För denna typ av kontakt, Jag lödde två trådar. Jag använde rött och svart. LoL -skölden lämnar analoga stift 4 och 5 lediga för ingångar. Min kod använder stift 5. Du kan fästa den röda tråden på analog stift 5 på LoL -skölden och den svarta ledningen till GND Du behöver inte lödda in den, jag lade bara igenom tråden och böjde den.

Steg 3: Programmera Arduino

Programmet Arduino
Programmet Arduino

Nu måste vi programmera Arduino för att styra LoL Shield.

Det rekommenderas att använda Diavolino för att styra LoL Shield för att förhindra "spökande" effekter på lysdioderna på grund av den gröna ytmonterade lysdioden som är ansluten till stift 13 på standard Arduino, men en standard Arduino fungerar bra.

Detta kräver två Arduino -bibliotek: - FFT -biblioteket som finns på Arduino -forumet - Charlieplexing -biblioteket för LoL Shield

Att installera bibliotek för Arduino kan vara lite skrämmande om du inte har gjort det tidigare, men du kommer att klara dig bra!

Följ instruktionerna för att installera Arduino -bibliotek här:

www.arduino.cc/en/guide/libraries

FFT -biblioteket bryter ljudsignalen i 64 frekvensband. LoL Shield är 14 x 9 lysdioder. Vi genomsnitt de 64 frekvensband tillsammans till 14 frekvensband. Vi kastar bort lite data eftersom 14 inte delar sig i 64 jämnt, men vad är det. Värdet för varje frekvensområde är omlagrat från 0 till 9.

Du kan kopiera Arduino -koden nedan, hämta koden från GitHub (rekommenderas) eller ladda ner. ZIP -filen, som inkluderar biblioteken och Arduino -koden.

Här är GitHub -länken:

github.com/andydoro/LoLShield-FFT

Nedan är Arduino -koden:

/* FFT för LoL Shield v0.9 av Andy Doro https://andydoro.com/baserat på FFT -bibliotek och kod från Arduino -forum och Charlieplexing -biblioteket för LoL Shield. */

#inkludera "Charliplexing.h"

#inkludera "fix_fft.h"

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

int i = 0, val;

void setup () {LedSign:: Init (); // Initierar LoL -skölden}

void loop () {

för (i = 0; i <128; i ++) {val = analogRead (AUDIOPIN); data = val; im = 0; };

fix_fft (data, im, 7, 0);

för (i = 0; i <64; i ++) {data = sqrt (data * data +im * im ); // detta får det absoluta värdet av värdena i matrisen, så vi har bara att göra med positiva tal};

// genomsnittliga staplar tillsammans för (i = 0; i <14; i ++) {data_avgs = data [i*4] + data [i*4 + 1] + data [i*4 + 2] + data [i*4 + 3]; // genomsnitt tillsammans data_avgs = map (data_avgs , 0, 30, 0, 9); // ombilda värden för LoL}

// ställ in LoLShield

för (int x = 0; x <14; x ++) {för (int y = 0; y <9; y ++) {if (y <data_avgs [13-x]) {// 13-x vänder staplarna så lågt till höga frekvenser representeras från vänster till höger. LedSign:: Set (x, y, 1); // sätt på lysdioden} else {LedSign:: Set (x, y, 0); // stäng av lysdioden}}}

}

Steg 4: Njut !

Njut av!!
Njut av!!

& 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; gt; Anslut ljuduttaget till din stereo, iPod, dator etc. Koppla Arduino med DC-strömförsörjning, USB från din dator eller batterier- detta är helt portabelt. Du kan sätta den i en hatt eller bältesspänne. De vita lysdioderna är så ljusa att det är svårt att fånga på video. Det ser ut som att det kommer en lila låga från dem! Luta dig tillbaka och njut!

Tävling för mikrokontroller
Tävling för mikrokontroller
Tävling för mikrokontroller
Tävling för mikrokontroller

Finalist i Microcontroller Contest

Rekommenderad: