[W] Własny kontroler MIDI, cz. 7 - główny kontroler
Zbudowanie tego kontrolera to była długa droga - może nie przez mękę, ale lekko nie było na pewno. Założenie proste: cztery suwaki, cztery potencjometry obrotowe, ekranik, enkoder do konfigurowania i dwa dwustanowe przyciski. Wszystko na Adruino Pro Micro. Masywne, ale praktyczne.
Podejście pierwsze
W najbardziej pierwotnej wersji (czyli kiedy zaczynał mi kiełkować pomysł na własny kontroler) chciałem całą obudowę urządzenia zrobić ze sklejki - tak, jak to robiłem w przypadku wcześniejszych różnych projektów. I pewnie, gdybym akurat miał cienką sklejkę gdzieś w garażu, na tym by się skończyło.
Podstawa - szablon, żeby wszystko było na swoim miejscu
Potem pomyślałem, żeby może płytę czołową zrobić jednak z czegoś innego i zamarzył mi się metal. W Castoramie kupiłem arkusz fakturowanej blachy aluminiowej i pół soboty spędziłem w garażu tnąc, gnąc, wiercąc i szlifując.
Drewniane "boczki", żeby całość wyglądała przyzwoicie
Największym wyzwaniem okazały się szczeliny na suwaki i na ekran. Od czasu awarii wyrzynarki nie mam odpowiedniego elektronarzędzia, które mógłbym wykorzystać, więc pozostała praca ręczna. Otwór na ekran nie był specjalnie trudny, ale już szczeliny na suwaki sprawiły mi nielichy problem. Ostatecznie stanęło na tym, że po prostu wierciłem szereg (kilkadziesiąt) otworów o średnicy 3mm i potem za pomocą pilnika robiłem z tych otworów szczelinę. Wierzcie mi, że w tym momencie bardzo się cieszyłem, że nie wybrałem w sklepie stalowej blachy - aluminium jest jednak dużo bardziej miękki i podatne, więc ostatecznie JAKIEŚ szczeliny uzyskałem...
Szczeliny z otworków, trudna droga, ale w moim przypadku jedyna
Po jako takim zbudowaniu obudowy przyszedł czas na łączenie wnętrzności. I tu napotkałem na problem. Duży.
Ambitnie chcialem sobie wszystko ładnie polutować do płytki PCB. Wlutowałem Arduino, zrobiłem linię napięcia i linię masy, żeby podłączać pozostałe podzespoły i... zorientowałem się, że to jednak bez sensu. Do komponentów miałem już przylutowane przewody ze szpilkami - szpilki chciałem po prostu obciąć po zakończeniu testów na płytce stykowej. Okazało się jednak, że obcinanie szpilek i zdejmowanie izolacji z końcówek już po zamontowaniu podzespołów w obudowie było operacją karkołomną, więc tak jak w przypadku kontrolera żyroskopowego postanowiłem poprzestać chwilowo na małej płytce stykowej, do której podłączyłem wszystkie kabelki.
Chaos kabelków
W tym momencie wyszło na jaw, że płytka stykowa, powiększona na wysokość o plastikowe obudowy szpilek po prostu nie mieści się w pierwotnej obudowie - drewniane boczki widoczne wyżej na zdjęciu obliczałem na wysokość płytki PCB z lutami. Wróciłem zatem do garażu i zrobiłem nowe, wyższe boczki. Ostatecznie kontroler wygląda tak:
Nie ma szału... Jak powiedział znajomy - wygląda jak rekwizyt z filmu "Pan Kleks w kosmosie" i muszę się z tym zgodzić
Nie do końca o taki wygląd mi chodziło, ale dopóki nie zdobędę piły albo (lepiej) frezarki, żeby móc sensownie, czyli równo wykonać rowki, musi mi to wystarczyć. Zrobiłem jeszcze przymiarkę do płyty czołowej z akrylu, ale moje ambitne plany, by "wytopić" w akrylu szczeliny metalowym paskiem rozgrzanym oplarką spełzły na niczym. Opalarka, mimo obietnic producenta, że potrafi dać temperaturę 600oC, nie dała rady odpowiednio rozgrzać metalowego paska.
Sprawa ważna - oprogramowanie
Nad oprogramowaniem mojego kontrolera musiałem chwilkę posiedzieć. O ile sam kod odczytujący osiem potencjometrów (cztery suwaki i cztery gałki) i wysyłający komunikaty MIDI CC jest banalny, to zamarzyłem sobie dodatkowe funkcje.
Przede wszystkim, nie po to zamontowałem w kontrolerze ekran LCD, żeby tylko wyświetlać na nim ustawione pozycje potencjometrów. Chciałem, by wyświetlały się na nim numery CC, przypisane do poszczególnych suwaków i gałek, żeby jednym rzutem oka móc sobie przypomnieć, co gdzie przypisałem i którą kontrolką ruszyć. Czyli już mam dwa tryby wyświetlania - "spoczynkowy" z wyświetleniem aktualnej konfiguracji CC oraz "dynamiczny", kiedy zmieniam położenie potencjometru. Wtedy powinna się pojawić cyfrowa wartość konkretnego CC, który jest wysyłany przez MIDI.
Świecący ekranik nie zawsze jest zaletą, zwłaszcza podczas pracy wieczorami, więc jeden z przełączników hebelkowych (czyli "pstryczków" w górnym lewym roku płyty czołowej) służy do wyłączenia podświetlenia. Kontroler w dalszym ciągu działa i wysyła komunikaty, tylko ekran jest wygaszany.
No i na koniec rzecz najważniejsza - konfiguracja. Mógłbym poprzestać na tym, że mam na stałe przypisane wartości CC do poszczególnych potencjometrów - wszak, skoro je widzę na ekranie, mogę je też odpowiednio przypisać w wirtualnych instrumentach. Ale docelowo chciałbym jednak mieć możliwość zmiany tej konfiguracji bez konieczności uruchamiania Arduino IDE i wysyłania nowego programu do mikrokontrolera. No i nie po to zdobywałem wiedzę, jak korzystać z pamięci EEPROM, żeby ta wiedza leżała odłogiem.
Zatem drugi przełącznik hebelkowy służy do wprowadzenia kontrolera w tryb konfiguracyjny. Wówczas przestają być wysyłane komunikaty MIDI, a urządzenie ruch potencjometrów zaczyna traktować jako wskazanie, który element konfigurujemy. Czyli chcę zmienić przypisanie pierwszej gałeczki - ruszam nią, a na ekranie natychmiast widzę przypisany jej CC. No i teraz najważniejsze - enkoderem po prawej stronie ekranu mogę zmienić CC i przypisać wybranej gałce zupełnie inną wartość. Co więcej, jeśli "kliknę" enkoderem, zmiana będzie trwała, bo zostanie zapisana w pamięci EEPROM i wczytana przy kolejnym starcie urządzenia. Jeśli nie "kliknę", to zmiana jest wprawdzie pamiętana, ale tylko na czas danej sesji.
Myślę, że opisany sposób konfigurowania jest mimo wszystko dużo wygodniejszy niż w przypadku Sparrowa 4x100 - ten ma wprawdzie aplikację uruchamianą w przeglądarce, ale właśnie - trzeba uruchomić przeglądarkę, wbić odpowiedni adres i dopiero można coś ustawiać.
Praca
Oczywiście, wszystko to pójdzie na marne, jeśli nie będę z tego kontrolera korzystać. Zobaczymy zatem za jakiś czas, czy nowy grat się przyjął i zastępuje godnie Sparrowa.
Komentarze
Prześlij komentarz