Arduino-basierter Audio-Spektrumanalysator-Visualisierer



Was machen Mädchen, wenn sie zusammenkommen? Einkaufen gehen, Fotos machen, in Schönheitssalons gehen? Ja, aber nicht jeder tut es. In diesem Artikel wird erläutert, wie zwei Mädchen beschlossen haben, ein elektronisches Gerät mit eigenen Händen zusammenzubauen.

Warum genau ein Spektrumanalysator-Visualisierer?


Schließlich gibt es für dieses Problem eine ganze Reihe von Softwarelösungen, und es gibt auch viele Optionen für die Hardware-Implementierung. Erstens wollte ich unbedingt mit einer großen Anzahl von LEDs arbeiten (weil wir den LED-Würfel bereits für uns selbst zusammengebaut haben, aber in kleinen Größen) und zweitens das in der digitalen Signalverarbeitung gewonnene Wissen in die Praxis umsetzen und drittens noch einmal, um die Arbeit mit einem Lötkolben zu üben.

Geräteentwicklung


Weil Es ist langweilig und uninteressant, eine vorgefertigte Lösung zu nehmen und sie strikt gemäß den Anweisungen durchzuführen. Deshalb haben wir uns entschlossen, die Schaltung selbst zu entwickeln und uns nur ein wenig auf die bereits erstellten Geräte zu verlassen.

Als Anzeige haben wir eine 8x32 LED Matrix gewählt. Sie könnten fertige 8x8-LED-Matrizen verwenden und daraus zusammenbauen, aber wir haben uns entschlossen, nicht das Vergnügen zu genießen, abends mit einem Lötkolben zu sitzen, und deshalb das Display selbst aus den LEDs zusammengebaut.

Zur Steuerung des Displays haben wir kein Fahrrad erfunden und einen Steuerkreis mit dynamischer Anzeige verwendet. Das heißt, Wir haben eine Spalte ausgewählt, sie beleuchtet, die verbleibenden Spalten in diesem Moment gelöscht, dann die nächste ausgewählt, sie beleuchtet, der Rest gelöscht usw. Aufgrund der Tatsache, dass das menschliche Auge nicht perfekt ist, können wir ein statisches Bild auf dem Display beobachten.
Auf dem Weg des geringsten Widerstands wurde entschieden, dass es ratsam ist, alle Berechnungen auf den Arduino-Controller zu übertragen.

Das Einfügen einer Zeile in eine Spalte erfolgt durch Öffnen des entsprechenden Schlüssels. Um die Anzahl der Controller-Ausgangspins zu reduzieren, wird die Spalte über Decoder ausgewählt (somit können wir die Anzahl der Steuerleitungen auf 5 reduzieren).


Als Schnittstelle für den Anschluss an einen Computer (oder ein anderes Gerät, das ein Audiosignal übertragen kann) wurde der TRS-Anschluss (Minibuchse 3,5 mm) ausgewählt.

Gerätebaugruppe


Wir beginnen mit der Montage des Geräts, indem wir ein Modell der Frontplatte des Geräts erstellen.



Das Material für die Frontplatte wurde aus schwarzem Kunststoff mit einer Dicke von 5 mm ausgewählt (da der Durchmesser der Diodenlinse ebenfalls 5 mm beträgt). Wir markieren es entsprechend dem entwickelten Layout, schneiden die Frontplatte auf die gewünschte Größe aus und bohren Löcher in den Kunststoff für die LEDs.





So erhalten wir eine fertige Frontplatte, auf der Sie das Display bereits montieren können.



Als LEDs für die Matrix wurden zweifarbig (rot-grün) mit der gemeinsamen Kathode GNL-5019UEUGC verwendet. Vor Beginn der Montage der Matrix werden gemäß der Regel „Zusätzliche Steuerung beschädigt nicht alle LEDs“ beschädigt, nämlich 270 Stk. (mit einem Rand nur für den Fall genommen) wurden auf ihre Funktionsfähigkeit getestet (dazu wurde ein Testgerät zusammengebaut, das einen Stecker, einen 200-Ohm-Widerstand und eine 5-V-Stromversorgung enthielt).



Als nächstes erweitern wir die LEDs wie folgt. Die Anoden der roten und grünen Dioden sind zu einer Seite (nach rechts) gebogen, die Kathode ist zur anderen Seite gebogen, wobei sichergestellt wird, dass die Kathode niedriger als die Anoden ist. Und dann biegen wir bei 90 ° die Kathode nach unten.



Wir beginnen die Montage der Matrix in der unteren rechten Ecke, die Montage erfolgt in Spalten.





Wenn wir uns an die Regel erinnern, dass zusätzliche Kontrolle nicht schadet, überprüfen wir nach ein oder zwei verbundenen Spalten die Leistung.



Die fertige Matrix ist wie folgt.



Rückansicht:



Gemäß dem entwickelten Schema löten wir das Zeilen- und Spaltenverwaltungsschema, löten die Kabel und die Stelle unter dem Arduino.



Es wurde beschlossen, nicht nur die Amplitudenfrequenz, sondern auch das Phasenfrequenzspektrum abzuleiten und die Anzahl der anzuzeigenden Abtastwerte auszuwählen (32, 16, 8, 4). Hierzu wurden 4 Schalter hinzugefügt: einer zur Auswahl des Spektrums, zwei zur Auswahl der Anzahl der Abtastwerte und einer zum Ein- und Ausschalten des Geräts.

Ein Programm schreiben


Wir lassen uns erneut von unserer Regel leiten und stellen sicher, dass unser Display voll funktionsfähig ist. Zu diesem Zweck schreiben wir ein einfaches Programm, das alle LEDs auf dem Display vollständig aufleuchtet. Nach Murphys Gesetz fehlten natürlich mehreren LEDs Strom und sie mussten ersetzt werden.



Nachdem wir sichergestellt hatten, dass alles funktioniert, haben wir begonnen, den Hauptprogrammcode zu schreiben. Es besteht aus drei Teilen: Initialisieren der erforderlichen Variablen und Lesen von Daten, Erhalten des Signalspektrums unter Verwendung der schnellen Fourier-Transformation, Ausgeben des erhaltenen Spektrums mit der erforderlichen Formatierung an die Anzeige.

Endgerätebaugruppe


Am Ende haben wir eine Frontplatte und darunter eine Reihe von Drähten, die mit etwas verschlossen werden müssen, und die Schalter müssen an etwas befestigt werden. Vorher gab es Gedanken, aus den Resten von Plastik einen Fall zu machen, aber wir haben uns nicht ganz vorgestellt, wie es konkret aussehen würde und wie es geht. Die Lösung des Problems kam ganz unerwartet. Als wir durch den Baumarkt gingen, fanden wir einen Blumentopf aus Plastik, der überraschend perfekt war.



Die Angelegenheit blieb klein, markieren Sie die Löcher für die Anschlüsse, Kabel und Schalter und schneiden Sie die beiden Seitenwände aus Kunststoff.



Nachdem wir alles zusammengetragen und das Gerät an den Computer angeschlossen haben, haben wir Folgendes erhalten:

Frequenzgang (32 Abtastwerte):



Frequenzgang (16 Abtastwerte):



Frequenzgang (8 Abtastwerte):



Frequenzgang (4 Abtastwerte):



Phasenfrequenzspektrum:



Rückansicht:



Gerätebetriebsvideo


Aus Gründen der Klarheit wurde das Video im Dunkeln aufgenommen. Das Gerät zeigt das Amplituden-Frequenz-Spektrum im Video an und schaltet es nach 7 Sekunden in den Phasenfrequenz-Spektrum-Modus.



Liste der erforderlichen Elemente


  1. GNL-5019UEUGC LEDs - 256 Stk. (Zur Anzeige)
  2. Transistoren npn KT863A - 8 Stck. (Für die Zeichenfolgenverwaltung)
  3. Transistoren pnp 32740 - 32 Stk. (Zum Verwalten von Spalten)
  4. 1kΩ Widerstände - 32 Stk. (Um den Basisstrom von pnp-Transistoren zu begrenzen)
  5. Decoder 3/8 IN74AC138 - 4 Stk. (Um eine Spalte auszuwählen)
  6. Decoder 2/4 IN74AC139 - 1 Stck. (Für kaskadierende Decoder)
  7. Montageplatte 5x10cm - 2 Stck.
  8. Schleifen
  9. Arduino Pro micro - 1 Stck.
  10. Mini-Buchse 3,5 mm - 1 Stck.
  11. Schalter - 4 Stk.
  12. Schwarzer Kunststoff 720 * 490 * 5 mm - 1 Blatt. (Für Frontplatte)
  13. Schwarzer Blumentopf 550 * 200 * 150 mm - 1 Stck. (Für die Unterbringung)

Source: https://habr.com/ru/post/de395289/


All Articles