Inhaltsverzeichnis:
- Schritt 1: DINGE, DIE WIR BRAUCHEN
- Schritt 2: SCHEMA
- Schritt 3: LOL SHIELD PCB & LED LÖTEN
- Schritt 4: ANSCHLUSS UND MONTAGE
- Schritt 5: PROGRAMMIERUNG
- Schritt 6: BEENDEN
Video: CRAZY L.O.L SPECTRUM ANALYZER - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Heute möchte ich teilen, wie man einen Audio-Spektrum-Analysator - 36 Bänder durch die Kombination von 4 LoL Shields zusammenstellt. Dieses verrückte Projekt verwendet eine FFT-Bibliothek, um ein Stereo-Audiosignal zu analysieren, in Frequenzbänder umzuwandeln und die Amplitude dieser Frequenzbänder auf 4 x LoL Shields anzuzeigen.
Bevor Sie beginnen, sehen Sie sich bitte das folgende Video an:
Schritt 1: DINGE, DIE WIR BRAUCHEN
Die wichtigsten elektronischen Komponenten sind wie folgt:
- 4 Stück x Arduino Uno R3.
- 4 Stück x LoLShield-Leiterplatte. PCBWay (Full Feature Custom PCB Prototyp Service) unterstützte mich bei diesen LoLShield-Leiterplatten.
- 504 Stück x LED, 3 mm. Jedes LoLShield benötigt 126 LEDs und wir können 4 verschiedene LED-Farben und -Typen auswählen (diffundiert oder nicht diffus).
- 1 Stück x Tragbares Ladegerät Power Bank Akku 10000/20000mAh.
- 4 Stück x Stiftleiste 40pin 2,54 mm.
- 2 Stück x USB Typ A/B Kabel. Einer wird für die Arduino-Programmierung verwendet, der andere für die Stromversorgung des Arduino von einer Powerbank.
- 1 Stück x 3,5 mm Stereo-Audiobuchse.
- 1 Stück x 3,5 mm 1 Stecker auf 2 Buchse Audio-Splitter-Adapter oder Multi-Kopfhörer-Audio-Splitter.
- 1 Stück x 3,5 mm Stereo-Audio-Klinkenstecker-Stecker-Kabel.
- 1m x 8P Regenbogen-Flachbandkabel.
- 1m x zweiadriges Stromkabel.
- 1 Stück x klares Acryl, Größe A4.
Schritt 2: SCHEMA
Das LoLShield ist eine 9x14 charlieplexing LED-Matrix für den Arduino und dieses Design enthält KEINE Strombegrenzungswiderstände. Die LEDs sind einzeln adressierbar, sodass wir damit Informationen in einer 9×14 LED-Matrix anzeigen können.
Das LoL Shield lässt D0 (Rx), D1 (Tx) und die analogen Pins A0 bis A5 für andere Anwendungen frei. Das Bild unten zeigt die Verwendung von Arduino Uno-Pins für dieses Projekt:
Mein Audiospektrumanalysator hat 4 x (Arduino Uno + LoLShield). Das Netzteil und die 3,5-mm-Stereo-Audiobuchse sind wie unten beschrieben angeschlossen:
Schritt 3: LOL SHIELD PCB & LED LÖTEN
1. LoL SHIELD PCB
. Weitere Informationen zum PCB-Design finden Sie unter: https://github.com/jprodgers/LoLshield von Jimmie P. Rodgers.
. PCBWay unterstützte mich bei diesen LoLShield-Leiterplatten mit schneller Lieferung und hochwertiger Leiterplatte.
2. LED-LÖTEN
. Jedes LoLShield benötigt 126 LEDs und ich habe verschiedene Arten und Farben für 4x LoLShields wie folgt verwendet:
- 1 x LoLShield: diffuse LED, rote Farbe, 3 mm.
- 1 x LoLShield: diffuse LED, grüne Farbe, 3 mm.
- 2 x LoLShield: nicht diffundierte (klare) LED, blaue Farbe, 3 mm.
. Vorbereiten von LoLShield PCB und LED
. Löten von 126 LED auf LoLShield PCB. Wir sollten die LEDs nach dem Löten jeder Reihe per Batterie überprüfen - 14 LEDs
TOP LoLSHIELD
UNTERES LOLSHIELD
. Beenden Sie ein LoLShield und löten Sie 3 verbleibende LoLShields weiter.
Schritt 4: ANSCHLUSS UND MONTAGE
. Anlöten von Netzteil und Audiosignal an 4xLoLShield. Ein Stereosignal verwendet zwei Audiokanäle: links und rechts, die an den analogen Pins A4 und A5 mit Arduino Uno verbunden sind.
- A4: Linker Audiokanal.
- A5: Rechter Audiokanal.
. Ausrichten & Montieren von 4 x Arduino Uno auf der Acrylplatte.
. Anschließen von 4 x LoLShield an 4 x Arduino Uno.
. Kleben Sie die Powerbank und die Audiobuchse des tragbaren Ladegeräts auf die Acrylplatte
. Fertig!
Schritt 5: PROGRAMMIERUNG
Die Funktionsweise von LoLShield basierend auf der Charlieplexing-Methode und der Fast Fourier Transform (FFT) finden Sie unter:
en.wikipedia.org/wiki/Charlieplexing
github.com/kosme/fix_fft
Beim Charlieplexing achten wir auf die "drei Zustände" der Arduino-Digitalpins: "HIGH" (5V), "LOW" (0V) und "INPUT". Der Modus "INPUT" versetzt den Arduino-Pin in den hochohmigen Zustand. Referenz unter:
www.arduino.cc/en/Tutorial/DigitalPins
In meinem Projekt werden die Audiofrequenzbänder auf 4 x LoL Shield angezeigt und wie folgt beschrieben:
Jeder Arduino liest das Audiosignal am linken / rechten Kanal und führt die FFT durch.
für (i = 0; i < 64; i ++) { Audio_Input = analogRead (RIGHT_CHANNEL); // Audiosignal am rechten Kanal A5 lesen - ARDUINO 1 & 2 // Audio_Input = analogRead (LEFT_CHANNEL); // Audiosignal am linken Kanal A4 lesen - ARDUINO 3 & 4 Real_Number = Audio_Input; Imaginäre_Zahl = 0; } fix_fft(Real_Number, Imaginary_Number, 6, 0); // Schnelle Fourier-Transformation mit N_WAVE=6 (2^6=64) für (i=0; i< 32;i++) ausführen { Real_Number = 2*sqrt(Real_Number * Real_Number + Imaginary_Number * Imaginäre_Zahl); }
. Arduino 1 - Anzeige der Amplitudenfrequenzbänder 01 ~ 09 des rechten Kanals (A5).
for (int x=0; x < 14; x++) { for (int y=0; y < 9; y++) { if (x < Real_Number[y]) // Anzeige der Frequenzbänder 01 bis 09 { LedSign::Set (13-x, 8-y, 1); // LED AN} else { LedSign::Set(13-x, 8-y, 0); // LED AUS } } }
. Arduino 2 - Anzeige der Amplitudenfrequenzbänder 10 ~ 18 des rechten Kanals (A5).
for (int x=0; x < 14; x++) { for (int y=0; y < 9; y++) { if (x < Real_Number[9 + y]) // Anzeige der Frequenzbänder 10 bis 18 { LedSign::Set(13-x, 8-y, 1); // LED AN} else { LedSign::Set(13-x, 8-y, 0); // LED AUS } } }
. Arduino 3 - Anzeige der Amplitudenfrequenzbänder 01 ~ 09 des linken Kanals (A4).
Der Code ist der gleiche wie bei Arduino 1 und der linke Audiosignalkanal wird am analogen Pin A4 mit Arduino verbunden.
. Arduino 4 - Anzeige der Amplitudenfrequenzbänder 10 ~ 18 des linken Kanals.
Der Code ist der gleiche wie bei Arduino 2 und der linke Audiosignalkanal wird am analogen Pin A4 mit Arduino verbunden.
Schritt 6: BEENDEN
Dieser tragbare Spektrumanalysator kann über die 3,5-mm-Stereo-Audiobuchse direkt an einen Laptop/Desktop, ein Mobiltelefon, ein Tablet oder andere Musikplayer angeschlossen werden. Dieses Projekt scheint verrückt, ich hoffe es gefällt euch!
Vielen Dank für Ihr Lesen !!!