Benutzer-Werkzeuge

Webseiten-Werkzeuge


arduino:spektrumanalysator

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
arduino:spektrumanalysator [01.10.2017 10:50] – [Programmversionen] Frickelpietarduino:spektrumanalysator [18.05.2023 12:15] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
-====== Teensy Audio Spectrum Analyser ======+====== Spektrumanalysator mit NeoPixeln ======
  
-Momentan baue ich einen Audio Spectrum Analyzer auf Basis eines Teensy 3.6 und den Audio Adaptor Board.+{{:arduino:spektrumanalysator:img_3258.jpg?100 |}} {{:arduino:spektrumanalysator:img_0779.jpeg?100 |}} {{:arduino:spektrumanalysator:img_0783.jpeg?100 |}} Einen Spektrumanalysator zur Musik zu beobachten, die einem gefällt, ist eine Freude. Erst recht, wenn man ihn selbst gebaut und programmiert hat. Ich habe meinen Spektrumanalysator mit einem Teensy 3.6 und dem Audio Adaptor Board gebaut. Das Ergebnis der Fast-Fourier-Analyse wird auf zwei NeoPixel-Streifen dargestellt. 
 + 
 +Funktionen: 
 +  * Analoger Signaleingang 
 +  * Berechnet eine Fast-Fourier-Analyse für den rechten und linken Audiokanal 
 +  * Stellt das Spektrum eines Stereoaudiosignals auf zwei NeoPixel-Streifen dar (ein Streifen pro Kanal) 
 +  * Die Eingangsempfindlichkeit wird automatisch eingestellt 
 +  * Die Anzahl der Bänder kann eingestellt werden 
 +  * Es kann eingestellt werden, auf welcher Seite der rechte und linke Kanal angezeigt wird (für Überkopfmontage) 
 +  * Es kann eingestellt werden, ob das tiefste Band für den linken Kanal links oder rechts auf dem NeoPixel-Streifen dargestellt wird 
 + 
 +===== Elektrischer Aufbau ===== 
 +Das Audioadapter-Board hat leider, leider keinen digitalen Audioeingang. Daher muss das vom Computer kommende digitale Audiosignal zunächst mit dem Digitus Audio Konverter DS-40133 in ein analoges Signal umgewandelt werden. Damit sowohl meine aktiven Nubert A-100 als auch der D/A-Wandler gleichzeitig an einem optischen Audioausgang des Computers angeschlossen werden können, wird das Signal mit einem SpeaKa Professional 2 Port Toslink-Splitter aufgeteilt. Diese Lösung ist zwar einigermaßen aufwändig, verspricht jedoch einen unkomplizierten Alltagsbetrieb. In den Spektrumanalysator habe ich aus Platzgründen eine 3,5-Millimeter Kinkenbuchse verbaut.  
 + 
 +{{:arduino:spektrumanalysator:img_0773.jpg?200 |}} Der Teensy mit dem Audioadapter-Board steckt auf einer Lochrasterplatine mit allen notwendigen Anschlüssen und dem Bus Transceiver 74HCT245. Letzterer wird benötigt, um das 3,3-Volt-Signal des Teensys auf 5 Volt zu heben. Der Elko soll Spannungsspitzen verhindern, die beim Einschalten entstehen und die NeoPixel zerstören können.((Der Elko ist hier nicht optimal platziert, besser wäre es, ihn näher an den NeoPixel-Streifen zu positionieren. Faktisch wäre das dann darauf hinausgelaufen, ihn direkt am Ausgang des Spannungsreglers anzulöten, dort ist allerdings kein Platz.)) 
 + 
 +Für die Stromversorgung wird ein Pololu Step-Up-Step-Down-Regler mit einer Eingangsspannung zwischen 2,9 und 30 Volt und einer Ausgangsspannung von 5 Volt verwendet. Ein Spannungsregler ist nicht unbedingt notwendig, ich baue jedoch in alle Elektronikprojekte einen Spannungsregler ein, um die empfindliche Elektronik vor Überspannung und Verpolung abzusichern. Die Wahl fiel auf diesen Spannungsregler, weil ich dadurch sehr flexibel bin. Insbesondere kann ich den Spektrumanalysator auch über einen USB-Port mit Strom versorgen. Der Anschluss des Spektrumanalysators an einen USB-Port und der maximale Ausgangsstrom dieses Spannungsreglers von 2 Ampere ist nur auf den ersten Blick problematisch: Zwar können die 84 NeoPixel maximal 5 Ampere ziehen, was sowohl einen USB-Port als auch den Spannungsregler überlasten würde, da ich im Code die maximale Helligkeit der NeoPixel auf 25 Prozent reduziert habe, liegt der tatsächliche Maximalstrom aber weit unter dem theoretischen. Im Testaufbau habe ich die beiden NeoPixel-Streifen über den USB-Anschluss des Teensy betrieben und nie mehr als 70 Milliampere gemessen. Daher stellt die Spannungsversorgung über einen USB-Port und die Verwendung des ausgewählten Spannungsreglers kein Problem dar. Der Vorteil liegt darin, dass ich den Spektrumamalysator, den Splitter für das optische Audiosignal und den D/A-Wandler über einen passiven USB-Hub an einem geschalteten USB-Port des Computers betreiben kann, so dass die gesamte Elektronik mit dem Computer ein- und ausgeschaltet werden kann.  
 +===== Gehäuse ===== 
 +{{:arduino:spektrumanalysator:img_0779.jpeg?200 |}} Damit das Gehäuse möglichst kompakt ist, enthält es nur die notwendigsten Komponenten, also den Teensy mit der Audioerweiterungsplatine, einen Spannungsregler, einen Drehencoder, eine Klinkenbuchse für das analoge Audiosignal und eine Niedervoltbuchse (5,5 mm x 2,1 mm) für die Stromversorgung. Der Toslink-Splitter und der D/A-Wandler wurden zum einen nicht in das Gehäuse integriert, weil das Gehäuse dann sehr groß geworden wäre, und zum anderen, weil ein analoger Audioeingang flexibler ist. 
 + 
 +Die beiden NeoPixel-Streifen habe ich in ein Aluminiumprofil für LED-Beleuchtungen geklebt,((Dafür habe ich beidseitig klebende Wärmeleitfolie verwendet. Eine Ableitung von Wärme ist aber im Grunde genommen nicht nicht notwendig, weil kaum welche entsteht.)) das ich bei [[https://www.leds.de/|LEDs.de]] gekauft habe. Die diffuse Kunststoffabdeckung verteilt das Licht sehr schön, und mir gefällt es auch besser, die NeoPixel-Streifen zu verstecken. Das gedruckte Gehäuse wird auf das Profil geschoben und sitzt ohne Schrauben oder Kleber sehr fest. Die Kabel werden durch sechs Löcher durch das Aluprofil direkt in das Gehäuse geführt. 
 + 
 +Auf das Aluminiumprofil können nach Bedarf passende Halterungen geschoben werden. Konstruiert habe ich zwei Ständerchen, damit der Spektrumanalysator hinter der Tastatur platziert werden kann. 
 + 
 +Alle Kunststoffteile wurden mit 123D Design konstruiert und mit meinen [[3d-druck:hexagon_v2|3D-Drucker]] gedruckt. 
 + 
 +===== Bedienungsanleitung ===== 
 +Der Spektrumanalysator kann über einen Drehencoder konfiguriert werden. Da der Spektrumanalysator über kein Display verfügt, wird die Menüstruktur auf den NeoPixel-Streifen dargestellt. 
 + 
 +==== Menüstruktur ==== 
 +Das Menüsystem wird durch einfaches Drücken des Drehencoders aufgerufen. Die Menüauswahl hat sechs Untermenüs, die durch einen spezifischen Farbcode auf dem NeoPixel-Streifen für den rechten Kanal dargestellt werden. Der linke Kanal zeigt immer die Spektrumanalyse mit den aktuellen Einstellungen an, damit die vorgenommenen Einstellung unmittelbar überprüft werden können. In der Menüauswahl Durch drehen des Drehencoders wird zwischen den Untermenüs gewechselt. Durch einfaches Drücken des Tasters wird das aktuelle Untermenü ausgewählt. Mit dem Drehencoder kann die gewünschte Einstellung vorgenommen werden. Durch längeres Drücken wird zurück in die Untermenüauswahl gewechslet. Durch nochmaliges längeres Drücken wird das Menü verlassen und die vorgenommenen Einstellungen in das EEPROM geschrieben. 
 + 
 + 
 +  * Rot: Anzeigemodi 
 +  * Cyan: Ausrichtung der Bänder des linken Kanals (tiefe Frequenzen links bzw. rechts) 
 +  * Grün:  
 +  * Magenta:  
 +  * Blau: 
 +  * Weiß: Anpassen der automatischen Eingangspegelregelung 
 + 
 +=== Erste Menüebene: Anzeigemodi === 
 + 
 +=== Zweite Menüebene: Kanaleinstellungen ===
  
-Gewünschte Funktionen: 
-  * Stellt das Spektrum eines Stereoaudiosignals auf zweifarbigen LED-Matrix-Displays an. 
-  * Signaleinspeisung über Toslink (optisch). 
-  * Das Toslink-Signal wird durchgeschleift. 
-  * Der Pegel kann eingestellt werden (ist evtl. nicht erforderlich). 
  
 Links: Links:
Zeile 15: Zeile 52:
   * https://www.youtube.com/watch?v=RjCNQ3td91k   * https://www.youtube.com/watch?v=RjCNQ3td91k
   * https://www.youtube.com/watch?v=-oqwJL8Lb2M   * https://www.youtube.com/watch?v=-oqwJL8Lb2M
 +
 ===== Gehäuse ===== ===== Gehäuse =====
   * https://bleche-nach-mass.de/   * https://bleche-nach-mass.de/
Zeile 71: Zeile 109:
   * http://www.elektronik-kompendium.de/public/schaerer/powsw1.htm   * http://www.elektronik-kompendium.de/public/schaerer/powsw1.htm
 ===== Programmversionen ===== ===== Programmversionen =====
 +Unten sind verschiedene Programmversionen verlinkt. Jede Programmversion bindet neue Funktionen ein und korrigiert Fehler in älteren Versionen.
   * [[Arduino:Spektrumanalysator:Programmversion 0.1]]: FFT und Peak-Analyse   * [[Arduino:Spektrumanalysator:Programmversion 0.1]]: FFT und Peak-Analyse
   * [[Arduino:Spektrumanalysator:Programmversion 0.2]]: Fügt einen Drehencoder hinzu   * [[Arduino:Spektrumanalysator:Programmversion 0.2]]: Fügt einen Drehencoder hinzu
Zeile 76: Zeile 115:
   * [[Arduino:Spektrumanalysator:Programmversion 0.4]]: Ein NeoPixel-Streifen wird angesteuert   * [[Arduino:Spektrumanalysator:Programmversion 0.4]]: Ein NeoPixel-Streifen wird angesteuert
   * [[Arduino:Spektrumanalysator:Programmversion 0.5]]: Bindet das OLED-Display ein   * [[Arduino:Spektrumanalysator:Programmversion 0.5]]: Bindet das OLED-Display ein
-  * [[Arduino:Spektrumanalysator:Programmversion 0.6]]: Eine NeoPixel-Matrix wird angesteuert+  * [[Arduino:Spektrumanalysator:Programmversion 0.6]]: Zwei NeoPixel-Matrix-Module werden angesteuert 
 + 
 +{{tag>Arduino Spektrumanalysator Teensy}}
arduino/spektrumanalysator.1506847853.txt.gz · Zuletzt geändert: 18.05.2023 09:06 (Externe Bearbeitung)