Pierwsza część tego artykułu pokazała, jak zbudować prostą matrycę klawiszy MIDI, składającą się z siatki 64 przełączników monostabilnych (tact-switch-y). Są one skanowane przez kompatybilną z systemem Arduino płytkę Leonardo, która działa jako koder MIDI. Wykorzystuje ona swoje peryferia USB do generowania komunikatów MIDI, które mogą być odbierane na komputerze osobistym z oprogramowaniem syntezatora lub cyfrowej stacji roboczej audio (DAW).
Nakładka Leonardo jest również wyposażona w parę 5-stykowych gniazd DIN zgodnych ze standardem MIDI. Jedno ze złączy DIN zostało skonfigurowane jako port MIDI-out a drugie jako port MIDI-in. Port MIDI-out generuje „sprzętowe” komunikaty MIDI, które mogą być przesyłane do portu MIDI-in w urządzeniu takim jak syntezator MIDI.
W ten sposób matryca klawiszy MIDI i koder MIDI tworzą razem ogólne urządzenie wyjściowe MIDI, odpowiednie do wyzwalania dźwięków i nut na dowolnej liczbie urządzeń obsługujących standard MIDI, które mają port USB lub 5-stykowe gniazdo DIN MIDI-in.
Ma również wbudowany bardzo podstawowy syntezator, który po wystąpieniu kluczowych zdarzeń przesyła dźwięki do małego głośnika o mocy 1 W. Sam w sobie tworzy bardzo prosty instrument muzyczny.
Chociaż możliwe jest ręczne podłączenie 64 klawiszy, pokazaliśmy również, jak zbudować matrycę przełączników wykorzystującą płytkę drukowaną, co znacznie upraszcza to zadanie. Matryca przełączników przystosowana jest do montażu kilku typów przełączników naciskowych o różnych rozmiarach.
Spodziewamy się, że niektórzy Czytelnicy wymyślą nowe i interesujące sposoby wykorzystania tego sprzętu. Może to obejmować niestandardowe oprogramowanie enkodera MIDI do pełnienia określonej roli w konfiguracji MIDI. Może to również obejmować wykorzystanie w nietypowy sposób matrycy przełączników w celu uproszczenia połączenia ze sprzętem.
Jeśli chcesz dowiedzieć się więcej o genezie i działaniu MIDI, zobacz panel „Co to jest MIDI?” pod koniec tego tekstu.
Matryca LED
Chociaż naszym zamiarem było stworzenie taniego i użytecznego urządzenia wejściowego MIDI, wykorzystaliśmy dużo miejsca na płytce drukowanej matrycy przycisków, aby dodać dodatkowe funkcje. W szczególności znajdują się tam pola umożliwiające zamontowanie podświetlanych przełączników.
Są one również podłączone w matrycy do pary 8-drożnych złączy (CON3 i CON4), z rezystorem szeregowym do ograniczania prądu LED w każdym rzędzie.
W pierwszej części pokazaliśmy podstawowy kod do sterowania diodami LED, ale oryginalny sprzęt nie mógł jednocześnie wykrywać naciśnięć klawiszy i sterować diodami LED. Teraz zajmiemy się tą kwestią.
Ograniczenia Leonardo
Problem polega na tym, że w module Arduino Leonardo nie ma zbyt wielu wolnych wejść/wyjść; z pewnością nie na tyle, aby jednocześnie sterować diodami LED i skanować przełączniki.
W rzeczywistości nie ma wielu kompatybilnych płytek Arduino, które by na to pozwalały i nadal zapewniały obsługę peryferii USB.
Arduino Mega ma wystarczającą liczbę portów, ale niestety jego obsługa magistrali USB jest ograniczona do danych szeregowych za pośrednictwem oddzielnego układu scalonego USB-serial.
W ostatnim numerze zauważyliśmy, że jeśli chcesz po prostu zapalić wszystkie diody LED, możesz zwyczajnie podłączyć szyny zasilania do CON3 i CON4 na płytce drukowanej matrycy przycisków.
Jeśli jednak chcesz niezależnie sterować diodami LED, najprostszym podejściem jest dodanie drugiej płytki mikroprocesora.
Możesz chcieć podświetlić każdy klawisz jako podpowiedź, aby wskazać, który z nich należy nacisnąć jako następny. Może to być przydatne jako narzędzie do nauki, pomagając w opanowaniu utworu muzycznego na pamięć.
Innym przykładem może być zapalanie diod LED w rytm naciskanych klawiszy. To właśnie zrobiliśmy w naszym przykładowym kodzie.
Adaptacja do wydania polskiego – Andrzej Nowicki