Inhaltsverzeichnis:

MIDI-gesteuerte LED-Struktur - Gunook
MIDI-gesteuerte LED-Struktur - Gunook

Video: MIDI-gesteuerte LED-Struktur - Gunook

Video: MIDI-gesteuerte LED-Struktur - Gunook
Video: IMF Patient & Family Webinar 2023 - Understanding The New Myeloma Landscape 2024, November
Anonim
Image
Image

Als echter Musikliebhaber und Elektro- und Informatikstudent wollte ich schon immer MIDI-Geräte bauen, die ich für die elektronische Musikproduktion verwenden kann.

Nachdem ich viele Shows und Musikfestivals besucht hatte, fing ich an, mich während der Aufführungen wirklich für Lichtshows zu interessieren.

Nach vielen Recherchen habe ich meistens nur Geräte gefunden, die ein Mikrofon verwenden und es nicht ermöglichen konnten, LEDs genau so zu steuern, wie Sie es möchten.

Da ich mich immer mehr mit DAW- und MIDI-Signalen vertraut gemacht habe, beschloss ich, mit diesem Projekt zu beginnen!

Es besteht aus einer 3D-Struktur mit eingebauten LEDs, die tatsächlich durch MIDI-Signale (NoteOn, NoteOff und CC Messages) gesteuert werden.

So konnte der Musiker die Farbe und Intensität jeder LED nur mit Hilfe von MIDI-Signalen steuern, die von einer beliebigen DAW erzeugt wurden.

Mit dieser Idee wollte ich die Kreativität durch Lichtshows steigern und jedem ermöglichen, seine eigenen zu bauen, um jede visuelle Performance einzigartig zu machen.

Schritt 1: Materialien

Grundsätzlich besteht dieses Projekt aus zwei Teilen: einer MIDI-Empfangsschaltung und der LED-Struktur; und einen Mikrocontroller, um diese Teile zu verbinden und die MIDI-Signale, die von der DAW kommen, in die LED-Streifen zu "übersetzen". Hier ist eine Liste der Materialien, die für jedes Teil benötigt werden.

MIDI-Empfangsschaltung:

  • 1 x 6N138 Optokoppler
  • 1 x 1N914 Diode
  • 1 x 5-Pin-Din-Buchse (MIDI-Buchse)
  • 2 x 220 Ohm Widerstände
  • 1 x 4,7K Ohm Widerstand
  • 1 USB/MIDI-Buchse

LED-Struktur:

Ich habe RGB-LED-Streifen auf Basis von WS2812B-LEDs verwendet, die mit nur einem digitalen Port gesteuert werden können. Wenn Sie eine große Anzahl von LEDs verwenden möchten, müssen Sie möglicherweise auf den maximal benötigten Strom achten (1 LED kann maximal 60 mA verbrauchen). Wenn der Mikrocontroller diesen Maximalwert nicht verarbeiten kann, benötigen Sie ein weiteres 5V-Netzteil, das ausreichend Strom liefern kann. Ich habe einen 5V - 8A AC/DC Adapter mit dem dedizierten Ausgangsadapter und einem Schalter verwendet.

Hinweis: Es scheint, dass Sie ein Computernetzteil verwenden können, da es dafür bekannt ist, einen wirklich hohen Strom zu liefern, aber Sie müssen sicherstellen, dass es eine stabile 5 V-Gleichspannung liefert, möglicherweise durch Verwendung eines 36 Ohm 5 Watt Leistungswiderstand zwischen Masse (schwarz) und 5V Ausgang (rot), damit genügend Strom durch den Widerstand fließt und somit stabile 5V zur Verfügung stehen.

Schließlich habe ich ein einfaches Arduino Uno mit einem Schraubschild verwendet, um die Verbindung zwischen MIDI-Signalen und LED-Streifen herzustellen.

Schritt 2: Aufbau der MIDI-Eingangsschaltung

Aufbau der MIDI-Eingangsschaltung
Aufbau der MIDI-Eingangsschaltung
Aufbau der MIDI-Eingangsschaltung
Aufbau der MIDI-Eingangsschaltung

Wenn Sie daran interessiert sind, was genau das MIDI-Protokoll ist und wie es funktioniert, empfehle ich Ihnen dringend, den Notes and Volts YouTube-Kanal zu besuchen, wo es viele interessante und innovative Tutorials und MIDI-Arduino-Projekte gibt.

In diesem Teil konzentriere ich mich nur auf die MIDI-Eingangsschaltung. Es kann eine gute Idee sein, einen Prototyp auf einem Protoboard zu bauen und zu überprüfen, ob MIDI-Signale von der DAW vom Mikrocontroller gut empfangen werden, bevor Sie mit dem Löten der Komponenten beginnen.

Die folgenden beiden Videos beschreiben, wie die Schaltung aufgebaut und getestet wird:

  • Bau der Schaltung
  • Testen der Schaltung

Schließlich kann es auch eine gute Idee sein, sich dieses Video anzusehen, um CC-Meldungen zu verstehen und wie Automatisierungsclips von Ihrem Mikrocontroller interpretiert werden können, um beispielsweise die LED-Helligkeit zu steuern.

Schritt 3: FL Studio konfigurieren (optional)

FL Studio konfigurieren (optional)
FL Studio konfigurieren (optional)
FL Studio konfigurieren (optional)
FL Studio konfigurieren (optional)
FL Studio konfigurieren (optional)
FL Studio konfigurieren (optional)

Da ich mich mit FL Studio wohl fühle, werde ich erklären, wie man seine MIDI-Schnittstelle richtig konfiguriert, aber ich bin mir ziemlich sicher, dass dieses Verfahren nicht drastisch anders sein sollte, wenn Sie eine andere Digital Audio Workstation verwenden.

Zuerst müssen Sie nur die USB/MIDI-Buchse an Ihren Computer anschließen. Normalerweise kommen solche Geräte mit einer eingebetteten Firmware und werden als MIDI-Geräte erkannt, auch wenn sie nicht angeschlossen sind. Öffnen Sie dann das Fenster „Einstellungen“(durch Drücken von F10). Wenn alles richtig funktioniert, werden Sie einige Ausgabe-MIDI-Geräte im Ausgabebereich bemerken. Wählen Sie Ihr Gerät aus und stellen Sie sicher, dass es eingeschaltet ist.

Dann müssen Sie Ihre Portnummer definieren und sich diese merken (0 zum Beispiel). Schließen Sie einfach dieses Fenster (Parameter werden automatisch gespeichert) und fügen Sie dann einen neuen Kanal hinzu: MIDI Out.

Dann müssen Sie als letztes den Port dieses neuen Kanals definieren: Stellen Sie sicher, dass Sie dieselbe Portnummer wählen, die Sie im Abschnitt "Einstellungen" definiert haben: Auf diese Weise sind die von Ihrem Kanal kommenden MIDI-Nachrichten jetzt mit dem MIDI-Ausgang verbunden.

Wenn nun eine Note über den MIDI-Out-Kanal gespielt wird, wird eine "NoteOn"-Nachricht über die MIDI-Schnittstelle gesendet. Auf die gleiche Weise wird beim Loslassen der Notiz eine "NoteOff"-Nachricht gesendet.

Ein weiteres interessantes Feature des MIDI-Out-Kanals ist die Möglichkeit, verschiedene Parameter mit Potentiometern zu steuern. Wenn Sie mit der rechten Maustaste auf einen von ihnen klicken und "Konfigurieren…" auswählen, können Sie ihn veranlassen, CCMessages (ein Wert von 0 bis 127) zu senden, die zur Steuerung der LED-Helligkeit verwendet werden: Wählen Sie CC und dann Akzeptieren.

Normalerweise ist FL Studio jetzt bereit, Daten an Ihr MIDI-Interface zu senden! Als nächstes schreiben Sie den Code zum Flashen im Arduino und passen ihn an Ihre LED-Struktur an.

Schritt 4: Anschließen der LEDs

Anschließen der LEDs
Anschließen der LEDs

Das Anschließen der LED-Streifen ist recht einfach, da sie nur +5V, GND und Daten benötigen. Da ich jedoch vorhatte, mehr als 20 davon zu verbinden, entschied ich mich, mehrere Arduino-PWM-Pins zu verwenden und mehrere Instanzen von Adafruit_NeoPixel (im Coe) zu deklarieren, um jede Art von unbeabsichtigter Verzögerung zu vermeiden.

Das angehängte Bild soll auch erklären, wie die Elektronik funktioniert:

  • LED-Streifen werden direkt vom Netzteil gespeist.
  • Ein Netzschalter wird verwendet, um den Arduino mit Strom zu versorgen
  • Die MIDI-Eingangsschaltung wird beim Einschalten des Schalters vom Arduino mit Strom versorgt

Schritt 5: Entwerfen der 3D-Struktur

Entwerfen der 3D-Struktur
Entwerfen der 3D-Struktur
Entwerfen der 3D-Struktur
Entwerfen der 3D-Struktur
Entwerfen der 3D-Struktur
Entwerfen der 3D-Struktur
Entwerfen der 3D-Struktur
Entwerfen der 3D-Struktur

Bisher war dieser Teil der längste, da ich mit 3D-Druck (und Modellierung) völlig neu war. Ich wollte eine Struktur entwerfen, die wie ein halb explodiertes abgestumpftes Ikosaeder aussah (ja, ich brauchte einige Zeit, um den genauen Namen der Form zu finden).

Natürlich steht es Ihnen frei, Ihr eigenes Modell mit der gewünschten Form zu entwerfen! Ich werde den Modellierungsprozess nicht detailliert beschreiben, aber Sie finden die STL-Dateien, wenn Sie diese Struktur entwerfen möchten.

Der Zusammenbau der verschiedenen Teile dauerte einige Zeit, da ich eine LED in jede Fläche stecken und alle verbinden musste, indem ich eine große Anzahl von Drähten in den Kern lötete, der derzeit ziemlich unordentlich ist!

Hinweis: Wenn Sie eine solche Struktur entwerfen möchten, benötigen Sie 10 sechseckige Stücke (jeweils ca. 3 Stunden mit einem PP3DP UP-Minidrucker) und 6 fünfeckige Stücke (2 Stunden).

Sobald sich in jedem Teil eine LED befindet, müssen Sie alle 5V- und GND-Anschlüsse miteinander verbinden und die verschiedenen Eingangs- und Ausgangsklemmen jeder LED so verdrahten, wie Sie sie anschließen möchten.

Schließlich habe ich LED-Diffusor-Acryl verwendet, um jedes Gesicht zu bedecken und sie gleichmäßig leuchten zu lassen.

Danach bleibt nur noch der Code, der sich als gar nicht so kompliziert erweist!

Schritt 6: Der Code

Der Code
Der Code

Wie ich es im vorherigen Teil erwähnt habe, ist der Code recht einfach!

Eigentlich besteht es nur aus einer MIDI-Instanz und mehreren Adafruit_NeoPixel-Instanzen (sofern es verschiedene Strips gibt).

Grundsätzlich arbeitet die MIDI-Klasse nach der Deklaration mit einer Art "Interrupt": NoteOn, NoteOff und CCMessage. Wenn der MIDI-Eingangskreis eines dieser spezifischen Signale an den Arduino sendet, wird die zugehörige Subroutine aufgerufen. Dann schaltet der Code nur eine bestimmte LED auf dem NoteOn-Signal ein, schaltet sie auf das zugehörige NoteOff-Signal herunter und aktualisiert die Helligkeit eines Streifens auf CCMessage.

Außerdem habe ich eine einfache Funktion definiert, die es ermöglicht, die Farbe der LEDs zu wählen, indem die mit dem NoteOn-Signal kommende Geschwindigkeit gelesen wird, und jede LED kann dann entweder rot, lila, blau, türkis, grün, gelb, orange oder weiß sein. abhängig vom Velocity-Wert von 0 bis 127.

Es ist wichtig zu beachten, dass Sie beim Hochladen Ihres Sketches den RX-Pin (der von der MIDI-Eingangsschaltung kommt) trennen müssen, da der serielle Port (der während dieses Vorgangs verwendet wird) mit diesem Pin verbunden ist!

Schritt 7: Was nun?

Ich arbeite derzeit an einem benutzerdefinierten Gehäuse, um die gesamte Elektronik einzubetten, und überlege mir auch einen Namen für die Struktur! Bitte lassen Sie mich wissen, ob Ihnen dieses Projekt gefallen hat, und ich arbeite an verschiedenen Shows, da ich vorhabe, dieses instructable mit mehr Videos zu aktualisieren!

Empfohlen: