Мазмуну:

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

Video: Arduino Uno Midi Fighter: 5 кадам

Video: Arduino Uno Midi Fighter: 5 кадам
Video: I built an Arcade DIY MIDI controller with an Arduino Pro Micro: The Fliper 2024, Ноябрь
Anonim
Arduino Uno Midi Fighter
Arduino Uno Midi Fighter

Бул көрсөтмө Түштүк Флорида университетинин Макекурстун долбоорунун талабын аткаруу үчүн түзүлгөн (www.makecourse.com)

DJ Techtools тарабынан популярдуу MidiFighterге негизделген, бул үйдө жасалган Arduino менен иштелген Музыкалык Аспаптын Санарип Интерфейси (MIDI) контроллери MIDI түзмөгү катары каалаган Санарип Аудио Жумуш станциясында (DAW) программалык камсыздоодо колдонулушу мүмкүн. MIDI контроллери MIDI билдирүүлөрүн компьютерден жөнөтө жана кабыл ала алат жана кайсы программалык камсыздоо колдонулганын түз көзөмөлдөө үчүн колдонулушу мүмкүн. Кошумча катары, MIDI контроллериндеги башкаруу элементтери толугу менен ыңгайлаштырылган - башкача айтканда, ар бир жеке баскычты, сыдырманы жана баскычты DAWтин каалаган функциясына картага түшүрсө болот. Мисалы, баскычты басуу белгилүү бир нотаны ойнотушу же аудио долбооруңуздун темпин которуш үчүн программаланышы мүмкүн.

github.com/jdtar/Arduino-Midi-Controller

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

Төмөндө бул долбоордо колдонулган материалдардын жана шаймандардын тизмеси келтирилген.

Arduino Uno

Breadboard

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

Өткөргүч зымдар

Extra Wire

2x 10k Ом сызыктуу слайд потенциометрлери

16x Sanwa 24мм баскычтары

Жылуулук кыскартуу

Кандооч

Устара бычак

4,7 кОм каршылык

Акрил барагы (капкак үчүн)

Баскычтар жана Arduino үчүн турак жай

3-D принтер

Лазердик кескич

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

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

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

Капкактын макетин түзгөндөн кийин, мен файлды 1: 1 PDF форматында экспорттоп, акрил баракты кесүү үчүн лазердик кескичке жөнөттүм. Винт тешиктери үчүн мен тешиктердин каалаган жерин белгилеп, акрилди ысык жип менен эритип койгом.

1: 1 PDF тиркелет, аны 1: 1 кылып басып чыгарууга жана лазер кескич жок болсо электр шаймандары менен кесүүгө болот.

3 -кадам: Курулуш жана электр өткөргүчтөрү

Курулуш жана электр зымдары
Курулуш жана электр зымдары
Курулуш жана электр өткөргүчтөрү
Курулуш жана электр өткөргүчтөрү
Курулуш жана электр зымдары
Курулуш жана электр зымдары

Акрилди кескенден кийин, мен акрилдин бардык компоненттерди жетиштүү колдоо үчүн өтө жука экенин билдим. Мен андан кийин дагы бир баракты кесип, аларды жабыштырып койдум, ал кемчиликсиз иштеди.

Компоненттерди зымдоо кээ бир сыноолорду жана каталарды талап кылды, бирок Fritzing эскизи тиркелди. Мен адегенде жерге зымдарды жана 4.7kΩ каршылыгын, зымдарды жана жылуулукту түймөктөрдөгү байланыштарды кыскарттым. Эки слайд потенциометрин монтаждоодо акрилдеги бурамалар үчүн эрүү тешиктери керек болчу. Эки потенциометрди бурап салышкандан кийин, алар A0 жана A1 аналогдук төөнөгүчтөргө чейин туташтырылган. Электр өткөргүчтөрү бүткөндөн кийин, менин фейдерлерим үчүн эч кандай капкак жок экенин эстедим, ошондуктан аларды сатып алуунун ордуна, 3-D принтеринин жардамы менен Autodesk Fusion 360да эскизин басып STL файлына экспорттоо менен кээ бир туткаларды басып чыгардым. De

Arduino Unoдо 12 гана санариптик кирүү казыгы бар, бирок 16 баскыч зым менен жабылышы керек болчу. Мунун ордун толтуруу үчүн, мен 74HC4051 мультиплексорун 4 санарип кирүү казыгын колдонгон жана бир нече сигналдарды бөлүшкөн линияны колдонууга мүмкүндүк берген 8 санариптик кирүү казыгынын жалпы 16 санарип төөнөгүчтөрүн иштеткен нан тактасына туташтырдым.

Баскычтарды туура казыктарга туташтыруу 4х4 матрицаны түзүү жана аны коддо колдонуу жөнүндө болгон. Бирок татаал бөлүгү, сатып алынган конкреттүү мультиплексордун маалымат тактасы жардам берген конкреттүү пин макетине ээ болушу, ошондой эле баскычтарды туташтырууда менин конкреттүү нота макетим бар болчу, ал бир аз окшош болуп калды:

NOTE 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 блогунан алынган контролер китепканасы кирет, экөө тең коддун zip файлына киргизилген. Контроллер китепканасын колдонуп, баскычтар, потенциометрлер жана мультиплекстүү баскычтар үчүн объекттер түзүлүшү мүмкүн, алар нота номерин, башкаруу баалуулуктарын, нота ылдамдыгын, MIDI каналынын номерин камтыган маалымат баалуулуктарын камтыйт. MIDI.h китепканасы MIDI I/O байланышын иштетет. Arduino сериялык порттору, алар өз кезегинде контроллер объекттеринен маалыматтарды алып, аларды MIDI билдирүүлөрүнө айландырат жана билдирүүлөрдү midi интерфейси туташкан жерге жөнөтөт.

Скрипттин боштук орнотуу бөлүгү бардык каналдарды өчүрүлгөндөй баштапкы абалга келтирет, ошондой эле MIDI сигналдарын алмаштырууга караганда ылдамыраак 115200 байда сериялык туташууну баштайт.

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

5 -кадам: Орнотуу

Image
Image
Жайгашуу
Жайгашуу
Жайгашуу
Жайгашуу
Жайгашуу
Жайгашуу

Сценарий Arduinoго жүктөлгөндөн кийин, кийинки кадам - сайып ойнотуу. Колдонууга чейин бир нече кадам бар.

OSXте Apple виртуалдык midi түзмөктөрүн түзүү мүмкүнчүлүгүн камтыйт, ага Macs Audio Midi Setup тиркемеси аркылуу кирүүгө болот. Жаңы түзмөк түзүлгөндөн кийин, Hairless MIDI Arduino менен жаңы виртуалдык midi түзмөгүнүн ортосунда сериялык байланыш түзүү үчүн колдонулушу мүмкүн. Ардуинодон Hairless MIDI аркылуу сериялык туташуу скрипттин боштук орнотуу бөлүгүндө аныкталган бодо ылдамдыгында иштейт жана Hairless MIDI артыкчылык жөндөөлөрүндө эквивалент болушу керек.

Тестирлөө үчүн мен Midi Monitorду туура маалыматтардын сериялык-MIDI туташуусу боюнча жөнөтүлгөнүн текшерүү үчүн колдондум. Ар бир баскыч туура маалыматты туура каналдар аркылуу жөнөткөнүн аныктагандан кийин, MIDI сигналын Ableton Live 9га багыттоо үчүн MIDI сигналын койдум. Аблетондо мен кесилген аудио үлгүлөрдү ар бир баскычка түшүрүп, ар бир үлгүнү ойното алдым.

Сунушталууда: