Obsah:

Arduino Uno Midi Fighter: 5 kroků
Arduino Uno Midi Fighter: 5 kroků

Video: Arduino Uno Midi Fighter: 5 kroků

Video: Arduino Uno Midi Fighter: 5 kroků
Video: The World of Wayne Thursday LIVE Stream 2024, Červenec
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Tento instruktáž byl vytvořen při splnění požadavku projektu Makecourse na University of South Florida (www.makecourse.com)

Na základě oblíbeného MidiFighter od DJ Techtools lze tento domácí ovladač MIDI (Musical Instrument Digital Interface) poháněný Arduino použít jako MIDI zařízení v jakémkoli softwaru DAW (Digital Audio Workstation). Řadič MIDI může odesílat a přijímat zprávy MIDI z počítače a lze jej použít k přímému ovládání libovolného používaného softwaru. Ovládací prvky na MIDI kontroleru jsou navíc plně přizpůsobitelné - to znamená, že každé jednotlivé tlačítko, posuvník a knoflík lze namapovat na libovolnou funkci v DAW. Například stisknutím tlačítka můžete přehrát konkrétní notu nebo být naprogramován tak, aby přepínal tempo vašeho zvukového projektu.

github.com/jdtar/Arduino-Midi-Controller

Krok 1: Materiály

Níže je uveden seznam materiálů a nástrojů použitých v tomto projektu.

Arduino Uno

Prkénko

Multiplexer 4051/4067

Propojovací vodiče

Extra drát

2x 10k ohm lineární posuvné potenciometry

16x tlačítka Sanwa 24 mm

Smršťování teplem

Páječka

Žiletka

Rezistor 4,7 kΩ

Akrylový list (na víko)

Pouzdro pro tlačítka a Arduino

3D tiskárna

Laserová řezačka

Krok 2: Design

Design
Design
Design
Design

Už před zahájením projektu mi bylo poskytnuto pouzdro pro můj MIDI ovladač, a tak jsem posmíval náčrt víka, abych viděl, kam všechno má být umístěno. Věděl jsem, že chci jako funkci alespoň 16 tlačítek a několik potenciometrů, takže jsem se pokusil rozložit součásti co nejrovnoměrněji.

Po vypracování rozvržení víka jsem soubor exportoval ve formátu 1: 1 PDF a odeslal jej do laserové řezačky, abych nařezal list akrylu. U otvorů pro šrouby jsem značkovačem označil, kde chci, aby byly otvory, a roztavil akryl horkým vláknem.

V příloze je dokument 1: 1 PDF, který lze vytisknout v poměru 1: 1 a řezat pomocí elektrického nářadí, pokud není k dispozici laserová řezačka.

Krok 3: Konstrukce a zapojení

Stavba a elektroinstalace
Stavba a elektroinstalace
Stavba a elektroinstalace
Stavba a elektroinstalace
Stavba a elektroinstalace
Stavba a elektroinstalace

Po řezání řezání akrylu jsem zjistil, že je akrylát příliš tenký, aby dostatečně podepřel všechny součásti. Potom jsem vystřihl další list a slepil je, což fungovalo perfektně.

Zapojení součástí vyžadovalo pokus a omyl, ale vyústilo v přiložený Fritzingův náčrt. Nejprve jsem zapojil zemnící vodiče a odpor 4,7 kΩ, připájel a zahustil spoje na tlačítkách. Montáž dvou posuvných potenciometrů vyžadovala tavné otvory pro šrouby v akrylátu. Poté, co byly oba potenciometry zašroubovány, byly připojeny k analogovým pinům A0 a A1. Když bylo zapojení dokončeno, vzpomněl jsem si, že pro mé fadery neexistují žádné krytky knoflíků, takže jsem je místo nákupu vytiskl pomocí 3D tiskárny tak, že jsem je nakreslil v Autodesk Fusion 360 a exportoval do souboru STL. De

