Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-23 12:52
Dies ist mein erstes instructable, also tragen Sie mit mir.
Ich liebe es, Musik zu machen, und in Live-Situationen wie Wohnzimmerkonzerten mag ich es, wenn Lichteffekte synchron zu dem sind, was ich spiele. Also habe ich eine Arduino-basierte Box gebaut, die einen LED-Streifen in einer zufälligen Farbe aufleuchten lässt, wenn ich eine Note auf meinem MIDI-Keyboard schlage und wo ich die Note schlage.
Lieferungen
- Arduino Uno
- Arduino-Protoschild
- MIDI-Buchse
- 1N4148 Diode
- 6N138 Optokoppler
- Widerstände: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
- WS2812B LED-Streifen (60 LEDs)
- einige übrig gebliebene Drähte
- Schrumpfschlauch
- passendes Gehäuse für den Arduino (ich verwende eine Kunststoff-Anschlussdose)
Du brauchst auch
- Lötkolben und Lötzinn
- MIDI-Keyboard und MIDI-Kabel
Schritt 1: Die Elektronik
Die Schaltung ist ziemlich einfach. Es besteht aus einem Standard-MIDI-Eingang (links vom Arduino) und der Verbindung zum LED-Streifen (rechts vom Arduino). Platzieren Sie alle Teile auf dem Protoshield, es ist viel Platz. Es wird im Allgemeinen empfohlen, ein externes Netzteil zu verwenden, um den LED-Streifen mit Strom zu versorgen, aber ich habe festgestellt, dass beim Spielen nur wenige LEDs gleichzeitig leuchten, also gab es kein Problem bei der Verwendung des Arduino +5V / GND als Stromausgang. (Vermeiden Sie, alle Tasten gleichzeitig und mit voller Geschwindigkeit zu schlagen.;-)) Wenn Sie sich für ein externes Netzteil entscheiden, schließen Sie es einfach an die Arduino +5V- und GND-Pins an. Einige Leute empfehlen, einen 100uF-Kondensator (nicht im Schaltplan gezeigt) zwischen diese beiden Leitungen einzufügen.
Löten Sie die Teile an den Protoshield und verbinden Sie den LED-Streifen wie im Schaltplan gezeigt.
Schritt 2: Anschließen des LED-Streifens
Es ist wichtig, das rechte Ende - das Eingangsende - des LED-Streifens an den Stromkreis anzuschließen. Mein Streifen hat eine Buchse als Eingang und hat die ganze Zeit kleine Dreiecke, die vom Eingang weg zeigen. Am Ausgang gab es einen Stecker (um ihn mit einem anderen Streifen verbinden zu können, den wir nicht brauchen), also habe ich diesen abgeschnitten und an die drei Kabel angelötet, die vom Arduino kommen. Verwenden Sie Schrumpfschlauch, um die drei Kabel mit dem LED-Streifen zusammenzubinden und sie weniger sichtbar zu machen.
Der von mir verwendete LED-Streifen wird mit Klebeband auf der Rückseite geliefert, sodass er leicht auf die Rückseite des MIDI-Keyboards geklebt werden kann.
Schritt 3: Anpassen des Projekts an Ihre Tastatur
Eventuell müssen Sie den LED-Streifen und den Arduino-Code an Ihre Tastatur anpassen. Meine hat 76 Tasten und die Länge des Streifens entspricht fast genau der Breite der Tastatur. Wenn Sie z. B. 61 Tasten, benötigen Sie möglicherweise einen kürzeren Streifen. Der LED-Streifen kann zwischen zwei beliebigen LEDs geschnitten werden. Stellen Sie nur sicher, dass Sie das richtige Teil abschneiden, es hat ein Eingangsende (mit einer Buchse) und ein Ausgangsende (mit einem Stecker). Sie müssen das Eingangsende behalten. Ändern Sie im Code die #defines zum
- NUMBER_OF_LEDS auf die Anzahl der LEDs, die nach dem Abschneiden des Endes in Ihrem Streifen übrig sind,
- NUMBER_OF_KEYS zur Anzahl der Tasten auf Ihrer Tastatur und
- MIN_KEY auf die MIDI-Tonhöhe Ihrer tiefsten Taste. Diese finden Sie in der Bedienungsanleitung der Tastatur; oder verwenden Sie ein Tool, das die MIDI-Notennummer anzeigt, wie KMidiMon für Linux oder Pocket MIDI für Windows oder Mac; oder probieren Sie verschiedene Werte aus, bis das Gerät auf alle Tasten Ihrer Tastatur reagiert
Schritt 4: Der Arduino-Code
Der Arduino-Code verwendet die MIDI-Bibliothek (v4.3.1) von Forty Seven Effects und die Adafruit NeoPixel-Bibliothek (v1.3.4) von Adafruit. Installieren Sie diese Bibliotheken mit der Arduino IDE. Kompilieren Sie dann den Code und laden Sie ihn ohne angeschlossenen Schirm auf den Arduino hoch (der Optokoppler ist mit dem RX-Pin verbunden, was den Upload behindert). Versorgen Sie den Arduino über ein USB-Kabel (ich verwende eine USB-Wandwarze).
Wenn Sie den Code nach Ihren Wünschen modifizieren möchten, hier ein kurzer Überblick über die Funktionsweise: In jedem Loop wird der MIDI-Eingang ausgelesen. Wenn ein Note On- oder Note Off-Ereignis empfangen wurde, werden die Funktionen MyHandleNoteOn oder MyHandleNoteOff aufgerufen. Beide rufen die Funktion updateVelocityArray auf, die die Velocity (d. h. wie stark Sie die Taste gedrückt haben) der Tastennummer speichert. Ist die Geschwindigkeit höher als vorher gespeichert, wird die Farbe der entsprechenden LED auf die "aktuelle Farbe" gesetzt. Nachdem die MIDI-Events verarbeitet wurden, wird die Funktion updateLedArray aufgerufen. Dies aktualisiert die "aktuelle Farbe" (deren Rot-, Grün- und Blauwerte sich unabhängig voneinander linear ändern, bis das untere oder obere Ende erreicht ist, wobei die Geschwindigkeit für die lineare Änderung auf eine zufällige Zahl gesetzt wird), verringert langsam die Velocity der gedrückten Noten und aktualisiert die Farbwerte jeder LED, die ihre Farbe ändern muss (aufgrund eines neuen Anschlags einer Note oder einer Verringerung der Velocity). Die Funktion showLedArray überträgt die Farben in die Adafruit_NeoPixel-Struktur namens "Pixel" und lässt die eigentlichen LEDs die Farben in der Pixelstruktur anzeigen.
Schritt 5: Mögliche Erweiterungen …
Ein Projekt ist nie fertig. Es gibt immer etwas, was man tun kann, um es zu verbessern:
- Der Protoschild enthält so wenige Teile, dass es wirklich eine Verschwendung ist; Den gleichen Effekt könnte man leicht mit einem Arduino Nano und einer 15x7-Loch-Platine plus einigen Buchsenleisten erzielen.
- Einige der MIDI-Signale gehen verloren. Wenn es sich um ein NoteOn handelt, leuchtet die entsprechende LED nicht; wenn es ein NoteOff ist, erlischt es nicht (deshalb habe ich die Reduzierung der Velocity eingeführt, die dafür sorgt, dass LEDs nicht auf unbestimmte Zeit leuchten). Ich versuche immer noch, den Grund herauszufinden. Möglicherweise ist es ein Timing-Problem und MIDI.read() sollte häufiger aufgerufen werden.
- Einige der MIDI-Signale werden falsch gelesen, d. h. die falschen LEDs leuchten. Könnte mit obigem Punkt zusammenhängen. Braucht eine Untersuchung.
- Die Schaltung ist so konzipiert, dass sie ohne viel Benutzerinteraktion (außer dem Spielen auf der Tastatur) einen angenehmen visuellen Effekt erzeugt. Ich könnte mir jedoch vorstellen, ein Potentiometer hinzuzufügen, das ausgelesen wird (mit einem der analogen Eingänge des Arduino), mit dem Sie die maximale Geschwindigkeit ändern können, mit der sich die Farben ändern (derzeit #define'd as MAX_COLOR_CHANGE_SPEED = 20). Oder messen Sie die durchschnittliche Zeit zwischen zwei NoteOn-Events und ändern Sie MAX_COLOR_CHANGE_SPEED entsprechend - bei langsamen Songs sollte sich die Farbe langsamer ändern.
Schritt 6: Fertig
Versorgen Sie den Arduino über ein USB-Kabel (ich verwende eine USB-Wandwarze). Schließen Sie Ihr MIDI-Keyboard an die MIDI-Buchse an und beginnen Sie zu rocken. Schau mir zu, wie ich ein wenig leichte Musik spiele (Wortspiel, so schlimm es auch ist, beabsichtigt).
Empfohlen:
MIDI-Sonar "Theremin": 10 Schritte (mit Bildern)
MIDI-Sonar "Theremin": Dies ist ein Musikinstrument, das zwei Sonar-Abstandssensoren verwendet, um die Tonhöhe und Qualität der Noten zu steuern. Es ist natürlich kein Theremin, aber "Theremin" ist zum Oberbegriff für Instrumente geworden, die durch Winken mit den Händen gespielt werden
Video-Tutorials De Tecnologías Creativas 04: ¿Para Qué Servirá Un Potenciómetro Y Un Led?: 4 Schritte
Video-Tutorials De Tecnologías Creativas 04: ¿Para Qué Servirá Un Potenciómetro Y Un Led?: En este Tutorial vamos a prender como modificar la intensid de la luz de un led con einer potenciómetro sobre una placa Arduino Uno. Este ejercicio lo realizaremos mediante simulación y para ello utilizaremos Tinkercad Circuits (utilizando una cuen
Arduino Ampel-Controller mit RBG Led - 4-Wege: 3 Schritte
Arduino Ampel-Controller mit RBG Led | 4-Wege: In diesem Beitrag erfahren Sie, wie Sie einen Arduino-Ampelcontroller herstellen. Mit diesem Ampelsteuergerät wird der Verkehrsfluss gesteuert. Diese können in stark frequentierten Bereichen angewendet werden, um Verkehrsblockaden oder Unfälle zu vermeiden
MIDI Step Interface: 12 Steps (mit Bildern)
MIDI Step Interface: Spanische Version hier.In diesem anweisbaren zeigen wir Ihnen, wie Sie ein Licht- und Sound-Interface erstellen, das zum Spielen von "Simon Says" verwendet werden kann; und als MIDI-Interface. Beide Modi werden mit den Füßen gespielt.HintergrundDas Projekt wurde geboren, weil
So erstellen Sie eine MIDI-Map für den BCD3000 in Traktor Pro: 6 Schritte
So erstellen Sie eine MIDI-Map für den BCD3000 in Traktor Pro: Dies führt Sie Schritt für Schritt durch die Erstellung Ihrer eigenen benutzerdefinierten tsi-MIDI-Maps in Traktor Pro für Behringer's DEEJAY BCD3000