
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:
- 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).
- 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.
- Miał współpracować z interfejsem USB, zapewniającym mu zarówno zasilanie,
jak i transmisję danych do komputera,
- 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.
- 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