Мазмуну:
- 1 -кадам: материалдар
- 2 -кадам: Дизайн
- 3 -кадам: Курулуш жана электр өткөргүчтөрү
- 4 -кадам: Программалоо
- 5 -кадам: Орнотуу
Video: Arduino Uno Midi Fighter: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бул көрсөтмө Түштүк Флорида университетинин Макекурстун долбоорунун талабын аткаруу үчүн түзүлгөн (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 -кадам: Орнотуу
Сценарий Arduinoго жүктөлгөндөн кийин, кийинки кадам - сайып ойнотуу. Колдонууга чейин бир нече кадам бар.
OSXте Apple виртуалдык midi түзмөктөрүн түзүү мүмкүнчүлүгүн камтыйт, ага Macs Audio Midi Setup тиркемеси аркылуу кирүүгө болот. Жаңы түзмөк түзүлгөндөн кийин, Hairless MIDI Arduino менен жаңы виртуалдык midi түзмөгүнүн ортосунда сериялык байланыш түзүү үчүн колдонулушу мүмкүн. Ардуинодон Hairless MIDI аркылуу сериялык туташуу скрипттин боштук орнотуу бөлүгүндө аныкталган бодо ылдамдыгында иштейт жана Hairless MIDI артыкчылык жөндөөлөрүндө эквивалент болушу керек.
Тестирлөө үчүн мен Midi Monitorду туура маалыматтардын сериялык-MIDI туташуусу боюнча жөнөтүлгөнүн текшерүү үчүн колдондум. Ар бир баскыч туура маалыматты туура каналдар аркылуу жөнөткөнүн аныктагандан кийин, MIDI сигналын Ableton Live 9га багыттоо үчүн MIDI сигналын койдум. Аблетондо мен кесилген аудио үлгүлөрдү ар бир баскычка түшүрүп, ар бир үлгүнү ойното алдым.
Сунушталууда:
Arduino MIDI контроллерин куруңуз: 5 кадам (сүрөттөр менен)
Arduino MIDI контроллерин куруңуз: Салам баарына! Бул көрсөтмөдө мен сизге Arduino менен иштөөчү MIDI контроллерин кантип курууну көрсөтөм. MIDI Музыкалык Аспаптын Санарип Интерфейси дегенди билдирет жана бул компьютерлерге, музыкалык аспаптарга жана башка жабдууларга өтүүгө мүмкүндүк берген протокол
Акустикалык левитация Arduino Uno менен кадам-кадам (8-кадам): 8 кадам
Акустикалык левитация менен Arduino Uno Step-by-Step (8-кадам): ультрадыбыштуу үн өткөргүчтөр L298N Dc аял адаптеринин электр энергиясы менен камсыздоосу эркек токту Arduino UNOBreadboard Бул кантип иштейт: Биринчиден, сиз Arduino Uno кодун жүктөп бересиз (бул санарип менен жабдылган микроконтроллер) жана аналогдук порттор кодду айландыруу үчүн (C ++)
Күчтүү Arduino-UNO, Massduino-UNO: 9 кадам
Күчтүү Arduino-UNO, Massduino-UNO: Massduino деген эмне? Massduino-бул Arduino платформасынын перифериялык-бай, ыңгайлуу жана тез өнүгүүсүн, арзан баада жана ири өндүрүштүн артыкчылыктарын оңой айкалыштырган жаңы продукт линиясы. Дээрлик бардык Arduino коддору
Arduino негизделген MIDI Fighter (сенсордук): 7 кадам (сүрөттөр менен)
Arduino негизделген MIDI Fighter (Touch Sensitive): MIDI Musical Instrument Digital Interface дегенди билдирет. Бул жерде биз тийүү сезгич MIDI файлерин жасап жатабыз. Анын 16 аянты бар. буларды көбөйтүүгө же азайтууга болот. Бул жерде мен чектелген arduino пиндеринен улам 16 колдондум
MIDI 5V LED Strip Light контроллери Spielatron же башка MIDI Synth үчүн: 7 кадам (Сүрөттөр менен)
MIDI 5V LED Strip Light контроллери Spielatron же башка MIDI Synth үчүн: Бул контролер үч түстүү LED чырактарын жаркыратат. 50mS үчүн G5-D#6 үчүн, E6-B6 үчүн кызыл жана C7-G7 үчүн жашыл. Контроллер - бул ALSA MIDI түзмөгү, ошондуктан MIDI программасы MIDI синтездөөчү түзмөк менен бир убакта LEDлерге чыгара алат