Spisu treści:

MIDI2LED - efekt świetlny taśmy LED sterowanej przez MIDI: 6 kroków
MIDI2LED - efekt świetlny taśmy LED sterowanej przez MIDI: 6 kroków

Wideo: MIDI2LED - efekt świetlny taśmy LED sterowanej przez MIDI: 6 kroków

Wideo: MIDI2LED - efekt świetlny taśmy LED sterowanej przez MIDI: 6 kroków
Wideo: Dioda LED RGB dioda BIOM + biała dioda LED Przegląd i połączenie Premium 2024, Czerwiec
Anonim
MIDI2LED - Efekt świetlny Taśmy LED Sterowanej MIDI
MIDI2LED - Efekt świetlny Taśmy LED Sterowanej MIDI

To moja pierwsza instrukcja, więc bądź ze mną.

Uwielbiam tworzyć muzykę, aw sytuacjach na żywo, takich jak koncerty w salonie, lubię, gdy efekty świetlne są zsynchronizowane z tym, co gram. Zbudowałem więc pudełko oparte na Arduino, które powoduje, że pasek LED zapala się w losowym kolorze, gdy uderzam nutę na klawiaturze MIDI i gdzie uderzam nutę.

Kieszonkowe dzieci

  • Arduino Uno
  • Protoosłona Arduino
  • Gniazdo MIDI
  • Dioda 1N4148
  • Łącznik optyczny 6N138
  • rezystory: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
  • Taśma LED WS2812B (60 diod)
  • kilka resztek przewodów
  • rurki termokurczliwe
  • odpowiednia obudowa dla Arduino (ja używam plastikowej puszki połączeniowej)

Będziesz także potrzebować

  • lutownica i lutownica
  • Klawiatura MIDI i kabel MIDI

Krok 1: Elektronika

Elektronika
Elektronika

Obwód jest dość prosty. Składa się ze standardowego wejścia MIDI (po lewej stronie Arduino) oraz podłączenia do paska LED (po prawej stronie Arduino). Umieść wszystkie części na protoshield, jest dużo miejsca. Generalnie zaleca się użycie zewnętrznego zasilacza do zasilania paska LED, ale odkryłem, że podczas gry świeci tylko kilka diod LED, więc było nie ma problemu z wykorzystaniem Arduino +5V / GND jako wyjścia zasilania. (Staraj się unikać uderzania we wszystkie klawisze jednocześnie iz pełną prędkością.;-)) Jeśli zdecydujesz się na użycie zewnętrznego zasilacza, po prostu podłącz go do pinów Arduino +5V i GND. Niektórzy zalecają wstawienie kondensatora 100uF (nie pokazanego na schemacie) między te dwie linie.

Przylutuj części do protoosłony i podłącz pasek LED, jak pokazano na schemacie.

Krok 2: Podłączanie taśmy LED

Podłączanie Taśmy LED
Podłączanie Taśmy LED

Ważne jest, aby podłączyć prawy koniec - koniec wejściowy - taśmy LED do obwodu. Mój pasek ma złącze żeńskie jako wejście i ma małe trójkąty na całej długości skierowane od wejścia. Na wyjściu znajdowało się złącze męskie (żeby móc podłączyć go do innej listwy, której nie potrzebujemy), więc ją odciąłem i przylutowałem do trzech kabli wychodzących z Arduino. Użyj rurki termokurczliwej, aby związać ze sobą trzy kable do paska LED i uczynić je mniej widocznymi.

Taśma LED, której użyłem, ma z tyłu taśmę samoprzylepną, dzięki czemu można ją łatwo przykleić do tylnej części klawiatury MIDI.

Krok 3: Dostosowywanie projektu do klawiatury

Dostosowywanie projektu do klawiatury
Dostosowywanie projektu do klawiatury
Dostosowywanie projektu do klawiatury
Dostosowywanie projektu do klawiatury

Być może będziesz musiał dostosować pasek LED i kod Arduino do swojej klawiatury. Mój ma 76 klawiszy, a długość paska to prawie dokładnie szerokość klawiatury. Jeśli masz m.in. 61 klawiszy, możesz potrzebować krótszego paska. Taśmę LED można przeciąć między dowolnymi dwiema diodami LED. Tylko upewnij się, że odcinasz właściwą część, ma końcówkę wejściową (ze złączem żeńskim) i końcówkę wyjściową (ze złączem męskim), musisz zachować końcówkę wejściową. W kodzie zmień #defines dla

  • NUMBER_OF_LEDS do liczby diod LED pozostałych na pasku po odcięciu końca,
  • NUMBER_OF_KEYS do liczby klawiszy na klawiaturze i
  • MIN_KEY do numeru tonacji MIDI najniższego klawisza. Możesz znaleźć to w instrukcji obsługi klawiatury; lub użyj narzędzia wyświetlającego numer nuty MIDI, takiego jak KMidiMon dla systemu Linux lub Pocket MIDI dla systemu Windows lub Mac; lub wypróbuj różne wartości, aż urządzenie zareaguje na wszystkie klawisze na klawiaturze

Krok 4: Kod Arduino

Kod Arduino wykorzystuje bibliotekę MIDI (v4.3.1) firmy Forty Seven Effects oraz bibliotekę Adafruit NeoPixel (v1.3.4) firmy Adafruit. Zainstaluj te biblioteki za pomocą Arduino IDE. Następnie skompiluj kod i wgraj go do Arduino bez podłączonego nakładki (transoptor jest podłączony do pinu RX, co utrudnia wgrywanie). Zasilamy Arduino kablem USB (ja używam ściennej brodawki USB).

Jeśli chcesz zmodyfikować kod zgodnie z własnymi upodobaniami, oto krótki przegląd, jak to działa: W każdej pętli odczytywane jest wejście MIDI. W przypadku odebrania zdarzenia Note On lub Note Off wywoływane są funkcje MyHandleNoteOn lub MyHandleNoteOff. Obaj wywołują funkcję updateVelocityArray, która przechowuje prędkość (tj. jak mocno uderzyłeś w klawisz) numeru klawisza. Jeśli prędkość jest wyższa niż ta, która była zapisana wcześniej, kolor odpowiedniej diody LED jest ustawiany na „bieżący kolor”. Po obsłudze zdarzeń MIDI wywoływana jest funkcja updateLedArray. Aktualizuje to „bieżący kolor” (którego wartości czerwony, zielony i niebieski zmieniają się niezależnie w sposób liniowy, aż do osiągnięcia dolnego lub górnego końca, w którym to momencie prędkość zmiany liniowej jest ustawiana na liczbę losową), powoli zmniejsza prędkość naciskanych nut i aktualizuje wartości kolorów każdej diody LED, która musi zmienić swój kolor (z powodu nowego uderzenia nuty lub zmniejszenia prędkości). Funkcja showLedArray przenosi kolory do struktury Adafruit_NeoPixel zwanej „pikselami” i sprawia, że rzeczywiste diody LED pokazują kolory w strukturze pikseli.

Krok 5: Możliwe ulepszenia…

Projekt nigdy się nie kończy. Zawsze można coś zrobić, aby to poprawić:

  • Prototarcza zawiera tak mało części, że to naprawdę marnotrawstwo; można łatwo osiągnąć ten sam efekt z Arduino Nano i płytką drukowaną 15x7 otworów oraz kilkoma żeńskimi nagłówkami pinów.
  • Niektóre sygnały MIDI giną. Jeśli jest to NoteOn, odpowiednia dioda LED nie zaświeci się; jeśli to NoteOff, nie zgaśnie (dlatego wprowadziłem redukcję prędkości, która zapewnia, że diody nie będą świecić w nieskończoność). Nadal próbuję znaleźć powód. Prawdopodobnie jest to kwestia czasu i MIDI.read() powinno być wywoływane częściej.
  • Niektóre sygnały MIDI są błędnie odczytywane, tzn. świecą się niewłaściwe diody LED. Może być związany z powyższym punktem. Potrzebuje dochodzenia.
  • Układ został zaprojektowany tak, aby dawać przyjemny efekt wizualny bez większej interakcji użytkownika (poza graniem na klawiaturze). Mógłbym sobie jednak wyobrazić dodanie potencjometru, który jest odczytywany (za pomocą jednego z wejść analogowych Arduino), za pomocą którego można zmienić maksymalną prędkość, z jaką zmieniają się kolory (obecnie #definiowane jako MAX_COLOR_CHANGE_SPEED = 20). Lub zmierz średni czas między dwoma zdarzeniami NoteOn i odpowiednio zmień MAX_COLOR_CHANGE_SPEED – w wolnych utworach kolor powinien zmieniać się wolniej.

Krok 6: Gotowe

Zasilamy Arduino kablem USB (ja używam ściennej brodawki USB). Podłącz klawiaturę MIDI do gniazda MIDI i zacznij grać. Zobacz, jak gram trochę lekkiej muzyki (kalambur, tak zły, jak to jest, zamierzony).

Zalecana: