Мазмұны:

Arduino Uno Midi Fighter: 5 қадам
Arduino Uno Midi Fighter: 5 қадам

Бейне: Arduino Uno Midi Fighter: 5 қадам

Бейне: Arduino Uno Midi Fighter: 5 қадам
Бейне: I built an Arcade DIY MIDI controller with an Arduino Pro Micro: The Fliper 2024, Қараша
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Бұл нұсқаулық Оңтүстік Флорида университетінің Makecourse жобасының талаптарын орындау үшін жасалған (www.makecourse.com)

DJ Techtools -тің әйгілі MidiFighter -ге сүйене отырып, бұл үйде Arduino -мен жұмыс істейтін музыкалық аспаптардың сандық интерфейсі (MIDI) контроллері кез келген сандық аудио жұмыс станциясы (DAW) бағдарламалық жасақтамасында MIDI құрылғысы ретінде қолданыла алады. MIDI контроллері MIDI хабарламаларын компьютерден жібере және қабылдай алады және қандай бағдарламалық жасақтаманы басқаруды тікелей басқаруға болады. Сонымен қатар, MIDI контроллеріндегі басқару элементтері толығымен реттеледі, яғни әрбір жеке түймені, сырғытпаны және тұтқаны DAW кез келген функциясымен салыстыруға болады. Мысалы, түймені басу белгілі бір жазбаны ойната алады немесе аудио жобаның қарқынын ауыстыру үшін бағдарламалануы мүмкін.

github.com/jdtar/Arduino-Midi-Controller

1 -қадам: материалдар

Төменде осы жобада қолданылатын материалдар мен құралдардың тізімі берілген.

Ардуино Уно

Нан тақтасы

4051/4067 Мультиплексор

Өткізгіш сымдар

Қосымша сым

2х 10к Ом сызықтық сырғымалы потенциометрлер

16 x Sanwa 24 мм түймелері

Жылуды азайту

Пісіру темірі

Ұстара пышағы

4,7 кОм резистор

Акрил парағы (қақпақ үшін)

Түймелер мен Arduino үшін корпус

3-D принтері

Лазерлік кескіш

2 -қадам: Дизайн

Дизайн
Дизайн
Дизайн
Дизайн

Мен жобаны бастамас бұрын MIDI контроллеріме тұрғын үй бердім, сондықтан мен қайда орналастыру керектігін елестету үшін қақпақтың эскизін мазақтадым. Мен кем дегенде 16 түйме мен бірнеше потенциометр қажет екенін білдім, сондықтан мен компоненттерді мүмкіндігінше біркелкі орналастыруға тырыстым.

Қақпақтың макетін жасағаннан кейін мен файлды 1: 1 форматындағы PDF форматында экспорттадым және акрил парағын кесу үшін лазерлік кескішке жібердім. Бұрандалы тесіктер үшін мен тесіктердің маркермен болуын қалаған жерді белгілеп, акрилді ыстық жіппен ерітіп жібердім.

1: 1 форматындағы PDF қоса беріледі, оны 1: 1 түрінде басып шығаруға және лазерлік кескіш болмаса электр құралдарымен кесуге болады.

3 -қадам: Құрылыс және сымдар

Құрылыс және сымдар
Құрылыс және сымдар
Құрылыс және сымдар
Құрылыс және сымдар
Құрылыс және сымдар
Құрылыс және сымдар

Акрилді кескеннен кейін мен акрилдің барлық компоненттерге жеткілікті қолдау көрсетуге тым жұқа екенін білдім. Содан кейін мен басқа парақты қиып алып, оларды жабыстырдым, бұл өте жақсы жұмыс істеді.

Компоненттерді сымдау біраз сынақ пен қателіктерді талап етті, бірақ Fritzing эскизі бекітілді. Мен алдымен жерге қосылатын сымдар мен 4.7 кОм резисторды, дәнекерленген және жылуды түймедегі қосылыстарды қысқартадым. Екі сырғымалы потенциометрді монтаждау акрилдегі бұрандалар үшін еру тесіктерін қажет етеді. Екі потенциометрді бұрап алғаннан кейін, олар A0 және A1 аналогтық түйреуіштерге дейін қосылды. Сымдар аяқталғаннан кейін мен фейдерлерге арналған қақпақтар жоқ екенін есіме алдым, оларды сатып алудан гөрі, 3-D принтерінің көмегімен кейбір тұтқаларды Autodesk Fusion 360-да сызып, STL файлына экспорттау арқылы басып шығардым. Де

Arduino Uno -да тек 12 қол жетімді цифрлық түйреуіш бар, бірақ 16 түймені қосу керек еді. Мұның орнын толтыру үшін мен 74HC4051 мультиплексорын 4 цифрлық кіріс түйреуішін пайдаланатын және ортақ сигналды пайдалануға мүмкіндік беретін бірнеше сигналға мүмкіндік беретін 74HC4051 мультиплексорын қостым, нәтижесінде барлығы 16 цифрлық түйреуіш бар.

Түймешіктерді дұрыс түйреуішке қосу 4х4 матрицаны құру және оны кодта қолдану туралы болды. Қиын бөлігі мынада, сатып алынған мультиплексорда арнайы түйіннің орналасуы болды, оған деректер кестесі көмектесті, сонымен қатар түймені қосу кезінде мен белгілі бір жазбаның орналасуын ескердім, ол осылай аяқталды:

ЕСКЕРТПЕ 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 INPUT)

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

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

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

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

4 -қадам: Бағдарламалау

Бағдарламалау
Бағдарламалау

Жинау аяқталғаннан кейін Arduino бағдарламалауы қалды. Қосылған сценарий оңай реттелетін етіп жазылған.

Сценарийдің басында MIDI.h кітапханасы мен Notes and Volts блогынан алынған контроллер кітапханасы бар, олар екеуі де кодтың пошталық файлына кіреді. Контроллер кітапханасының көмегімен түймелердің, потенциометрлердің және мультиплексті түймелердің объектілерін құруға болады, оларда нота нөмірі, басқару мәндері, жазбаның жылдамдығы, MIDI арнасының нөмірі және т.б. бар деректер мәндері бар MIDI.h кітапханасы MIDI енгізу -шығару байланысын қосады. Arduino сериялық порттары, ол өз кезегінде контроллер объектілерінен деректерді алады, оларды MIDI хабарларына түрлендіреді және midi интерфейсі қосылған кез келген хабарды жібереді.

Сценарийдің жарамсыз бөлігі барлық арналарды инициализациялайды, сонымен қатар MIDI сигналдарын алмастыруға қарағанда жылдамырақ 115200 бауда сериялық қосылымды бастайды.

Негізгі цикл батырмалар мен мультиплексті түймелердің массивтерін қабылдайды және түйменің басылғанын немесе босатылғанын тексеретін және сәйкес деректер байтын midi интерфейсіне жіберетін for циклін іске қосады. Потенциометр циклы потенциометрдің орнын тексереді және кернеудің сәйкес өзгерістерін midi интерфейсіне қайтарады.

5 -қадам: Орнату

Image
Image
Орнату
Орнату
Орнату
Орнату
Орнату
Орнату

Сценарий Arduino -ға жүктелгеннен кейін, келесі қадам - қосу және ойнату. Қолданар алдында бірнеше қадамдар бар.

OSX -те Apple виртуалды midi құрылғыларын құруға мүмкіндік берді, оған Mac -та Audio Midi Setup қосымшасы арқылы қол жеткізуге болады. Жаңа құрылғы жасалғаннан кейін, Hairless MIDI Arduino мен жаңа виртуалды midi құрылғысы арасында сериялық байланыс жасау үшін пайдаланылуы мүмкін. Arduino -дан Hairless MIDI арқылы сериялық байланыс сценарийдің жарамсыз бөлігінде анықталған жіберу жылдамдығында жұмыс істейді және Hairless MIDI теңшелім параметрлерінде эквивалентті болуы керек.

Тексеру мақсатында мен Midi Monitor-ды сериялық-MIDI байланысы бойынша дұрыс деректер жіберілгенін тексеру үшін қолдандым. Мен барлық түймелердің дұрыс арналар арқылы дұрыс деректерді жіберетінін анықтағаннан кейін, MIDI сигналын Ableton Live 9 -ге бағыттау үшін MIDI сигналын орнаттым. Ableton -да мен әр түйменің кесілген аудио үлгілерін салыстырып, әр үлгіні ойната алдым.

Ұсынылған: