Obsah:

Arduino Uno Midi Fighter: 5 krokov
Arduino Uno Midi Fighter: 5 krokov

Video: Arduino Uno Midi Fighter: 5 krokov

Video: Arduino Uno Midi Fighter: 5 krokov
Video: I built an Arcade DIY MIDI controller with an Arduino Pro Micro: The Fliper 2024, November
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Tento návod bol vytvorený ako splnenie projektovej požiadavky Makecourse na University of South Florida (www.makecourse.com)

Tento domáci radič MIDI (Musical Instrument Digital Interface) poháňaný Arduino, založený na populárnom MidiFighter od DJ Techtools, môže byť použitý ako MIDI zariadenie v akomkoľvek softvéri Digital Audio Workstation (DAW). Ovládač MIDI môže odosielať a prijímať správy MIDI z počítača a môže byť použitý na priame ovládanie toho, ktorý softvér sa používa. Ovládacie prvky na MIDI ovládači sú navyše plne prispôsobiteľné - to znamená, že každé jednotlivé tlačidlo, posúvač a gombík je možné mapovať na akúkoľvek funkciu v DAW. Stlačením tlačidla môžete napríklad prehrať konkrétnu notu alebo byť naprogramovaní tak, aby sa menilo tempo vášho zvukového projektu.

github.com/jdtar/Arduino-Midi-Controller

Krok 1: Materiály

Nasleduje zoznam materiálov a nástrojov použitých v tomto projekte.

Arduino Uno

Breadboard

Multiplexor 4051/4067

Prepojovacie vodiče

Extra drôt

2x 10k ohm lineárne posuvné potenciometre

16x tlačidlá Sanwa 24 mm

Zmršťovacia

Spájkovačka

Žiletka

Odpor 4,7 kΩ

Akrylový list (na viečko)

Kryt pre tlačidlá a Arduino

3-D tlačiareň

Laserová rezačka

Krok 2: Dizajn

Dizajn
Dizajn
Dizajn
Dizajn

Pred spustením projektu som už dostal kryt svojho MIDI ovládača, a tak som zosmiešnil náčrt veka, aby som vizualizoval, kde má byť všetko umiestnené. Vedel som, že ako funkciu chcem najmenej 16 tlačidiel a niekoľko potenciometrov, a preto som sa pokúsil rozložiť komponenty čo najrovnomernejšie.

Po vypracovaní rozloženia veka som súbor vyexportoval vo formáte PDF 1: 1 a odoslal ho do laserovej rezačky, aby som narezal list akrylu. Pri dierach pre skrutky som značkovačom označil, kde chcem, aby boli diery, a horúcim vláknom rozpustil akryl.

V prílohe je dokument 1: 1 PDF, ktorý je možné vytlačiť v pomere 1: 1 a rezať pomocou elektrického náradia, ak nie je k dispozícii laserová rezačka.

Krok 3: Konštrukcia a zapojenie

Konštrukcia a elektroinštalácia
Konštrukcia a elektroinštalácia
Konštrukcia a elektroinštalácia
Konštrukcia a elektroinštalácia
Konštrukcia a elektroinštalácia
Konštrukcia a elektroinštalácia

Po rezaní akrylu som zistil, že akryl je príliš tenký na to, aby dostatočne podoprel všetky súčasti. Potom som vystrihol ďalší list a zlepil ich, čo fungovalo perfektne.

Zapojenie komponentov si vyžadovalo niekoľko pokusov a omylov, ale viedlo k pripojeniu Fritzingovho náčrtu. Najprv som zapojil uzemňovacie vodiče a odpor 4,7 kΩ, spájkoval a teplom som spojil tlačidlá. Na montáž dvoch posuvných potenciometrov sú potrebné tavné otvory pre skrutky do akrylátu. Po zaskrutkovaní dvoch potenciometrov boli zapojené k analógovým kolíkom A0 a A1. Keď bolo zapojenie dokončené, spomenul som si, že pre moje fadery neexistujú žiadne krytky gombíkov, a tak som ich namiesto kúpy vytlačil pomocou 3-D tlačiarne načrtnutím v programe Autodesk Fusion 360 a exportom do súboru STL. De

Arduino Uno má iba 12 dostupných digitálnych vstupných pinov, ale 16 tlačidiel malo byť zapojených. Aby som to kompenzoval, zapojil som multiplexor 74HC4051 na nepájivú dosku, ktorá používa 4 digitálne vstupné piny a umožňuje viacerým signálom používať zdieľanú linku, čo má za následok 8 dostupných digitálnych vstupných kolíkov a celkovo 16 digitálnych pinov, ktoré sú k dispozícii na použitie.

Zapojenie tlačidiel na správne piny jednoducho znamenalo vytvoriť maticu 4x4 a použiť ju v kóde. Zložité však bolo, že konkrétny zakúpený multiplexor mal konkrétne rozloženie pinov, s čím pomohol list s údajmi, a tiež som mal na mysli konkrétne rozloženie poznámok pri zapojení tlačidiel, ktoré nakoniec vyzerali trochu takto:

UPOZORNENIE 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: Programovanie

Programovanie
Programovanie

Akonáhle je zostava dokončená, zostáva už len programovanie Arduina. Priložený skript je napísaný tak, aby sa dal ľahko prispôsobiť.

Začiatok skriptu obsahuje knižnicu MIDI.h a knižnicu ovládačov vypožičanú z blogu Notes a Volts, ktoré sú súčasťou súboru zip pre kód. Pomocou knižnice radičov je možné vytvárať objekty pre tlačidlá, potenciometre a multiplexované tlačidlá obsahujúce dátové hodnoty, ktoré zahŕňajú číslo noty, kontrolné hodnoty, rýchlosť noty, číslo kanála MIDI atď. Knižnica MIDI.h umožňuje komunikáciu MIDI I/O na Sériové porty Arduino, ktoré zase preberajú údaje z objektov ovládača, prevádzajú ich na správy MIDI a odosielajú správy do akéhokoľvek pripojeného rozhrania midi.

Časť nastavenia skriptu void inicializuje všetky kanály ako vypnuté a tiež iniciuje sériové pripojenie pri 115200 baudoch, rýchlosť rýchlejšia, ako sa vymieňajú signály MIDI.

Hlavná slučka v podstate preberá polia tlačidiel a multiplexovaných tlačidiel a spúšťa slučku for, ktorá kontroluje, či bolo tlačidlo stlačené alebo uvoľnené, a odosiela zodpovedajúce dátové bajty do rozhrania midi. Slučka potenciometra kontroluje polohu potenciometra a posiela zodpovedajúce zmeny napätia späť do rozhrania midi.

Krok 5: Nastavenie

Image
Image
Nastaviť
Nastaviť
Nastaviť
Nastaviť
Nastaviť
Nastaviť

Akonáhle je skript načítaný do Arduina, ďalším krokom je zapojenie a prehrávanie. Existuje však niekoľko krokov, než ho budete môcť použiť.

V systéme OSX spoločnosť Apple začlenila funkciu na vytváranie virtuálnych zariadení midi, ku ktorým je možné pristupovať prostredníctvom aplikácie Audio Midi Setup na počítačoch Mac. Po vytvorení nového zariadenia je možné Hairless MIDI použiť na vytvorenie sériového prepojenia medzi Arduinom a novým virtuálnym midi zariadením. Sériové pripojenie z Arduina cez Hairless MIDI funguje pri prenosovej rýchlosti definovanej v časti skriptu na neplatné nastavenie a v nastaveniach predvolieb Hairless MIDI musí byť nastavené ekvivalentne.

Na testovacie účely som použil Midi Monitor, aby som skontroloval, či sa správne údaje odosielajú podľa sériovo-MIDI pripojenia. Keď som zistil, že všetky tlačidlá odosielajú správne údaje správnymi kanálmi, nastavil som signál MIDI tak, aby smeroval do Ableton Live 9 ako vstup MIDI. V Abletone som dokázal mapovať nakrájané zvukové ukážky na každé tlačidlo a prehrať každú ukážku.

Odporúča: