Skip to main content

Beenden Sie die Synchronisierung

Beenden Sie die Synchronisierung ist ein Einfrequenz-Audiospektrum-Lautstärkemesser. Es kann um eine bestimmte Frequenz isolieren (ich wähle die Bass ) und zeigen Sie es auf einem kreativen 8-Segment-LED-Balkendiagramm an. Das soll ganz sein einfachund doch Platz für schwieriger Upgrades. Es ist rund um die Arduino Open Source-Umgebung. Das Schaltung ist auch ganz einfach.

Also, wenn Sie bei Ihrem nächsten Haus angeben möchten Party oder mach einfach was cooles, um der Musik etwas Visualisierung zu verleihen, los geht's!

Zubehör:

Schritt 1: Teileliste


Basic
- Arduino UNO (oder ähnlich)
- 8 superhelle LEDs
- 8 Widerstände
- Draht / Flachbandkabel
- 3,5 mm Buchse
- Soldatenausrüstung
- Plakatwand
- X-acto Messer
- Tontechnik
- Mini-Steckbrett
- Mini-Platine
- Schrumpfen durch Hitze

Zusätzlich
- 10 k Potentiometer
- Potentiometerknopf
- Farbiger PVC / Arcylic Film
- Diffusor

Schritt 2: Das Gehäuse

Die Beilage ist so ziemlich ein Regal. Es kann aus Holz, Kunststoff oder Poster /Karton. Dann können Sie die Teile zusammenkleben und sie herstellen ineinandergreifend oder Nagel / Tacker sie. Im Geist von Recycling und wiederverwendenIch habe festgestellt, dass ein ineinandergreifendes Karton-Design gut funktioniert.

Die Maße sind ganz nach Ihren Wünschen, egal ob Sie Quadrate oder Rechtecke mögen. Dieser Entwurf gibt mehr rechteckige Segmente, aber Sie können ihn vor der Hand herausziehen, um zu sehen, wie er aussehen könnte.

1 - 8 "* 24" (Rückseite)
2 - 4 "* 24" (Seiten)
8 - 4 "* 8" (Teiler)

Ich ließ die eine Seite ungeschnitten und musste die andere ducken (weil ich sie versehentlich geschnitten habe). Es faltet sich auf diese Weise in schöne 90-Grad-Kanten.

HINWEIS - Die Trennwände haben Kanten, die sich über die 20 cm Breite hinaus erstrecken, um bündig mit den Seiten zu sein. In die Seiten sind ebenfalls Kerben geschnitten. Sie sollten in der Lage sein, einen sinnvollen Abstand zu finden.

EIN Laserschneider würde viel besser funktionieren als Klingen oder Sägen.

Schritt 3: Die Schaltung

Die Strecke ist recht einfach, wenn auch weitläufig. Die Anodenschenkel der 8 LEDs sind mit den digitalen Ausgangspins (5-12) des Arduino verbunden und die Erdungen sind miteinander verbunden. - Basierend auf allen rationalen elektrischen Kenntnissen sollten Sie zwischen jeder Anode und dem Arduino Strombegrenzungswiderstände anbringen, aber da die LEDs für so kurze Zeit mit Strom versorgt werden, glaube ich, dass es ohne sie einfacher ist. -

Die Masse der 3,5-mm-Audio-Buchse sollte mit der gemeinsamen Masse der LED und dann mit dem Arduino verbunden werden. - Die Erdung am Audioanschluss sollte von außen am weitesten entfernt sein. -

Der rechte oder linke Kanal des Audioanschlusses wird an einen der analogen Eingangspins des Arduino angeschlossen.

Nun zum Code ...

Das Steckbrett und die schematische Ansicht wurden in Fritzing gemacht!

Schritt 4: Der Code

Der Code basiert auf einer Fast Fourier Transform Library, die hier zu finden ist. Kurz gesagt, die FFT unterteilt das Audiosignal in 14 Frequenzbänder und aus diesem Grund wird dieses Projekt mit dem niedrigsten fortgesetzt. Der Bass... Dann einige if-else-Anweisungen zum Aufleuchten bestimmter LEDs.

Hier ist der Code wie in Arduino 1.0.1

//
// Beat Sync
// Ein Musikvisualisierungsgerät.
// Erstellt von
// Carl Smith
// [email protected]
//

#umfassen

int led [] = {5,6,7,8,9,10,11,12};

int x = 0;

char im [128], data [128];

char data_avgs [14];

int i = 0, val;

# AUDIOPIN definieren 3

void setup ()
{
für (int i = 0; i <8; i ++)
{
PinMode (LED [i], OUTPUT);
}
Serial.begin (9600);

}

leere Schleife ()
{
für (i = 0; i <128; i ++) {
val = analogRead (AUDIOPIN);
Daten [i] = val;
im [i] = 0;
};

fix_fft (data, im, 7,0);

für (i = 0; i <64; i ++) {
data [i] = sqrt (data [i] * data [i] + im [i] * im [i]); // dies ergibt den absoluten Wert der Werte in der
// Array, also haben wir es nur mit positiven Zahlen zu tun
};   


// Balken zusammen mitteln
für (i = 0; i <14; i ++) {
data_avgs [i] = data [i * 4] + data [i * 4 + 1] + data [i * 4 + 2] + data [i * 4 + 3]; // Durchschnitt zusammen

data_avgs [i] = map (data_avgs [i], 0, 30, 0, 9); // Werte für LoL neu zuordnen
}
int value = data_avgs [0]; // 0 für Bass
ledArray (Wert);
}
void ledArray (int input)
{
//
if (eingabe> 8)
{
für (int i = 0; i <8; i ++)
{
digitalWrite (LED [i], HIGH);
}
}
sonst wenn (Eingabe> 7)
{
für (int i = 0; i <7; i ++)
{
digitalWrite (LED [i], HIGH);
}
für (int i = 7; i <8; i ++)
{
digitalWrite (LED [i], LOW);
}
}
sonst wenn (Eingabe> 6)
{
für (int i = 0; i <6; i ++)
{
digitalWrite (LED [i], HIGH);
}
für (int i = 6; i <8; i ++)
{
digitalWrite (LED [i], LOW);
}
}
sonst wenn (Eingabe> 5)
{
für (int i = 0; i <5; i ++)
{
digitalWrite (LED [i], HIGH);
}
für (int i = 5; i <8; i ++)
{
digitalWrite (LED [i], LOW);
}
}
sonst wenn (Eingabe> 4)
{
für (int i = 0; i <4; i ++)
{
digitalWrite (LED [i], HIGH);
}
für (int i = 4; i <8; i ++)
{
digitalWrite (LED [i], LOW);
}
}
sonst wenn (Eingabe> 3)
{
für (int i = 0; i <3; i ++)
{
digitalWrite (LED [i], HIGH);
}
für (int i = 3; i <8; i ++)
{
digitalWrite (LED [i], LOW);
}
}
sonst wenn (Eingabe> 2)
{
für (int i = 0; i <2; i ++)
{
digitalWrite (LED [i], HIGH);
}
für (int i = 2; i <8; i ++)
{
digitalWrite (LED [i], LOW);
}
}
sonst wenn (Eingabe> 1)
{
für (int i = 0; i <1; i ++)
{
digitalWrite (LED [i], HIGH);
}
für (int i = 1; i <8; i ++)
{
digitalWrite (LED [i], LOW);
}
}
sonst
{
für (int i = 0; i <8; i ++)
{
digitalWrite (LED [i], LOW);
}
}
}

Schritt 5: Alles zusammenstellen

Zuerst wird der Abstand der Höhe gemessen und durch 9 geteilt. Dies ist der LED-Abstand, und ich benutze eine Sicherheitsnadel, um Löcher in den Karton zu stechen, durch die die LEDs stechen können.

Biegen Sie dann die Beine der LEDs. Stellen Sie sicher, dass sich Anoden und Kathoden auf derselben Seite befinden


Nachdem ich dieses Design ein paar Mal gemacht habe, habe ich festgestellt, dass ein Flachbandkabel es einfacher macht, die Stifte zwischen den verschiedenen Elementen zu verfolgen (siehe vorherigen Schritt in der Schaltung). Ich habe auch Schrumpfen verwendet, um die Drähte und LEDs zu verbinden. Die Anoden verwendeten alle unterschiedliche Drähte am Flachbandkabel und die Masse (Kathode) einen gemeinsamen Draht.

Der Einfachheit halber habe ich eine Mini-Leiterplatte geschnitten, in die der Soldat den Draht und die Header einschneidet, da das Flachbandkabel für das Steckbrett zu zerbrechlich ist.

Schritt 6: Testen Sie es!

Laden Sie alles auf und sehen Sie, ob es funktioniert! Fügen Sie dann eine Basis hinzu und setzen Sie die Trennwände ein. Ich habe einen 3,5-mm-Audio-Splitter an den weiblichen Audio-Anschluss des Beat Sync angeschlossen. Die Audioquelle (Computer oder iPod) und die Lautsprecher werden an das weibliche Ende des Splitters angeschlossen. Auch durch einen Diffusor auf der Vorderseite, damit es besser aussieht, funktionieren einige Schichten Wachspapier ganz gut.



Schritt 7: Party ein


Schritt 8: Extras

Nachdem Sie die Basisversion zum Laufen gebracht haben, können Sie ein paar Extras hinzufügen, um sie noch besser zu machen.

1. Ein Potentiometer kann hinzugefügt werden, und die Werte können neu zugeordnet werden (unter Verwendung der Kartenfunktion), und der Wert kann das obere Ende des in dieser Codezeile analysierten Volumens sein. (Es wäre ein ganzzahliger Wert anstelle der 30)

data_avgs [i] = map (data_avgs [i], 0, 30, 0, 9); // Werte für LoL neu zuordnen

2. Möglicherweise stellen Sie fest, dass es eine Rückkopplung gibt, in der der Kanal von der Audioerkennung verwendet wird, und dass die Lautstärke auch im Kanal geringer ist. Sie können einen Operationsverstärker verwenden, um einen Spannungsfolger zu erstellen.

3. Rüsten Sie den Diffusor auf, um Farbe hinzuzufügen. Ich habe etwas Farbe hinzugefügt, um die maximale Lautstärke mit Gelb, Orange und Rot zu simulieren. Eine fluoreszierende Lichtabdeckung (der industrielle Typ, der in Schulen mit einer Länge von 4 Fuß zu finden ist) hat ein diamantähnliches Muster, das auch gut aussieht.