Arduino Uno má pouze 12 digitálních vstupních pinů, ale 16 tlačítek mělo být zapojeno. Abych to kompenzoval, zapojil jsem multiplikátor 74HC4051 na prkénko, které používá 4 digitální vstupní piny a umožňuje více signálům používat sdílenou linku, což má za následek 8 dostupných digitálních vstupních pinů pro celkem 16 digitálních pinů, které jsou k dispozici k použití.

Zapojení tlačítek na správné piny bylo jednoduše otázkou vytvoření matice 4x4 a jejího použití v kódu. Složité na tom však bylo, že konkrétní zakoupený multiplexer měl konkrétní rozložení pinů, s čímž pomohl datový list, a také jsem měl na mysli konkrétní rozložení not při zapojování tlačítek, které nakonec vypadalo trochu takto:

POZNÁMKA MATRIX

[C2] [C#2] [D2] [D#2]

[G#2] [A1] [A#2] [B1]

[E1] [F1] [F#1] [G1]

[C2] [C#2] [D2] [D#2]

PIN MATRIX (M = MUX VSTUP)

[6] [7] [8] [9]

[10] [11] [12] [13]

[M0] [M1] [M2] [M3]

[M4] [M5] [M6] [M7]

Krok 4: Programování

Programování
Programování

Jakmile je sestava dokončena, zbývá jen naprogramovat Arduino. Přiložený skript je napsán takovým způsobem, že je snadno přizpůsobitelný.

Začátek skriptu obsahuje knihovnu MIDI.h a knihovnu ovladačů vypůjčenou z blogu Notes a Volts, které jsou oba součástí souboru zip pro kód. Pomocí knihovny ovladačů lze vytvářet objekty pro tlačítka, potenciometry a multiplexovaná tlačítka obsahující datové hodnoty, které zahrnují číslo noty, řídicí hodnoty, rychlost not, číslo kanálu MIDI atd. Knihovna MIDI.h umožňuje komunikaci MIDI I/O na Sériové porty Arduino, které zase odebírají data z objektů řadiče, převádějí je na zprávy MIDI a odesílají zprávy do libovolného připojeného rozhraní midi.

Část neplatného nastavení skriptu inicializuje všechny kanály jako vypnuté a také inicializuje sériové připojení rychlostí 115 200 baudů, což je rychlost rychlejší než jsou vyměňovány signály MIDI.

Hlavní smyčka v podstatě přebírá pole tlačítek a multiplexovaných tlačítek a spouští smyčku for, která kontroluje, zda bylo tlačítko stisknuto nebo uvolněno, a odesílá odpovídající datové bajty do rozhraní midi. Smyčka potenciometru kontroluje polohu potenciometru a odesílá odpovídající změny napětí zpět na rozhraní midi.

Krok 5: Nastavení

Image
Image
Založit
Založit
Založit
Založit
Založit
Založit

Jakmile byl skript načten do Arduina, dalším krokem je plug and play. Existuje však několik kroků, než je lze použít.

V systému OSX společnost Apple začlenila funkci pro vytváření virtuálních midi zařízení, ke kterým lze přistupovat prostřednictvím aplikace Audio Midi Setup na počítačích Mac. Jakmile je nové zařízení vytvořeno, lze Hairless MIDI použít k vytvoření sériového spojení mezi Arduinem a novým virtuálním midi zařízením. Sériové připojení z Arduina přes Hairless MIDI pracuje s přenosovou rychlostí definovanou v části neplatného nastavení skriptu a musí být nastaveno ekvivalentně v nastavení předvoleb Hairless MIDI.

Pro testovací účely jsem použil Midi Monitor, abych zkontroloval, zda byla odesílána správná data podle připojení sériového MIDI. Jakmile jsem zjistil, že všechna tlačítka odesílala správná data správnými kanály, nastavil jsem MIDI signál pro směrování na Ableton Live 9 jako MIDI vstup. V Abletonu jsem dokázal mapovat rozřezané zvukové ukázky na každé tlačítko a přehrát každý vzorek.

Doporučuje: