Inhoudsopgave:

LoL Shield Audio Spectrum VU-meter - Ajarnpa
LoL Shield Audio Spectrum VU-meter - Ajarnpa

Video: LoL Shield Audio Spectrum VU-meter - Ajarnpa

Video: LoL Shield Audio Spectrum VU-meter - Ajarnpa
Video: LoLShield - FFT VU METER 2024, November
Anonim
LoL Shield-audiospectrum VU-meter
LoL Shield-audiospectrum VU-meter

Dit is een VU-meter voor het audiospectrum die het LoL Shield voor Arduino gebruikt. Het LoL Shield is een 14 x 9 LED-matrix die als schild op de Arduino past en wordt bestuurd via een efficiënte methode die bekend staat als Charlieplexing. Het werd ontworpen door Jimmie P. Rodgers. Dit project maakt gebruik van een Fast Fourier Transform-bibliotheek voor Arduino om een audiosignaal te analyseren, op te splitsen in frequentiebanden en die informatie weer te geven op het LoL Shield. De Arduino-microcontroller is snel genoeg om een snelle Fourier-transformatie te berekenen. Het doet zijn naam eer aan en is verrassend snel en nauwkeurig. Omdat al het werk door de microcontroller wordt gedaan, is dit project volledig draagbaar als je batterijen gebruikt. De webpagina voor dit project is te vinden op https://andydoro.com/vulol/ & 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; Benodigde onderdelen:

  • LoL-schild
  • Arduino (Diavolino aanbevolen)
  • audio-aansluiting (ik gebruikte een mannelijke mono 1/8" telefoonstekker)
  • Arduino-code
  • voeding (DC voeding, USB kabel, 9V batterij, etc.)

Stap 1: Monteer LoL Shield

Monteer LoL Shield
Monteer LoL Shield

Volg hier de instructies om de LoL Shield te monteren. Kijk, dat duurde helemaal niet lang!

Stap 2: Soldeer draden naar de audio-aansluiting

Soldeer draden naar de audio-aansluiting
Soldeer draden naar de audio-aansluiting

Ik gebruik een mannelijke mono 1/8 -telefoonstekker, zoals deze bij Radioshack wordt genoemd, maar je kunt elke audiokabel gebruiken die geschikt is voor je audiosysteemopstelling. Je zou een microfoon kunnen gebruiken als je dat wilt. Voor dit type stekker, Ik heb twee draden gesoldeerd. Ik heb rood en zwart gebruikt. Het LoL Shield laat analoge pinnen 4 en 5 vrij voor ingangen. Mijn code gebruikt pin 5. Je kunt de rode draad aansluiten op analoge pin 5 van het LoL Shield en de zwarte draad op GND Je hoeft het niet in te solderen, ik steek gewoon de draad erdoor en buig het.

Stap 3: Programmeer Arduino

Arduino programmeren
Arduino programmeren

Nu moeten we de Arduino programmeren om het LoL Shield te besturen.

Het wordt aanbevolen om de Diavolino te gebruiken om het LoL-schild te besturen om "ghosting" -effecten op de LED's te voorkomen vanwege de groene oppervlaktemontage-LED die is aangesloten op pin 13 op de standaard Arduino, maar een standaard Arduino zal prima werken.

Hiervoor zijn twee Arduino-bibliotheken nodig: - de FFT-bibliotheek die te vinden is op het Arduino-forum - de Charlieplexing-bibliotheek voor het LoL Shield

Het installeren van bibliotheken voor Arduino kan een beetje ontmoedigend zijn als je het nog niet eerder hebt gedaan, maar het komt goed!

Volg hier de instructies voor het installeren van Arduino-bibliotheken:

www.arduino.cc/en/guide/libraries

De FFT-bibliotheek breekt het audiosignaal in 64 frequentiebanden. Het LoL-schild bestaat uit 14 x 9 LED's. We nemen het gemiddelde van de 64 frequentiebanden samen in 14 frequentiebanden. We gooien wat gegevens weg omdat 14 niet gelijk verdeeld is in 64, maar wat dan ook. De waarde van elk frequentiebereik wordt opnieuw toegewezen van 0 tot 9.

Je kunt de Arduino-code hieronder kopiëren, de code ophalen van GitHub (aanbevolen) of het. ZIP-bestand downloaden, dat de bibliotheken en Arduino-code bevat.

Hier is de GitHub-link:

github.com/andydoro/LoLShield-FFT

Hieronder staat de Arduino-code:

/* FFT voor LoL Shield v0.9 door Andy Doro https://andydoro.com/gebaseerd op FFT-bibliotheek en code van de Arduino-forums en de Charlieplexing-bibliotheek voor het LoL Shield. */

#include "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(); //Initialiseert het LoL-schild}

lege lus() {

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

fix_fft(data, im, 7, 0);

for (i=0; i<64;i++){ data = sqrt(data * data + im * im); // dit krijgt de absolute waarde van de waarden in de array, dus we hebben alleen te maken met positieve getallen };

// gemiddelde staven samen voor (i=0; i<14; i++) { data_avgs = data[i*4] + data[i*4 + 1] + data[i*4 + 2] + data[ik*4 + 3]; // gemiddelde samen data_avgs = map (data_avgs, 0, 30, 0, 9); // hermap waarden voor LoL }

// stel LoLShield in

for (int x=0; x < 14; x++) { for (int y=0; y < 9; y++) { if (y < data_avgs[13-x]) { // 13-x keert de balken zo laag om tot hoge frequenties worden van links naar rechts weergegeven. LedSign::Set(x, y, 1); // zet de LED aan } else { LedSign::Set(x, y, 0); // zet de LED uit } } }

}

Stap 4: Geniet ervan

Genieten van!!
Genieten van!!

&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; Sluit de audio-aansluiting aan op uw stereo, iPod, computer, enz. Voed de Arduino met een gelijkstroomvoeding, USB van uw computer of batterijen - dit is volledig draagbaar. Je zou het in een hoed of riemgesp kunnen steken. De witte LED's zijn zo fel dat het moeilijk is om ze op video vast te leggen. Het lijkt alsof er een paarse vlam van af komt! Leun achterover en geniet!

Microcontroller-wedstrijd
Microcontroller-wedstrijd
Microcontroller-wedstrijd
Microcontroller-wedstrijd

Finalist in de Microcontroller-wedstrijd

Aanbevolen: