Inhaltsverzeichnis:

LoL Shield Audio Spectrum VU Meter - Gunook
LoL Shield Audio Spectrum VU Meter - Gunook

Video: LoL Shield Audio Spectrum VU Meter - Gunook

Video: LoL Shield Audio Spectrum VU Meter - Gunook
Video: LoLShield - FFT VU METER 2024, November
Anonim
LoL Shield Audio Spectrum VU Meter
LoL Shield Audio Spectrum VU Meter

Dies ist ein Audiospektrum-VU-Meter, das das LoL Shield für Arduino verwendet. Das LoL Shield ist eine 14 x 9 LED-Matrix, die als Shield auf den Arduino passt und durch eine effiziente Methode namens Charlieplexing gesteuert wird. Es wurde von Jimmie P. Rodgers entworfen. Dieses Projekt verwendet eine Fast Fourier Transform-Bibliothek für Arduino, um ein Audiosignal zu analysieren, in Frequenzbänder aufzuteilen und diese Informationen auf dem LoL Shield anzuzeigen. Der Arduino-Mikrocontroller ist schnell genug, um eine schnelle Fourier-Transformation zu berechnen. Es macht seinem Namen alle Ehre und ist überraschend schnell und genau. Da die gesamte Arbeit vom Mikrocontroller erledigt wird, ist dieses Projekt vollständig portabel, wenn Sie Batterien verwenden. Die Webseite für dieses Projekt befindet sich unter https://andydoro.com/vulol/ & 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; Benötigte Teile:

  • LoL-Schild
  • Arduino (Diavolino empfohlen)
  • Audiobuchse (ich habe einen männlichen Mono 1/8"-Klinkenstecker verwendet)
  • Arduino-Code
  • Stromversorgung (DC-Netzteil, USB-Kabel, 9V-Batterie, etc.)

Schritt 1: LoL-Schild zusammenbauen

LoL-Schild zusammenbauen
LoL-Schild zusammenbauen

Befolgen Sie die Anweisungen, um das LoL Shield hier zu montieren. Sehen Sie, das hat nicht lange gedauert!

Schritt 2: Lötdrähte an die Audiobuchse

Lötdrähte an die Audiobuchse
Lötdrähte an die Audiobuchse

Ich verwende einen männlichen Mono 1/8 -Klinkenstecker, wie er bei Radioshack genannt wird, aber Sie können jedes Audiokabel verwenden, das für Ihr Audiosystem-Setup geeignet ist. Sie können ein Mikrofon verwenden, wenn Sie möchten. Für diese Art von Stecker, Ich habe zwei Drähte gelötet. Ich habe rot und schwarz verwendet. Das LoL Shield lässt die analogen Pins 4 und 5 für Eingänge frei. Mein Code verwendet Pin 5. Sie können das rote Kabel an analogen Pin 5 des LoL Shield und das schwarze Kabel an GND anschließen Sie müssen es nicht einlöten, ich habe nur den Draht durchgesteckt und gebogen.

Schritt 3: Arduino programmieren

Arduino programmieren
Arduino programmieren

Jetzt müssen wir das Arduino programmieren, um das LoL Shield zu steuern.

Es wird empfohlen, das Diavolino zur Steuerung des LoL Shields zu verwenden, um "Geistereffekte" auf den LEDs aufgrund der grünen SMD-LED, die an Pin 13 des Standard-Arduinos angeschlossen ist, zu verhindern, aber ein Standard-Arduino funktioniert gut.

Dies erfordert zwei Arduino-Bibliotheken: - die FFT-Bibliothek im Arduino-Forum - die Charlieplexing-Bibliothek für das LoL Shield

Die Installation von Bibliotheken für Arduino kann etwas entmutigend sein, wenn Sie es noch nicht getan haben, aber Sie werden es gut machen!

Befolgen Sie die Anweisungen zum Installieren von Arduino-Bibliotheken hier:

www.arduino.cc/en/guide/libraries

Die FFT-Bibliothek bricht das Audiosignal in 64 Frequenzbänder. Das LoL Shield besteht aus 14 x 9 LEDs. Wir mitteln die 64 Frequenzbänder zu 14 Frequenzbändern zusammen. Wir werfen einige Daten weg, weil 14 sich nicht gleichmäßig in 64 aufteilt, aber was auch immer. Der Wert jedes Frequenzbereichs wird von 0 bis 9 neu zugeordnet.

Sie können den folgenden Arduino-Code kopieren, den Code von GitHub abrufen (empfohlen) oder die. ZIP-Datei herunterladen, die die Bibliotheken und den Arduino-Code enthält.

Hier ist der GitHub-Link:

github.com/andydoro/LoLShield-FFT

Unten ist der Arduino-Code:

/* FFT für LoL Shield v0.9 von Andy Doro https://andydoro.com/basierend auf der FFT-Bibliothek und Code aus den Arduino-Foren und der Charlieplexing-Bibliothek für das LoL Shield. */

#include "Charliplexing.h"

#include "fix_fft.h"

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

int i=0, val;

Void setup () { LedSign:: Init (); // Initialisiert das LoL-Schild }

Leere Schleife () {

für (i = 0; i < 128; i ++) {val = analogRead (AUDIOPIN); Daten = Wert; im = 0; };

fix_fft(Daten, im, 7, 0);

for (i=0; i< 64;i++){ data = sqrt(data * data + im * im); // dies erhält den absoluten Wert der Werte im Array, also haben wir es nur mit positiven Zahlen zu tun };

// durchschnittliche Balken zusammen für (i=0; i<14; i++) { data_avgs = data[i*4] + data[i*4 + 1] + data[i*4 + 2] + data[i*4 + 3]; // Durchschnitt zusammen data_avgs = map(data_avgs, 0, 30, 0, 9); // Werte für LoL neu zuordnen }

// setze LoLShield

for (int x=0; x < 14; x++) { for (int y=0; y < 9; y++) { if (y < data_avgs[13-x]) { // 13-x kehrt die Balken so niedrig um bis hohe Frequenzen werden von links nach rechts dargestellt. LedSign::Set(x, y, 1); // LED einschalten aufrechtzuerhalten. Else { LedSign:: Set (x, y, 0); // setze die LED aus}}}}

}

Schritt 4: Genießen Sie

Genießen!!
Genießen!!

&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;gt; Schließen Sie die Audiobuchse an Ihre Stereoanlage, Ihren iPod, Ihren Computer usw. an. Versorgen Sie den Arduino mit einem Gleichstromnetzteil, USB von Ihrem Computer oder Batterien - dies ist vollständig tragbar. Sie können es in einen Hut oder eine Gürtelschnalle stecken. Die weißen LEDs sind so hell, dass es schwierig ist, sie auf Video festzuhalten. Es sieht so aus, als ob eine violette Flamme von ihnen kommt! Lehnen Sie sich zurück und genießen Sie!

Mikrocontroller-Wettbewerb
Mikrocontroller-Wettbewerb
Mikrocontroller-Wettbewerb
Mikrocontroller-Wettbewerb

Finalist im Microcontroller Contest

Empfohlen: