Мазмуну:

Arduino MIDI контроллерин куруу: 9 кадам (сүрөттөр менен)
Arduino MIDI контроллерин куруу: 9 кадам (сүрөттөр менен)

Video: Arduino MIDI контроллерин куруу: 9 кадам (сүрөттөр менен)

Video: Arduino MIDI контроллерин куруу: 9 кадам (сүрөттөр менен)
Video: МКС Monster8 — Основы 2024, Ноябрь
Anonim

Бул көрсөтмө алгач блогумда 28 -жылдын 2020 -июнунда жарыяланган

Мага электроника камтылган нерселер жагат, мен ар дайым Arduino менен бир нерсе кургум келет.

Мен тапкан үйрөнчүктөр үчүн эң кеңири таралган түзүлүштөрдүн бири MIDI контроллери болгон. MIDI контроллери - MIDI маалыматын (Musical Instrument Digital Interface) үндөрдү иштетүү жана музыка чыгаруу үчүн түзмөккө жөнөтүүчү ар кандай жабдык.

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

Долбоор

Өзүмдүн Arduino MIDI контроллеримди куруу менен, менин ниетим ызы -чууну эң төмөнкү деңгээлде кармап, жагымдуу долбоорду түзүү болчу. Ар бир башталгыч ээрчиши мүмкүн болгон нерсе. Муну ишке ашыруу үчүн, мен MIDI Fighter 3Dди негиз катары колдонуп, ар бир маанилүү эмес өзгөчөлүктү алып салдым.

Менин долбоорумдун жалпы баасы 30 доллардан ашты жана материалдардын тизмеси чындыгында кыска болчу (өнөктөштүк шилтемелер):

  • Ардуино Леонардо (же клон): 10 доллардан 20 долларга чейин.
  • 16 х Sanwa баскычтары 24мм (же клон): бир баскычка 1 доллардан 2.50 долларга чейин.
  • Кандооч
  • 22 AWG Электр зымы

Arduino тактасы

Мен бул долбоорду баштаганда, Arduino жаңы моделдери бар экенин көрдүм (жүздөгөн шайкеш такталар жок). Жана алардын баары бир аз башкача мүмкүнчүлүктөрдү сунушташат.

Мен MIDI сигналдарын компьютерге жөнөтүшүм керек болчу жана муну эң жөнөкөй жолу USB аркылуу жасоо. ATmega32u4 микроконтроллерине негизделген ар кандай Arduino тактасы орнотулган USB байланышына ээ.

USB колдоосу бар расмий Arduino такталары Arduino Due, Arduino Zero, Arduino Leonardo, Arduino Micro. Бул такталар USB колдоосуна ээ, бул USB MIDI түзмөгү катары иштей алат.

Мен Ардуино Леонардонун клону менен барууну чечтим. Бул долбоор үчүн жетиштүү кириштери бар жана анын ичинде зымдарды туташтырууну/ажыратууну жеңилдетүүчү аталыштар да бар.

Биринчи кадамдар

Мен бул проекттин кодун кантип ишке ашырганымды этап-этабы менен түшүндүрүп берсем да, акыркы версиясын жүктөп алсаңыз болот.

Тактага кодду жүктөө үчүн Arduino IDE колдонушуңуз керек. Ошондой эле аларда абдан пайдалуу веб редактору бар, бирок аларда күнүнө чектелген квота бар, сиз кодду түзө аласыз.

1-кадам: Камтылган LEDди өчүрүү

Аппаратура дүйнөсүндөгү "Салам Дүйнө" LED диодун кантип өчүрүп жатканы күлкүлүү.

Ардуино Леонардонун кодун текшерүү үчүн көзүн ирмеп койсоңуз болот. Ошентип, LED жана каршылыгы бар нан тактасына тышкы схеманы куруунун кажети жок.

Код:

2 -кадам: Кол менен киргизүү боюнча LEDди өчүрүү

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

  • Pin 2: Санариптик кирүүлөрдүн бири (оң). Бул кандайдыр бир санарип пин болушу мүмкүн.
  • Pin GND: Ар кандай жер казыгы (терс).

Эми, мен зымдардын ачык учтарына кошулган сайын, мен схеманы жаап жатам жана ошонун натыйжасында кодду аткара алам

Леонардодогу 20 санарип казыктын ар биринде INPUT_PULLUP аркылуу иштетиле турган ички резистор бар (демейки боюнча ажыратылган). Эсиңизде болсун, тартма киргизүү баскычтын абалы тескери экенин билдирет:

  • Район ачык болгондо ЖОГОРУ (баскыч басылбайт).
  • Район жабылганда LOW (баскыч басылат).

Код:

3 -кадам: MIDIUSB китепканасын орнотуу

Бул китепкана USB жөндөмү бар Arduino тактасына USB аркылуу MIDI куралы катары иштөөгө мүмкүнчүлүк берет. Көбүрөөк маалымат алуу үчүн расмий документтерди текшериңиз.

Arduino IDE колдонуп, Китепкана менеджери аркылуу кошумча Arduino китепканаларын орното аласыз:

  1. IDEди ачып, "Эскиз" менюну, андан кийин "Китепкананы кошуу", анан "Китепканаларды башкаруу" баскычтарын чыкылдатыңыз.
  2. MIDIUSB издеп, Орнотууну чыкылдатыңыз.
  3. Ал аяктагандан кийин MIDIUSB китепканасынын жанында Орнотулган тег пайда болушу керек.
  4. Китепкана башкаруучусун жабыңыз.

Эми Леонардо USB аркылуу MIDI билдирүүлөрдү жөнөтө алат! Бирок, биринчиден, MIDI кантип иштээри жөнүндө бир аз түшүнүк керек.

MIDI кантип иштейт

"MIDI (Musical Instrument Digital Interface) - бул музыканы ойноо үчүн электрондук музыкалык аспаптарды, компьютерлерди жана тиешелүү аудио түзмөктөрдү туташтырган стандарттык байланыш протоколу." - Википедия

Бул башка көрсөтмөлөрдүн арасында ойнотулган нотанын ылдамдыгы жана ылдамдыгы тууралуу маалыматтар менен окуя кабарларын иштетет

Бул конкреттүү долбоордо 16 баскычтан киргизүү USB аркылуу ар кандай билдирүүлөрдү жөнөтөт. Бул билдирүүлөрдү GarageBand же Ableton Live сыяктуу ылайыктуу программаларды колдонуу менен компьютерде үнгө айландырса болот.

MIDI билдирүүсүнүн анатомиясы

MIDI билдирүү жөнөтүү үчүн, мен 3 -кадамда орнотулган MIDIUSB китепканасынан sendMIDI () ыкмасын колдондум.

Бул ыкма 4 параметрди кабыл алат:

  • Окуянын түрү: Эскертүү 0x09 болушу мүмкүн (ойнотуу нотасы) же 0x08 өчүрүү үчүн (нота ойнотууну токтотуу).
  • Эскертүү On/Off: Окуянын түрү MIDI каналы менен айкалышат (1-16). Мен 1 -каналды гана колдоном, андыктан ал 0x90 Эскертүү үчүн 0x80, Эскертүү 0x80 үчүн.
  • Эскертүү номери: Ар бир нотада сандык чайыр (жыштык шкаласы) бар.
  • Ылдамдык: 0дон (ылдамдык жок) 127ге чейин (эң ылдам).

4 -кадам: MIDI билдирүү жөнөтүү

Мен MIDIUSB китепканасын киргиздим жана камтылган LEDди жаркылдатуунун ордуна, эскертүү жөнөттүм.

Код:

Ant Маанилүү: Бул кадамдан баштап Arduino MIDI USB контроллерине айланат жана USB аркылуу кодду алууну токтотот.

Сиз Arduino программаланбай турган абалга кептелгенде, төмөнкү кадамдарды аткарыңыз:

  1. Arduino тактасындагы тегеректелген баштапкы абалга келтирүү баскычын басып туруңуз.
  2. Arduino IDEдеги Жүктөө дегенди басыңыз.
  3. Баштапкы абалга келтирүү баскычын коё бериңиз.
  4. Жаңыртылган код тактага жүктөлөт.

5 -кадам: Ар бир баскычтан MIDI билдирүүсүн жөнөтүү

Ар бир баскычтан MIDI билдирүү жөнөтүү
Ар бир баскычтан MIDI билдирүү жөнөтүү

Акыркы кадам - ар бир кадамды бир баскычка картага түшүрүү. 16 баскыч үчүн мен C2ден E3bге чейинки масштабды аныктадым, алар 36дан 51ге чейин төмөндөн өйдө жана солдон оңго чейин ырааттуулукта. Бул файлды Arduino Tutorials'тен текшерип көрүңүз, ар бир нотага эмне туура келет.

Мен 2ден 12ге чейинки санарип казыктарды жана аналогдук пиндерди (аларды сандык катары колдонуп) A0дан A4кө чейин колдондум.

Жана акыркы код ушундай көрүнөт

6 -кадам: Каналдарды же Банктарды орнотуу (милдеттүү эмес)

Каналдарды же Банктарды орнотуу (милдеттүү эмес)
Каналдарды же Банктарды орнотуу (милдеттүү эмес)

Эгерде сиз MIDI Fighter 3D сыяктуу каналдарды же банктарды алмаштыруу жөндөмүнө ээ болгон башка баскычтарды кошкуңуз келсе (сүрөттү караңыз), Arduino Leonardo сиз колдоно турган дагы төрт казыкка ээ. Ардуино Леонардодо 20 санарип киргизүү/чыгаруу казыгы бар, алардын ичинен 16сы гана ноталарды ойнотуу үчүн колдонулат.

Сиз бул кошумча баскычтарды коддогу өзгөрмөнү жаңыртуу үчүн колдоно аласыз жана анын маанисин MidiUSB.sendMIDI ыкмасына параметр катары жөнөтө аласыз:

gist.github.com/lean8086/ec8da7486ec3621f9f0b90542a06fcea

7 -кадам: Case

Case
Case
Case
Case

Бул долбоорду жөнөкөй кармоо үчүн, кайсы өзгөчөлүктөр камтылганын тандоодо абдан тандамакмын.

  • Баскычтар гана: 16x Sanwa сыяктуу аркада баскычтары, 4х4 сеткада. Баскычтар, слайдерлер, өчүргүчтөр же башка аналогдук киргизүү жок.
  • Бирдиктүү корпус: Корпус үчүн же Arduino тактасын кармоо үчүн бурамаларды, гайкаларды, болтторду же клейди колдонбоңуз.
  • Күнүмдүк шаймандар: Мисалы, мен аркадалык баскычтар үчүн конкреттүү зым кесүүчү машинаны сатып алуунун ордуна зымдарды ширеттим.

Unibody Design

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

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

3d принтерин түшүрүү (322 KB). Сунушталган орнотуулар: PLA, 0.15мм катмарлар, 20% толтуруу, жок дегенде тегеректелген түбүндөгү тешик, Arduino кармагычтар жана микро USB үчүн күч колдонуучулар.

Бурамасы жок Arduino кармоо

Леонардонун тактайын каалаган ылайыктуу корпуска буроо үчүн 4 тешиги бар, бирок менин оюм тактанын корпусуна кошууну жана алып салууну жеңилдетүү болчу.

Thingiverse'де Arduino үчүн клип кармагычты табуу оңой эле, ал кармагычты unibody дизайны менен бириктирүү үчүн мага 5 кайталоо керек болду. Эң татаал бөлүгү - буттарын баскычтардын тешиктеринен качуу жана микро USB'ди корпустун ортосуна тегиздөө.

8 -кадам: Ассамблея

Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея

Бардык баскычтарды ордуна койгондон кийин, мен алардын ортосундагы баскычтардын бардык терс буттарын бириктирген кыска кара зымдарды ширеттим.

Анан ар бир оң бутунан узун кызыл зымдарды тактайга туташтыруу үчүн ширеттим.

Зымдарды Arduino менен туташтыруу үчүн, мен Дюпонттун кээ бир учтарын кесип, ширетип, аларды жылуулукка каршы түтүктөр менен жаптым.

Мен зымдарды тактага MIDI Fighterдегидей тартипте туташтырдым. Төмөндөн өйдө жана солдон оңго

9 -кадам: MIDI контроллерин колдонуу

MIDI контроллерин колдонуу
MIDI контроллерин колдонуу

Каалаган музыкалык программалар (же ылайыктуу жабдыктар) MIDIди кабыл алуу жана музыка жасоо үчүн колдонулушу мүмкүн. Эң сунушталгандары Garage Band, Ableton Live жана мен телефонго орнотуу үчүн көптөгөн колдонмолор бар экенин билем.

Бардык бул каражаттар манжа барабаны үчүн алдын ала аныкталган үндөрдү жүктөө үчүн пайдалуу, бирок алар чоң максаттар үчүн жасалган. Бул куралдар башталгычтар үчүн кыйын болушу мүмкүн.

MIDI веб браузерде

Бул долбоорго жана анын жөнөкөйлүгүнө көбүрөөк шайкеш келүү үчүн, мен MIDI контроллерлерине толугу менен багытталган веб -куралды түздүм.

Punchy: MIDI контроллери үчүн WebMIDI жана WebAudioду ишке ашыруу.

Ал WebMIDI JavaScript API колдогон каалаган браузерде MIDI билдирүүлөрдү окуй алат. Андан кийин ал үндөрдү синтезатордо (WebAudio API аркылуу) же үлгү алгычта ойнотуп, ар кандай үн топтомунан ыңгайлаштырылган үндөрдү жүктөйт.

Ableton Live'ди орнотуңуз

MIDI Controllerди Ableton Live менен иштөө үчүн, алардын расмий документтеринен бул жөнөкөй кадамдарды аткарыңыз.

Тандоолорго өтүңүз → MIDI шилтемесине өтүңүз жана "Киргизүүдө" "Трек" жана "Алыстан" КҮЙГҮЗҮЛГӨНүн жана чыгууда "Алыстан" КҮЙГҮЗҮЛГӨНҮН текшерип көрүңүз:

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