Kontroler USB MIDI do perkusji elektronicznej



English version of this document
W internecie można znaleźć już sporo opisów, jak samodzielnie zbudować kontroler MIDI do perkusji elektronicznej. Na przykład możemy zajrzeć na strony projektów: Megadrum lub eDrum.
Mimo to postanowiłem wykonać własny kontroler, którego konstrukcja została oparta na następujących założeniach:
  1. Miał być jak najprostszy. Płytka drukowana powinna być jednostronna i nadawać się do wykonania techniką termotransferu nawet przez mało wprawnego elektronika. Dlatego też projekt opiera się na układach w obudowach DIP z rozstawem wyprowadzeń 2,54 mm (100 mils).
  2. Miał być zbudowany z łatwych do zdobycia i jak najtańszych podzespołów. W szczególności chciałem niknąć stosowania mało popularnych (a co za tym idzie drogich przy jednostkowych zakupach) układów.
  3. Miał współpracować z interfejsem USB, zapewniającym mu zarówno zasilanie, jak i transmisję danych do komputera,
  4. Miał być widziany przez komputer jako urządzenie klasy USB MIDI, co zapewnia poprawną współpracę z różnymi programami i różnymi systemami operacyjnymi, bez konieczności pisania sterowników.
  5. Miał współpracować z prostymi, samodzielnie wykonanymi "padami" perkusyjnymi, wykorzystującymi czujniki piezoelektryczne. Co więcej, miał mierzyć siłę uderzenia i transmitować ją w komunikatach MIDI.

Kontroler taki może współpracować np. z programem Hydrogen, lub lmms.

Aby zapewnić realizację kontrolera jako urządzenia klasy USB MIDI, wykorzystałem oprogramowanie V-USB-MIDI, opracowane przez Martina Homutha Rosemana i dostępnione na licencji GPL, które z kolei oparte jest na oprogramowaniu V-USB opracowanym i udostępnionym na licencji GPL przez firmę Objective Development Software GmbH. Oczywiście w związku z tym także moje oprogramowanie jest dostępne na licencji GPL i może być modyfikowane i dalej rozpowszechniane na tej samej licencji. Kod źródłowy programu mojego kontrolera możesz znaleźć tutaj, a także (wraz z historią ostatnich zmian) w repozytorium github). Można go skompilować przy użyciu darmowego i otwartego kompilatora AVR-GCC, rozpakowując źródła i wywołując polecenie "make" w katalogu "firmware".

Projekt części sprzętowej mojego kontrolera został zrealizowany w otwartym i darmowym programie KiCad. Projekt ten można znaleźć tutaj. Projekt ten udostępniam jako "public domain". Ci, którzy nie chcą instalować KiCad'a, mogą pobrać schemat w formacie PDF.
Jak widać zasadniczą część kontrolera stanowi mikrokontroler ATmega88. Ponieważ w obudowie DIP dysponuje on tylko sześcioma wejściami analogowymi, dodałem multiplekser/demultiplekser analogowy 4051, zwiększając w ten sposób liczbę wejść do 13. Do każdego wejścia dołączony jest obwód wejściowy, przetwarzający impulsy generowane przez przetworniki piezoelektryczne, na sygnały nadające się do przetworzenia przez przetwornik analogowo-cyfrowy w mikrokontrolerze.
Przetwornik piezoelektryczny, którego użyłem dostarcza dodatniego impulsu trwającego od około 1 do 5 ms, po którym następuje dłuższy impuls o mniejszej amplitudzie i przeciwnym znaku napięcia (a czasem można zaobserwować jeszcze kilka gasnących oscylacji).
Kontroler ATmega88 może wykonywać do ok. 15000 pomiarów napięcia na sekundę, co dla 13 wejść dawałoby odstęp ok. 1 ms między kolejnymi pomiarami. Aby zapewnić wiarygodną detekcję poziomu maksymalnego i w pewnej mierze uniezależnić się od polaryzacji sygnału z przetwornika (mój przetwornik przy uderzeniu dostarczał impulsów dodatnich, ale nie wiadomo, czy jest to cechą wszystkich przetworników tego typu), na wejściu został zastosowany detektor wartości międzyszczytowej napięcia. Budując układ można poeksperymentować z wartością rezystancji potencjometru - w zasadzie zamiast 50kΩ można użyć nawet 500kΩ. Użycie dwóch połączonych szeregowo diod zamiast jednej zwiększa napięcie wyjściowe i poprawia czułość układu przy detekcji słabych uderzeń. Dla chcących przekonać się jak ten układ działa, udostępniam zbiory symulacyjne dla darmowego programu LTspice (zbiory różnią się znakiem napięcia dostarczanego przez przetwornik, potencjometr jest symulowany przez dwa rezystory 20kΩ i 30 kΩ).

Płytka drukowana została zaprojektowana tak, aby pasować do obudowy KM48N. Jeśli ktoś nie chce instalować KiCad'a, może pobrać rysunek scieżek i rozmieszczenie elementów w formacie PDF. Uwaga! Płytka jest naprawdę jednostronna. Ścieżki na górnej warstwie są poprowadzone tylko po to, aby pokazać połączenia, które należy wykonać przewodami (np. kynarem).
Zmontowana i umieszczona w obudowie płytka drukowana widoczna jest na poniższym zdjęciu:

Zmontowany kontroler widoczny jest na poniższych zdjęciach:

Jak wykonać proste pady perkusyjne

Oczywiście najlepiej byłoby użyć profesjonalnych padów z dołączonymi przetwornikami piezoelektrycznymi. Opisy jak to zrobić można znaleźć w sieci: Opisany kontroler może doskonale współpracować z takimi przerobionymi padami. Niestety w moim przypadku nie wchodziło w grę użycie profesjonalnego statywu i padów, zarówno ze względu na koszty, jak i na miejsce (gotowy system miał się dać po prostu rozstawić na biurku mojego dziecka ;-).
Z tego względu przygotowałem znacznie uproszczone pady z metalowych płytek podklejonych filcem polerskim. Do ich wykonania znakomicie nadają się płytki, którymi firma InPost obciąża listy.
Z filcu polerskiego o grubości około 5 mm (udało mi się nabyć arkusze o wielkości 12x26cm) wycinamy prostokąty odpowiadające kształtowi płytki, po czym wycinamy w nich kanał mogący pomieścić kabelek (kanał ten był wycinany frezem kulowym i miał kształt zygzakowaty, aby zapobiegać wyrwaniu kabla).

Kabelek ekranowany dolutowujemy do przetwornika piezoelektrycznego tak, aby przewód środkowy łączył się ze "srebrną" elektrodą (Uwaga! zbyt wysoka temperatura i zbyt długi czas lutowania może doprowadzić do spłynięcia pokrycia z elektrody!), a ekran z mosiężnym talerzykiem.

Drugi koniec lutujemy do wtyku Cinch, po czym kabelek umieszczamy w wyfrezowanym w filcu kanale i w kilku miejscach przytwierdzany przez obszycie "na okrętkę" (należy uważać, by nie uszkodzić kabelka przy szyciu!).

Na koniec na płytkę metalową naklejamy dwustronną "silną" taśmę samoprzylepną i przyklejamy płytkę do filcu, z leżącym na nim przetwornikiem (tak aby mosiężny krążek przetwornika przykleił się do taśmy).

Gotowy pad możemy zobaczyć na poniższym zdjęciu. Dla uzyskania bardziej realistycznego efektu, na wierzch padu można nakleić cienką twardą gumę, lub tworzywo sztuczne.



Wojciech Zabolotny