Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

RGB-Matrix Audio-Visualizer mit Arduino: Schritt-für-Schritt Anleitung

Komponenten und Zubehör

Arduino UNO × 1
Adafruit NeoPixel Shield (40 RGB LEDs, 8×5 Matrix) × 1
SparkFun Spectrum Shield (2× MSGEQ7, 7-Band pro Kanal) × 1
ProtoStax Gehäuse für Arduino (klares Acryl, stapelbar) × 1
Taster (SPST OFF-(ON), Panel Mount) × 1
3,5 mm Klinkenbuchse Panel Mount (Stereo, isoliert) × 2
3,5 mm Winkel-Klinkenkabel × 2
3,5 mm Stereo-Kabel (M-M, 6 ft) × 1

Benötigte Werkzeuge

Über dieses Projekt

Ein RGB-LED-Matrix Audio-Visualizer: Arduino + NeoPixel Shield + Spectrum Shield im ProtoStax Acrylgehäuse. Perfekt als Lichtshow zur Musikanlage.

RGB-Matrix Audio-Visualizer mit Arduino: Schritt-für-Schritt Anleitung

Funktionsprinzip

Schritt 1: Arduino im Gehäuse-Boden montieren

Arduino auf Bodenplatte schrauben, Gummifüße anbringen. Offene "Platform Configuration" für einfachen Zugriff.

RGB-Matrix Audio-Visualizer mit Arduino: Schritt-für-Schritt Anleitung

Animierte Anleitung: RGB-Matrix Audio-Visualizer mit Arduino: Schritt-für-Schritt Anleitung

Schritt 2: Spectrum Shield vorbereiten

Spectrum Shield kommt ohne Header. NeoPixel Shield liefert Stapleleisten & normale Header. Da NeoPixel oben sitzen soll, nutzt es normale Header (bündig), Spectrum Shield bekommt Stapelheader.

Problem: USB/Strombuchse des UNO kollidieren. Lösung:

  1. Ende der Spectrum-Platine über USB/Strombuchse absägen (nur Prototypenbereich).
  2. Stapelheader-Pins etwas kürzen, damit Shield bündig aufliegt.
RGB-Matrix Audio-Visualizer mit Arduino: Schritt-für-Schritt Anleitung

Schritt 3: NeoPixel Shield aufstecken

Normale Header an NeoPixel Shield löten. Terminalstecker optional (hier: Versorgung über Arduino, da nicht alle LEDs gleichzeitig an).

RGB-Matrix Audio-Visualizer mit Arduino: Schritt-für-Schritt Anleitung

Schritt 4: Demo-Code Analyse

Code auf GitHub: ProtoStax_Audio_Visualizer_Demo

Zwei Hauptteile:

  1. Spektralanalyse & Speicherung der 7 Bänder pro Kanal in Arrays Frequencies_One[7], Frequencies_Two[7].
  2. Darstellung auf 8×5 NeoMatrix mit Farbschemata.

Spektralanalyse (Auszug)

#define STROBE 4 #define RESET 5 #define DC_One A0 #define DC_Two A1
int Frequencies_One[7], Frequencies_Two[7];

void setup() {
  pinMode(STROBE, OUTPUT); pinMode(RESET, OUTPUT);
  digitalWrite(STROBE, LOW); delay(1);
  digitalWrite(RESET, HIGH); delay(1);
  digitalWrite(STROBE, HIGH); delay(1);
  digitalWrite(STROBE, LOW); delay(1);
  digitalWrite(RESET, LOW);
}

void Read_Frequencies() {
  for(int band=0; band<7; band++) {
    Frequencies_One[band] = (analogRead(DC_One) + analogRead(DC_One)) >> 1;
    Frequencies_Two[band] = (analogRead(DC_Two) + analogRead(DC_Two)) >> 1;
    digitalWrite(STROBE, HIGH); digitalWrite(STROBE, LOW);
  }
}

Bänder-Gruppierung: Bass (63+160 Hz), Mitten (400 Hz–2,5 kHz), Höhen (6,25+16 kHz). Max-Werte pro Band werden für Auto-Skalierung gespeichert.

NeoMatrix Konfiguration

Wichtig: Koordinatensystem [0,0] = oben links. Unser Setup: WIDTH=5, HEIGHT=8, Origin TOP-RIGHT, COLUMNS PROGRESSIVE (Spaltenweise Fortschreitung). Entspricht physischem LED #0 oben rechts.

#define NEO_MATRIX_WIDTH 5
#define NEO_MATRIX_HEIGHT 8
#define NEOPIXEL_PIN 6
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(
  NEO_MATRIX_WIDTH, NEO_MATRIX_HEIGHT, NEOPIXEL_PIN,
  NEO_MATRIX_TOP + NEO_MATRIX_RIGHT + NEO_MATRIX_COLUMNS + NEO_MATRIX_PROGRESSIVE,
  NEO_GRB + NEO_KHZ800
);

void setup() {
  matrix.begin();
  matrix.setTextWrap(false);
  matrix.setBrightness(40);
  matrix.fillScreen(0); matrix.show();
}

Grafik-Routine & Farbschemata


enum RANGE { BASS=0, MID_RANGE=1, TREBLE=2, ALL=3 };
enum SCHEME { MAGNITUDE_HUE=0, MAGNITUDE_HUE_2=1, HSV_COLOR_WHEEL=2 };

void loop() {
  static int scheme = 0;
  while(Serial.available()) scheme = Serial.parseInt();
  Read_Frequencies();
  Graph_Frequencies(ALL, scheme);
  delay(50);
}

void Graph_Frequencies(RANGE r, SCHEME s) {
  int from, to;
  // from/to je nach Range setzen (BASS: 0-1, MID: 2-4, TREBLE: 5-6, ALL: 0-6)
  
  for(int row=from; row 5) numCol = 5;
    
    for(int col=0; col

Schritt 5: Testen

Video-Demo im Originalartikel. Drei Farbschemata wählbar per Serial Monitor (0, 1, 2).

Schritt 6: Gehäuse schließen

Obere Versteifungen, Seitenwände, Audiokabel, Deckel montieren.

RGB-Matrix Audio-Visualizer mit Arduino: Schritt-für-Schritt Anleitung

Schritt 7: Fertig – Genießen!

Visualizer neben die Anlage stellen – Musik wird visuell erlebbar.

Schritt 8: Erweiterungsmöglichkeiten

  1. Panel-Mount Klinkenbuchsen in Seitenwand einbauen → saubere Verkabelung, keine Kabel nach außen.
  2. Mehr Farbschemata & Muster (Rainbow, Peak-Hold, Wasserfall).
  3. Frequenzbereich per Taster wählen (Bass/Mitten/Höhen/All).
  4. Zweiter Taster für Farbschema.
  5. Lochbohrungen für Buchsen/Taster mit Stufenbohrer (Klinkenbuchse 5/16", Taster 0,47").
  6. Deckel leicht anschleifen → Diffusor für weicheres Licht.

Bei Interesse aktualisiere ich das Projekt mit Buchsen, Tastern & mattem Deckel. Feedback willkommen!

Code

GitHub Repository: ProtoStax_Audio_Visualizer_Demo

Herstellungsprozess

  1. K30 CO₂-Sensor: Echtzeit-Luftqualitätsmessung mit Arduino
  2. Kommunikationshilfe für Taubblinde: 1Sheeld + Arduino + Sprachausgabe & Anzeige
  3. Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
  4. 24×16 LED Pong-Konsole mit Arduino Nano & MAX7219 bauen
  5. Arduino Audio-Frequenz-Detektor – Lauteste Schallpeaks mit hochsensiblem Modul messen
  6. LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
  7. DFRobot Kapazitiver Fingerabdrucksensor mit Arduino oder ESP8266 einbinden
  8. Audio-Wiedergabe mit Arduino UNO und DFPlayer Mini – Schritt-für-Schritt-Anleitung
  9. Billy Bass Fisch mit Audioquelle animieren – Schritt-für-Schritt-Anleitung
  10. Arduino RGB-LED-Farbmischer – Einsteigerfreundliches DIY-Projekt