Spisu treści:

Kontroler nożny Arduino MIDI: 12 kroków
Kontroler nożny Arduino MIDI: 12 kroków

Wideo: Kontroler nożny Arduino MIDI: 12 kroków

Wideo: Kontroler nożny Arduino MIDI: 12 kroków
Wideo: TX81Z Arduino Kontroler / Edytor MIDI 2024, Listopad
Anonim
Kontroler nożny Arduino MIDI
Kontroler nożny Arduino MIDI

Niedawno zaprojektowałem ten kontroler MIDI do obsługi loopera fraz, który jest wbudowany w pedał opóźniający Boss DD500. Kontroluję cały zestaw gitarowy za pomocą płytki Behringer FCB MIDI, co pozwala mi zmieniać patche na pedale opóźnienia w pętli efektów, jednocześnie zmieniając kanały wzmacniacza.

DD500 ma wbudowaną bardzo podstawową funkcję loopera, ale jedną z jej wad jest to, że kiedy looper jest aktywny, jest on kontrolowany przez przełączniki nożne na pedale. Oznacza to, że nie możesz zmieniać ustawień na pedale, gdy pętla jest aktywna, ponieważ zasadniczo zawiera ona funkcje przełączników nożnych. Ponieważ używam MIDI, to ograniczenie nie istnieje, ponieważ jest to po prostu kwestia fizyczna. Oznaczało to jednak zarezerwowanie 5 przełączników nożnych na moim głównym kontrolerze MIDI dla loopera, więc zdecydowałem się zbudować dla nich osobny kontroler.

Moim początkowym planem było wzięcie małej obudowy Hammonda i umieszczenie w niej 5 przełączników nożnych i nauczenie się podstawowego kodowania Arduino. Gdy zacząłem się więcej uczyć, a mój kod działał, zmotywowało mnie to do wypróbowania większej liczby rzeczy, a następnie w zasadzie przekształciło się w coś większego.

Krok 1: Koncepcje

Koncepcje
Koncepcje
Koncepcje
Koncepcje

Jednym z pierwszych pomysłów było posiadanie tylko 5 przycisków z diodami LED stanu. To było dość proste do makiety na płytce prototypowej z Arduino. Dodanie nowych funkcji i sprzętu zakończyło się procesem, w którym stale projektowałem i przeprojektowywałem fizyczny układ na papierze i budowałem na projekcie płytki prototypowej. Nawet przy dużym planowaniu, dużo pracy nad tym zostało wykonane w locie na początku.

Dwa powyższe zdjęcia pokazują pierwszy rysunek, który przelałem na papier, który zapoczątkował ten pomysł, a następnie miesiąc notatek po tym, który ukształtował układ fizyczny i PCB.

Krok 2: Prototypowanie płyt chlebowych

Prototypowanie płyt chlebowych
Prototypowanie płyt chlebowych
Prototypowanie płyt chlebowych
Prototypowanie płyt chlebowych

Cały projekt został zbudowany na płytce prototypowej i w pełni przetestowany, aby upewnić się, że w pełni działa z DD500 przed rozpoczęciem jakichkolwiek prac nad jego obudowę na stałe. W kodzie dodano kilka dodatkowych funkcji, które dały kontrolerowi dodatkowe funkcje, których brakowało DD500. Zostaną one omówione szerzej w sekcji kodu.

Pedał posiada 5 przełączników nożnych, 4 diody LED stanu, 5 ekranów LCD I2C i jest sterowany przez Arduino Nano Every. Zasilany jest z zasilacza 9V pedału gitarowego za pomocą oddzielnej skrzynki zaciskowej, która przenosi to zasilanie przez kabel MIDI za pomocą 2 pinów, które normalnie nie są używane w złączu MIDI.

Krok 3: Produkcja

Produkcja
Produkcja
Produkcja
Produkcja
Produkcja
Produkcja

Przyjrzałem się wielu możliwościom obudowy projektu, a nawet zastanawiałem się nad pomysłem wygięcia własnej obudowy z arkuszy aluminium. Ostatecznie zdecydowałem się na obudowę Hammonda, która była wystarczająco szeroka, aby pomieścić 5 wybranych przeze mnie ekranów LCD 16X2.

Przełączniki nożne były rodzajowymi chwilowymi przełącznikami soft-touch.

Na tym etapie zdecydowałem się na wykonanie niestandardowych ramek ekranu, aby przód wyglądał czysto, ponieważ będę wycinał otwory w ekranie ręcznie za pomocą Dremela i wiedziałem, że prawdopodobnie będzie kilka obszarów, które nie będą idealne. Miałem je wycięte przez lokalne studio projektowe, które zajmuje się cięciem laserowym, najpierw jako szablony z kartonu, aby upewnić się, że wszystkie moje rozmiary są prawidłowe, a następnie z białego akrylu o grubości 3 mm jako ostatniego elementu.

Krok 4: Makieta i układ CAD

Makieta i układ CAD
Makieta i układ CAD
Makieta i układ CAD
Makieta i układ CAD

Z moich papierowych szkiców użyłem Inkscape do rozłożenia wszystkich fizycznych komponentów i sfinalizowania rozmiarów i pozycji. W tym momencie wymyśliłem również sposób montażu ekranu. Aby zminimalizować ilość widocznych śrub z przodu, zdecydowałem się przymocować wszystkie ekrany do kilku aluminiowych płyt od tyłu za pomocą dystansów, a wtedy do mocowania ich do obudowy potrzebowałbym tylko 4 śrub na płytkę, co utrzymywałby również ramki ekranu na swoim miejscu.

Krok 5: Projektowanie PCB

Projektowanie PCB
Projektowanie PCB
Projektowanie PCB
Projektowanie PCB
Projektowanie PCB
Projektowanie PCB
Projektowanie PCB
Projektowanie PCB

Do stworzenia płytki wykorzystałem stronę internetową o nazwie EasyEDA. Posiada środowisko edytora, w którym można narysować schemat komponentów, przekształcić go w układ PCB, a następnie wyeksportować go bezpośrednio do JLCPCB, aby przekształcić go w płytki. Nigdy wcześniej nie robiłem czegoś takiego, ale mają świetny przewodnik na stronie, który wyjaśnia, jak działa edytor, iw ciągu godziny zaprojektowałem i zamówiłem planszę.

Niektóre obszary na płycie były wówczas słabo zaprojektowane z powodu braku doświadczenia, na przykład używania pojedynczej szyny 5 V do zasilania ekranu, zamiast podawania każdemu osobnego źródła zasilania. Na szczęście wszelkie spadki napięcia, które wystąpiły, nie wystarczyły, aby spowodować problemy z ekranami.

Tablice dotarły około 2 tygodnie później i na szczęście działały bez żadnych problemów.

Krok 6: Mocowania ekranu

Uchwyty do ekranu
Uchwyty do ekranu
Uchwyty do ekranu
Uchwyty do ekranu
Uchwyty do ekranu
Uchwyty do ekranu

Pierwszymi wykonanymi częściami były mocowania ekranu. Użyłem do tego aluminium o grubości 3 mm i wywierciłem otwory na dystanse. Wymiary zostały określone, układając wszystko na biurku, tak jak chciałem, aby był ostateczny pedał i mierząc od otworów montażowych na płytkach drukowanych ekranu. Umieściłem też z nimi przełączniki nożne, aby uzyskać odległości dla nich.

Po wywierceniu wszystkich otworów zamontowano ekrany i sprawdzono ich prostopadłość, trzymając linijkę przy płaskich dolnych krawędziach. Do tej pory wszystko się układało.

Krok 7: Załącznik

Załącznik
Załącznik
Załącznik
Załącznik
Załącznik
Załącznik

Następnym krokiem była modyfikacja sprawy. Przełączniki nożne i diody LED były proste, ponieważ wymagały po prostu odpowiednio 12 mm i 5 mm otworu.

Główna część pracy fizycznej polegała na wycinaniu otworów w ekranie. Użyłem Dremela z kilkoma wytrzymałymi tarczami tnącymi i różnymi pilnikami, aby później wyczyścić otwory. Ta część trwała około 2 godzin.

Zastosowana przeze mnie obudowa została zaprojektowana do celów przemysłowych i została wykonana poprzez zagięcie jednego kawałka metalu i zgrzewanie punktowe narożników. Oznaczało to, że trzeba będzie trochę napracować, aby oczyścić te narożniki za pomocą wypełniacza karoserii, aby wyrównać niskie punkty i wypełnić luki na krawędzi.

W tym momencie sprawa była w pełni zagruntowana i wyśmiałem wszystko tylko po to, żeby zobaczyć, jak to będzie wyglądało.

Krok 8: Uh-oh

O o
O o
O o
O o
O o
O o

A potem przyszła świadomość, że pomimo całego mojego planowania i mierzenia popełniłem jeden OGROMNY błąd. Zaprojektowałem tablicę i układ obudowy niezależnie od siebie. W mojej głowie deska siedziałaby prawie równo z górną ścianą, z krótkim odstępem za nią. Ale absolutnie nie było to możliwe. Nie było też miejsca na odłożenie go na bok. Ogromne niedopatrzenie, ale na szczęście udało mi się to naprawić, ponieważ między mocowaniami ekranu na tylnej pokrywie obudowy było jeszcze sporo miejsca. Kilka dodatkowych otworów wywierconych w uchwytach ekranu i kilka odstępów i wracamy do pracy, z wystarczającą ilością miejsca, aby założyć osłonę.

Krok 9: Pomaluj

Farba
Farba
Farba
Farba
Farba
Farba

Wszystko zostało ponownie zdemontowane, a obudowa została pomalowana Metallic Candy Red, a następnie kilka warstw lakieru. Pudełko pozostawiono do utwardzenia przez tydzień, chociaż odkryłem, że lakier był nadal lekko miękki w tym momencie, kiedy wszystko budowałem. Z tego powodu kilka małych obszarów farby zostało uszkodzonych. Coś, czego staram się uniknąć w następnym projekcie.

W tym czasie kupiłem drukarkę 3D i postanowiłem użyć jej do wykonania podkładek do przełączników nożnych, ponieważ nylonowe, które kupiłem, miały okropny żółtawy odcień i były kiepskie.

Krok 10: Okablowanie

Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie

Ostatnią częścią fizycznego montażu było okablowanie wszystkiego. Ponownie pojawiły się problemy z projektem obudowy/projektem PCB, a niektóre pozycje nagłówków na płytce drukowanej oznaczały krzyżowanie wielu przewodów ze sobą, czyniąc rzeczy nieco bardziej bałaganiarskimi, niż się spodziewałem.

Przewody do ekranów połączono w zestawy po 4 sztuki i za pomocą owijki termokurczliwej i plecionej wykonano w jedną całość.

Krok 11: Kod Arduino

Image
Image

Jako całkowicie początkujący w kodowaniu Arduino, uczyłem się w miarę postępów. Kod jest prawdopodobnie programistycznym odpowiednikiem „długiej drogi”, ale ucieszyłem się, że zadziałał zgodnie z przeznaczeniem.

Pętla w DD500 ma 5 podstawowych funkcji:

  • Looper wł./wył.
  • Nagrywaj/Dogrywaj/Odtwarzaj
  • Odtwórz nagraną pętlę
  • Zatrzymaj odtwarzanie
  • Wyczyść nagraną pętlę

Każda z tych funkcji ma odpowiedni przełącznik nożny i, z wyjątkiem przycisku stop, diodę LED stanu. Ekrany LCD aktualizują się również o odpowiednie informacje, aby pokazać, czy pedał jest w trybie nagrywania, dogrywania lub odtwarzania, a także jaką funkcję będzie wykonywać każdy przełącznik nożny w zależności od tego, co dzieje się w tym czasie.

Kolejną dodaną przeze mnie funkcją było śledzenie, ile razy aktywowano funkcję nagrywania/dogrywania. Jest to śledzone w kodzie poprzez zwiększanie liczby całkowitej, która jest wyświetlana na ekranie „bufora”, wymieniając liczbę nagranych ścieżek. Chociaż DD500 nie może wymazać poszczególnych utworów, dodałem to tylko jako ćwiczenie kodowania, aby sprawdzić, czy mogę to zrobić.

Wygląda na to, że występuje problem z przesyłaniem plików do Instructables, więc zamiast tego umieściłem kopię kodu na Pastebin pod adresem:

W kodzie wykorzystano 2 biblioteki:

LiquidCrystal_I2C

Biblioteka MIDI FortySevenEffects

Krok 12: Wniosek

Wniosek
Wniosek

Jedną z największych rzeczy, które wyniosłem z tego projektu, jest to, że planowanie z wyprzedzeniem, jak najwięcej, pozwala uniknąć potencjalnych problemów. Problemy z moim montażem PCB podkreślają wagę tego. Prowadzenie dobrych notatek to również coś, co bardzo polecam. Bez nich mógłbym napotkać więcej problemów niż miałem. Obecnie buduję swój drugi kontroler MIDI i tym razem poczyniłem większe wysiłki, aby uprościć swój kod i zaprojektować mój sprzęt wokół tego, jak powinna być zamontowana płytka drukowana.

Zalecana: