Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Jako prawdziwy meloman oraz student elektroniki i informatyki zawsze chciałem budować urządzenia MIDI, które mógłbym wykorzystać do tworzenia muzyki elektronicznej.
Po uczestnictwie w wielu pokazach i festiwalach muzycznych zacząłem naprawdę interesować się pokazami świetlnymi podczas występów.
Po wielu badaniach znalazłem tylko urządzenia, które używają mikrofonu i nie pozwalają sterować diodami dokładnie tak, jak chcesz.
Coraz bardziej zaznajomiwszy się z sygnałami DAW i MIDI, postanowiłem rozpocząć ten projekt!
Składa się z trójwymiarowej struktury z wbudowanymi diodami LED, które są faktycznie sterowane sygnałami MIDI (NoteOn, NoteOff i CC Messages).
Aby muzyk mógł kontrolować kolor i intensywność każdej diody LED, tylko za pomocą sygnałów MIDI, generowanych przez dowolny DAW.
Dzięki temu pomysłowi chciałem zwiększyć kreatywność poprzez pokazy świetlne i umożliwić każdemu budowanie własnego, aby każdy występ wizualny był wyjątkowy.
Krok 1: Materiały
Zasadniczo ten projekt składa się z dwóch części: obwodu odbiorczego MIDI i struktury LED; oraz mikrokontroler do łączenia tych części i „tłumaczenia” sygnałów MIDI pochodzących z DAW na taśmy LED. Oto lista materiałów potrzebnych do wykonania każdej części.
Obwód odbioru MIDI:
- 1 x transoptor 6N138
- 1xdioda 1N914
- 1 x 5-pinowe gniazdo Din (gniazdo MIDI)
- Rezystory 2 x 220 Ohm
- Rezystor 1x4.7K Ohm
- 1 gniazdo USB/MIDI
Struktura LED:
Użyłem taśm LED RGB opartych na diodach WS2812B, które można sterować tylko 1 portem cyfrowym. Jeśli planujesz używać dużej liczby diod, być może będziesz musiał zadbać o maksymalny potrzebny prąd (1 dioda może pobierać maksymalnie 60mA). Jeśli mikrokontroler nie może obsłużyć tej maksymalnej wartości, będziesz potrzebować innego zasilacza 5 V, który może dostarczyć wystarczającą ilość prądu. Użyłem zasilacza 5V - 8A AC/DC z dedykowanym adapterem wyjściowym i przełącznikiem.
Uwaga: Wygląda na to, że możesz użyć zasilacza komputerowego, ponieważ wiadomo, że jest w stanie dostarczyć naprawdę wysoki prąd, ale musisz upewnić się, że dostarcza stabilne napięcie 5 V DC, być może za pomocą Rezystor mocy 36 Ohm 5 W między masą (czarny) a wyjściem 5V (czerwony), aby zapewnić wystarczającą ilość prądu przepływającego przez rezystor i tym samym zapewnić stabilne napięcie 5V.
Na koniec użyłem prostego Arduino Uno z osłoną śrubową, aby utworzyć połączenie między sygnałami MIDI i paskami LED.
Krok 2: Budowanie obwodu wejściowego MIDI
Jeśli interesuje Cię, czym właściwie jest protokół MIDI i jak działa, gorąco polecam zajrzeć na kanał Notes and Volts na YouTube, gdzie znajduje się wiele ciekawych i innowacyjnych tutoriali oraz projektów MIDI Arduino.
W tej części skupię się tylko na obwodzie wejściowym MIDI. Przed przystąpieniem do lutowania komponentów dobrym pomysłem może być zbudowanie prototypu na płycie prototypowej i sprawdzenie, czy sygnały MIDI pochodzące z DAW są dobrze odbierane przez mikrokontroler.
Poniższe dwa filmy opisują, jak zbudować i przetestować obwód:
- Budowanie obwodu
- Testowanie obwodu
Na koniec, dobrym pomysłem może być również obejrzenie tego filmu, aby zrozumieć komunikaty CC i jak klipy automatyzacji mogą być interpretowane przez mikrokontroler, na przykład w celu sterowania jasnością diody LED.
Krok 3: Konfiguracja FL Studio (opcjonalnie)
Ponieważ czuję się komfortowo używając FL Studio, wyjaśnię, jak prawidłowo skonfigurować jego interfejs MIDI, ale jestem prawie pewien, że ta procedura nie powinna się drastycznie różnić, jeśli używasz innej cyfrowej stacji roboczej audio.
Najpierw wystarczy podłączyć gniazdo USB/MIDI do komputera. Zazwyczaj takie urządzenia są dostarczane z wbudowanym oprogramowaniem układowym i są rozpoznawane jako urządzenia MIDI, nawet jeśli są unpleggud. Następnie otwórz okno „Ustawienia” (wciskając F10). Jeśli wszystko działa poprawnie, zauważysz niektóre wyjściowe urządzenia MIDI w sekcji Output. Wybierz swoje urządzenie i upewnij się, że jest WŁĄCZONE.
Następnie musisz zdefiniować swój numer portu i pamiętać o nim (na przykład 0). Wystarczy zamknąć to okno (parametry są automatycznie zapisywane), a następnie dodać nowy kanał: MIDI Out.
Następnie ostatnią rzeczą, którą musisz zrobić, to zdefiniować port tego nowego kanału: upewnij się, że wybrałeś ten sam numer portu, który zdefiniowałeś w sekcji „Ustawienia”: robiąc to, wiadomości MIDI pochodzące z twojego kanału są teraz połączony z wyjściem MIDI.
Teraz, gdy nuta jest odtwarzana przez kanał MIDI Out, komunikat „NoteOn” zostanie wysłany przez interfejs MIDI. W ten sam sposób wiadomość „NoteOff” zostanie wysłana po zwolnieniu notatki.
Kolejną ciekawą funkcją, która jest dostarczana z kanałem MIDI Out, jest możliwość sterowania różnymi parametrami za pomocą potencjometrów. Klikając prawym przyciskiem myszy na jednym z nich i wybierając „Konfiguruj…”, możesz sprawić, by wysyłały CCMessages (wartość od 0 do 127), które będą używane do sterowania jasnością diod: wybierz CC, a następnie Akceptuj.
Zwykle FL Studio jest teraz gotowe do wysyłania danych do interfejsu MIDI! Następnym krokiem jest napisanie kodu do flashowania w Arduino i dostosowanie go do struktury LED.
Krok 4: Podłączanie diod LED
Podłączenie taśm LED jest dość proste, ponieważ wymagają tylko +5V, GND i danych. Ponieważ jednak planowałem połączyć ponad 20 z nich, postanowiłem użyć kilku pinów Arduino PWM i zadeklarować kilka instancji Adafruit_NeoPixel (w coe), aby uniknąć wszelkiego rodzaju niezamierzonych opóźnień.
Załączony obrazek ma również na celu wyjaśnienie, jak działa elektronika:
- Taśmy LED zasilane są bezpośrednio z zasilacza.
- Przełącznik zasilania służy do zasilania Arduino
- obwód wejściowy MIDI jest zasilany przez Arduino podczas włączania przełącznika;
Krok 5: Projektowanie struktury 3D
Do tej pory ta część była najdłuższa, ponieważ byłem zupełnie nowy w druku 3D (i modelowaniu). Chciałem zaprojektować strukturę, która wyglądała jak na wpół eksplodowany ścięty dwudziestościan (tak, znalezienie dokładnej nazwy kształtu zajęło mi trochę czasu).
Oczywiście możesz zaprojektować swój własny model o pożądanym kształcie! Nie będę szczegółowo omawiał procesu modelowania, ale znajdziesz pliki STL, jeśli chcesz zaprojektować tę strukturę.
Montaż różnych części zajął trochę czasu, ponieważ musiałem umieścić jedną diodę LED na każdej powierzchni i połączyć je wszystkie, lutując dużą liczbę przewodów wewnątrz rdzenia, co obecnie jest dość niechlujne!
Uwaga: jeśli chcesz zaprojektować taką konstrukcję, będziesz potrzebować 10 elementów sześciokątnych (po około 3 godziny przy użyciu mini drukarki PP3DP UP) i 6 elementów pięciokątnych (2 godziny).
Gdy w każdej części znajduje się jedna dioda LED, będziesz musiał połączyć ze sobą wszystkie zaciski 5 V i GND i podłączyć kilka zacisków wejściowych i wyjściowych każdej diody LED w taki sposób, w jaki mają być podłączone.
Na koniec użyłem dyfuzyjnego akrylu LED, aby pokryć każdą twarz i zapewnić jej spójne światło.
Pozostaje tylko kod, który okazuje się nie aż tak skomplikowany!
Krok 6: Kodeks
Jak wspomniałem w poprzedniej części, kod okazuje się dość prosty!
W rzeczywistości składa się tylko z jednej instancji MIDI i kilku instancji Adafruit_NeoPixel (tyle, ile jest różnych pasków).
W zasadzie, po zadeklarowaniu, klasa MIDI pracuje z rodzajami „przerw”: NoteOn, NoteOff i CCMessage. Kiedy obwód wejściowy MIDI przesyła jeden z tych specyficznych sygnałów do Arduino, wywoływany jest podprogram skojarzony. Następnie wszystko, co robi kod, to włączanie określonej diody LED na sygnale NoteOn, wyłączanie jej na powiązanym sygnale NoteOff i aktualizowanie jasności paska na CCMessage.
Zdefiniowałem też prostą funkcję, która daje możliwość wyboru koloru diod poprzez odczyt prędkości przychodzącej z sygnałem NoteOn i każda dioda może być wtedy czerwona, fioletowa, niebieska, turkusowa, zielona, żółta, pomarańczowa lub biała, w zależności od wartości prędkości od 0 do 127.
Ważną rzeczą do zauważenia jest to, że będziesz musiał odłączyć pin RX (pochodzący z obwodu wejściowego MIDI) podczas przesyłania szkicu, ponieważ port szeregowy (używany podczas tego procesu) jest podłączony do tego pinu!
Krok 7: Co teraz?
Obecnie pracuję nad niestandardową obudową do osadzenia całej elektroniki i myślę również o nazwie struktury! Daj mi znać, jeśli podobał Ci się ten projekt, a ja pracuję nad różnymi programami, ponieważ planuję zaktualizować tę instrukcję o więcej filmów!